0

我在 sqldate1 varchar(4)date2 varchar(4). 日期格式就是HHmmHH 是小时,mm 是分钟。

无论如何,在 SQL 中我们可以将两个时间戳相加并计算出多少小时和分钟?

例如

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

4 回答 4

3
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)
于 2012-04-11T23:34:09.460 回答
0

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

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

于 2012-04-11T23:19:40.327 回答
0

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

 select ADDTIME(time1,time2);

在 mysql 中,时间的形式是

'01:02:03'

日期时间是

 '2003-12-31 01:02:03'
于 2012-04-11T23:22:40.327 回答
0

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

这将使您获得日期时间值的任何部分之间的差异。DATEADD 也可能对此有用,具体取决于您要如何处理它。

于 2012-04-11T23:26:06.927 回答