我有一个varchar
列包含日期格式如下发行日期与SQL Server
dd/mm/yyyy
我需要列的数据类型转换为DATE
。我使用下面的查询
alter table [tblDocumentRevision]
alter column [RevisionDate] date null
,但我得到一个错误
消息241,级别16,状态1,行
转换从字符串转换日期和/或时间时失败。
该声明已被终止。
我确定所有的值都是dd/mm/yyyy
格式。那么为什么它给了我错误?
然后,我添加一个新的列,并试图
UPDATE [tblDocumentRevision]
SET NewDate = convert(date,[RevisionDate],103)
WHERE ISDATE([RevisionDate]) = 1
ISDATE() = 1
用于该检查应该过滤掉不能被转换为DATE
那些条目。
然后NewDate
列中只有月份和日期都小于或等于12个值的值为空。所以我很清楚地看到dd/mm/yyyy
格式的问题
有人可以帮我解决这个问题吗?
SET DATEFORMAT是一个会话选项,不是列属性。 –
是的,所以将它设置为您的会话,然后在您的会话中更改列。 –
好的。误解了你的建议。 +1。你可能想在你的答案中把'being'改成''before'',这样你的意思就更清楚了。 –