只读分析实例支持大部分 MySQL 的日期函数,但在部分场景下仍存在限制和不兼容。本文介绍只读分析实例对日期函数的支持列表,并列出每个函数对入参数据类型的支持范围。文档中未列出的入参类型与函数均不支持。
日期函数支持类型
DATEDIFF 函数
返回两个日期之间相差的天数。
语法:
DATEDIFF(date1, date2)date1支持的数据类型:date、datetime。
date2支持的数据类型:date、datetime。
YEAR 函数
返回日期的年份。
语法:
YEAR(date1)date1支持的数据类型:date、datetime、char、varchar。
MONTH 函数
返回日期的月份。
语法:
MONTH(date1)date1支持的数据类型:date、datetime、char、varchar。
DAY 函数
返回日期是当月的第几天。
语法:
DAY(date1)date1支持的数据类型:date、datetime、char、varchar。
HOUR 函数
返回时间的小时部分。
语法:
HOUR(date1)date1支持的数据类型:date、datetime。
MINUTE 函数
返回时间的分钟部分。
语法:
MINUTE(date1)date1支持的数据类型:date、datetime。
SECOND 函数
返回时间的秒部分。
语法:
SECOND(date1)date1支持的数据类型:date、datetime。
MICROSECOND 函数
返回时间或日期时间的微秒部分。
语法:
MICROSECOND(date1)date1支持的数据类型:date、datetime。
QUARTER 函数
返回给定日期所在的季度(1到4之间的数字)。
语法:
QUARTER(date1)date1支持的数据类型:date、datetime、char、varchar。
DATE 函数
提取日期或日期时间表达式的日期部分。
语法:
DATE(date1)date1支持的数据类型:date、datetime、char、varchar。
SYSDATE 函数
返回系统当前的日期和时间。
语法:
SYSDATE()无需入参。
DATE_ADD 函数
将指定的时间间隔加到日期上。
语法:
DATE_ADD(date1, INTERVAL expr type)date1 支持的数据类型:date、datetime。
expr 支持的数据类型:int、bigint、double、decimal。
type 支持取值:DAY(关键字)。
DATE_SUB 函数
从日期中减去指定的时间间隔。
语法:
DATE_SUB(date1, INTERVAL expr type)date1 支持的数据类型:date、datetime。
expr 支持的数据类型:int、bigint、double、decimal。
type 支持取值:DAY(关键字)。
DAYOFYEAR 函数
返回给定日期是当年的第几天。
语法:
DAYOFYEAR(date1)date1支持的数据类型:date、datetime、char、varchar。
DAYOFMONTH 函数
返回给定日期是当月的第几天。
语法:
DAYOFMONTH(date1)date1支持的数据类型:date、datetime、char、varchar。
DAYOFWEEK 函数
返回给定日期是当周的第几天。
语法:
DAYOFWEEK(date1)date1支持的数据类型:date、datetime、char、varchar。
DAYNAME 函数
返回指定日期对应的星期名称。
语法:
DAYNAME(date1)date1支持的数据类型:date、datetime、char、varchar。
MONTHNAME 函数
返回指定日期对应的月份名称。
语法:
MONTHNAME(date1)date1支持的数据类型:date、datetime、char、varchar。
TO_SECONDS 函数
返回指定的日期或日期时间从公元0年开始的秒数。
语法:
TO_SECONDS(date1)date1支持的数据类型:date、datetime、char、varchar。
LAST_DAY 函数
返回给定日期所在月份的最后一天。
语法:
LAST_DAY(date1)date1支持的数据类型:date、datetime、char、varchar。
SLEEP 函数
在执行时暂停指定的秒数。
语法:
SLEEP(N)N 支持的数据类型:int。
NOW 函数
返回当前的日期和时间。
语法:
NOW()无需入参。
CURRENT_TIMESTAMP 函数
返回当前的日期和时间,等价于
NOW()。语法:
CURRENT_TIMESTAMP()无需入参。
CURDATE 函数
返回当前日期,等价于
CURRENT_DATE()。语法:
CURDATE()无需入参。
CURRENT_DATE 函数
返回当前日期,等价于
CURDATE()。语法:
CURRENT_DATE()无需入参。
CURRENT_TIME 函数
返回当前时间。
语法:
CURRENT_TIME()无需入参。
CURTIME 函数
返回当前时间,等价于
CURRENT_TIME()。语法:
CURTIME()无需入参。
FROM_UNIXTIME 函数
将 Unix 时间戳转换为指定格式的日期时间字符串。
语法:
FROM_UNIXTIME(unix_timestamp [, format])unix_timestamp 支持的数据类型:int。
format 可选,支持的格式参见 DATE_FORMAT 函数 的格式表。若 format 为空,则默认使用
%Y-%m-%d %H:%i:%s 格式。UNIX_TIMESTAMP 函数
将日期时间转换为 Unix 时间戳。
语法:
UNIX_TIMESTAMP([date])date 支持的数据类型:标准的 DATE 类型。
WEEKDAY 函数
返回给定日期对应的星期数。
语法:
WEEKDAY(date)入参支持的数据类型:date、datetime。
返回结果范围为0 - 6,分别对应星期一至星期日。
如果日期为 NULL 或
0000-00-00,函数返回 NULL。TIMEDIFF 函数
返回两个时间之间的差值。
语法:
TIMEDIFF(time1, time2)返回
time1 - time2 的时间差值。TO_DAYS 函数
返回从公元0年12月31日到给定日期的天数。
语法:
TO_DAYS(date)date 支持的数据类型:date 或字符串。
返回值类型为数字。
YEARWEEK 函数
返回指定日期所在的年份和周数。
语法:
YEARWEEK(date [, mode])date:要计算的日期,例如
'2025-06-15'。mode:可选参数,用于指定周的起始日。默认为0,表示周的起始日为周日。
返回值类型为数字。
TIME 函数
提取日期时间表达式中的时间部分,并以字符串形式返回。
语法:
TIME(expr)expr 支持的数据类型:时间类型或日期时间类型。
返回值类型为字符串。如果 expr 为 NULL,则返回 NULL。
DATE_FORMAT 函数
按指定格式格式化日期。
语法:
DATE_FORMAT(date1, format)date1支持的数据类型:date、datetime、char、varchar,不支持 date1 为 NULL 的场景。
format:日期/时间的输出格式,支持的格式说明符如下表。
格式 | 描述 |
%a | 缩写星期名。 |
%b | 缩写月名。 |
%c | 月,数值。 |
%D | 带有英文前缀的月中的天。 |
%d | 月的天,数值(00 - 31)。 |
%e | 月的天,数值(0 - 31)。 |
%f | 微秒。 |
%H | 小时(00 - 23)。 |
%h | 小时(01 - 12)。 |
%I | 小时(01 - 12)。 |
%i | 分钟,数值(00 - 59)。 |
%j | 年的天(001 - 366)。 |
%k | 小时(0 - 23)。 |
%l | 小时(1 - 12)。 |
%M | 月名。 |
%m | 月,数值(00 - 12)。 |
%p | AM 或 PM。 |
%r | 时间,12小时制(hh:mm:ss AM 或 PM)。 |
%S | 秒(00 - 59)。 |
%s | 秒(00 - 59)。 |
%T | 时间,24小时制(hh:mm:ss)。 |
%U | 周(00 - 53),星期日是一周的第一天。 |
%u | 周(00 - 53),星期一是一周的第一天。 |
%V | 周(01 - 53),星期日是一周的第一天,与 %X 联合使用。 |
%v | 周(01 - 53),星期一是一周的第一天,与 %x 联合使用。 |
%W | 星期名称。 |
%w | 一周中的具体哪天(0 = 星期日,6 = 星期六)。 |
%X | 年,其中的星期日是周的第一天,4位,与 %V 联合使用。 |
%x | 年,其中的星期一是周的第一天,4位,与 %v 联合使用。 |
%Y | 年,4位。 |
%y | 年,2位。 |