努力在两次之间的分钟中获得差异。一次来自SQL Server中的数据类型TIME字段。另一个值是添加到SQL查询的字符串。我在SSRS 2008 R2中运行它看起来像这样:
DATEDIFF(mi, CONVERT(TIME, '23:59:59'), _Travel.Start_Time) AS TIME_DIFFERENCE
我收到错误:从字符串
转换日期和/或时间时转换失败我已经尝试过铸造 59:59'到时间类型' AS TIME'但得到类似的错误。我试过声明一个变量,但SSRS不允许它。我尝试的一切都给出了类似的错误。时间23:59:59将始终相同,但_Travel.Start_Time将是DB中该字段中的任何内容。 _Travel.Start_Time的输出格式为00:00:00
任何想法如何在23:59:59和db值之间的分钟内获得差异? TA
补充道:
CAN&C认识它。 _Travel.Start_Time是VARCHAR而不是TIME。现在已经尝试了
DATEDIFF(CONVERT(TIME, '23:59:59'), CONVERT(TIME, _Travel.Start_Time))
但仍然得到同样的错误。但是,注意到_Travel.Start_Time字段中有空/空字段
答案 0 :(得分:0)
除非SSRS
是问题或_Travel.Start_Time
不属于TIME
类型,否则我认为您没有任何问题。
请参阅:SQL Fiddle
示例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