Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SQL中添加两个时间戳_Sql_Sql Server 2005 - Fatal编程技术网

在SQL中添加两个时间戳

在SQL中添加两个时间戳,sql,sql-server-2005,Sql,Sql Server 2005,我在sqldate1varchar(4)和date2varchar(4)中有两个字段。日期格式仅为HHmm,其中HH是小时,mm是分钟 在SQL中,我们是否可以将两个时间戳加在一起,计算出多少小时和分钟 e、 g 不确定这些是真的时间戳,有什么不把它们存储为整数呢 无论如何。。不确定是否有用于此的mysql函数。 您可以浏览: 我不确定它会提供多少帮助。 如果您将它们存储为秒,那么您只需让mysql添加它们,否则将它们拉入脚本,转换为秒,将它们添加在一起,然后根据需要转换为更可读的格式。不确定这

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

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

e、 g


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

无论如何。。不确定是否有用于此的mysql函数。 您可以浏览: 我不确定它会提供多少帮助。
如果您将它们存储为秒,那么您只需让mysql添加它们,否则将它们拉入脚本,转换为秒,将它们添加在一起,然后根据需要转换为更可读的格式。

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

无论如何。。不确定是否有用于此的mysql函数。 您可以浏览: 我不确定它会提供多少帮助。 如果您将它们存储为秒,那么您只需让mysql添加它们,或者将它们拉入脚本,将它们转换为秒,将它们添加到一起,然后根据需要转换为更可读的格式。

尝试此方法(使用时间或日期时间):

在mysql中,时间的形式是

'01:02:03'
日期和时间是

 '2003-12-31 01:02:03'
尝试以下方法(使用时间或日期时间):

在mysql中,时间的形式是

'01:02:03'
日期和时间是

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

如果您碰巧正在使用SQL Server,也可以使用此处描述的DATEDIFF函数:


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

如果您碰巧使用的是SQL Server,您也可以使用此处描述的DATEDIFF函数:

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)

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

FYI,指定相关DBMS的标记不是一个坏主意。抱歉,没有看到您可以在EditFYI中添加额外的标记,指定有问题的DBMS的标记不是一个坏主意。很抱歉,我没有看到您可以在编辑器中添加额外的标记。这是一个遗留问题,因此我只需要能够进行操作。我想我可能只需要使用子字符串,将时间和分钟分开,然后再处理一些事情。这是一个遗留问题,因此我只需要能够进行操作。我想我可能只需要使用substring并将小时和分钟分开,然后处理outOP拥有的
varchar
值。非
datetime
OP具有
varchar
值。不是
datetime
谢谢这正是我想要的。本来要走子串路线,但左右都很完美。谢谢,这正是我想要的。本来要走子串路线,但左右都很完美。
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)