
# datediff
datediff函数用于计算两个时间date1、date2的日期差值。
相似函数：[datediff1](https://support.huaweicloud.com/sqlref-spark-dli/dli_spark_datediff1.html)，datediff1函数用于计算两个时间date1、date2的差值，将差值以指定的时间单位datepart表示。
#### 命令格式
```
datediff(string date1, string date2)
```
#### 参数说明
表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   |
   
#### 返回值说明
返回BIGINT类型。
![](https://support.huaweicloud.com/sqlref-spark-dli/public_sys-resources/note_3.0-zh-cn.png)
- date1、date2非DATE或STRING类型时，返回报错，错误信息：data type mismatch。
- date1、date2为DATE或STRING类型，但不符合日期值的入参格式时，返回NULL。
- 如果date1小于date2，返回值为负数。
- date1或date2值为NULL时，返回NULL。
 
#### 示例代码
返回10。
```
select datediff('2023-06-30 00:00:00', '2023-06-20 00:00:00');
```
返回11。
```
select datediff(date '2023-05-21', date '2023-05-10');
```
返回NULL。
```
select datediff(date '2023-05-21', null);
```
