SQLServer2005での文字列からdatetime
変換に問題があります。
Convert(datetime, x)
次のようなwhereステートメントで使用する場合:
SELECT ThumbId
FROM [ImageBankSQL].[dbo].[MetaData]
WHERE (DataKey = 'ImagePropertyTagExifDTOrig'
OR DataKey='ImagePropertyTagDateTime')
AND CONVERT(datetime, DataValue, 120) > CONVERT(datetime, '2011-09-23 00:00:00', 120)
私は得る:
文字列から日時を変換するときに変換に失敗しました
しかしdatetime
、whereステートメントで使用する代わりに変換済みを選択すると、すべてが正常になり、変換された日付が取得されます。
SELECT ThumbId, Convert(datetime, DataValue, 120), Convert(datetime, '2011-09-23 00:00:00', 120)
FROM [ImageBankSQL].[dbo].[MetaData]
WHERE (DataKey = 'ImagePropertyTagExifDTOrig'
OR DataKey = 'ImagePropertyTagDateTime')
どちらの例でも、両方を使用Convert(datetime, DataValue, 120)
しConvert(datetime, DataValue)
て同じ結果が得られました。
selectで変換できるのに、どこで変換できないのですか?そして、whereステートメントが機能するようにconvertを使用して最初のクエリを作成するにはどうすればよいですか?