计算日期/时间变量的时差

时间:2019-01-11 16:48:23

标签: sql sql-server datetime

我有两个变量“ triage_date_time”和“ checkin_date_time”。两者的格式都例如为2018-12-31 14:13:00。在一个单元格中同时显示年月日和时分秒。

我想创建一个变量,该变量计算从签入到分类的时间。

我尝试使用以下代码:

SELECT DISTINCT datediff(minute, 'triage_date_time', 'checkin_date_time') as 
checkin_to_triage

但是,运行此代码时,出现以下错误...“从字符串转换日期和/或时间时转换失败”。

关于如何编写代码以计算这两个变量的微小差异的任何建议。

谢谢!

3 个答案:

答案 0 :(得分:4)

一个问题显然是单引号。假设您正在使用SQL Server,则变量以@开头。所以:

select datediff(minute, @triage_date_time, @checkin_date_time) as checkin_to_triage

如果您很困惑并且真的是要在表格中查看列,那么:

select datediff(minute, triage_date_time, checkin_date_time) as checkin_to_triage
from t;

答案 1 :(得分:2)

可能是您的字段是CHARACTER数据类型吗? 将您的字符转换为日期时间

SELECT DISTINCT datediff(minute, CAST(triage_date_time AS datetime), CAST(checkin_date_time AS datetime)) as checkin_to_triage 

答案 2 :(得分:1)

尝试使用此查询

DECLARE @triage_date_time DATETIME = '20181231 14:13:00' 
DECLARE @checkin_date_time DATETIME = '20181231 16:13:00'  

SELECT DATEDIFF (MINUTE, @triage_date_time, @checkin_date_time) AS 'checkin_to_triage'

输出:

checkin_to_triage

120