datetime
我在 SQL Server 2005 中遇到字符串转换问题。
如果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)
结果相同。
为什么我可以在选择中转换,但不能在哪里转换?以及如何在 where 语句中使用 convert 进行我的第一个查询?