将日期时间转换为天数; sql中的分钟和小时

时间:2021-02-19 11:51:15

标签: sql-server casting timestamp

我正在尝试转换 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?最终目标是将当前时间戳与发票日期和时间之间的日期差异转换为天小时和分钟格式。

1 个答案:

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