source

선행 0을 사용하도록 mySQL MONTH()를 가져오시겠습니까?

topadmin 2023. 1. 16. 20:10

선행 0을 사용하도록 mySQL MONTH()를 가져오시겠습니까?

이 쿼리에서 8이 아닌 '08'을 반환하도록 mySQL의 MONTH() 함수에 지정하려면 어떻게 해야 합니까?

나는 그런 종류의 일을 날짜별로 처리하고 싶다.현재 다음과 같은 날짜에 대한 결과를 얻고 있습니다.

2006-9
2007-1
2007-10
2007-11

현재 쿼리:

SELECT COUNT(*), CONCAT(YEAR(`datetime_added`), '-', MONTH(`datetime_added`)) as date FROM `person` WHERE (email = '' OR email IS NULL) 
GROUP BY date 
ORDER BY date ASC

대신 다음을 사용하십시오.

DATE_FORMAT(`datetime_added`,'%Y-%m')

설명:

DATE_FORMAT()함수는 아래 표에 설명된 지정자를 사용하여 원하는 날짜 형식을 지정할 수 있습니다(설명서에서 인용).형식 문자열은'%Y-%m'의미: "1년(4자리)에 대시(dash)가 붙습니다."-) 뒤에 두 자리 월 번호"가 표시됩니다.

시스템 변수를 설정하여 일/월 이름에 사용할 언어를 지정할 수 있습니다.매우 편리합니다.상세한 것에 대하여는, 메뉴얼을 참조해 주세요.

지정자 묘사
%a 주중 약칭(일요일..자리)
%b 약칭 월명(Jan..12월)
%c 월, 숫자(0..)12)
%D 영어 접미사가 있는 달의 요일(0일, 1일, 2일, 3일, …)
%d 날짜(00.31)
%e 날짜, 숫자(0..)31)
%f 마이크로초(00000000..999999)
%H 시간(00..23)
%h 시간(01..12)
%I 시간(01..12)
%i 분, 숫자(00~59)
%j 요일(001..)366)
%k 시간(0..)23)
%l 시간(1..)12)
%M 월명(1월)12월)
%m 월, 숫자(00..12)
%p 오전 또는 오후
%r 시간, 12시간(hh:mm:ss 뒤에 AM 또는 PM)
%S 초(00~59)
%s 초(00~59)
%T 시간, 24시간(hh:mm:ss)
%U Week(00.53) 일요일은 주의 첫 번째 요일, WEEK() 모드0
%u Week(00.53) 월요일은 주의 첫 번째 요일, WEEK() 모드1
%V Week(01..53) 일요일은 주의 첫 번째 요일, WEEK() 모드2, %X와 함께 사용
%v Week (01 . 53) 월요일은 주의 첫 번째 요일, WEEK() 모드3, %x와 함께 사용됩니다.
%W 평일 이름(일요일..토요일)
%w 요일(0=요일..6=토요일)
%X 일요일이 주의 첫 번째 요일인 주의 연도(숫자, 4자리), %V와 함께 사용됩니다.
%x 주의 년도. 월요일은 주의 첫 번째 요일입니다.숫자, 4자리, %v와 함께 사용됩니다.
%Y 년, 숫자, 네 자리
%y 연도, 숫자(2자리)
%% 문자 그대로 % 문자
%x x, 위에 나열되지 않은 모든 "x"에 대해

패딩은 다음과 같이 사용할 수 있습니다.

SELECT
    COUNT(*), 
    CONCAT(YEAR(`datetime_added`), '-', LPAD(MONTH(`datetime_added`), 2, '0')) as date 
FROM `person` 
WHERE (email = '' OR email IS NULL) 
GROUP BY date 
ORDER BY date ASC

MONTH()는 정수를 반환하므로 선행 0은 없습니다.문자열을 문자열로 변환하고 '0'을 왼쪽 패드로 표시한 후 마지막 2자를 입력해야 합니다.

DATE_FORMAT(`datetime_added`,'%Y - %m')

LPAD 기능을 사용해도 동작합니다.

LPAD(MONTH(your_date_column_here),2,'0')

현재 날짜 사용 예제를 참조하십시오.

여기에 이미지 설명 입력

언급URL : https://stackoverflow.com/questions/7043794/get-mysql-month-to-use-leading-zeros