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