Dev*_*per 5 t-sql sql-server time datetime sql-server-2012
我必须使用SQL Server 2012中的T-SQL time
为现有datetime
值增加值.
我在想DATEADD功能它可能是一个解决方案,但它不是......
也许我以某种方式time
转换为datetime
?
所以我有
StartDate 2013-02-18 18:34:40.330(datetime)
间隔时间00:11:00.0000000(时间)
结束日期 ?tsql?(约会时间)
任何线索?
Aar*_*and 22
DECLARE @d DATETIME = '2013-02-18T18:34:40.330',
@t TIME(7) = '00:11:00.0000000';
SELECT EndDate = DATEADD(SECOND, DATEDIFF(SECOND, 0, @t), @d);
Run Code Online (Sandbox Code Playgroud)
结果:
EndDate
-----------------------
2013-02-18 18:45:40.330
Run Code Online (Sandbox Code Playgroud)
现在,你真的不应该在一个列中存储间隔time
.time
用于表示某个时间点,而不是持续时间.间隔> = 24小时会发生什么?您应该存储事件的开始时间和结束时间(这些事件通常至少与持续时间相关),并且您始终可以从这些点计算持续时间.
尝试这样的事情.注意:我这里不花几毫秒
declare @dt datetime = getdate()
declare @t time = '01:35:45'
select dateadd(second,
datepart(hour,@t) * 3600 +
datepart(minute,@t) * 60 +
datepart(second,@t),
@dt)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11948 次 |
最近记录: |