我正在尝试将varchar
列映射到datetime
。为此,我需要过滤掉无法转换为datetime
的值:
SELECT myfield
FROM my_table
WHERE (SELECT convert(varchar(10), cast(myfield as datetime), 112) ) = 0
我收到此错误:
将varchar数据类型转换为datetime数据类型会导致超出范围的值。
答案 0 :(得分:1)
如果使用上面的SQL Server 2012,则可以使用try_cast而不是“ cast”:
SELECT myfield FROM my_table
WHERE try_cast(myfield as datetime) is not null
编辑: 删除了where子句中的select。
答案 1 :(得分:1)
SELECT myfield FROM my_table
WHERE isDate(myField)=1