领先的免费Web技术教程,涵盖HTML到ASP.NET

网站首页 > 知识剖析 正文

SQL|datediff与date_diff的不同 sqldatetime溢出什么意思

nixiaole 2024-11-12 13:45:20 知识剖析 21 ℃


今天来总结一下平时常用的时间差函数,主要用来计算各纬度时间之间的gaps ,即datediff函数与和date_diff函数,它们的不同归纳总结为如下三点,需要的友友们可以收藏起来啦,差异描述如下:

【1】datediff语法

datediff(string enddate,string startdate)

返回值: int

说明: 返回结束日期减去开始日期的天数?。

实例?

SELECT datediff('2009-07-30', '2009-07-31'); 结果是:-1
SELECT datediff('2009-07-31', '2009-07-30'); 结果是:1


【2】date_diff语法

date_diff(datepart,startdate,enddate)函数

说明:datediff()函数的拓展函数,用于计算startdate与enddate两个日期的差值,按照datepart维度进行统计。

SELECT DATE_DIFF('second',cast('2008-12-29' as date),cast('2008-12-30' as date)) AS DiffDate
SELECT DATE_DIFF('day',cast('2007-12-29' as date),cast('2008-12-30' as date)) AS DiffDate
SELECT DATE_DIFF('month',cast('2007-12-29' as date),cast('2008-12-30' as date)) AS DiffDate


第1点不同:datediff只支持unit为day级别的比较,在它的输入中time部分就被忽略;而date_diff支持到second级别的比较


第2点不同:datediff的返回值为int类型,而date_diff返回值为string类型,还有函数中开始和结束时间的顺序不同。


第3点不同:datediff输入有三种类型,而date_diff的输入只能为string类型。


注:

本人在日常SQL查询里使用date_diff函数较多,在XT开发里用datediff函数较多,在HIVE和presto里都可以跑通,你们在使用时需要多注意这两个函数在使用方面的差异[2023]

最近发表
标签列表