日期和时间函数

时间日期函数用于处理日期和时间值。例如,获取当前日期时间、格式化日期时间、计算时间间隔、提取日期时间的特定部分(如年、月、日)等。本文介绍云原生数据仓库 AnalyticDB 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 |