gpt4 book ai didi

sql - 如何在两列时间类型之间获取时间?

转载 作者:行者123 更新时间:2023-12-01 09:06:47 25 4
gpt4 key购买 nike

我在 SQL Server 中有一个表

id int, 
enters time,
left time,
date datetime,
user varchar(50)

现在我想获取 enterslefts 之间的时间差,但我收到以下错误消息:

Msg 8117, Level 16, State 1, Line 1
Operand data type time is invalid for subtract operator.

我怎样才能知道时间已经过去了?
例如,如果用户在 8.00 进入并在 9.15 离开,我需要得到 1.15。
我该怎么做?

最佳答案

declare @MyTable table(enters time, lefttime time)
insert @MyTable values('8:00', '9:05')

select *,
cast(datediff(hour, enters, lefttime) as varchar) + ':' +
right('0' + cast(datediff(minute, enters, lefttime) % 60 as varchar), 2)
from @MyTable

[编辑]

添加了 0 填充以避免显示 1:5,而不是 1:05


另一种方法:

select cast(dateadd(minute, datediff(minute, enters, lefttime), 0) as time)
from @MyTable

结果将是 time 类型,而不是 varchar

关于sql - 如何在两列时间类型之间获取时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6486090/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com