目录

描述

语法

SQL DATEDIFF使用说明

SQL DATEDIFF示例


描述

使用SQL DATEDIFF根据指定的日期部分返回两个日期之间的差异。该DATDIFF函数将此差值作为整数值返回。

该DATEDIFF函数返回两个日期之间的年数、月数、周数或天数。

DATEDIFF的一般形式是

DATEDIFF(date part, start value, end value)

其中date part对应于预定义日期部分的列表,例如年、月、周和日。

计算起始值和结束值之间的差值。

这个函数可能看起来有点复杂,但它在SQL中有很多实际用途,因此非常值得理解。

您可以使用它来计算账单逾期的天数,或两个日期之间的天数或周数。

考虑这个例子:

人力资源副总裁希望向所有员工颁发多年服务奖。她希望您制作一份所有服务超过十年的员工的报告。

为此,我们将使用该DATEDIFF报告来显示服务年数并过滤掉服务年限少于十年的人。

这是SQL

SELECT   NationalIDNumber,HireDate,DATEDIFF(year, HireDate, GETDATE()) YearsOfService
FROM     HumanResources.Employee
WHERE    DATEDIFF(year, HireDate, GETDATE()) >= 10
ORDER BY YearsOfService DESC

这里是结果

DATEDIFF结果

语法

DATADIFF ( datepart, startdate, enddate )。

SQL DATEDIFF使用说明

  • 作为第一个参数的datepart指示SQL DATEDIFF函数作为开始日期和结束日期之间的差值返回的值类型。日期部分参数的有效值列表包括年、月、日等。这些值也可以是缩写,例如yy表示一年,mm表示一个月。
  • 作为最后两个参数的开始日期和结束日期可以是date、datetime、datetimeoffset、datetime2、samlldatetime和time数据类型。
  • 该DATEDIFF函数的返回类型是一个int,表示开始日期和结束日期之间的差异。
  • 如果日期部分是日期,则SQL DATEDIFF函数将日期的时间部分设置为00:00:00。当指定为时间时,该DATEDIFF函数将缺少的日期部分设置为1900-01-01。
  • 如果开始日期和结束日期中的任何一个具有比另一个更多的时间部分,DATADIFF则将较小值的缺失部分设置为零。
  • 当日期值作为字符串传递时,SQL DATADIFF函数不支持YDM格式,因为它将文字字符串转换为datetime2数据类型。因此,日期值必须首先转换为datetime或smalldatetime数据类型,而不是作为字符串值传递。

SQL DATEDIFF示例

我们将使用Adventureworks2019数据库进行以下查询。

/* Answer */
SELECT DATEDIFF(MINUTE, '2021/05/01 06:00', '2021/05/01 11:14') AS DateDiffResult;

以下示例是一个简单的SQL DATEDIFF查询,以分钟为单位计算两个日期值之间的差异。

在下一个示例中,我们通过将SQL DATEDIFF函数应用于SalesOrderHeader表的OrderDate和DueDate列来计算订单交付的剩余天数。

/* Answer */
SELECT SalesOrderID, OrderDate, DueDate, DATEDIFF(day, OrderDate, DueDate) DaysLeft
FROM Sales.SalesOrderHeader

接下来,让我们将SQL DATEDIFF函数与聚合函数一起应用。对于每个职位,查询都会计算员工工作的最大年数。

/* Answer */
SELECT  JobTitle, DATEDIFF(year, MAX(HireDate), SYSDATETIME()) AS YearsEmployed
FROM HumanResources.Employee
GROUP BY JobTitle

上面的查询显示了职位和员工在该职位下工作的最大年数。MAX函数根据Group By子句指示的每个职位选择最大日期值。SYSDATETIME返回当前时间。在这里,SQL DATEDIFF计算雇用日期和当前时间之间的差异。

本文最初发布于SQL DATEDIFF Function (Transact SQL) - Essential SQL

https://www.codeproject.com/Articles/5326808/SQL-DATEDIFF-Function

