全部產品
Search
文件中心

AnalyticDB:日期和時間函數

更新時間:Sep 06, 2024

時間日期函數用於處理日期和時間值。例如,擷取當前日期時間、格式化日期時間、計算時間間隔、提取日期時間的特定部分(如年、月、日)等。本文介紹AnalyticDB for MySQL日期和時間函數的用法與樣本。

  • ADDDATE:返回添加指定時間後的日期。

  • ADDTIME:返回添加指定時間後的時間。

  • CONVERT_TZ:轉換時區,從from_tz轉到to_tz給出的時區,並返回結果值。

  • CURDATE:返回當前日期。

  • CURTIME:返回目前時間。

  • DATE:返回日期或日期時間運算式中的日期。

  • DATE_FORMAT:按照Format指定的格式,將日期時間格式化成字串。

  • SUBDATE/DATE_SUB:返回Date減去指定INTERVAL間隔後的日期。

  • DATEDIFF:返回Expr1減去Expr2後的天數。

  • DAY/DAYOFMONTH:返回Date中的日,取值範圍1~31。

  • DAYNAME:返回日期對應的工作日的名稱,例如星期一為Monday。

  • DAYOFWEEK:返回日期對應的工作日索引值。

  • DAYOFYEAR:返回指定日期是當年的哪一天。

  • EXTRACT:返回日期或時間的單獨部分,例如年、月、日、小時、分鐘等。

  • FROM_DAYS:根據指定的天數N,返回對應的DATE值。

  • FROM_UNIXTIME:返回Unixtime時間戳記。

  • HOUR:返回時間中的小時。

  • LAST_DAY:返回日期或者日期時間中對應月份的最後一天。

  • LOCALTIME/LOCALTIMESTAMP/NOW:返回目前時間戳。

  • MAKEDATE:按照參數Year和DayOfYear,返回一個日期。

  • MAKETIME:按照參數Hour、Minute和Second,返回一個時間。

  • MINUTE:返回時間中的分鐘。

  • MONTH:返回日期中的月份。

  • MONTHNAME:返回日期中月份的全名。

  • PERIOD_ADD:將日期格式的參數P增加N個月。

  • PERIOD_DIFF:返回P1和P2之間相差的月數。

  • QUARTER:返回日期在一年中的季度。

  • SEC_TO_TIME:將Seconds轉換為時間。

  • SECOND:返回時間中的秒。

  • STR_TO_DATE:按照指定日期或時間顯示格式,將字串轉換為日期或日期時間類型。

  • SUBTIME:返回Expr1減去Expr2後的時間。

  • SYSDATE:擷取系統時間。

  • TIME:以字串形式返回Expr中的時間。

  • TIME_FORMAT:按照Format指定的格式,以字串形式顯示時間。

  • TIME_TO_SEC:返回Time轉換為秒的結果。

  • TIMEDIFF:返回Expr1減去Expr2後的時間。

  • TIMESTAMP:返回Expr表示的日期或日期時間。

  • TIMESTAMPADD:將Interval添加到日期或日期時間運算式datetime_expr中。

  • TIMESTAMPDIFF:返回日期或日期時間運算式datetime_expr2減去datetime_expr1後的結果。

  • TO_DAYS:根據給定日期Date,返回自0年開始的天數。

  • TO_SECONDS:根據給定的Expr,返回自0年開始的秒數。

  • UNIX_TIMESTAMP:返回自1970-01-01 00:00:00 UTC以來秒數的Unix時間戳記。

  • UTC_DATE:返回UTC日期。

  • UTC_TIME:返回UTC時間。

  • UTC_TIMESTAMP:返回UTC時間戳記。

  • WEEK:返回日期對應的周數。

  • WEEKDAY:返回日期對應的工作日。

  • WEEKOFYEAR:返回日期對應的日曆周。

  • YEAR:返回日期中的年份。

  • YEARWEEK:返回日期的年份和星期。

ADDDATE

