从字符串转换日期和/或时间时转换失败

时间:2013-03-19 14:03:16

标签: sql-server-2008

执行我的查询时,我收到的错误是“从字符串转换日期和/或时间时转换失败”,这是我的查询。

select OrderLog_Initiated, OrderLog_SessionDateTime 
into #FullMemberOrderLog
from tbl_orderlog   
where CONVERT(date,OrderLog_Initiated) between '2013-03-03' and '2013-03-08' -- order     by OrderLog_Initiated     

insert into #FullMemberOrderLog 
select OrderLog_Initiated, OrderLog_SessionDateTime 
from tbl_orderlog 
where CONVERT(date,OrderLog_Initiated) between '2013-03-03' and '2013-03-08'
select #result = (cast(DATEDIFF(HOUR,CONVERT(date,'OrderLog_Initiated'),CONVERT(date,'OrderLog_SessionDateTime' )) as float) ) from  #FullMemberOrderLog 

请帮助我解决这个问题,真的我正在煎炸...我的预期结果是将'OrderLog_Initiated'表与'OrderLog_SessionDateTime'表进行比较并提供小时的时差,但我无法得到什么我预期。请有人帮助我,非常感谢你提前。

1 个答案:

答案 0 :(得分:0)

你在说:

CONVERT(date,'OrderLog_Initiated')

尝试:

CONVERT(date,OrderLog_Initiated)

(列名称周围没有单引号,否则只会被视为字符串。)

此外,为什么您使用完全相同的查询同时执行SELECT INTOINSERT INTO?选一个。

最后,你为什么这么说:

SELECT #result = 

而不是:

SELECT result =