我在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
答案 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也可以用于此,具体取决于您希望如何处理它。