sql - 计算时间跨过午夜时的时差
问题描述
我正在尝试计算时间跨过午夜的时差。
(09:00pm 和 01:00am 之间的差异)
使用 Microsoft SQL,无法识别 datetrunc()。
目前使用的代码是
datediff(minute, S.Start_, S.End_)/60
解决方案
最好的方法是将两个值都设置为 DateTime,然后您可以获得实际值,作为一种解决方法,您可以假设如果结束时间低于开始时间,则表示它指的是第二天,但它会受到限制到 23 小时(如果使用 <=,则为 24)
DECLARE @start TIME = '21:00'
DECLARE @end TIME = '01:00'
SELECT DATEDIFF(HOUR, @start , @end) + CASE WHEN @end < @start THEN 24 ELSE 0 END
推荐阅读
- java - 动态 Web 项目中的 JDBC 驱动程序问题
- python - 如何从熊猫的时间序列数据中获取斜率?
- java - java上的随机几何形状的数组任务
- apache-spark-sql - 如何通过启用 HiveSupport 在 windows10 上本地运行 spark-sql 程序时修复异常?
- python - 字典列表中的列表理解
- risc - RISC - 禁止指令序列
- autodesk-forge - Autodesk Forge 检索/更新自定义属性
- php - 图片链接失效
- mysql - 无法在“intellij idea”中加载 JDBC 驱动程序类“com.mysql.jdbc.Driver”
- html - css位置:同一行上的块