首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从存储为Char的时间计算持续时间(4)

从存储为Char的时间计算持续时间(4)
EN

Stack Overflow用户
提问于 2020-10-16 00:09:16
回答 5查看 44关注 0票数 0

我正在尝试计算服务的持续时间,其中表中的时间存储为Char(4) HHMM。例如,开始时间为1402,即14:02,结束时间为1536,即15:36。

我需要它返回94分钟的持续时间。当我尝试将其转换为数字并减去时,我得到134。我试图转换为时间,但我尝试的每个示例都会给我一个转换类型的消息。

EN

回答 5

Stack Overflow用户

发布于 2020-10-16 00:10:47

只需将值转换为time,然后使用DATEDIFF

代码语言:javascript
复制
SELECT DATEDIFF(MINUTE, CONVERT(time,STUFF(StartTime,3,0,':')),CONVERT(time,STUFF(EndTime,3,0,':')))
FROM dbo.YourTable;
票数 1
EN

Stack Overflow用户

发布于 2020-10-16 00:11:59

您可以使用字符串函数和算术:

代码语言:javascript
复制
select t.*,
    (left(starttime, 2) * 60 + right(starttime, 2) - left(endtime, 2) * 60 - left(endtime)) / 60 minutes_diff
from mytable t

这会将字符串转换为秒数,减去这些值,然后再转换回分钟。

票数 1
EN

Stack Overflow用户

发布于 2020-10-16 00:12:43

您可以将差值转换为分钟,然后将其添加回零时间:

代码语言:javascript
复制
select convert(time,
               dateadd(minute,
                       (((et / 100) * 60) + (et % 60)) -  (((st / 100) * 60) + (st % 60)),
                       0)
              )
from (values (1402, 1536)) v(st, et);

Here是一个db<>fiddle。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64375590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档