我对将时间列更改为Time数据类型以在另一列中创建日期/时间戳感到头疼。我有一个日期数据类型的日期,但只是不能正确的时间。
我在列中查找了查询原因:
ALTER TABLE #TEMP ALTER COLUMN [TIME] TIME
会失败并给我错误:
Msg 241, Level 16, State 1, Line 72
Conversion failed when converting date and/or time from character string.
我为nulls
寻找''
WHERE ISNUMERIC([TIME]) = 1
我甚至更新了表格以取出Newline Chars:
UPDATE #TEMP SET [TIME] = REPLACE(REPLACE([TIME], CHAR(13), ''), CHAR(10), '') FROM #TEMP
我只是不知道还能做什么。目前[TIME]
的日期类型为nvarchar(MAX)
,只是时间数据类型,因此我可以将[DATE]
与[TIME]
合并,并创建[DateTimeStamp]
有没有人对为什么不这样做有任何其他想法?
答案 0 :(得分:0)
您可以使用ISDATE
功能选择损坏的数据:
select * from #TEMP
where ISDATE([TIME]) = 0
https://msdn.microsoft.com/en-us/library/ms187347.aspx
如果表达式是有效的日期,时间或日期时间值,则返回1; 否则,0。