2013-03-19 158 views
-3

執行我的查詢時,我得到了錯誤指出「轉換日期和/或時間從字符串轉換失敗」是我的查詢。轉換日期和/或時間從字符串轉換失敗

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_SessionDateTime」表比較「OrderLog_Initiated」表,並提供小時的時差,但我不能得到我的預期。請有人幫助我,非常感謝你提前。

回答

0

你是在說:

CONVERT(date,'OrderLog_Initiated') 

嘗試:

CONVERT(date,OrderLog_Initiated) 

(各地列名沒有單引號,否則它只是當作一個字符串)

另外,爲什麼是您使用完全相同的查詢執行SELECT INTOINSERT INTO?選一個。

最後,你爲什麼說:

SELECT #result = 

相反的:

SELECT result = 

+0

嗨,謝謝你的回覆。我會這樣做,但我期望在小時內得到結果。在OrderLog_Initiated和OrderLog_SessionDateTime表中,我在'2013-03-19 19:51:43.470'中存儲了日期和時間格式。那麼我怎麼能在幾小時內得到我的結果呢? – Keerthi 2013-03-19 14:26:51

+0

嗨,非常感謝您的建議,現在我得到了正確的數據,但在比較這兩個表(Orderlog_Iniated和Orderlog_Sessiondatetime)時,我只能得到僅乘以24的時間偏差,但我需要更高的精度結果像1小時,2,3,4等...請幫助我.. – Keerthi 2013-03-20 10:12:47

+0

@Keerthi在您的問題中顯示樣本數據和所需結果* *(不在評論中)。我不擅長模糊的單詞問題,對不起。 – 2013-03-20 12:39:33

相關問題