> 데이터 베이스 > MySQL 튜토리얼 > 별도의 일, 월, 연도 필드에서 MySQL의 날짜를 구성하는 방법은 무엇입니까?

별도의 일, 월, 연도 필드에서 MySQL의 날짜를 구성하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-12-25 07:46:54
원래의
292명이 탐색했습니다.

How to Construct a Date in MySQL from Separate Day, Month, and Year Fields?

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 논리를 사용할 수 있습니다.

  1. 연도와 월로 날짜 구성: MAKEDATE() 함수를 다음과 같은 상수 날짜와 함께 사용하세요. 1을 사용하여 지정된 연도 및 월의 첫 번째 날을 나타내는 DATETIME을 얻습니다.
  2. 월 및 일로 날짜 조정: DATE_ADD() 함수를 적용하여 그에 따라 월 및 일 값을 추가합니다. 초기 날짜/시간.

예 쿼리

구성된 날짜가 특정 범위에 속하는 '날짜' 테이블의 모든 행을 선택하려면:

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