更新时间:2026-07-03 GMT+08:00
分享

datetrunc

datetrunc函数用于计算将日期date按照datepart指定的时间单位进行截取后的日期值。

截取datepart之前的部分,除截取的部分外自动填充为默认值。可参考示例代码

命令格式

datetrunc (string date, string datepart)

参数说明

表1 参数说明

参数

是否必选

参数类型

说明

date

DATE

STRING

代表起始日期。

格式为:

  • yyyy-mm-dd
  • yyyy-mm-dd hh:mi:ss
  • yyyy-mm-dd hh:mi:ss.ff3

datepart

STRING

代表需要返回的时间单位。

参数datepart支持扩展的日期格式:年-year、月-month或-mon、日-day和小时-hour。

  • yyyy代表年份。
  • mm代表月份。
  • dd代表天。
  • hh代表小时。
  • mi代表分钟。
  • ss代表秒。

返回值说明

返回DATE或STRING类型的日期值。

  • date非DATE或STRING类型时,返回报错,错误信息:data type mismatch;
  • date为DATE或STRING类型,但不符合日期值的入参格式时,返回NULL;
  • datepart值为NULL时,返回NULL。
  • 当datepart指定为时(hh)、分(mi)、秒(ss)时,按天(DD)级别截取返回。

示例代码

静态数据示例

  • 示例1:
    select datetrunc('2023-08-14 17:00:00', 'yyyy');

    返回2023-01-01 00:00:00。

  • 示例2:
    select datetrunc('2023-08-14 17:00:00', 'month');

    返回2023-08-01 00:00:00。

  • 示例3:
    select datetrunc('2023-08-14 17:00:00', 'DD');

    返回2023-08-14。

  • 示例4:
    select datetrunc('2023-08-14', 'yyyy');

    返回2023-01-01。

  • 示例5:
    select datetrunc('2023-08-14 17:11:11', 'hh');

    返回2023-08-14 17:00:00。

  • 示例6:
    select datetrunc('2023-08-14', null);

    返回None。

相关文档