跳到主要内容

日期与时间函数

本文按功能分类整理了 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'
CONVERT_TIMEZONE转换时间戳至目标时区CONVERT_TIMEZONE('America/Los_Angeles', '2024-11-01 11:36:10')2024-10-31 20:36:10

日期与时间算术函数

函数描述示例
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
TIME_SLICE时间分片TIME_SLICE('2024-06-04', 4, 'MONTH', 'START')2024-05-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