我有日期的列,但它是一個varchar:sql server:我的日期數據有什麼問題?
8/31/2010 9:48
8/31/2010 9:49
8/31/2010 9:51
8/31/2010 9:52
8/31/2010 9:55
8/31/2010 9:59
8/31/2010 10:11
8/31/2010 10:13
8/31/2010 10:16
8/31/2010 10:37
8/31/2010 10:42
我確信,這些都不會有錯誤的日期:
SELECT *
FROM qcvalues.dbo.batchinfo
WHERE ISDATE(reporttime) <> 1
這個返回0結果
問題: 我需要返回一定範圍之間的日期:
select rowid from qcvalues.dbo.batchinfo where CONVERT(DATE, Substring(reporttime, 1, LEN(reporttime)), 103)
between cast('2010-08-01' as datetime) and CAST('2010-08-31' as datetime)
我收到這個錯誤;
Msg 241, Level 16, State 1, Line 2
Conversion failed when converting date and/or time from character string.
我的轉換出了什麼問題?
你爲什麼使用從1到字符串長度的子字符串函數?你打算在空格分隔符處切斷它嗎? – Beth 2010-09-08 16:04:54
你也可以通過直接字符串比較而不用將任何東西轉換成日期(reporttime>'8/1/2010'和reporttime <'8/31/2010') – Beth 2010-09-08 16:06:16
把101而不是103的人是對的,但是他們刪除了他們的答案 – 2010-09-08 16:16:18