目前只读分析引擎支持大部分 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,varchar,char 数据类型。
date 函数
日期函数。
语法:date(date1)
date1支持值类型:支持 date,datetime,char,varchar 数据类型。
sysdate 函数
返回系统时间函数。
语法:sysdate()
date_add 函数
日期相加函数。
语法:date_add(date1, interval expr type)
date1支持值类型:支持 date,datetime 数据类型。
expr 支持值类型:支持 int,long,double,decimal。
type 支持值类型:支持 DAY,DAY 为关键字。
date_sub 函数
日期相减函数。
语法:date_sub(date1, interval expr type)
date1支持值类型:支持 date,datetime 数据类型。
expr 支持值类型:支持 int,long,double,decimal。
type 支持值类型:支持 DAY,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 函数
将时间戳转换为时间格式函数。
语法:FROM_UNIXTIME(unix_timestamp[,format])
unix_timestamp 支持 int 类型数字。
format 支持的格式如下面 date_format 函数 的表格示例。若 format 为空,则默认为 %Y-%m-%d %H:%i:%s 格式。 unix_timestamp 函数
基于日期时间将其转换为时间戳的函数。
语法:UNIX_TIMESTAMP([date])
date 支持 DATE 标准的日期类型。
注意:
仅1.2404.17.0及以后的版本支持 FROM_UNIXTIME 函数与 UNIX_TIMESTAMP 函数。
weekday 函数
获取参数值所对应的星期。
语法:weekday(date)
获取一个日期对应的星期数,入参支持 Date 或 Datetime 值,返回结果范围:0 - 6,分别对应:星期日 - 星期六。如果日期为 NULL 或 0000-00-00,函数则返回 NULL。
timediff 函数
获取两个时间之间的差值。
语法:timediff(time1,time2)
获取 time1与 time2之间的时间差值,time1 - time2。
to_days 函数
获取从公元0年12月31日到入参值之间的天数。
语法:to_days(date)
获取结果为天数,此天数为入参值与公元0年之间的天数,入参支持 Date 或字符串值,返回结果为数字类型。
yearweek 函数
获取指定日期所在年份和周数的函数。
语法:yearweek(date[,mode])
获取结果为周数,date 为要计算的日期(例如:'2025-06-15'),mode 为可选参数,用于指定周的起始日。默认为0,表示周的起始日为周日。返回结果为数字类型。
time 函数
提取时间或者日期表达式中的时间部分,并通过字符串返回。
语法:time(expr)
获取结果为时间,expr 可填写时间类型或者日期时间类型。返回类型为字符串,如果 expr 为空,则返回为空。
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位。 |