我在sql date1 varchar(4)
和date2 varchar(4)
中有兩個字段。日期格式僅爲HHmm
,其中HH是小時,mm是分鐘。在SQL中添加兩個時間戳
無論如何,在SQL中我們可以將兩個時間戳添加在一起並計算出多少小時和幾分鐘?
例如
date1 = 0230 date2 = 0145 will total 0415
date1 = 0030 date2 = 0035 will total 0105
我在sql date1 varchar(4)
和date2 varchar(4)
中有兩個字段。日期格式僅爲HHmm
,其中HH是小時,mm是分鐘。在SQL中添加兩個時間戳
無論如何,在SQL中我們可以將兩個時間戳添加在一起並計算出多少小時和幾分鐘?
例如
date1 = 0230 date2 = 0145 will total 0415
date1 = 0030 date2 = 0035 will total 0105
declare @d1 varchar(4), @d2 varchar(4), @dif int
set @d1 = '0230'
set @d2 = '0145'
set @dif = (CAST(left(@d1, 2) as int) * 60) + (CAST(left(@d2, 2) as int) * 60) + CAST(right(@d1, 2) as int) + CAST(right(@d2, 2) as int)
select RIGHT('00' + cast(floor(@dif/60) as varchar), 2) + RIGHT('00' + CAST(@dif % 60 as varchar),2)
謝謝這正是我想要的。要走子串路線,但左右是完美的。 – fes 2012-04-12 00:21:59
不確定這些是否真的是時間戳,什麼不把它們存儲爲整數?
無論如何..不知道有一個這樣的mysql函數。 你可以瀏覽:http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html 不知道它會提供很多幫助。 如果您將它們存儲爲秒,那麼您可以簡單地將它們添加到它們中,否則將它們拖入腳本中,將它們轉換爲秒,將它們添加在一起,然後根據需要轉換爲更易讀的格式。
OP不使用mysql。 – 2012-04-11 23:33:34
布拉德它的遺產,因此我只需要能夠做操縱。我想我可能只需要使用子字符串,並拆分小時和分鐘,然後工作 – fes 2012-04-11 23:34:17
試試這個(使用時間或日期時間):
select ADDTIME(time1,time2);
在MySQL的時間是形式的
'01:02:03'
和日期時間
'2003-12-31 01:02:03'
OP不使用MySQL。 – 2012-04-11 23:33:56
如果你碰巧在使用SQL Server時,您也可以使用此處所述的DATEDIFF功能:http://msdn.microsoft.com/en-us/library/ms189794.aspx
這將讓你得到日期時間值的任何部分之間的差異。根據你想要如何處理它,DATEADD也可以用於此。
OP具有'varchar'值。不'日期時間' – 2012-04-11 23:34:20
僅供參考,指定DBMS問題標籤並不是一個壞主意。 – 2012-04-11 23:30:51
對不起,沒有看到你可以在編輯中添加額外的標籤 – fes 2012-04-11 23:32:59