在SQL中添加两个时间戳

时间:2012-04-11 23:14:02

标签: sql sql-server-2005

我在sql date1 varchar(4)date2 varchar(4)中有两个字段。日期格式仅为HHmm,其中HH是小时,mm是分钟。

在SQL中,我们可以将两个时间戳一起添加并计算出多少小时和分钟?

e.g。

date1 = 0230  date2 = 0145 will total 0415
date1 = 0030  date2 = 0035 will total 0105

4 个答案:

答案 0 :(得分: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)

答案 1 :(得分:0)

不确定这些是真正的时间戳,什么不能将它们存储为整数?

无论如何..不确定是否有一个mysql函数。 您可以浏览:http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html 不确定它会提供多少帮助。 如果你将它们存储为秒,那么你可以简单地让mysql添加它们,否则将它们拉入脚本,将它们转换为秒,将它们一起添加,然后根据需要转换为更易读的格式。

答案 2 :(得分:0)

试试这个(使用时间或日期时间):

 select ADDTIME(time1,time2);

在mysql中,时间的格式为

'01:02:03'

和日期时间是

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

答案 3 :(得分:0)

如果您碰巧使用SQL Server,您也可以使用此处所述的DATEDIFF函数:http://msdn.microsoft.com/en-us/library/ms189794.aspx

这将让您获得日期时间值的任何部分之间的差异。 DATEADD也可以用于此,具体取决于您希望如何处理它。