2012-04-11 193 views
0

我在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 
+1

僅供參考,指定DBMS問題標籤並不是一個壞主意。 – 2012-04-11 23:30:51

+0

對不起,沒有看到你可以在編輯中添加額外的標籤 – fes 2012-04-11 23:32:59

回答

2
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) 
+0

謝謝這正是我想要的。要走子串路線,但左右是完美的。 – fes 2012-04-12 00:21:59

0

不確定這些是否真的是時間戳,什麼不把它們存儲爲整數?

無論如何..不知道有一個這樣的mysql函數。 你可以瀏覽:http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html 不知道它會提供很多幫助。 如果您將它們存儲爲秒,那麼您可以簡單地將它們添加到它們中,否則將它們拖入腳本中,將它們轉換爲秒,將它們添加在一起,然後根據需要轉換爲更易讀的格式。

+0

OP不使用mysql。 – 2012-04-11 23:33:34

+0

布拉德它的遺產,因此我只需要能夠做操縱。我想我可能只需要使用子字符串,並拆分小時和分鐘,然後工作 – fes 2012-04-11 23:34:17

0

試試這個(使用時間或日期時間):

select ADDTIME(time1,time2); 

在MySQL的時間是形式的

'01:02:03' 

和日期時間

'2003-12-31 01:02:03' 
+0

OP不使用MySQL。 – 2012-04-11 23:33:56

0

如果你碰巧在使用SQL Server時,您也可以使用此處所述的DATEDIFF功能:http://msdn.microsoft.com/en-us/library/ms189794.aspx

這將讓你得到日期時間值的任何部分之間的差異。根據你想要如何處理它,DATEADD也可以用於此。

+0

OP具有'varchar'值。不'日期時間' – 2012-04-11 23:34:20