DATE_TRUNC 函数

date_trunc(field, expr)

功能描述

DATE_TRUNC 函数用于将 timestamp 类型的数据按照指定的字段截断到特定的时间点。该函数能够根据不同的字段参数,将时间截断到年、季度、月、周、日、小时、分钟、秒、毫秒或微秒等不同级别。

参数说明

  • field (string类型): 表示截断的时间字段,常见的字段有 'YEAR', 'QUARTER', 'MONTH', 'WEEK', 'DAY', 'HOUR', 'MINUTE', 'SECOND', 'MILLISECOND' 和 'MICROSECOND',字段名称不区分大小写。
  • expr (date/timestamp_ltz/string类型): 表示要进行截断操作的时间数据。

返回类型

timestamp 类型。

使用示例

  1. 截断到指定年份的第一天(time 部分置零):
    SELECT date_trunc('YEAR', '2022-03-26 16:24:52.656');
    -- 返回结果:2022-01-01 00:00:00
  2. 截断到指定季度的第一天(time 部分置零):
    SELECT date_trunc('QUARTER', '2022-03-26 16:24:52.656');
    -- 返回结果:2022-01-01 00:00:00
  3. 截断到指定月份的第一天(time 部分置零):
    SELECT date_trunc('MONTH', '2022-03-26 16:24:52.656');
    -- 返回结果:2022-03-01 00:00:00
  4. 截断到指定周的星期一(time 部分置零):
    SELECT date_trunc('WEEK', '2022-03-26 16:24:52.656');
    -- 返回结果:2022-03-21 00:00:00
  5. 截断到指定日期(time 部分置零):
    SELECT date_trunc('DAY', '2022-03-26 16:24:52.656');
    -- 返回结果:2022-03-26 00:00:00
  6. 截断到指定小时(minute, second 和毫秒部分置零):
    SELECT date_trunc('HOUR', '2022-03-26 16:24:52.656');
    -- 返回结果:2022-03-26 16:00:00
  7. 截断到指定分钟(second 和毫秒部分置零):
    SELECT date_trunc('MINUTE', '2022-03-26 16:24:52.656');
    -- 返回结果:2022-03-26 16:24:00
  8. 截断到指定秒(毫秒部分置零):
    SELECT date_trunc('SECOND', '2022-03-26 16:24:52.656');
    -- 返回结果:2022-03-26 16:24:52

注意事项

  • 当 expr 参数为字符串类型时,确保字符串格式正确,否则可能导致函数执行失败。
  • 该函数对于时间的截断操作不会改变原始时间数据,仅返回截断后的时间结果。

联系我们
预约咨询
微信咨询
电话咨询