将DATEDIFF结果转换为字符串,以将另一个字符串连接到它

时间:2013-12-30 22:46:38

标签: sql-server datediff

我有一个DATEDIFF结果(以分钟为单位),我将其除以1440计算为天数,我希望在其结尾添加“小时”,但无法弄清楚如何将结果首先转换为字符串。< / p>

DATEDIFF(mi,z.entryDate, GETDATE()) / 1440 

这会返回11,但我希望它能读到11小时。

我曾尝试过CAST AS VARCHAR,但认为我的语法错了。请帮助:)

3 个答案:

答案 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'