MySQL에서 날짜 시퀀스 생성
질문:
PostgreSQL의 generate_series() 함수와 유사하게 MySQL에서 날짜 계열을 만드는 방법은 무엇입니까?
정답:
MySQL에는 generate_series()와 직접적으로 동일한 기능이 없지만 다음 단계를 따르면 비슷한 결과를 얻을 수 있습니다.
다음은 2011년 1월 1일부터 2011년 12월 31일까지의 기간을 생성하는 샘플 쿼리입니다.
<code class="language-sql">SELECT DATE_FORMAT( ADDDATE('2011-01-01', @num := @num + 1), '%Y-%m-%d' ) AS 日期 FROM 任意表, (SELECT @num := -1) AS num LIMIT 365;</code>
이 쿼리에서:
任意表
은 하나 이상의 행을 포함하는 임시 테이블입니다(행 수만 사용되므로 모든 테이블을 사용할 수 있음). @num := @num 1
0부터 시작하는 연속된 숫자 시퀀스를 만듭니다. ADDDATE('2011-01-01', @num := @num 1)
각 숫자에 해당 날짜 간격을 추가하세요. DATE_FORMAT()
생성된 날짜를 원하는 형식으로 지정하세요. LIMIT 365
생성할 날짜 수를 지정합니다(윤년이 아닌 경우 365). 이 방법을 사용하면 별도의 달력 테이블 없이도 MySQL에서 날짜 시퀀스를 생성할 수 있습니다. 任意表
은 기존 테이블로 대체되거나 임시 데이터 행을 만드는 데 사용될 수 있습니다. MySQL 자체는 PostgreSQL SELECT 1 UNION ALL SELECT 1 ...
과 같은 직접적인 기능을 제공하지 않기 때문에 이는 해결 방법입니다. generate_series
위 내용은 MySQL에서 날짜 시리즈를 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!