source

숫자에서 MySQL MOONTHNAME()

nicesource 2023. 10. 16. 21:55
반응형

숫자에서 MySQL MOONTHNAME()

어떻게든 그들을 구할 방법이 있을까요?MONTHNAME()그 달의 숫자(1-12)로부터?예를 들면 제가.6,7,8MySQL에서 네이티브 방식으로 변환할 수 있는 방법이 있습니까?June,July,August?

를 사용하여 번호를 날짜로 변환한 다음 다음MONTHNAME()

SELECT MONTHNAME(STR_TO_DATE(6, '%m'));

+---------------------------------+
| MONTHNAME(STR_TO_DATE(6, '%m')) |
+---------------------------------+
| June                            |
+---------------------------------+

경고:여러 줄에 걸쳐 작업하면 속도가 느려질 수 있습니다.

다소 추한 방법은SELECT MONTHNAME(CONCAT('2011-',8,'-01'));

마이클의 훌륭한 답변을 읽기 전에 나는 이런 생각을 했습니다.

select elt(3,'January','February','March',....)

하지만 그의 것이 훨씬 낫습니다.:)

그렇게 하면 다른 언어의 주 이름이나 월 이름을 얻을 수 있습니다.

평일 현지화하기

`SELECT ELT( WEEKDAY('2004-04-10')+1, 'Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag','Sonntag');`

Long 버전(월 포함):

`SELECT DATE_FORMAT( '2004-04-10', CONCAT( ELT( WEEKDAY('2004-04-10')+1, 'Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag','Sonntag'),', %d. ', ELT( MONTH('2004-04-10'), 'Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember'),' %Y'));`

--> 샘스택, 10.2004년4월

Unix-timestamp에 대해서도 동일:

`SELECT DATE_FORMAT( FROM_UNIXTIME(1081548000), CONCAT( ELT( WEEKDAY(FROM_UNIXTIME(1081548000))+1, 'Mo','Di','Mi','Do','Fr','Sa','So'),', %d. ', ELT( MONTH(FROM_UNIXTIME(1081548000)), 'Jan.','Feb.','März','April','Mai','Juni','Juli','Aug.','Sept.','Okt.','Nov.','Dez.'),' %Y'));`

--> Sa, 10.2004년4월

시도 : 1월 월명('2016-01-01')을 선택하거나 3월 월명('2016-03-01')을 선택합니다.

    SELECT 
        `mktp_target`.`id` AS `id`, 
        `mktp_target`.`target_year` AS `target_year`,
        `mktp_target`.`target_month` AS `target_month`,
        monthname(concat(`mktp_target`.`target_year`,'-',lpad(`mktp_target`.`target_month`, 2, '0'),'-', '01')) AS `target_month_name`
    FROM
        `mktp_target`

언급URL : https://stackoverflow.com/questions/7027129/mysql-monthname-from-numbers

반응형