> 데이터 베이스 > MySQL 튜토리얼 > MySQL에서 날짜 시리즈를 생성하는 방법은 무엇입니까?

MySQL에서 날짜 시리즈를 생성하는 방법은 무엇입니까?

Barbara Streisand
풀어 주다: 2025-01-14 09:36:43
원래의
868명이 탐색했습니다.

How to Generate a Date Series in MySQL?

MySQL에서 날짜 시퀀스 생성

질문:

PostgreSQL의 generate_series() 함수와 유사하게 MySQL에서 날짜 계열을 만드는 방법은 무엇입니까?

정답:

MySQL에는 generate_series()와 직접적으로 동일한 기능이 없지만 다음 단계를 따르면 비슷한 결과를 얻을 수 있습니다.

  1. 연속된 숫자를 포함하는 임시 테이블을 만듭니다.
  2. adddate() 함수를 사용하여 각 숫자에 해당 날짜 간격을 추가합니다.
  3. date_format() 함수를 사용하여 생성된 날짜의 형식을 원하는 형식에 맞도록 지정합니다.

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

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