跳到主要内容

日期和时间函数

本页面全面概述了 Databend 中的日期和时间函数,并按功能进行组织,方便参考。

当前日期和时间函数

函数描述示例
NOW返回当前日期和时间NOW()2024-06-04 17:42:31.123456
CURRENT_TIMESTAMP返回当前日期和时间CURRENT_TIMESTAMP()2024-06-04 17:42:31.123456
TODAY返回当前日期TODAY()2024-06-04
TOMORROW返回明天的日期TOMORROW()2024-06-05
YESTERDAY返回昨天的日期YESTERDAY()2024-06-03

日期和时间提取函数

函数描述示例
YEAR从日期中提取年份YEAR('2024-06-04')2024
MONTH从日期中提取月份MONTH('2024-06-04')6
DAY从日期中提取日DAY('2024-06-04')4
QUARTER从日期中提取季度QUARTER('2024-06-04')2
WEEK / WEEKOFYEAR从日期中提取周数WEEK('2024-06-04')23
EXTRACT从日期中提取指定部分EXTRACT(MONTH FROM '2024-06-04')6
DATE_PART从日期中提取指定部分DATE_PART('month', '2024-06-04')6
YEARWEEK返回年份和周数YEARWEEK('2024-06-04')202423
MILLENNIUM从日期中提取千年MILLENNIUM('2024-06-04')3

日期和时间转换函数

函数描述示例
DATE将值转换为 DATE 类型DATE('2024-06-04')2024-06-04
TO_DATE将字符串转换为 DATE 类型TO_DATE('2024-06-04')2024-06-04
TO_DATETIME将字符串转换为 DATETIME 类型TO_DATETIME('2024-06-04 12:30:45')2024-06-04 12:30:45
TO_TIMESTAMP将字符串转换为 TIMESTAMP 类型TO_TIMESTAMP('2024-06-04 12:30:45')2024-06-04 12:30:45
TO_UNIX_TIMESTAMP将日期转换为 Unix 时间戳TO_UNIX_TIMESTAMP('2024-06-04')1717516800
TO_YYYYMM将日期格式化为 YYYYMMTO_YYYYMM('2024-06-04')202406
TO_YYYYMMDD将日期格式化为 YYYYMMDDTO_YYYYMMDD('2024-06-04')20240604
TO_YYYYMMDDHH将日期格式化为 YYYYMMDDHHTO_YYYYMMDDHH('2024-06-04 12:30:45')2024060412
TO_YYYYMMDDHHMMSS将日期格式化为 YYYYMMDDHHMMSSTO_YYYYMMDDHHMMSS('2024-06-04 12:30:45')20240604123045
DATE_FORMAT根据格式字符串格式化日期DATE_FORMAT('2024-06-04', '%Y-%m-%d')'2024-06-04'

日期和时间算术函数

函数描述示例
DATE_ADD向日期添加时间间隔DATE_ADD(DAY, 7, '2024-06-04')2024-06-11
DATE_SUB从日期减去时间间隔DATE_SUB(MONTH, 1, '2024-06-04')2024-05-04
ADD INTERVAL向日期添加时间间隔'2024-06-04' + INTERVAL 1 DAY2024-06-05
SUBTRACT INTERVAL从日期减去时间间隔'2024-06-04' - INTERVAL 1 MONTH2024-05-04
DATE_DIFF返回两个日期的差值DATE_DIFF(DAY, '2024-06-01', '2024-06-04')3
TIMESTAMP_DIFF返回两个时间戳的差值TIMESTAMP_DIFF(HOUR, '2024-06-04 10:00:00', '2024-06-04 15:00:00')5
MONTHS_BETWEEN返回两个日期的月数差MONTHS_BETWEEN('2024-06-04', '2024-01-04')5
DATE_BETWEEN检查日期是否在指定范围内DATE_BETWEEN('2024-06-04', '2024-06-01', '2024-06-10')true
AGE计算时间戳间或与当前时间的差值AGE('2000-01-01'::TIMESTAMP, '1990-05-15'::TIMESTAMP)9 years 7 months 17 days
ADD_MONTHS添加月份并保留月末日期ADD_MONTHS('2025-04-30',1)2025-05-31

日期和时间截断函数

函数描述示例
DATE_TRUNC将时间戳截断到指定精度DATE_TRUNC('month', '2024-06-04')2024-06-01
TO_START_OF_DAY返回一天的起始时间TO_START_OF_DAY('2024-06-04 12:30:45')2024-06-04 00:00:00
TO_START_OF_HOUR返回一小时的起始时间TO_START_OF_HOUR('2024-06-04 12:30:45')2024-06-04 12:00:00
TO_START_OF_MINUTE返回一分钟的起始时间TO_START_OF_MINUTE('2024-06-04 12:30:45')2024-06-04 12:30:00
TO_START_OF_MONTH返回月份的起始日期TO_START_OF_MONTH('2024-06-04')2024-06-01
TO_START_OF_QUARTER返回季度的起始日期TO_START_OF_QUARTER('2024-06-04')2024-04-01
TO_START_OF_YEAR返回年份的起始日期TO_START_OF_YEAR('2024-06-04')2024-01-01
TO_START_OF_WEEK返回一周的起始日期TO_START_OF_WEEK('2024-06-04')2024-06-03

日期和时间导航函数

函数描述示例
LAST_DAY返回月份的最后一天LAST_DAY('2024-06-04')2024-06-30
NEXT_DAY返回下个指定周几的日期NEXT_DAY('2024-06-04', 'SUNDAY')2024-06-09
PREVIOUS_DAY返回上个指定周几的日期PREVIOUS_DAY('2024-06-04', 'MONDAY')2024-06-03

其他日期和时间函数

函数描述示例
TIMEZONE返回当前时区TIMEZONE()'UTC'
TIME_SLOT返回时间槽TIME_SLOT('2024-06-04 12:30:45', 15, 'MINUTE')2024-06-04 12:30:00