Sql 两次之间的时间差(以分钟为单位)

Sql 两次之间的时间差(以分钟为单位),sql,sql-server,sql-server-2008-r2,ssrs-2008,Sql,Sql Server,Sql Server 2008 R2,Ssrs 2008,一直在努力在几分钟内获得两次之间的差异。一个时间来自SQL Server中的数据类型时间字段。另一个值是添加到SQL查询的字符串。我在SSRS 2008 R2中运行它看起来像这样: DATEDIFF(mi, CONVERT(TIME, '23:59:59'), _Travel.Start_Time) AS TIME_DIFFERENCE 我收到错误:从字符串转换日期和/或时间时转换失败 我曾尝试将“23:59:59”转换为“作为时间”的时间类型,但得到了类似的错误。我已尝试声明变量,但SSRS

一直在努力在几分钟内获得两次之间的差异。一个时间来自SQL Server中的数据类型时间字段。另一个值是添加到SQL查询的字符串。我在SSRS 2008 R2中运行它看起来像这样:

DATEDIFF(mi, CONVERT(TIME, '23:59:59'), _Travel.Start_Time) AS TIME_DIFFERENCE
我收到错误:从字符串转换日期和/或时间时转换失败

我曾尝试将“23:59:59”转换为“作为时间”的时间类型,但得到了类似的错误。我已尝试声明变量,但SSRS不允许。我尝试的每件事都会出现类似的错误。时间23:59:59将始终是相同的,但是_Travel.Start_time将是该字段中以DB表示的任何时间。_Travel.Start_Time的输出格式为00:00:00

你知道我怎样才能得到23:59:59和db值之间的分钟差吗? 助教

增加:


真不敢相信_Travel.Start\u时间是VARCHAR而不是Time。我现在试过了

DATEDIFF(CONVERT(TIME, '23:59:59'), CONVERT(TIME, _Travel.Start_Time)) 

但仍然得到同样的错误。但是,我注意到_Travel.Start_Time字段中有空字段

我看不出您的问题,除非SSRS是问题或_Travel.Start_Time不是时间类型

见此:

示例SQL:

-- Sample with trimming time portion off datetime
SELECT DATEDIFF(mi, CONVERT(TIME, '23:59:59'), 
       LTRIM(RIGHT(CONVERT(VARCHAR(20), GETDATE(), 100), 7))) AS TIME_DIFFERENCE

-- Sample with time conversion of datetime
SELECT  DATEDIFF(mi, CONVERT(TIME, '23:59:59'),
          CONVERT(TIME, GETDATE())) as TIME_DIFFERENCE
此外,您是否尝试过转换db值:

SELECT DATEDIFF(mi, CONVERT(TIME, '23:59:59'), 
       CONVERT(TIME, _Travel.Start_Time)) AS TIME_DIFFERENCE

在我的机器上工作。。也在运行2008 R2。我在SSMS btw中执行了查询。您确定_Travel.Start_Time是一种时间数据类型吗?有点不相关,但使用字符串时要小心:“23:59:59”。我看到人们这样使用它:WHERE column>“2014-05-16”和column不敢相信_Travel.Start\u时间为VARCHAR。现在已尝试CONVERTTIME,'23:59:59',CONVERTTIME,_DatabaseSettings.Value,但仍然得到相同的错误。@user1022772请在17:30:00、08:30:00中以varchar格式给我一个时间示例。还有一些空值考虑的是列中的这一个值,或者2 sorry,列中的一个值。这里只给出了两个输出示例