SQL DATEDIFF函数相关推荐

  1. java datediff函数_sql DATEDIFF 函数

    sql  DATEDIFF 函数 今天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=0 昨天的所有数据:select ...

  2. mysql sql dateadd_在SQL语句中DATEADD和DATEDIFF函数

    在SQL语句中DATEADD和DATEDIFF函数 DateAdd函数 返回 返回包含一个日期的 Variant (Date),这一日期还加上了一段时间间隔. 语法 DateAdd(interval, ...

  3. Excel 2010 SQL应用073 DATEDIFF函数

    目录 源数据表 解决方案 DATEDIFF函数的使用 源数据表 部门 姓名 进司时间 生产制造部 康兴珍 2006/10/16 设备部 俞守林 2006/7/23 生产制造部 易仕华 2010/12/ ...

  4. SQL SERVER数据库datediff函数引发的性能问题

    今天,一哥们反馈系统很慢,很卡,让我远程看一下.我远程过去查了一下数据库系统,发现很多阻塞,语句都基本相似,并且表的数据也不大,只有10多万条记录. 1.问题分析: 本系统是sql server数据库 ...

  5. sql计算时间差的datediff()函数怎么用

    sql计算时间差的datediff函数怎么用 一.定义 二.语法 三.举例 一.定义 DATEDIFF() 函数返回两个日期之间的天数. 二.语法 DATEDIFF(datepart,startdat ...

  6. datediff函数怎么用(datediff函数怎么用sql)

    求DateDiff函数的基本用法,我们上VB课要用,顺便说一句哦,请不要去复制别人的答案哦,因为我都看了, 比如下面的代码在运行后窗体的标题显示本世纪过去了多少天 Private Sub Form_L ...

  7. SQL Server DATEDIFF() 函数(SQL计算时间差)

    select  *   from   task_list  where 1=1 and    datediff(dd,carateTime,getdate()) =0  定义和用法 DATEDIFF( ...

  8. SQL Server DATEDIFF() 函数计算时间差

    DATEDIFF() 函数返回两个日期之间的时间. 语法: DATEDIFF(datepart,startdate,enddate) datepart 参数可以是下列的值: ,但一些英文也是支持的,如 ...

  9. mysql sql语句 datediff_SQL语句中DateDiff函数说明

    函数简介: 返回 Variant (Long) 的值,表示两个指定日期间的时间间隔数目. 函数语法: DateDiff(interval, date1, date2[, firstdayofweek[ ...

最新文章

  1. 使用Tensor Expression张量表达式处理算子
  2. 绕过CDN查找真实IP 方法简介
  3. Java集合之ArrayList源码解析
  4. useradd、adduser和userdel在使用时的注意事项
  5. android Sqlite小记
  6. MIP技术交流分享(3月9日)
  7. 音乐播放器界面如何设计?
  8. 中国卫生健康统计年鉴(2006-2021年)
  9. c语言设计数独出题目及答案,c语言题目-数独-求大神解释题目意思和分析题目和代码知道...
  10. 利用评论信息的推荐综述
  11. Directx11教程四十六之FBX SDK
  12. 知识图谱和图神经网络
  13. MVVM理解 ——(2)数据劫持
  14. 低代码平台开发 python_【低筋面粉】低筋面粉的功效_低筋面粉图片_食材百科_美食杰...
  15. 让资源管理器变得像Chrome一样标签化
  16. 【python】学会这八个自动化脚本,摸鱼的借口那不就来啦~
  17. Python中os.listdir() 函数用法及实例
  18. Flutter,Android,java现在又来了个国产鸿蒙,字节跳动Android面试
  19. 如何去除视频里的声音?
  20. 你不在意的HTTPS证书吊销机制

热门文章

  1. 生产者消费者算法的简单实现
  2. mysql sql between,数据库between的用法
  3. 微博群发私信 php,PHP下使用Redis消息队列发布微博
  4. Connection timed out:connect
  5. CentOS 7 压缩包安装MySQL(教程+一键完成脚本)
  6. (myconnpy出现,pymysql可以入冷宫了)打个小补丁,让pymysql正确处理日期类型和NULL类型 - MK2 - 博客园...
  7. 超简单版模拟实现银行中用户存取款业务
  8. 报错的解决 sqlite3.OperationalError: unrecognized token: “630008.OF“
  9. GRU(Gated recurrent unit)
  10. AFEchidna示例16 -- 如何计算各种遗传参数及其标准误差