我正在尝试转换 datatime
中的 current_timestamp
列和 Microsoft SQL Server
列之间的日期差异
以下是我得到的编码和输出示例:
代码
select top 1
[Date & Time] = '2021-02-18 20:45:49.0000000'
,convert(varchar,DATEDIFF(dd,[Date & Time],CURRENT_TIMESTAMP)) + 'Days'
+ convert(varchar,DATEDIFF(HH,[Date & Time],CURRENT_TIMESTAMP) % 24) + 'Hours'
+ convert(varchar,DATEDIFF(MI,[Date & Time],CURRENT_TIMESTAMP) % 60) + 'Mins' as [Waiting Time]
from Invoices
电流输出
Date & Time | Waiting Time
2021-02-18 20:45:49.0000000 | 1Days15Hours0Mins
预期输出
Date & Time | Waiting Time
2021-02-18 20:45:49.0000000 | 0Days15Hours0Mins
谁能告诉我为什么我得到的是 1 days
而不是 0 days
?最终目标是将当前时间戳与发票日期和时间之间的日期差异转换为天小时和分钟格式。
答案 0 :(得分:0)
我已设法使用以下代码解决了上述问题:
convert(varchar(10),(DATEDIFF(s,[Date & Time],CURRENT_TIMESTAMP))/86400) + 'Days '
+ convert(varchar(10),((DATEDIFF(s,[Date & Time],CURRENT_TIMESTAMP))% 86400) /24) + 'Hours '
+ convert(varchar(10),(((DATEDIFF(s,[Date & Time],CURRENT_TIMESTAMP)) % 86400) %3600)/60) + 'Mins'