日期函数支持说明

最近更新时间:2026-06-30 16:45:31

我的收藏
只读分析实例支持大部分 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位。