Tutorialsteacher

关注我们

文章
  • C#
  • C# 面向对象编程
  • ASP.NET Core
  • ASP.NET MVC
  • LINQ
  • 控制反转 (IoC)
  • Web API
  • JavaScript
  • TypeScript
  • jQuery
  • Angular 11
  • Node.js
  • D3.js
  • Sass
  • Python
  • Go lang
  • HTTPS (SSL)
  • 正则表达式
  • SQL
  • SQL Server
  • PostgreSQL
  • MongoDB
  • SQL Server - 入门
  • 安装 SQL Server
  • SQL Server Management Studio
  • SQL Server - Windows 身份验证
  • SQL Server - 身份验证
  • SQL Server - 创建新用户
  • SQL Server - 授予/撤销用户权限
  • SQL Server - 数据类型
  • SQL Server - 命名约定
  • SQL Server - 创建数据库
  • SQL Server - 创建表
  • 添加列
  • 标识列
  • 重命名列、表
  • 删除列
  • SQL Server - 架构
  • SQL Server - 表关系
  • SQL Server - 主键
  • 修改/删除主键
  • SQL Server - 外键
  • 修改/删除外键
  • SQL Server - 检查约束
  • SQL Server - 唯一约束
  • SQL Server - 视图
  • 修改/删除视图
  • SQL Server - 函数
  • SQL Server - 存储过程
  • 存储过程参数
  • SQL Server - 索引
  • 非聚集索引
  • 修改/删除索引
  • SQL Server - 触发器
  • DDL 触发器
  • LOGON 触发器
  • 启用/禁用触发器
  • 修改/删除触发器
  • SQL Server - 序列
  • SQL Server - 同义词
  • SQL Server - IF ELSE 语句
  • SQL Server - 循环
  • SQL Server - 插入数据
  • SQL Server - 更新数据
  • SQL Server - 删除数据
  • SQL Server - SELECT 查询
  • WHERE 子句
  • GROUP BY 子句
  • HAVING 子句
  • ORDER BY 子句
  • SQL Server - 内连接
  • 左连接
  • 右连接
  • 全连接
  • 自连接
  • 动态 SQL
  • 内置函数
Entity Framework Extensions - 提升 EF Core 9
  批量插入
  批量删除
  批量更新
  批量合并

SQL Server DATEDIFF() 函数

在 SQL Server 中,DATEDIFF() 函数以整数形式返回指定开始日期和结束日期之间的差值。它可以是基于传递的 datepart 参数的天、月、周、小时、秒等之间的差值。

语法

DATEDIFF(datepart, startdate, enddate)

参数

datepart: 它是日期的部分,例如日、月、年、周等。它是 DATEDIFF() 函数返回开始日期和结束日期之间差值的单位,例如,如果 datepart 是日,则它返回以日为单位的差值。

DatepartDatepart 缩写
年y, yy, yyyy
季度qq, q
月mm, m
一年中的第几天dy
日dd, d
周wk, ww
小时hh
分钟mi, n
秒ss, s
毫秒ms
微秒mcs
纳秒ns

startdate: 起始日期时间值。

enddate: 结束日期时间值。

差值将计算为 startdate - enddate。startdate 和 enddate 必须是可解析为 DATE、DATETIME、TIME、SMALLDATETIME、DATETIMEOFFSET 类型的格式。

返回值

返回一个整数值,该整数值是指定开始日期和结束日期之间的差值。

如果结果超出整数范围(-2,147,483,648 到 +2,147,483,647),则返回错误。使用 DATEDIFF_BIG() 函数来处理 startdate 和 enddate 值之间的较大差值。

如果开始日期和结束日期都是时间值且 datepart 不是时间 datepart,则 DATEDIFF() 返回零。

DATEDIFF() 使用 startdate 或 enddate 的时区偏移量组件来计算返回值。

获取日期之间的天数差

示例:DATEDIFF()
SELECT DATEDIFF(day, '01/10/2022 4:23:00', '01/11/2022 8:23:00') AS ReturnDate

在下面的示例中,startdate 大于 enddate,因此 DATEDIFF() 函数返回一个负值。

示例:DATEDIFF()
SELECT DATEDIFF(day, '12/23/22', '01/11/2022') AS ReturnDate

将 DATEDIFF() 与列一起使用

在下面的示例中,DATEDIFF() 函数与 Employee 表的 HireDate 列和返回当前日期时间值的 GETDATE() 函数一起使用。它返回从员工的入职日期起经过的月数,以及 EmployeeId 和 FirstName。

示例:DATEDIFF() 与列一起使用
SELECT EmployeeID, FirstName, DATEDIFF(mm, HireDate, GETDATE()) AS TimeInMonths
FROM Employee

获取时间之间的差值

当 datepart 参数为 HH、MI 和 SS 时,DATEDIFF() 函数还可以返回指定时间值之间的差值。

示例:DATEDIFF() 与时间值一起使用
select datediff(HH,'3:22:59','4:23:50') as HoursDiff, 
datediff(MI,'3:20:59','4:23:50') as MinsDiff,
datediff(SS,'4:22:59', '4:23:50') as SecDiff;
TUTORIALSTEACHER.COM

TutorialsTeacher.com 是您权威的技术教程来源,旨在通过循序渐进的方法,指导您掌握各种网络和其他技术。

我们的内容旨在帮助所有水平的学习者轻松快速地学习技术。通过访问此平台,您即表示已审阅并同意遵守我们的使用条款和隐私政策,这些条款和政策旨在保护您的体验和隐私权利。

[email protected]

关于我们使用条款隐私政策
copywrite-symbol

2024 TutorialsTeacher.com. (v 1.2) 版权所有。