Man*_*ndi 1 sql t-sql sql-server
我在DB中有几个小时(06:42,9:30,...).我想从08:00减去小时数
我尝试了以下查询
Select totalhrsinside as hour,convert(varchar, dateadd(minute, -8, totalhrsinside), 100) as diff from table_name
Run Code Online (Sandbox Code Playgroud)
但它没有按预期工作
输出应该是
hour diff
06:42 -01:18
09:30 01:30
Run Code Online (Sandbox Code Playgroud)
我认为你正在寻找时间上的差异,而不是减去或添加.
SELECT Hours
, CONCAT(
CASE WHEN SIGN(diff) = -1 THEN '-' END
, FORMAT(ABS(diff/60), '0#')
, ':'
, FORMAT(ABS(diff%60), '0#')
) diff
FROM (
SELECT '6:42' Hours, DATEDIFF(MINUTE, '8:00', '6:42') diff UNION ALL
SELECT '9:30' Hours, DATEDIFF(MINUTE, '8:00', '9:30') diff
) D
Run Code Online (Sandbox Code Playgroud)
结果:
+-------+-------+
| Hours | diff |
+-------+-------+
| 6:42 | -01:18 |
| 9:30 | 01:30 |
+-------+-------+
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
993 次 |
| 最近记录: |