SQL 两次之间的差异(以秒为单位)

Posted

技术标签:

【中文标题】SQL 两次之间的差异(以秒为单位)【英文标题】:SQL Difference between two times in seconds 【发布时间】:2016-06-29 23:12:51 【问题描述】:
SELECT   Warehouses.Name,
         RIGHT(CONVERT(VARCHAR,AirwayBillTrucks.CheckOutTime,100),7) AS CheckOutTime,
         RIGHT(CONVERT(VARCHAR,AirwayBillTrucks.ReturnTime,100),7) AS ReturnTime

这是我的一段代码,CHECKOUTTIME 和 RETURNTIME 曾经是 DATETIME DD-DD-YYYY HH-MM-SS 但我将它们转换为 TIME HH-MM-SS tt 这对我来说很好。现在我需要在几秒钟内知道这两列之间的差异,

【问题讨论】:

您是说您对这些列使用 TIME 数据类型吗?如果是这样,您如何使用 23:30 和第二天 01:30 的时间? @FLICKER 我做到了 12 小时。 @AbleTech。我还是不明白你怎么知道 09:34 是今天还是第二天?除非您有另一个字段告诉您它们是否在同一天。只是好奇。 @FLICKER 是的我有另一个字段两个字段我又做了两列并称它们为 expr1 和 expr2(日期时间)但这仅供参考,我没有不知道这是否 9 的问题:30 如果从今天或明天开始,因为我想做的就是每月获得一个平均值。 在大多数情况下,丢失日期信息并在字段中只保留时间信息是错误的。它并不总是错误的,但它经常是错误的。 Flicker 观察到,如果您只有时间信息,则无法正式确定事件之间的天数,因此您的答案可能会相差 86,400 秒(一天中的秒数)的倍数。使用 12 小时制只会让事情变得更糟。 【参考方案1】:
SELECT DATEDIFF(ss,CheckOutTime,CheckInTime)

【讨论】:

以上是关于SQL 两次之间的差异(以秒为单位)的主要内容,如果未能解决你的问题,请参考以下文章

使用 JOOQ 在 PostgreSQL 中以秒为单位查找和求和时间戳之间的差异

如何检查两个日期之间的差异(以秒为单位)?

SQL Datediff 以秒为单位,带小数位

SQL,在计算两次之间的差异时插入表

从 unix_time yyyy-MM-dd HH:mm:ss 计算 start_time 和 end_time 之间的差异(以秒为单位)

100K+ 行数据集中的日期时间差(以秒为单位)