更新时间:2023-11-03 GMT+08:00

datediff1

datediff1函数用于计算两个时间date1、date2的差值,将差值以指定的时间单位datepart表示。

相似函数:datediff,datediff函数用于计算两个时间date1、date2的日期差值,不支持指定返回的时间单位。

命令格式

datediff1(string date1, string date2, string datepart)

参数说明

表1 参数说明

参数

是否必选

参数类型

说明

date1

DATE

STRING

计算两个时间date1、date2的日期差值中的被减数。

格式为:

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

date2

DATE

STRING

计算两个时间date1、date2的日期差值的减数。

格式为:

  • 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或yyyy代表年份。
  • MM代表月份。
  • mm代表分钟。
  • dd代表天。
  • HH代表24小时制时。
  • hh代表12小时制时。
  • mi代表分钟。
  • ss代表秒。
  • SSS代表毫秒

返回值说明

返回BIGINT类型。

  • date1、date2非DATE或STRING类型时,返回报错,错误信息:data type mismatch;
  • date1、date2为DATE或STRING类型,但不符合日期值的入参格式时,返回NULL;
  • 如果date1小于date2,返回值为负数。
  • date1或date2值为NULL时,返回NULL。
  • datepart值为NULL时,返回NULL。

示例代码

返回14400。

select datediff1('2023-06-30 00:00:00', '2023-06-20 00:00:00', 'mi');

返回10。

select datediff1(date '2023-06-21', date '2023-06-11', 'dd');

返回NULL。

select datediff1(date '2023-05-21', date '2023-05-10', null);

返回NULL。

select datediff1(date '2023-05-21', null, 'dd');