ADDDATE(date,INTERVAL expr unit)
ADDDATE(expr,days)      
  • 參數類型:

    adddate(date, INTERVAL expr unit)
    adddate(timestamp, INTERVAL expr unit)
    adddate(datetime, INTERVAL expr unit)
    adddate(varchar, INTERVAL expr unit)
    adddate(date, varchar)
    adddate(date, bigint)
    adddate(datetime, bigint)
    adddate(datetime, varchar)
    adddate(timestamp, varchar)
    adddate(timestamp, bigint)
    adddate(varchar, bigint)
    adddate(varchar, varchar)               
  • 傳回值類型:DATE。

  • 命令說明:返回添加指定時間後的日期。

    • unit可取值為:secondminutehourdaymonthyearminute_secondhour_secondhour_minuteday_secondday_minuteday_houryear_monthunit預設值為day

    • daysexpr:系統將返回expr加上days之後的結果。

  • 樣本:

    樣本1

    select adddate(date '2022-01-22',interval '3' day);             

    返回結果如下。

    +----------------------------------------------+
    | adddate(DATE '2022-01-22', INTERVAL  '3' DAY)|
    +----------------------------------------------+
    | 2022-01-25                                   |              

    樣本2

    select adddate(timestamp '2022-01-22',interval '3' day);

    返回結果如下。

    +---------------------------------------------------+
    | adddate(TIMESTAMP '2022-01-22', INTERVAL  '3' DAY)|
    +---------------------------------------------------+
    | 2022-01-25 00:00:00                               |                

    樣本3

    select adddate(datetime '2022-01-22',interval '3' day);            

    返回結果如下。

    +--------------------------------------------------+
    | adddate(DATETIME '2022-01-22', INTERVAL  '3' DAY |
    +--------------------------------------------------+
    | 2022-01-25 00:00:00                              |               

    樣本4

    select adddate('2022-01-22',interval '3' day);                                        

    返回結果如下。

    +-----------------------------------------+
    | adddate('2022-01-22', INTERVAL  '3' DAY)|
    +-----------------------------------------+
    | 2022-01-25                              |           

    樣本5

    select adddate(datetime '2022-01-22',interval '3' second);              

    返回結果如下。

    +-----------------------------------------------------+
    | adddate(DATETIME '2022-01-22', INTERVAL  '3' SECOND)|
    +-----------------------------------------------------+
    |                                 2022-01-22 00:00:03 |               

    樣本6

    select adddate(datetime '2022-01-22',interval '3' minute);

    返回結果如下。

    +-----------------------------------------------------+
    | adddate(DATETIME '2022-01-22', INTERVAL  '3' MINUTE)|
    +-----------------------------------------------------+
    |                                 2022-01-22 00:03:00 |                   

    樣本7

    select adddate(datetime '2022-01-22',interval '3' hour);            

    返回結果如下。

    +---------------------------------------------------+
    | adddate(DATETIME '2022-01-22', INTERVAL  '3' HOUR |
    +---------------------------------------------------+
    |                               2022-01-22 03:00:00 |                

    樣本8

    select adddate(datetime '2022-01-22',interval '3' month);             

    返回結果如下。

    +----------------------------------------------------+
    | adddate(DATETIME '2022-01-22', INTERVAL  '3' MONTH)|
    +----------------------------------------------------+
    |                                2022-04-22 00:00:00 | 
                                              

    樣本9

    select adddate(datetime '2022-01-22',interval '3' year);              

    返回結果如下。

    +---------------------------------------------------+
    | adddate(DATETIME '2022-01-22', INTERVAL  '3' YEAR)|
    +---------------------------------------------------+
    |                               2025-01-22 00:00:00 |              

    樣本10

    select adddate(datetime '2022-01-22',interval '01:01:10' hour_second) as result;           

    返回結果如下。

    +---------------------+
    | result              |
    +---------------------+
    | 2022-01-22 01:01:10 |                            

    樣本11

    select adddate(datetime '2022-01-22',interval '00:10' hour_minute) as result;           

    返回結果如下。

    +---------------------+
    | result              |
    +---------------------+
    | 2022-01-22 00:10:00 |              

    樣本12

    select adddate(datetime '2022-01-22',interval '1 01:01:10' day_second) as result;              

    返回結果如下。

    +---------------------+
    | result              |
    +---------------------+
    | 2022-01-23 01:01:10 |               

    樣本13

    select adddate(datetime '2022-01-22',interval '01:10' minute_second) as result;               

    返回結果如下。

    +---------------------+
    | result              |
    +---------------------+
    | 2022-01-22 00:01:10 |            

    樣本14

    select adddate(datetime '2022-01-22',interval '1 01:01' day_minute) as result;              

    返回結果如下。

    +---------------------+
    | result              |
    +---------------------+
    | 2022-01-23 01:01:00 |                

    樣本15

    select adddate(datetime '2022-01-22',interval '1 01' day_hour) as result;             

    返回結果如下。

    +---------------------+
    | result              |
    +---------------------+
    | 2022-01-23 01:00:00 |               

    樣本16

    select adddate(datetime '2022-01-22 12:32:1',interval '2 2' year_month) as result;            

    返回結果如下。

    +---------------------+
    | result              |
    +---------------------+
    | 2024-03-22 12:32:01 |               

    樣本17

    select adddate('2022-01-22','3');       

    返回結果如下。

    +---------------------------+
    | adddate('2022-01-22', '3')|
    +---------------------------+
    | 2022-01-25                |               

    樣本18

    select adddate('2022-01-22',3);       

    返回結果如下。

    +-------------------------+
    | adddate('2022-01-22', 3)|
    +-------------------------+
    | 2022-01-25              |                

    樣本19

    select adddate(datetime '2022-01-22 12:12:32',3);     

    返回結果如下。

    +-------------------------------------------+
    | adddate(DATETIME '2022-01-22 12:12:32', 3)|
    +-------------------------------------------+
    |                       2022-01-25 12:12:32 |                

    樣本20

    select adddate(datetime '2022-01-22 12:12:32','3');   

    返回結果如下。

    +---------------------------------------------+
    | adddate(DATETIME '2022-01-22 12:12:32', '3')|
    +---------------------------------------------+
    |                         2022-01-25 12:12:32 |                

    樣本21

    select adddate(timestamp '2022-01-22 12:12:32','3'); 

    返回結果如下。

    +----------------------------------------------+
    | adddate(TIMESTAMP '2022-01-22 12:12:32', '3')|
    +----------------------------------------------+
    |                          2022-01-25 12:12:32 |               

    樣本22

    select adddate(timestamp '2022-01-22 12:12:32',3);

    返回結果如下。

    +--------------------------------------------+
    | adddate(TIMESTAMP '2022-01-22 12:12:32', 3)|
    +--------------------------------------------+
    |                        2022-01-25 12:12:32 |               

    樣本23

    select adddate('2022-01-22 12:12:32',3);

    返回結果如下。

    +----------------------------------+
    | adddate('2022-01-22 12:12:32', 3)|
    +----------------------------------+
    | 2022-01-25 12:12:32              |                

    樣本24

    select adddate('2022-01-22 12:12:32','3');

    返回結果如下。

    +------------------------------------+
    | adddate('2022-01-22 12:12:32', '3')|
    +------------------------------------+
    | 2022-01-25 12:12:32                |               

ADDTIME

ADDTIME(expr1,expr2)            
  • 命令說明:返回添加指定時間後的時間,即返回expr1增加expr2後的結果。

  • 參數類型:

    addtime(date,varchar)
    addtime(time,varchar)
    addtime(datetime,varchar)
    addtime(timestamp,varchar)
    addtime(varchar,varchar)                    
  • 傳回值類型:VARCHAR。

  • 樣本:

    樣本1

    select addtime(date '2022-01-01','01:01:01');

    返回結果如下。

    +----------------------------------------+
    | addtime(DATE '2022-01-01', '01:01:01') |
    +----------------------------------------+
    | 2022-01-01 01:01:01                    |                    

    樣本2

    select addtime(time '01:00:00','01:01:01');

    返回結果如下。

    +--------------------------------------+
    | addtime(TIME '01:00:00', '01:01:01') |
    +--------------------------------------+
    | 02:01:01                             |                    

    樣本3

    select addtime(datetime '2022-01-22 00:00:00','01:01:01');

    返回結果如下。

    +----------------------------------------------------+
    | addtime(DATETIME '2022-01-22 00:00:00', '01:01:01')|
    +----------------------------------------------------+
    | 2022-01-22 01:01:01                                |                    

    樣本4

    select addtime(timestamp '2022-01-22 00:00:00','01:01:01');

    返回結果如下。

    +-----------------------------------------------------+
    | addtime(TIMESTAMP '2022-01-22 00:00:00', '01:01:01')|
    +-----------------------------------------------------+
    | 2022-01-22 01:01:01                                 |                    

    樣本5

    select addtime('2022-01-22 00:00:00','01:01:01');

    返回結果如下。

    +-------------------------------------------+
    | addtime('2022-01-22 00:00:00', '01:01:01')|
    +-------------------------------------------+
    | 2022-01-22 01:01:01                       |                    

CONVERT_TZ

CONVERT_TZ(dt,from_tz,to_tz)           
  • 命令說明:轉換dt,從from_tz轉到to_tz給出的時區,並返回結果。

  • 參數類型:

    convert_tz(varchar, varchar, varchar)                   
  • 傳回值類型:DATETIME。

  • 樣本:

    樣本1

    select convert_tz('2022-01-01 12:00:00','+00:00','+10:00');

    返回結果如下。

    +-------------------------------------------------------+
    | convert_tz('2022-01-01 12:00:00', '+00:00', '+10:00') |
    +-------------------------------------------------------+
    |                                   2022-01-01 22:00:00 |                   

    樣本2

    select convert_tz('2022-01-01 12:00:00','GMT','MET');

    返回結果如下。

    +-------------------------------------------------+
    | convert_tz('2022-01-01 12:00:00', 'GMT', 'MET') |
    +-------------------------------------------------+
    |                             2022-01-01 13:00:00 |                    

CURDATE

CURDATE()            
  • 命令說明:返回當前日期。

  • 傳回值類型:DATE。

  • 樣本:

    select curdate;

    返回結果如下。

    +------------+
    | curdate()  |
    +------------+
    | 2022-01-01 |                    

CURTIME

CURTIME()            
  • 命令說明:返回目前時間。

  • 傳回值類型:TIME。

  • 樣本:

    select curtime();

    返回結果如下。

    +--------------+
    | curtime()    |
    +--------------+
    | 14:39:22.109 |                   

DATE

DATE(expr)            
  • 命令說明:返回日期或日期時間運算式中的日期。

  • 參數類型:

    date(timestamp)
    date(datetime)
    date(varchar)                   
  • 傳回值類型:DATE。

  • 樣本:

    樣本1

    select date(timestamp '2022-01-01 01:02:03');

    返回結果如下。

    +---------------------------------------+
    | date(TIMESTAMP '2022-01-01 01:02:03') |
    +---------------------------------------+
    | 2022-01-01                            |                   

    樣本2

    select date(datetime '2022-01-01 01:02:03');

    返回結果如下。

    +--------------------------------------+
    | date(DATETIME '2022-01-01 01:02:03') |
    +--------------------------------------+
    | 2022-01-01                           |                    

    樣本3

    select date('2022-01-01 01:02:03');

    返回結果如下。

    +-----------------------------+
    | date('2022-01-01 01:02:03') |
    +-----------------------------+
    | 2022-01-01                  |                    

DATE_FORMAT

DATE_FORMAT(date,format)           
  • 命令說明:按照format指定的格式,將日期時間格式化成字串。format格式如下所示。

    %a

    星期的英文縮寫名稱(Sun~Sat)

    %b

    月份的英文縮寫(Jan~Dec)

    %c

    月,數字(0~12)

    %d

    每月的第幾天,數字(00~31)

    %e

    每月的第幾天,數字(0~31)

    %f

    微秒(000000~999999)

    %H

    小時(00~23)

    %h

    小時(01~12)

    %I

    小時(01~12)

    %i

    分鐘,數字(00~59)

    %j

    一年中的第幾天(001~366)

    %k

    小時(0~23)

    %l

    小時(1~12)

    %M

    月份的英文全稱(January~December)

    %m

    月,數字(00~12)

    %p

    AM或PM

    %r

    時間,12小時制(hh:mm:ss AM或PM)

    %S

    秒(00~59)

    %s

    秒(00~59)

    %T

    時間,24小時(hh:mm:ss)

    %v

    本周是當年的第幾周,等同於WEEK()模式3; 與%x 使用

    說明

    星期一作為一周的第一天。

    %W

    星期幾(Sunday~Saturday)

    %x

    本周所屬年份,四位元; 常與%v一同使用

    說明

    星期一作為一周的第一天。

    %Y

    年份,數字,四位元

    %y

    年份,數字,兩位元

    %%

    %字元

  • 參數類型:

    date_format(timestamp, varchar)
    date_format(varchar, varchar) 
    date_format(datetime, varchar)
    date_format(date, varchar)                   
  • 傳回值類型:VARCHAR。

  • 樣本:

    樣本1

    select date_format(timestamp '2022-01-27 13:23:00', '%W %M %Y')as result;                   

    返回結果如下。

    +-----------------------+
    | result                |
    +-----------------------+
    | Thursday January 2022 |                    

    樣本2

    select date_format('2022-01-27 13:23:00', '%W %M %Y')as result;                

    返回結果如下。

    +-----------------------+
    | result                |
    +-----------------------+
    | Thursday January 2022 |                    

    樣本3

    select date_format(datetime '2022-01-27 13:23:00', '%W %M %Y')as result;               

    返回結果如下。

    +-----------------------+
    | result                |
    +-----------------------+
    | Thursday January 2022 |                    

    樣本4

    select date_format(date '2022-01-27', '%W %M %Y')as result;             

    返回結果如下。

    +-----------------------+
    | result                |
    +-----------------------+
    | Thursday January 2022 |                    

SUBDATE/DATE_SUB

DATE_SUB(date,INTERVAL expr unit)            
  • 命令說明:返回date減去指定INTERVAL間隔後的日期。

    unit可取值為:secondminutehourdaymonthyearminute_secondhour_secondhour_minuteday_secondday_minuteday_houryear_monthunit預設值為day

  • 參數類型:

    subdate(date, INTERVAL expr unit)
    subdate(timestamp, INTERVAL expr unit)
    subdate(datetime, INTERVAL expr unit)
    subdate(varchar, INTERVAL expr unit)
    subdate(date, bigint)
    subdate(date, varchar)
    subdate(datetime, bigint)
    subdate(datetime, varchar)
    subdate(timestamp, bigint)
    subdate(timestamp, varchar)
    subdate(varchar, bigint)
    subdate(varchar, varchar)                    
  • 傳回值類型:DATE。

  • 樣本:

    樣本1

    select date_sub(date '2022-01-22',interval '3' day);                    

    返回結果如下。

    +-----------------------------------------------+
    | date_sub(DATE '2022-01-22', INTERVAL  '3' DAY)|
    +-----------------------------------------------+
    | 2022-01-19                                    |                    

    樣本2

    select date_sub(timestamp '2022-01-22 00:00:00',interval '3' day)as result;                  

    返回結果如下。

    +---------------------+
    | result              |
    +---------------------+
    | 2022-01-19 00:00:00 |                    

    樣本3

    select date_sub(datetime '2022-01-22 00:00:00',interval '3' day)as result;                    

    返回結果如下。

    +---------------------+
    | result              |
    +---------------------+
    | 2022-01-19 00:00:00 |                    

    樣本4

    select date_sub('2022-01-22 00:00:00',interval '3' day);                   

    返回結果如下。

    +---------------------------------------------------+
    | date_sub('2022-01-22 00:00:00', INTERVAL  '3' DAY)|
    +---------------------------------------------------+
    | 2022-01-19 00:00:00                               |                    

    樣本5

    select date_sub('2022-01-22 00:00:00',interval '3' second);                   

    返回結果如下。

    +------------------------------------------------------+
    | date_sub('2022-01-22 00:00:00', INTERVAL  '3' SECOND)|
    +------------------------------------------------------+
    | 2022-01-21 23:59:57                                  |                    

    樣本6

    select date_sub('2022-01-22 00:00:00',interval '3' minute);                  

    返回結果如下。

    +------------------------------------------------------+
    | date_sub('2022-01-22 00:00:00', INTERVAL  '3' MINUTE)|
    +------------------------------------------------------+
    | 2022-01-21 23:57:00                                  |                    

    樣本7

    select date_sub('2022-01-22 00:00:00',interval '3' hour);                  

    返回結果如下。

    +----------------------------------------------------+
    | date_sub('2022-01-22 00:00:00', INTERVAL  '3' HOUR)|
    +----------------------------------------------------+
    | 2022-01-21 21:00:00                                |                    

    樣本8

    select date_sub('2022-01-22 00:00:00',interval '3' month);                

    返回結果如下。

    +-----------------------------------------------------+
    | date_sub('2022-01-22 00:00:00', INTERVAL  '3' MONTH)|
    +-----------------------------------------------------+
    | 2021-10-22 00:00:00                                 |                    

    樣本9

    select date_sub('2022-01-22 00:00:00',interval '3' year);                   

    返回結果如下。

    +----------------------------------------------------+
    | date_sub('2022-01-22 00:00:00', INTERVAL  '3' YEAR)|
    +----------------------------------------------------+
    | 2019-01-22 00:00:00                                |                    

    樣本10

    select date_sub('2022-01-22 00:00:00',interval '01:10' minute_second)as result;                

    返回結果如下。

    +---------------------+
    | result              |
    +---------------------+
    | 2022-01-21 23:58:50 |                    

    樣本11

    select date_sub('2022-01-22 00:00:00',interval '01:01:10' hour_second)as result;             

    返回結果如下。

    +---------------------+
    | result              |
    +---------------------+
    | 2022-01-21 22:58:50 |                    

    樣本12

    select date_sub('2022-01-22 00:00:00',interval '01:01' hour_minute)as result;                   

    返回結果如下。

    +---------------------+
    | result              |
    +---------------------+
    | 2022-01-21 22:59:00 |                    

    樣本13

    select date_sub('2022-01-22 00:00:00',interval '1 01:01:10' day_second)as result;                   

    返回結果如下。

    +---------------------+
    | result              |
    +---------------------+
    | 2022-01-20 22:58:50 |                    

    樣本14

    select date_sub('2022-01-22 00:00:00',interval '1 01:01' day_minute)as result;                 

    返回結果如下。

    +---------------------+
    | result              |
    +---------------------+
    | 2022-01-20 22:59:00 |                    

    樣本15

    select date_sub('2022-01-22 00:00:00',interval '1 01' day_hour)as result;                

    返回結果如下。

    +---------------------+
    | result              |
    +---------------------+
    | 2022-01-20 23:00:00 |                   

    樣本16

    select date_sub('2022-01-22 00:00:00',interval '2 2' year_month)as result;                  

    返回結果如下。

    +---------------------+
    | result              |
    +---------------------+
    | 2019-11-22 00:00:00 |                    

    樣本17

    select date_sub(date '2022-01-22 00:00:00',3);                   

    返回結果如下。

    +----------------------------------------+
    | date_sub(DATE '2022-01-22 00:00:00', 3)|
    +----------------------------------------+
    | 2022-01-19                             |                    

    樣本18

    select date_sub(date '2022-01-22 00:00:00','3');                  

    返回結果如下。

    +------------------------------------------+
    | date_sub(DATE '2022-01-22 00:00:00', '3')|
    +------------------------------------------+
    | 2022-01-19                               |

    樣本19

    select date_sub(datetime '2022-01-22 00:00:00',3);               

    返回結果如下。

    +--------------------------------------------+
    | date_sub(DATETIME '2022-01-22 00:00:00', 3)|
    +--------------------------------------------+
    |                        2022-01-19 00:00:00 |                  

    樣本20

    select date_sub(datetime '2022-01-22 00:00:00','3');               

    返回結果如下。

    +----------------------------------------------+
    | date_sub(DATETIME '2022-01-22 00:00:00', '3')|
    +----------------------------------------------+
    |                          2022-01-19 00:00:00 |                   

    樣本21

    select date_sub(timestamp '2022-01-22 00:00:00',3);                 

    返回結果如下。

    +---------------------------------------------+
    | date_sub(TIMESTAMP '2022-01-22 00:00:00', 3)|
    +---------------------------------------------+
    |                         2022-01-19 00:00:00 |                    

    樣本22

    select date_sub(timestamp '2022-01-22 00:00:00','3');                   

    返回結果如下。

    +-----------------------------------------------+
    | date_sub(TIMESTAMP '2022-01-22 00:00:00', '3')|
    +-----------------------------------------------+
    |                           2022-01-19 00:00:00 |                    

    樣本23

    select date_sub('2022-01-22 00:00:00',3);                

    返回結果如下。

    +-----------------------------------+
    | date_sub('2022-01-22 00:00:00', 3)|
    +-----------------------------------+
    | 2022-01-19 00:00:00               |                   

    樣本24

    select date_sub('2022-01-22 00:00:00','3');                  

    返回結果如下。

    +-------------------------------------+
    | date_sub('2022-01-22 00:00:00', '3')|
    +-------------------------------------+
    | 2022-01-19 00:00:00                 |                   

DATEDIFF

DATEDIFF(expr1,expr2)            
  • 命令說明:返回expr1減去expr2後的天數。

  • 參數類型:

    datediff(varchar, varchar) 
    datediff(datetime, varchar)
    datediff(varchar, datetime)
    datediff(datetime, datetime)
    datediff(varchar, timestamp)
    datediff(timestamp, timestamp)
    datediff(timestamp, varchar)
    datediff(date, date)
    datediff(date, varchar)
    datediff(varchar, date)                    
  • 傳回值類型:BIGINT。

  • 樣本:

    樣本1

    select datediff('2022-01-22 23:59:59','2022-1-21');               

    返回結果如下。

    +-----------------------------------------------+
    | datediff('2022-01-22 23:59:59','2022-1-21')   |
    +-----------------------------------------------+
    |                                             1 |                   

    樣本2

    select datediff(datetime '2022-01-22 23:59:59','2022-1-21')as result;

    返回結果如下。

    +--------+
    | result |
    +--------+
    |      1 |

    樣本3

    select datediff('2022-01-22 23:59:59',datetime '2022-1-21')as result;                 

    返回結果如下。

    +--------+
    | result |
    +--------+
    |      1 |                    

    樣本4

    select datediff(datetime '2022-01-22 23:59:59',datetime '2022-1-21')as result;                  

    返回結果如下。

    +--------+
    | result |
    +--------+
    |      1 |                   

    樣本5

    select datediff('2022-01-22 23:59:59',timestamp '2022-1-21')as result;                   

    返回結果如下。

    +--------+
    | result |
    +--------+
    |      1 |                    

    樣本6

    select datediff(timestamp '2022-01-22 23:59:59',timestamp '2022-1-21')as result;                   

    返回結果如下。

    +--------+
    | result |
    +--------+
    |      1 |                    

    樣本7

    select datediff(timestamp '2022-01-22 23:59:59','2022-1-21')as result;                   

    返回結果如下。

    +--------+
    | result |
    +--------+
    |      1 |                    

    樣本8

    select datediff(date '2022-01-22 23:59:59',date '2022-01-21')as result;                  

    返回結果如下。

    +--------+
    | result |
    +--------+
    |      1 |                    

    樣本9

    select datediff(date '2022-01-22 23:59:59','2022-01-21')as result;                   

    返回結果如下。

    +--------+
    | result |
    +--------+
    |      1 |                   

    樣本10

    select datediff('2022-01-22',date '2021-01-21');               

    返回結果如下。

    +-------------------------------------------+
    | datediff('2022-01-22', DATE '2021-01-21') |
    +-------------------------------------------+
    |                                      366  |              

DAY/DAYOFMONTH

DAY(date)
DAYOFMONTH(date)         
  • 命令說明:返回date中的日,取值範圍[1,31]

  • 參數類型:

    dayofmonth(timestamp)
    dayofmonth(datetime)
    dayofmonth(date)
    dayofmonth(time)
    dayofmonth(varchar)                    
  • 傳回值類型:BIGINT。

  • 樣本:

    樣本1

    select dayofmonth(timestamp '2022-01-22 12:23:09');                  

    返回結果如下。

    +---------------------------------------------+
    | dayofmonth(TIMESTAMP '2022-01-22 12:23:09') |
    +---------------------------------------------+
    |                                          22 |                    

    樣本2

    select dayofmonth(date '2022-01-22');                 

    返回結果如下。

    +-------------------------------+
    | dayofmonth(DATE '2022-01-22') |
    +-------------------------------+
    |                            22 |                   

    樣本3

    select dayofmonth(time '17:01:10');                  

    返回當前日期,結果如下。

    +-----------------------------+
    | dayofmonth(TIME '17:01:10') |
    +-----------------------------+
    |                          22 |                    

    樣本4

    select dayofmonth(datetime '2022-01-22 00:00:00');                 

    返回結果如下。

    +--------------------------------------------+
    | dayofmonth(DATETIME '2022-01-22 00:00:00') |
    +--------------------------------------------+
    |                                         22 |                   

    樣本5

    select day('2022-01-22');                  

    返回結果如下。

    +-------------------+
    | day('2022-01-22') |
    +-------------------+
    |                22 |                   

DAYNAME

DAYNAME(date)            
  • 命令說明:返回日期對應的星期幾的名稱,例如星期一為Monday

  • 參數類型:

    dayname(timestamp)
    dayname(datetime)
    dayname(date)
    dayname(varchar)                    
  • 傳回值類型:VARCHAR。

  • 樣本:

    樣本1

    select dayname(timestamp '2022-01-22 00:00:00');                 

    返回結果如下。

    +------------------------------------------+
    | dayname(TIMESTAMP '2022-01-22 00:00:00') |
    +------------------------------------------+
    | Saturday                                 |                    

    樣本2

    select dayname(datetime '2022-01-22 00:00:00');                

    返回結果如下。

    +-----------------------------------------+
    | dayname(DATETIME '2022-01-22 00:00:00') |
    +-----------------------------------------+
    | Saturday                                |                   

    樣本3

    select dayname(date '2022-01-22');                   

    返回結果如下。

    +----------------------------+
    | dayname(DATE '2022-01-22') |
    +----------------------------+
    | Saturday                   |                    

    樣本4

    select dayname('2022-01-22');                  

    返回結果如下。

    +-----------------------+
    | dayname('2022-01-22') |
    +-----------------------+
    | Saturday              |                    

DAYOFWEEK

DAYOFWEEK(date)            
  • 命令說明:返回日期對應的星期幾索引值,即星期日為1,星期一為2,星期六為7

  • 參數類型:

    dayofweek(timestamp)
    dayofweek(datetime)
    dayofweek(date)
    dayofweek(varchar)                    
  • 傳回值類型:BIGINT。

  • 樣本:

    樣本1

    select dayofweek(timestamp '2022-01-22 00:00:00');                   

    返回結果如下。

    +--------------------------------------------+
    | dayofweek(TIMESTAMP '2022-01-22 00:00:00') |
    +--------------------------------------------+
    |                                          7 |                 

    樣本2

    select dayofweek(datetime '2022-01-22 00:00:00');                  

    返回結果如下。

    +-------------------------------------------+
    | dayofweek(DATETIME '2022-01-22 00:00:00') |
    +-------------------------------------------+
    |                                         7 |                   

    樣本3

    select dayofweek(date '2022-01-22');                    

    返回結果如下。

    +------------------------------+
    | dayofweek(DATE '2022-01-22') |
    +------------------------------+
    |                            7 |                    

    樣本4

    select dayofweek('2022-01-22');                

    返回結果如下。

    +-------------------------+
    | dayofweek('2022-01-22') |
    +-------------------------+
    |                       7 |                   

DAYOFYEAR

DAYOFYEAR(date)            
  • 命令說明:返回指定日期是當年的第幾天,傳回值範圍為[1,366]

  • 參數類型:

    dayofyear(timestamp)
    dayofyear(datetime) 
    dayofyear(date) 
    dayofyear(varchar)                    
  • 傳回值類型:BIGINT。

  • 樣本:

    樣本1

    select dayofyear(timestamp '2022-02-01 00:12:12');

    返回結果如下。

    +--------------------------------------------+
    | dayofyear(TIMESTAMP '2022-02-01 00:12:12') |
    +--------------------------------------------+
    |                                         32 |                   

    樣本2

    select dayofyear(datetime '2022-02-01 00:12:12');                  

    返回結果如下。

    +-------------------------------------------+
    | dayofyear(DATETIME '2022-02-01 00:12:12') |
    +-------------------------------------------+
    |                                        32 |                    

    樣本3

    select dayofyear(date '2022-02-01');                  

    返回結果如下。

    +------------------------------+
    | dayofyear(DATE '2022-02-01') |
    +------------------------------+
    |                           32 |                   

    樣本4

    select dayofyear('2022-02-01');                   

    返回結果如下。

    +-------------------------+
    | dayofyear('2022-02-01') |
    +-------------------------+
    |                      32 |                   

EXTRACT

EXTRACT(unit FROM date)           
  • 命令說明:返回日期或時間的單獨部分,由unit指定,比如年、月、日、小時、分鐘等。

    unit可取值為:secondminutehourdaymonthyearminute_secondhour_secondhour_minuteday_secondday_minuteday_houryear_month

  • 支援抽取的入參時間類型:VARCHAR、TIMESTAMP、DATETIME、TIME。

  • 傳回值類型:BIGINT。

  • 樣本:

    樣本1

    select extract(second from '2022-01-22 00:12:34');                   

    返回結果如下。

    +-------+
    | _col0 |
    +-------+
    |    34 |                    

    樣本2

    select extract(minute from '2022-01-22 00:12:34');                

    返回結果如下。

    +-------+
    | _col0 |
    +-------+
    |    12 |                   

    樣本3

    select extract(hour from '2022-01-22 00:12:34');                  

    返回結果如下。

    +-------+
    | _col0 |
    +-------+
    |     0 |                    

    樣本4

    select extract(day from '2022-01-22 00:12:34');              

    返回結果如下。

    +-------+
    | _col0 |
    +-------+
    |    22 |                    

    樣本5

    select extract(month from '2022-01-22 00:12:34');                  

    返回結果如下。

    +-------+
    | _col0 |
    +-------+
    |     1 |                    

    樣本6

    select extract(year from timestamp '2022-01-22');              

    返回結果如下。

    +-------+
    | _col0 |
    +-------+
    |  2022 |                   

    樣本7

    select extract(year from datetime  '2022-01-22');                 

    返回結果如下。

    +-------+
    | _col0 |
    +-------+
    |  2022 |                    

    樣本8

    select extract(year from time '15:23:22');                  

    返回當前的年份,結果如下。

    +-------+
    | _col0 |
    +-------+
    |  2022 |                    

    樣本9

    select extract(minute_second from '2022-01-22 00:12:34');                   

    返回結果如下。

    +-------+
    | _col0 |
    +-------+
    |  1234 |                    

    樣本10

    select extract(hour_second from '2022-01-22 12:12:34');                   

    返回結果如下。

    +--------+
    | _col0  |
    +--------+
    | 121234 |                    

    樣本11

    select extract(hour_minute from '2022-01-22 12:12:34');               

    返回結果如下。

    +-------+
    | _col0 |
    +-------+
    |  1212 |                    

    樣本12

    select extract(day_second from '2022-01-22 12:12:34');                

    返回結果如下。

    +----------+
    | _col0    |
    +----------+
    | 22121234 |                    

    樣本13

    select extract(day_minute from '2022-01-22 00:12:34');                    

    返回結果如下。

    +--------+
    | _col0  |
    +--------+
    | 220012 |                    

    樣本14

    select extract(day_hour from '2022-01-22 12:12:34');                 

    返回結果如下。

    +-------+
    | _col0 |
    +-------+
    |  2212 |                    

    樣本15

    select extract(year_month from '2022-01-22 00:12:34');                   

    返回結果如下。

    +--------+
    | _col0  |
    +--------+
    | 202201 |                    

FROM_DAYS

FROM_DAYS(N)            
  • 命令說明:根據指定的天數N,返回對應的DATE值。

  • 參數類型:

    from_days(varchar) 
    from_days(bigint)
  • 傳回值類型:DATE。

  • 樣本:

    樣本1

    select from_days(738565);                   

    返回結果如下。

    +-------------------+
    | from_days(738565) |
    +-------------------+
    |  2022-02-14       |                    

    樣本2

    select from_days('738565');                  

    返回結果如下。

    +---------------------+
    | from_days('738565') |
    +---------------------+
    |  2022-02-14         |                    

FROM_UNIXTIME

FROM_UNIXTIME(unix_timestamp[,format])            
  • 命令說明:根據unix時間戳記,返回符合format格式的值。

    format遵從DATE_FORMAT函數中的format格式。

  • 參數類型:

    from_unixtime(varchar, varchar)
    from_unixtime(varchar)
    from_unixtime(double, varchar)
    from_unixtime(double)                   
  • 傳回值類型:DATETIME。

  • 樣本:

    樣本1

    select from_unixtime('1647738565','%Y %M %h:%i:%s %x');                

    返回結果如下。

    +--------------------------------------------------+
    | from_unixtime('1647738565', '%Y %M %h:%i:%s %x') |
    +--------------------------------------------------+
    |    2022 March 09:09:25 2022                      |                   

    樣本2

    select from_unixtime('1647738565');                 

    返回結果如下。

    +-----------------------------+
    | from_unixtime('1647738565') |
    +-----------------------------+
    |         2022-03-20 09:09:25 |                    

    樣本3

    select from_unixtime(1647738456);                 

    返回結果如下。

    +---------------------------+
    | from_unixtime(1647738456) |
    +---------------------------+
    |       2022-03-20 09:07:36 |                    

    樣本4

    select from_unixtime(1647738456,'%Y %M %h:%i:%s %x');                    

    返回結果如下。

    +------------------------------------------------+
    | from_unixtime(1647738456, '%Y %M %h:%i:%s %x') |
    +------------------------------------------------+
    |     2022 March 09:07:36 2022                   |                    

HOUR

HOUR(time)            
  • 命令說明:返回時間中的小時。

  • 參數類型:

    hour(timestamp)
    hour(datetime)
    hour(date)
    hour(time)
    hour(varchar)                    
  • 傳回值類型:BIGINT。

  • 樣本:

    樣本1

    select hour(timestamp '2022-01-22 10:05:03');                   

    返回結果如下。

    +---------------------------------------+
    | hour(TIMESTAMP '2022-01-22 10:05:03') |
    +---------------------------------------+
    |                                    10 |                    

    樣本2

    select hour(datetime '2022-01-22 10:05:03');                   

    返回結果如下。

    +--------------------------------------+
    | hour(DATETIME '2022-01-22 10:05:03') |
    +--------------------------------------+
    |                                   10 |                    

    樣本3

    select hour(date '2022-01-22');                   

    返回結果如下。

    +-------------------------+
    | hour(DATE '2022-01-22') |
    +-------------------------+
    |                       0 |                    

    樣本4

    select hour(time '10:05:03');                

    返回結果如下。

    +-----------------------+
    | hour(TIME '10:05:03') |
    +-----------------------+
    |                    10 |                   

    樣本5

    select hour('10:05:03');                

    返回結果如下。

    +------------------+
    | hour('10:05:03') |
    +------------------+
    |       10         |                   

LAST_DAY

LAST_DAY(date)            
  • 命令說明:返回日期或者日期時間中對應月份的最後一天。

  • 參數類型:

    last_day(varchar)
    last_day(timestamp)
    last_day(datetime)
    last_day(date)                    
  • 傳回值類型:DATE。

  • 樣本:

    樣本1

    select last_day('2022-01-22');                 

    返回結果如下。

    +------------------------+
    | last_day('2022-01-22') |
    +------------------------+
    | 2022-01-31             |                    

    樣本2

    select last_day(timestamp '2022-01-22 12:12:12');                  

    返回結果如下。

    +-------------------------------------------+
    | last_day(TIMESTAMP '2022-01-22 12:12:12') |
    +-------------------------------------------+
    | 2022-01-31                                |                    

    樣本3

    select last_day(datetime '2022-01-22 12:12:12');                   

    返回結果如下。

    +------------------------------------------+
    | last_day(DATETIME '2022-01-22 12:12:12') |
    +------------------------------------------+
    | 2022-01-31                               |                    

    樣本4

    select last_day(date '2022-01-22');

    返回結果如下。

    +-----------------------------+
    | last_day(DATE '2022-01-22') |
    +-----------------------------+
    | 2022-01-31                  |                    

LOCALTIME/LOCALTIMESTAMP/NOW

localtime
localtime()
localtimestamp
localtimestamp()
now()            
  • 命令說明:返回目前時間戳。

  • 傳回值類型:DATETIME。

  • 樣本:

    樣本1

    select now();                  

    返回結果如下。

    +---------------------+
    | now()               |
    +---------------------+
    | 2022-01-22 16:28:37 |                  

    樣本2

    select localtime;                  

    返回結果如下。

    +---------------------+
    | localtime()         |
    +---------------------+
    | 2022-01-22 16:28:37 |                   

    樣本3

    select localtime();                  

    返回結果如下。

    +---------------------+
    | localtime()         |
    +---------------------+
    | 2022-01-22 16:28:37 |                    

    樣本4

    select localtimestamp;                  

    返回結果如下。

    +---------------------+
    | localtimestamp()    |
    +---------------------+
    | 2022-01-22 17:28:37 |                   

    樣本5

    select localtimestamp();                  

    返回結果如下。

    +---------------------+
    | localtimestamp()    |
    +---------------------+
    | 2022-01-22 17:38:13 |                   

MAKEDATE

MAKEDATE(year,dayofyear)
  • 命令說明:按照參數yeardayofyear,返回一個日期。

  • 參數類型:

    makedate(bigint, bigint)
    makedate(varchar, varchar)                    
  • 傳回值類型:DATE。

  • 樣本:

    樣本1

    select makedate(2022,31), makedate(2022,32);

    返回結果如下。

    +--------------------+--------------------+
    | makedate(2022, 31) | makedate(2022, 32) |
    +--------------------+--------------------+
    | 2022-01-31         | 2022-02-01         |

    樣本2

    select makedate('2022','31'), makedate('2022','32');                  

    返回結果如下。

    +------------------------+------------------------+
    | makedate('2022', '31') | makedate('2022', '32') |
    +------------------------+------------------------+
    | 2022-01-31             | 2022-02-01             |                   

MAKETIME

MAKETIME(hour,minute,second)            
  • 命令說明:按照參數hourminutesecond,返回一個時間。

  • 參數類型:

    maketime(bigint, bigint, bigint)
    maketime(varchar, varchar, varchar)                    
  • 傳回值類型:TIME。

  • 樣本:

    樣本1

    select maketime(12,15,30);                  

    返回結果如下。

    +----------------------+
    | maketime(12, 15, 30) |
    +----------------------+
    | 12:15:30             |                    

    樣本2

    select maketime('12','15','30');                  

    返回結果如下。

    +----------------------------+
    | maketime('12', '15', '30') |
    +----------------------------+
    | 12:15:30                   |                   

MINUTE

MINUTE(time)           
  • 命令說明:返回時間中的分鐘。

  • 參數類型:

    minute(timestamp)
    minute(datetime)
    minute(date)
    minute(time)
    minute(varchar)                    
  • 傳回值類型:BIGINT。

  • 樣本:

    樣本1

    select minute(timestamp '2022-02-03 10:05:03');                  

    返回結果如下。

    +-----------------------------------------+
    | minute(TIMESTAMP '2022-02-03 10:05:03') |
    +-----------------------------------------+
    |                                       5 |                    

    樣本2

    select minute(datetime '2022-02-03 10:05:03');

    返回結果如下。

    +----------------------------------------+
    | minute(DATETIME '2022-02-03 10:05:03') |
    +----------------------------------------+
    |                                      5 |

    樣本3

    select minute(date '2022-02-03');

    返回結果如下。

    +---------------------------+
    | minute(DATE '2022-02-03') |
    +---------------------------+
    |                         0 |

    樣本4

    select minute(time '12:12:12');

    返回結果如下。

    +-------------------------+
    | minute(TIME '12:12:12') |
    +-------------------------+
    |                      12 |

    樣本5

    select minute('2022-02-03 10:05:03');

    返回結果如下。

    +-------------------------------+
    | minute('2022-02-03 10:05:03') |
    +-------------------------------+
    |                             5 |

MONTH

MONTH(date)
  • 命令說明:返回日期中的月份。

  • 參數類型:

    month(timestamp)
    month(datetime)
    month(date)
    month(time)
    month(varchar)                   
  • 傳回值類型:BIGINT。

  • 樣本:

    樣本1

    select month(timestamp '2022-02-03 00:00:00');

    返回結果如下。

    +----------------------------------------+
    | month(TIMESTAMP '2022-02-03 00:00:00') |
    +----------------------------------------+
    |                                      2 |

    樣本2

    select month(datetime '2022-02-03 00:00:00');

    返回結果如下。

    +---------------------------------------+
    | month(DATETIME '2022-02-03 00:00:00') |
    +---------------------------------------+
    |                                     2 |

    樣本3

    select month(date '2022-02-03');

    返回結果如下。

    +--------------------------+
    | month(DATE '2022-02-03') |
    +--------------------------+
    |                        2 |

    樣本4

    MONTH函數也可以返回SQL執行時的月份,例如以下SQL是2021年5月執行的, 返回結果為5。

    select month(time '12:12:12');

    返回結果如下。

    +------------------------+
    | month(TIME '12:12:12') |
    +------------------------+
    |                      5 |

    樣本5

    select month('2022-02-03');               

    返回結果如下。

    +---------------------+
    | month('2022-02-03') |
    +---------------------+
    |                   2 |
                        

MONTHNAME

MONTHNAME(date)
  • 命令說明:返回日期中月份的英文全稱。

  • 參數類型:

    monthname(timestamp)
    monthname(datetime)
    monthname(date)
    monthname(varchar)                    
  • 傳回值類型:VARCHAR。

  • 樣本:

    樣本1

    select monthname(timestamp '2022-02-03 00:00:00');                

    返回結果如下。

    +--------------------------------------------+
    | monthname(TIMESTAMP '2022-02-03 00:00:00') |
    +--------------------------------------------+
    | February                                   |                   

    樣本2

    select monthname(datetime '2022-02-03 00:00:00');                   

    返回結果如下。

    +-------------------------------------------+
    | monthname(DATETIME '2022-02-03 00:00:00') |
    +-------------------------------------------+
    | February                                  |                    

    樣本3

    select monthname(date '2022-02-03');                  

    返回結果如下。

    +------------------------------+
    | monthname(DATE '2022-02-03') |
    +------------------------------+
    | February                     |                    

    樣本4

    select monthname('2022-02-03');                 

    返回結果如下。

    +-------------------------+
    | monthname('2022-02-03') |
    +-------------------------+
    | February                |                    

PERIOD_ADD

PERIOD_ADD(P,N)            
  • 命令說明:將日期格式的參數P增加N個月。

  • 參數類型:

    period_add(bigint, bigint)
    period_add(varchar, varchar) 
    period_add(varchar, bigint)                    
  • 傳回值類型:BIGINT。

  • 樣本:

    樣本1

    select period_add(202201,2);                   

    返回結果如下。

    +-----------------------+
    | period_add(202201, 2) |
    +-----------------------+
    |                202203 |                    

    樣本2

    select period_add('202201','2');                   

    返回結果如下。

    +---------------------------+
    | period_add('202201', '2') |
    +---------------------------+
    |                    202203 |                    

    樣本3

    select period_add('202201',2);                   

    返回結果如下。

    +-------------------------+
    | period_add('202201', 2) |
    +-------------------------+
    |                  202203 |                    

PERIOD_DIFF

PERIOD_DIFF(P1,P2)            
  • 命令說明:返回P1P2之間相差的月數。

  • 參數類型:

    period_diff(bigint, bigint)
    period_diff(varchar, varchar)                    
  • 傳回值類型:BIGINT。

  • 樣本:

    樣本1

    select period_diff(202202,202103);                    

    返回結果如下。

    +----------------------------+
    | period_diff(202202,202103) |
    +----------------------------+
    |                         11 |                    

    樣本2

    select period_diff('202202','202103');                   

    返回結果如下。

    +---------------------------------+
    | period_diff('202202', '202103') |
    +---------------------------------+
    |                              11 |                   

QUARTER

QUARTER(date)
  • 命令說明:返回日期在一年中的季度,取值範圍為[1,4]

  • 參數類型:

    quarter(datetime)
    quarter(varchar)
    quarter(timestamp)
    quarter(date)                    
  • 傳回值類型:BIGINT。

  • 樣本:

    樣本1

    select quarter(datetime '2022-04-01 12:12:12');                 

    返回結果如下。

    +-----------------------------------------+
    | quarter(DATETIME '2022-04-01 12:12:12') |
    +-----------------------------------------+
    |                                       2 |                    

    樣本2

    select quarter('2022-04-01');                   

    返回結果如下。

    +-----------------------+
    | quarter('2022-04-01') |
    +-----------------------+
    |                     2 |                    

    樣本3

    select quarter(timestamp '2022-04-01 12:12:12');                   

    返回結果如下。

    +------------------------------------------+
    | quarter(TIMESTAMP '2022-04-01 12:12:12') |
    +------------------------------------------+
    |                                        2 |                    

    樣本4

    select quarter(date '2022-04-01');                   

    返回結果如下。

    +----------------------------+
    | quarter(DATE '2022-04-01') |
    +----------------------------+
    |                          2 |                    

SEC_TO_TIME

SEC_TO_TIME(seconds)           
  • 命令說明:將seconds轉換為時間。

  • 參數類型

    sec_to_time(bigint)
    sec_to_time(varchar)                   
  • 傳回值類型:TIME。

  • 樣本:

    樣本1

    select sec_to_time(2378);                   

    返回結果如下。

    +-------------------+
    | sec_to_time(2378) |
    +-------------------+
    | 00:39:38          |                    

    樣本2

    select sec_to_time('2378');                         

    返回結果如下。

    +---------------------+
    | sec_to_time('2378') |
    +---------------------+
    | 00:39:38            |                   

SECOND

SECOND(time)
  • 命令說明:返回時間中的秒,範圍為[0,59]

  • 參數類型:

    second(timestamp)
    second(datetime)
    second(date)
    second(time)
    second(varchar)                   
  • 傳回值類型:BIGINT。

  • 樣本:

    樣本1

    select second(timestamp '2022-03-12 12:13:14');                  

    返回結果如下。

    +-----------------------------------------+
    | second(TIMESTAMP '2022-03-12 12:13:14') |
    +-----------------------------------------+
    |                                      14 |                    

    樣本2

    select second(datetime '2022-03-12 12:13:14');                  

    返回結果如下。

    +----------------------------------------+
    | second(DATETIME '2022-03-12 12:13:14') |
    +----------------------------------------+
    |                                     14 |                    

    樣本3

    select second(date '2022-03-12');

    返回結果如下。

    +---------------------------+
    | second(DATE '2022-03-12') |
    +---------------------------+
    |                         0 |

    樣本3

    select second(time '12:13:14'); 

    返回結果如下。

    +-------------------------+
    | second(TIME '12:13:14') |
    +-------------------------+
    |                      14 |

    樣本4

    select second('12:12:23');

    返回結果如下。

    +--------------------+
    | second('12:12:23') |
    +--------------------+
    |                 23 |

STR_TO_DATE

STR_TO_DATE(str,format)
  • 命令說明:按照指定日期或時間顯示格式,將字串轉換為日期或日期時間類型。

    format遵從DATE_FORMAT函數中的format格式。

  • 參數類型:

    str_to_date(varchar, varchar)
  • 傳回值類型:DATETIME。

  • 樣本:

    樣本1

    select str_to_date('2022-01-06 10:20:30','%Y-%m-%d %H:%i:%s') as result;                  

    返回結果如下。

    +---------------------+
    | result              |
    +---------------------+
    | 2022-01-06 10:20:30 |                    

SUBTIME

SUBTIME(expr1,expr2)
  • 命令說明:返回expr1減去expr2後的時間。

  • 參數類型:

    subtime(date, varchar)
    subtime(datetime, varchar)
    subtime(timestamp, varchar)
    subtime(time, varchar)
    subtime(varchar, varchar)                   
  • 傳回值類型:DATETIME。

  • 樣本:

    樣本1

    select subtime(date '2022-10-31','0:1:1');                  

    返回結果如下。

    +-------------------------------------+
    | subtime(DATE '2022-10-31', '0:1:1') |
    +-------------------------------------+
    |                 2022-10-30 23:58:59 |                    

    樣本2

    select subtime(datetime '2022-10-31 12:12:12','0:1:1');                   

    返回結果如下。

    +--------------------------------------------------+
    | subtime(DATETIME '2022-10-31 12:12:12', '0:1:1') |
    +--------------------------------------------------+
    |                              2022-10-31 12:11:11 |                   

    樣本3

    select subtime(timestamp '2022-10-31 12:12:12','0:1:1');                

    返回結果如下。

    +---------------------------------------------------+
    | subtime(TIMESTAMP '2022-10-31 12:12:12', '0:1:1') |
    +---------------------------------------------------+
    |                               2022-10-31 12:11:11 |                   

    樣本4

    select subtime(time '12:12:12','0:1:1');                  

    返回結果如下。

    +-----------------------------------+
    | subtime(TIME '12:12:12', '0:1:1') |
    +-----------------------------------+
    | 12:11:11                          |
    +-----------------------------------+                   

    樣本5

    select subtime('2022-10-31 23:59:59','0:1:1');                

    返回結果如下。

    +-----------------------------------------+
    | subtime('2022-10-31 23:59:59', '0:1:1') |
    +-----------------------------------------+
    | 2022-10-31 23:58:58                     |                   

SYSDATE

SYSDATE()
  • 命令說明:擷取系統時間。

  • 傳回值類型:DATETIME。

  • 樣本:

    樣本1

    select sysdate();                   

    返回結果如下。

    +---------------------+
    | sysdate()           |
    +---------------------+
    | 2022-02-26 00:47:21 |                    

TIME

TIME(expr)
  • 命令說明:以字串形式返回expr中的時間。

  • 參數類型:

    time(varchar)
    time(datetime)
    time(timestamp)                    
  • 傳回值類型:VARCHAR。

  • 樣本:

    樣本1

    select time('2022-01-31 01:02:03');                 

    返回結果如下。

    +-----------------------------+
    | time('2022-01-31 01:02:03') |
    +-----------------------------+
    | 01:02:03                    |                   

    樣本2

    select time(datetime '2022-01-31 01:02:03');                 

    返回結果如下。

    +--------------------------------------+
    | time(DATETIME '2022-01-31 01:02:03') |
    +--------------------------------------+
    | 01:02:03                             |                   

    樣本3

    select time(timestamp '2022-01-31 01:02:03');                   

    返回結果如下。

    +---------------------------------------+
    | time(TIMESTAMP '2022-01-31 01:02:03') |
    +---------------------------------------+
    | 01:02:03                              |                    

TIME_FORMAT

TIME_FORMAT(time,format)
  • 命令說明:按照format指定的格式,以字串格式顯示時間time

    format遵從DATE_FORMAT函數中的format格式。

  • 參數類型:

    time_format(varchar, varchar) 
    time_format(timestamp, varchar)
    time_format(datetime, varchar)
    time_format(time, varchar) 
    time_format(date, varchar)                    
  • 傳回值類型:VARCHAR。

  • 樣本:

    樣本1

    select time_format('12:00:00', '%H %k %h %I %l');                  

    返回結果如下。

    +-------------------------------------------+
    | time_format('12:00:00', '%H %k %h %I %l') |
    +-------------------------------------------+
    | 12 12 12 12 12                            |                   

    樣本2

    select time_format(timestamp '2022-01-22 23:00:00','%H %k %h %I %l')as result;                

    返回結果如下。

    +----------------+
    | result         |
    +----------------+
    | 23 23 11 11 11 |                   

    樣本3

    select time_format(datetime '2022-01-22 23:00:00','%H %k %h %I %l')as result;                   

    返回結果如下。

    +----------------+
    | result         |
    +----------------+
    | 23 23 11 11 11 |                    

    樣本4

    select time_format(time '23:00:00','%H %k %h %I %l');                

    返回結果如下。

    +------------------------------------------------+
    | time_format(TIME '23:00:00', '%H %k %h %I %l') |
    +------------------------------------------------+
    | 23 23 11 11 11                                 |                    

    樣本5

    select time_format(date '2022-01-22','%H %k %h %I %l');                 

    返回結果如下。

    +--------------------------------------------------+
    | time_format(DATE '2022-01-22', '%H %k %h %I %l') |
    +--------------------------------------------------+
    | 00 0 12 12 12                                    |                    

TIME_TO_SEC

TIME_TO_SEC(time)
  • 命令說明:返回time轉換為秒的結果。

  • 參數類型:

    time_to_sec(varchar)
    time_to_sec(datetime)
    time_to_sec(timestamp)
    time_to_sec(date)
    time_to_sec(time)
  • 傳回值類型:BIGINT。

  • 樣本:

    樣本1

    select time_to_sec(datetime '2022-01-22 22:23:00');              

    返回結果如下。

    +---------------------------------------------+
    | time_to_sec(DATETIME '2022-01-22 22:23:00') |
    +---------------------------------------------+
    |                                       80580 |                   

    樣本2

    select time_to_sec(timestamp '2022-01-22 22:23:00');                   

    返回結果如下。

    +----------------------------------------------+
    | time_to_sec(TIMESTAMP '2022-01-22 22:23:00') |
    +----------------------------------------------+
    |                                        80580 |                    

    樣本3

    select time_to_sec(date '2022-01-22');                  

    返回結果如下。

    +--------------------------------+
    | time_to_sec(DATE '2022-01-22') |
    +--------------------------------+
    |                              0 |                    

    樣本4

    select time_to_sec(time '12:12:12');                 

    返回結果如下。

    +------------------------------+
    | time_to_sec(TIME '12:12:12') |
    +------------------------------+
    |                        43932 |                   

    樣本5

    select time_to_sec('22:23:00');                  

    返回結果如下。

    +-------------------------+
    | time_to_sec('22:23:00') |
    +-------------------------+
    |                   80580 |                   

TIMEDIFF

TIMEDIFF(expr1,expr2)
  • 命令說明:返回expr1減去expr2後的時間,與SUBTIME作用相同。

  • 參數類型:

    timediff(time, varchar)
    timediff(time, time)
    timediff(varchar, varchar)                    
  • 傳回值類型:DATETIME。

  • 樣本:

    樣本1

    select timediff(time '12:00:00','10:00:00');                   

    返回結果如下。

    +---------------------------------------+
    | timediff(TIME '12:00:00', '10:00:00') |
    +---------------------------------------+
    | 02:00:00                              |                    

    樣本2

    select timediff('12:00:00','10:00:00');                  

    返回結果如下。

    +----------------------------------+
    | timediff('12:00:00', '10:00:00') |
    +----------------------------------+
    | 02:00:00                         |                   

    樣本3

    select timediff(time '12:00:00',time '10:00:00');                 

    返回結果如下。

    +--------------------------------------------+
    | timediff(TIME '12:00:00', TIME '10:00:00') |
    +--------------------------------------------+
    | 02:00:00                                   |                    

TIMESTAMP

TIMESTAMP(expr)
  • 命令說明:返回expr表示的日期或日期時間。

  • 參數類型:

    timestamp(date)
    timestamp(varchar)                    
  • 傳回值類型:DATETIME。

  • 樣本:

    樣本1

    select timestamp(date '2022-01-22');                   

    返回結果如下。

    +------------------------------+
    | timestamp(DATE '2022-01-22') |
    +------------------------------+
    | 2022-01-22 00:00:00          |                    

    樣本2

    select timestamp('2022-01-22');                   

    返回結果如下。

    +-------------------------+
    | timestamp('2022-01-22') |
    +-------------------------+
    |     2022-01-22 00:00:00 |                    

TIMESTAMPADD

TIMESTAMPADD(unit,interval,datetime_expr)
  • 命令說明:將interval添加到日期或日期時間運算式datetime_expr中。 interval的單位由unit規定。

    unit可取值為:secondminutehourdayweekmonthquarteryear

  • 參數類型:

    timestampadd(varchar, varchar, timestamp) 
    timestampadd(varchar, bigint, timestamp)
    timestampadd(varchar, varchar, date)
    timestampadd(varchar, bigint, date)
    timestampadd(varchar, varchar, datetime)
    timestampadd(varchar, bigint, datetime) 
    timestampadd(varchar, varchar, varchar)
    timestampadd(varchar, bigint, varchar)
  • 傳回值類型:DATETIME。

  • 樣本:

    樣本1

    select timestampadd(second,'1',timestamp '2022-01-02 12:12:12')as result;

    返回結果如下。

    +---------------------+
    | result              |
    +---------------------+
    | 2022-01-02 12:12:13 |

    樣本2

    select timestampadd(second,1,timestamp '2022-01-02 12:12:12')as result;                 

    返回結果如下。

    +---------------------+
    | result              |
    +---------------------+
    | 2022-01-02 12:12:13 |                   

    樣本3

    select timestampadd(second,'1',date '2022-01-02 12:12:12')as result;                 

    返回結果如下。

    +---------------------+
    | result              |
    +---------------------+
    | 2022-01-02 00:00:01 |                  

    樣本4

    select timestampadd(second,1,date '2022-01-02 12:12:12')as result;                  

    返回結果如下。

    +---------------------+
    | result              |
    +---------------------+
    | 2022-01-02 00:00:01 |                    

    樣本5

    select timestampadd(second,'1',datetime '2022-01-02 12:12:12')as result;                  

    返回結果如下。

    +---------------------+
    | result              |
    +---------------------+
    | 2022-01-02 12:12:13 |                   

    樣本6

    select timestampadd(second,1,datetime '2022-01-02 12:12:12')as result;

    返回結果如下。

    +---------------------+
    | result              |
    +---------------------+
    | 2022-01-02 12:12:13 |

    樣本7

    select timestampadd(second,'1','2022-01-02 12:12:12')as result;            

    返回結果如下。

    +---------------------+
    | result              |
    +---------------------+
    | 2022-01-02 12:12:13 |                   

    樣本8

    select timestampadd(second,1,'2022-01-02 12:12:12')as result;

    返回結果如下。

    +---------------------+
    | result              |
    +---------------------+
    | 2022-01-02 12:12:13 |

    樣本9

    select timestampadd(second,1,'2022-01-02 12:12:12');                  

    返回結果如下。

    +--------------------------------------------------+
    | timestampadd('second', 1, '2022-01-02 12:12:12') |
    +--------------------------------------------------+
    | 2022-01-02 12:12:13                              |                    

    樣本10

    select timestampadd(minute,8820,'2022-02-24 09:00:00');                 

    返回結果如下。

    +-----------------------------------------------------+
    | timestampadd('MINUTE', 8820, '2022-02-24 09:00:00') |
    +-----------------------------------------------------+
    | 2022-03-02 12:00:00                                 |                  

    樣本11

    select timestampadd(hour,1,'2022-01-02 12:12:12');                  

    返回結果如下。

    +------------------------------------------------+
    | timestampadd('hour', 1, '2022-01-02 12:12:12') |
    +------------------------------------------------+
    | 2022-01-02 13:12:12                            |                    

    樣本12

    select timestampadd(day,1,'2022-01-02 12:12:12');                    

    返回結果如下。

    +-----------------------------------------------+
    | timestampadd('day', 1, '2022-01-02 12:12:12') |
    +-----------------------------------------------+
    | 2022-01-03 12:12:12                           |                    

    樣本13

    select timestampadd(week,1,'2022-01-02 12:12:12');                 

    返回結果如下。

    +------------------------------------------------+
    | timestampadd('week', 1, '2022-01-02 12:12:12') |
    +------------------------------------------------+
    | 2022-01-09 12:12:12                            |                    

    樣本14

    select timestampadd(month,1,'2022-01-02 12:12:12');                   

    返回結果如下。

    +-------------------------------------------------+
    | timestampadd('month', 1, '2022-01-02 12:12:12') |
    +-------------------------------------------------+
    | 2022-02-02 12:12:12                             |                    

    樣本15

    select timestampadd(year,1,'2022-01-02 12:12:12');                  

    返回結果如下。

    +------------------------------------------------+
    | timestampadd('year', 1, '2022-01-02 12:12:12') |
    +------------------------------------------------+
    | 2023-01-02 12:12:12                            |                    

    樣本16

    select timestampadd(quarter,1,'2022-01-02 12:12:12');

    返回結果如下。

    +---------------------------------------------------+
    | timestampadd('quarter', 1, '2022-01-02 12:12:12') |
    +---------------------------------------------------+
    | 2022-04-02 12:12:12                               |

TIMESTAMPDIFF

TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)            
  • 命令說明:返回日期或日期時間運算式datetime_expr2減去datetime_expr1後的結果,結果的單位由unit指定。

    unit可取值為:secondminutehourdayweekmonthquarteryear

    使用方法和TIMESTAMPADD相同。

  • 參數類型:

    timestampdiff(varchar, timestamp, timestamp)
    timestampdiff(varchar, date, date)
    timestampdiff(varchar, datetime, datetime)
    timestampdiff(varchar, varchar, varchar)                    
  • 傳回值類型:BIGINT。

  • 樣本:

    樣本1

    select timestampdiff(second,datetime '2022-02-01 10:12:13',datetime '2022-03-01 10:12:13')as result;                  

    返回結果如下。

    +----------+
    |  result  |
    +----------+
    |  2419200 |                    

    樣本2

    select timestampdiff(minute,datetime '2022-02-01 10:12:13',datetime '2022-03-01 10:12:13')as result;               

    返回結果如下。

    +---------+
    |  result |
    +---------+
    |  40320  |                   

    樣本3

    select timestampdiff(hour,datetime '2022-02-01 10:12:13',datetime '2022-03-01 10:12:13')as result;                   

    返回結果如下。

    +--------+
    | result |
    +--------+
    |   672  |                    

    樣本4

    select timestampdiff(day,timestamp '2022-02-01',timestamp '2022-03-01')as result;                 

    返回結果如下。

    +--------+
    | result |
    +--------+
    |    28  |                   

    樣本5

    select timestampdiff(day,date '2022-02-01',date '2022-03-01');                 

    返回結果如下。

    +------------------------------------------------------------+
    | timestampdiff('day', DATE '2022-02-01', DATE '2022-03-01') |
    +------------------------------------------------------------+
    |                                                         28 |                    

    樣本6

    select timestampdiff(day,datetime '2022-02-01 10:12:13',datetime '2022-03-01 10:12:13')as result;               

    返回結果如下。

    +--------+
    | result |
    +--------+
    |    28  |                    

    樣本7

    select timestampdiff(day,'2022-02-01','2022-03-01');                  

    返回結果如下。

    +--------------------------------------------------+
    | timestampdiff('day', '2022-02-01', '2022-03-01') |
    +--------------------------------------------------+
    |                                              28  |                    

    樣本8

    select timestampdiff(week,'2022-02-01','2022-03-01');

    返回結果如下。

    +---------------------------------------------------+
    | timestampdiff('week', '2022-02-01', '2022-03-01') |
    +---------------------------------------------------+
    |                                                4  |

    樣本9

    select timestampdiff(quarter,'2022-02-01','2022-03-01');

    返回結果如下。

    +------------------------------------------------------+
    | timestampdiff('quarter', '2022-02-01', '2022-03-01') |
    +------------------------------------------------------+
    |                                                   0  |

    樣本10

    select timestampdiff(month,'2022-02-01','2022-03-01');                    

    返回結果如下。

    +----------------------------------------------------+
    | timestampdiff('month', '2022-02-01', '2022-03-01') |
    +----------------------------------------------------+
    |                                                 1  |                    

    樣本11

    select timestampdiff(year,datetime '2022-02-01 10:12:13',datetime '2020-05-01 10:12:13')as result;          

    返回結果如下。

    +--------+
    | result |
    +--------+
    |     -1 |                    

TO_DAYS

TO_DAYS(date)
  • 命令說明:根據指定日期date,返回自0年開始的天數。

  • 參數類型:

    to_days(date)
    to_days(time)
    to_days(varchar)
    to_days(timestamp)
    to_days(datetime)
  • 傳回值類型:BIGINT。

  • 樣本:

    樣本1

    select to_days(date '2022-02-12');

    返回結果如下。

    +----------------------------+
    | to_days(DATE '2022-02-12') |
    +----------------------------+
    |                     738563 |

    樣本2

    select to_days(time '12:12:12');

    返回當前日期距0年的天數,結果如下。

    +--------------------------+
    | to_days(TIME '12:12:12') |
    +--------------------------+
    |                   738563 |

    樣本3

    select to_days(now());

    返回結果如下。

    +----------------+
    | to_days(now()) |
    +----------------+
    |         738563 |

    樣本4

    說明

    該樣本等價於樣本3。

    select to_days(curdate());

    返回結果如下。

    +--------------------+
    | to_days(curdate()) |
    +--------------------+
    |             738563 |

    樣本5

    select to_days(datetime '2022-02-12 12:12:12');

    返回結果如下。

    +-----------------------------------------+
    | to_days(DATETIME '2022-02-12 12:12:12') |
    +-----------------------------------------+
    |                                  738563 |

    樣本6

    select to_days('2022-02-12 12:12:12');

    返回結果如下。

    +--------------------------------+
    | to_days('2022-02-12 12:12:12') |
    +--------------------------------+
    |                         738563 |

    樣本7

    select to_days(timestamp '2022-02-12 12:12:12');

    返回結果如下。

    +------------------------------------------+
    | to_days(TIMESTAMP '2022-02-12 12:12:12') |
    +------------------------------------------+
    |                                   738563 |

TO_SECONDS

TO_SECONDS(expr)
  • 命令說明:根據給定的expr,返回自0年開始的秒數。

  • 參數類型:

    to_seconds(date)
    to_seconds(datetime)
    to_seconds(timestamp)
    to_seconds(varchar)
    to_seconds(time)                    
  • 傳回值類型:BIGINT。

  • 樣本:

    樣本1

    select to_seconds(date '2022-02-02');

    返回結果如下。

    +-------------------------------+
    | to_seconds(DATE '2022-02-02') |
    +-------------------------------+
    |                   63810979200 |

    樣本2

    select to_seconds(datetime '2022-02-02 09:09:00');

    返回結果如下。

    +--------------------------------------------+
    | to_seconds(DATETIME '2022-02-02 09:09:00') |
    +--------------------------------------------+
    |                                63811012140 |

    樣本3

    select to_seconds(timestamp '2022-02-02 09:09:00');

    返回結果如下。

    +---------------------------------------------+
    | to_seconds(TIMESTAMP '2022-02-02 09:09:00') |
    +---------------------------------------------+
    |                                 63811012140 |

    樣本4

    執行以下SQL,系統將返回'09:09:00'加上curdate()後的結果。

    select to_seconds(time '09:09:00');                  

    返回結果如下。

    +-----------------------------+
    | to_seconds(TIME '09:09:00') |
    +-----------------------------+
    |                 63811012140 |                   

    樣本5

    select to_seconds('2022-02-02');

    返回結果如下。

    +--------------------------+
    | to_seconds('2022-02-02') |
    +--------------------------+
    |              63810979200 |

UNIX_TIMESTAMP

UNIX_TIMESTAMP([date])
  • 命令說明:UNIX_TIMESTAMP()返回自'1970-01-01 00:00:00' UTC至目前時間的秒數。UNIX_TIMESTAMP(date) 將參數的值返回為'1970-01-01 00:00:00'UTC至date指定時間的秒數。

  • 參數類型:

    unix_timestamp()
    unix_timestamp(varchar)
    unix_timestamp(timestamp)
    unix_timestamp(date)
    unix_timestamp(datetime)
  • 傳回值類型:BIGINT。

  • 樣本:

    樣本1

    select unix_timestamp();

    返回結果如下。

    +------------------+
    | unix_timestamp() |
    +------------------+
    |       1654759686 |

    樣本2

    select unix_timestamp(timestamp '2022-02-08 12:12:12');

    返回結果如下。

    +-------------------------------------------------+
    | unix_timestamp(TIMESTAMP '2022-02-08 12:12:12') |
    +-------------------------------------------------+
    |                                      1644293532 |

    樣本3

    select unix_timestamp(date '2022-02-08');

    返回結果如下。

    +-----------------------------------+
    | unix_timestamp(DATE '2022-02-08') |
    +-----------------------------------+
    |                        1644249600 |

    樣本4

    select unix_timestamp(datetime '2022-02-08 12:12:12');

    返回結果如下。

    +------------------------------------------------+
    | unix_timestamp(DATETIME '2022-02-08 12:12:12') |
    +------------------------------------------------+
    |                                     1644293532 |

    樣本5

    select unix_timestamp('2022-02-08 12:12:12');

    返回結果如下。

    +---------------------------------------+
    | unix_timestamp('2022-02-08 12:12:12') |
    +---------------------------------------+
    |                            1644293532 |

UTC_DATE

UTC_DATE()
  • 命令說明:返回UTC日期。

  • 傳回值類型:VARCHAR。

  • 樣本:

    select utc_date();

    返回結果如下。

    +------------+
    | utc_date() |
    +------------+
    | 2022-05-27 |

UTC_TIME

UTC_TIME()
  • 命令說明:返回UTC時間。

  • 傳回值類型:VARCHAR。

  • 樣本:

    select utc_time();

    返回結果如下。

    +------------+
    | utc_time() |
    +------------+
    | 05:53:19   |

UTC_TIMESTAMP

utc_timestamp()
  • 命令說明:返回UTC時間戳記。

  • 傳回值類型:VARCHAR。

  • 樣本:

    select utc_timestamp();                   

    返回結果如下。

    +---------------------+
    | utc_timestamp()     |
    +---------------------+
    | 2022-05-27 15:55:15 |                    

WEEK

WEEK(date[,mode])
  • 命令說明:返回date對應的周數,即date是日期年份中的第幾周。

    • date是要擷取周數的日期。

    • mode選擇性參數,用於確定周數計算的邏輯。預設一周的第一天是星期日。您也可以指定一周是從星期一還是星期日開始。mode支援的格式如下表所示。

    mode

    一周的第一天

    周數取值範圍

    說明

    0

    星期日

    0-53

    從本年的第一個星期日開始,是第一周。前面的計算為第0周。

    1

    星期一

    0-53

    若1月1日到第一個周一的天數超過3天,則計算為本年的第一周。否則為第0周。

    2

    星期日

    1-53

    從本年的第一個星期日開始,是第一周。前面的計算為上年度的第5x周。

    3

    星期一

    1-53

    若1月1日到第一個周一的天數超過3天,則計算為本年的第一周。否則為上年度的第5x周。

    4

    星期日

    0-53

    若1月1日到第一個周日的天數超過3天,則計算為本年的第一周。否則為第0周。

    5

    星期一

    0-53

    從本年的第一個星期一開始,是第一周。前面的計算為第0周。

    6

    星期日

    1-53

    若1月1日到第一個周日的天數超過3天,則計算為本年的第一周。否則為上年度的第5x周。

    7

    星期一

    1-53

    從本年的第一個星期一開始,是第一周。前面的計算為上年度的第5x周。

  • 參數類型:

    week(varchar)
    week(varchar, bigint)
    week(date)
    week(date, bigint)
    week(datetime)
    week(datetime, bigint)
    week(timestamp)
    week(timestamp, bigint)                   
  • 傳回值類型:BIGINT。

  • 樣本:

    樣本1

    select week('2022-02-27');

    返回結果如下。

    +--------------------+
    | week('2022-02-27') |
    +--------------------+
    |                 9  |

    樣本2

    select week('2022-02-20',1);

    返回結果如下。

    +-----------------------+
    | week('2022-02-20', 1) |
    +-----------------------+
    |                     7 |

    樣本3

    select week(date '2022-02-20');

    返回結果如下。

    +-------------------------+
    | week(DATE '2022-02-20') |
    +-------------------------+
    |                       8 |

    樣本4

    select week(date '2022-02-20',1);

    返回結果如下。

    +----------------------------+
    | week(DATE '2022-02-20', 1) |
    +----------------------------+
    |                          7 |

    樣本5

    select week(datetime '2022-02-20 00:00:00',1);

    返回結果如下。

    +-----------------------------------------+
    | week(DATETIME '2022-02-20 00:00:00', 1) |
    +-----------------------------------------+
    |                                       7 |

    樣本6

    select week(datetime '2022-02-20 00:00:00');

    返回結果如下。

    +--------------------------------------+
    | week(DATETIME '2022-02-20 00:00:00') |
    +--------------------------------------+
    |                                    8 |

    樣本7

    select week(timestamp '2022-02-20 00:00:00');

    返回結果如下。

    +---------------------------------------+
    | week(TIMESTAMP '2022-02-20 00:00:00') |
    +---------------------------------------+
    |                                     8 |

    樣本8

    select week(timestamp '2022-02-20 00:00:00',1);

    返回結果如下。

    +------------------------------------------+
    | week(TIMESTAMP '2022-02-20 00:00:00', 1) |
    +------------------------------------------+
    |                                        7 |

WEEKDAY

WEEKDAY(date)
  • 命令說明:返回date是一周中的第幾天。傳回值0= Monday,1= Tuesday,2=Wednesday, 3=Thursday,4=Friday,5=Saturday,6= Sunday。

  • 參數類型:

    weekday(timestamp)
    weekday(datetime)
    weekday(date)
    weekday(varchar)
  • 傳回值類型:BIGINT。

  • 樣本:

    樣本1

    select weekday(timestamp '2022-02-20 00:09:00');

    返回結果如下。

    +------------------------------------------+
    | weekday(TIMESTAMP '2022-02-20 00:09:00') |
    +------------------------------------------+
    |                                        6 |

    樣本2

    select weekday(datetime '2022-02-20 00:09:00');

    返回結果如下。

    +-----------------------------------------+
    | weekday(DATETIME '2022-02-20 00:09:00') |
    +-----------------------------------------+
    |                                       6 |

    樣本3

    select weekday(date '2022-02-20 00:09:00');

    返回結果如下。

    +-------------------------------------+
    | weekday(DATE '2022-02-20 00:09:00') |
    +-------------------------------------+
    |                                   6 |

    樣本4

    select weekday('2022-02-20');

    返回結果如下。

    +-----------------------+
    | weekday('2022-02-20') |
    +-----------------------+
    |                     6 |

WEEKOFYEAR

WEEKOFYEAR(date)
  • 命令說明:返回date對應的日曆周,取值範圍為[1,53]

  • 參數類型:

    weekofyear(timestamp)
    weekofyear(datetime)
    weekofyear(date)
    weekofyear(varchar)
  • 傳回值類型:BIGINT。

  • 樣本:

    樣本1

    select weekofyear(timestamp '2022-02-27 09:00:00');

    返回結果如下。

    +---------------------------------------------+
    | weekofyear(TIMESTAMP '2022-02-27 09:00:00') |
    +---------------------------------------------+
    |                                          8  |

    樣本2

    select weekofyear(datetime '2022-02-27 09:00:00');

    返回結果如下。

    +--------------------------------------------+
    | weekofyear(DATETIME '2022-02-27 09:00:00') |
    +--------------------------------------------+
    |                                         8  |

    樣本3

    select weekofyear(date '2022-02-27');

    返回結果如下。

    +-------------------------------+
    | weekofyear(DATE '2022-02-27') |
    +-------------------------------+
    |                            8  |

    樣本4

    select weekofyear('2022-02-27');

    返回結果如下。

    +--------------------------+
    | weekofyear('2022-02-27') |
    +--------------------------+
    |                       8  |

YEAR

YEAR(date)
  • 命令說明:返回date中的年份。

  • 參數類型:

    year(timestamp)
    year(datetime)
    year(date)
    year(time)
    year(varchar)
  • 傳回值類型:BIGINT。

  • 樣本:

    樣本1

    select year(timestamp '2022-02-27 00:00:00');

    返回結果如下。

    select year(timestamp '2019-05-27 00:00:00');
    +---------------------------------------+
    | year(TIMESTAMP '2022-02-27 00:00:00') |
    +---------------------------------------+
    |                                  2022 |

    樣本2

    select year(datetime '2022-02-27 00:00:00')

    返回結果如下。

    +--------------------------------------+
    | year(DATETIME '2022-02-27 00:00:00') |
    +--------------------------------------+
    |                                 2022 |

    樣本3

    select year(date '2022-02-27');

    返回結果如下。

    +-------------------------+
    | year(DATE '2022-02-27') |
    +-------------------------+
    |                    2022 |

    樣本4

    執行以下SQL,系統將返回'00:00:00'加上curdate日期部分後的結果,結果資料類型為字串。

    select year(time '00:00:00');

    返回結果如下。

    +-----------------------+
    | year(TIME '00:00:00') |
    +-----------------------+
    |                  2022 |

    樣本5

    select year('2022-02-27');

    返回結果如下。

    +--------------------+
    | year('2022-02-27') |
    +--------------------+
    |               2022 |

YEARWEEK

YEARWEEK(date)
YEARWEEK(date,mode)
  • 命令說明:返回日期的年份和星期。

    返回結果中的年份可能與一年中第一周和最後一周的日期參數中的年份不同。

    modeWEEK函數中的mode作用相同。對於單參數文法,mode值為0

  • 參數類型:

    yearweek(timestamp)
    yearweek(timestamp, bigint)
    yearweek(datetime)
    yearweek(datetime, bigint)
    yearweek(date, bigint) 
    yearweek(date) 
    yearweek(varchar)
    yearweek(varchar, bigint)
  • 傳回值類型:BIGINT。

  • 樣本:

    樣本1

    select yearweek(timestamp '2022-02-27 00:00:00');

    返回結果如下。

    +-------------------------------------------+
    | yearweek(TIMESTAMP '2022-02-27 00:00:00') |
    +-------------------------------------------+
    |                                    202209 |

    樣本2

    select yearweek(timestamp '2022-02-27 00:00:00',1);

    返回結果如下。

    +----------------------------------------------+
    | yearweek(TIMESTAMP '2022-02-27 00:00:00', 1) |
    +----------------------------------------------+
    |                                       202208 |

    樣本3

    select yearweek(datetime '2022-02-27 00:00:00');

    返回結果如下。

    +------------------------------------------+
    | yearweek(DATETIME '2022-02-27 00:00:00') |
    +------------------------------------------+
    |                                   202209 |

    樣本4

    select yearweek(datetime '2022-02-27 00:00:00',1);

    返回結果如下。

    +---------------------------------------------+
    | yearweek(DATETIME '2022-02-27 00:00:00', 1) |
    +---------------------------------------------+
    |                                      202208 |

    樣本5

    select yearweek(date '2022-02-27',1);

    返回結果如下。

    +--------------------------------+
    | yearweek(DATE '2022-02-27', 1) |
    +--------------------------------+
    |                         202208|

    樣本6

    select yearweek(date '2022-02-27');

    返回結果如下。

    +-----------------------------+
    | yearweek(DATE '2022-02-27') |
    +-----------------------------+
    |                      202209 |

    樣本7

    select yearweek('2022-02-27');

    返回結果如下。

    +------------------------+
    | yearweek('2022-02-27') |
    +------------------------+
    |                 202209 |

    樣本8

    select yearweek('2022-02-27',1);

    返回結果如下。

    +---------------------------+
    | yearweek('2022-02-27', 1) |
    +---------------------------+
    |                    202208 |