我有一个类型的变量TIME,我需要将此变量的时间除以2.
我的SQL代码:
DECLARE @TEMPO AS TIME = '01:31:00'
SELECT (@TEMPO / 2 ) AS RESULT
--the result should be: 00:45:30
Run Code Online (Sandbox Code Playgroud)
但SQL Server会抛出错误:
操作数类型冲突:时间与int不兼容
欢迎各方面的帮助!
使用TIMEFROMPARTS(SQL Server 2012+):
DECLARE @TEMPO AS TIME = '01:31:00';
DECLARE @i INT = DATEDIFF(s, '00:00:00',@TEMPO)/2;
SELECT TIMEFROMPARTS(@i/3600%60, @i/60%60 ,@i%60,0,0);
-- 00:45:30
Run Code Online (Sandbox Code Playgroud)
另一个选择是将时间转换为datetime,然后转换为float,然后除以二。
例
DECLARE @TEMPO AS TIME = '01:31:00'
Select convert(time,convert(datetime,convert(float,convert(datetime,@Tempo))/2))
Run Code Online (Sandbox Code Playgroud)
退货
00:45:30.0000000
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
102 次 |
| 最近记录: |