我有一个DATEDIFF结果(以分钟为单位),我将其除以1440计算为天数,我希望在其结尾添加“小时”,但无法弄清楚如何将结果首先转换为字符串。< / p>
DATEDIFF(mi,z.entryDate, GETDATE()) / 1440
这会返回11,但我希望它能读到11小时。
我曾尝试过CAST AS VARCHAR,但认为我的语法错了。请帮助:)
答案 0 :(得分:3)
几天:
CONVERT(varchar(11), DATEDIFF(minute, z.entryDate, GETDATE()) / 1440) + ' Days'
几个小时:
CONVERT(varchar(11), DATEDIFF(minute, z.entryDate, GETDATE()) / 60) + ' Hours'
答案 1 :(得分:1)
要获得小时数(当然是四舍五入),你将除以60,而不是1440:
SELECT CONVERT(VARCHAR(11), (DATEDIFF(MINUTE, z.entryDate, GETDATE()) / 60))
+ ' hours.' FROM ...;
如果你想除以1440,那么结果是几天而不是几小时:
SELECT CONVERT(VARCHAR(11), (DATEDIFF(MINUTE, z.entryDate, GETDATE()) / 1440))
+ ' days.' FROM ...;
请停止使用mi
简写(blog post for background)之类的内容并转换为varchar
,不得有长度(blog post for background)。
答案 2 :(得分:0)
我对上一篇文章感到抱歉。
这应该工作: -
cast((DATEDIFF(mi,z.entryDate, GETDATE()) / 1440) as nvarchar) + ' Hours'