MySQL의 개별 일, 월, 연도 필드에서 날짜 생성
데이터베이스 애플리케이션에서는 비교 또는 기타 처리를 위해 별도의 일, 월, 연도 필드입니다. 이는 비표준 방식으로 날짜 구성 요소를 저장하기로 선택한 이전 설계에서 데이터베이스 스키마를 상속받은 경우 특히 중요합니다.
문제 설명(개정)
이 질문은 통합 날짜 필드가 아닌 '일', '월' 및 '연도'에 대한 개별 필드가 있는 테이블에서 SQL로 날짜 개체를 생성하는 것과 관련이 있습니다. 목표는 BETWEEN 절을 사용하여 이러한 날짜를 사용자 입력 범위와 비교하는 것입니다.
데이터베이스 스키마
다음은 '날짜'에 대해 제공되는 스키마입니다. 테이블:
CREATE TABLE IF NOT EXISTS `date` ( `deposition_id` varchar(11) NOT NULL default '', `day` int(2) default NULL, `month` int(2) default NULL, `year` int(4) default NULL, PRIMARY KEY (`deposition_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
솔루션
이러한 개별 구성 요소에서 날짜 개체를 생성하려면 다음 SQL 논리를 사용할 수 있습니다.
예 쿼리
구성된 날짜가 특정 범위에 속하는 '날짜' 테이블의 모든 행을 선택하려면:
SELECT * FROM `date` WHERE DATE_ADD(DATE_ADD(MAKEDATE(year, 1), INTERVAL (month)-1 MONTH), INTERVAL (day)-1 DAY) BETWEEN '2013-01-01' AND '2014-01-01';
이 쿼리는 결합된 날짜가 구성된 모든 행을 반환합니다. 개별 필드에서 제공된 두 날짜 사이에 있습니다.
위 내용은 별도의 일, 월, 연도 필드에서 MySQL의 날짜를 구성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!