집 >데이터 베이스 >MySQL 튜토리얼 >날짜 범위 비교를 수행하기 위해 MySQL에서 별도의 일, 월, 연도 필드를 어떻게 결합할 수 있습니까?
MySQL에서 비교를 위해 날짜 필드 결합
날짜 기반 검색 필터가 있는 애플리케이션에서는 데이터베이스 스키마로 작업하는 것이 어려울 수 있습니다. 일, 월, 연도에 대한 별도의 필드에 날짜 구성 요소를 저장합니다. 이 문서에서는 이러한 필드를 결합하고 사용자가 지정한 날짜 범위와 비교할 날짜 개체를 생성하는 방법을 보여줍니다.
다음 "날짜" 테이블 구조를 고려하세요.
CREATE TABLE `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`) );
날짜를 구성하려면 이러한 필드에서 MySQL은 다음 기능을 제공합니다.
다음을 나타내는 날짜 객체를 생성하려면 특정 날짜에 대해 다음 단계를 사용할 수 있습니다.
MAKEDATE() 사용 해당 연도의 첫 번째 날에 대한 DATETIME 객체를 생성하려면:
MAKEDATE(year, 1)
DATE_ADD()를 사용하여 DATETIME 객체에 월을 추가합니다:
DATE_ADD(MAKEDATE(year, 1), INTERVAL (month)-1 MONTH)
마지막으로 다음을 사용하여 DATETIME 객체에 일을 추가합니다. DATE_ADD():
DATE_ADD(..., INTERVAL (day)-1 DAY)
이러한 함수를 결합하면 개별 일, 월, 연도 필드에서 완전한 날짜 개체를 구성할 수 있습니다. 그런 다음 이 날짜 개체를 날짜 범위 비교에 사용할 수 있습니다.
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';
이 쿼리는 "날짜" 테이블에서 결합된 날짜가 지정된 범위 내에 속하는 모든 레코드를 검색합니다. MAKEDATE()와 DATE_ADD()의 조합을 활용함으로써 MySQL은 개발자가 별도의 필드에 저장된 경우에도 날짜를 효과적으로 조작하고 비교할 수 있도록 해줍니다.
위 내용은 날짜 범위 비교를 수행하기 위해 MySQL에서 별도의 일, 월, 연도 필드를 어떻게 결합할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!