我要time
值添加到現有的SQL Server中使用T-SQL datetime
值2012如何添加日期時間字段有時間字段
我想,DATEADD功能它可能是一個解決方案,但它是不...
也許我有某種方式time
轉換爲datetime
?
所以不得不
開始日期2013年2月18日18:34:40.330(日期時間)
間隔00:11:00.0000000(時間)
結束日期? tsql? (日期時間)
任何線索?
我要time
值添加到現有的SQL Server中使用T-SQL datetime
值2012如何添加日期時間字段有時間字段
我想,DATEADD功能它可能是一個解決方案,但它是不...
也許我有某種方式time
轉換爲datetime
?
所以不得不
開始日期2013年2月18日18:34:40.330(日期時間)
間隔00:11:00.0000000(時間)
結束日期? tsql? (日期時間)
任何線索?
嘗試類似這樣的事情。注:我沒有采取毫秒這裏
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)
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);
結果:現在
EndDate
-----------------------
2013-02-18 18:45:40.330
,你真的不應該在time
列存儲間隔。 time
旨在表示時間點,而不是持續時間。當間隔> = 24小時時會發生什麼?您應該存儲事件的開始時間和結束時間(這些事情通常至少與持續時間相關),並且始終可以計算這些時間點的持續時間。
我最近一直在使用Azure-DB,並嘗試下面的代碼。這並不在SQL 2012年工作 看到這個職位上SQL最新算術更多的信息: Difference in datetime and time arithmetic in Azure-DB vs. sql-server 2008R2
我有點遲到了,但由於明顯的方式做到這一點是缺少...
DECLARE @StartDate datetime
DECLARE @Interval time
DECLARE @EndDate datetime
SET @StartDate = '2013-02-18 18:34:40.330'
SET @Interval = '00:11:00.000000'
SET @EndDate = @StartDate + @Interval
SELECT @StartDate StartDate, @Interval Interval, @EndDate EndDate
Output:
StartDate Interval EndDate
2013-02-18 18:34:40.330 00:11:00.0000000 2013-02-18 18:45:40.330
感謝您的最後一段!是的,我存儲間隔<24小時。 – 2013-03-05 16:09:54
但是,將間隔*作爲「時間」存儲的意義何在?爲什麼不儲存秒數? – 2013-03-05 16:10:57
當我們有用戶直接輸入的靜態表格時,用時間來存儲是非常有益的,因此它更易於理解。使用DATEDIFF獲得秒數非常聰明。謝謝。 – 2013-10-20 16:12:11