我有一个这样的日期
21-02-2018
并使用nvarchar(MAX)
我正在尝试使用
转换为日期 select (Convert(Date, , 106)) from Certificates
select (Convert(Date, IssueDate))
,但无法转换。
答案 0 :(得分:2)
使用try_convert()
。但是,我认为您想要的格式为105(dd-mm-yyyy),而不是106(dd mon yyyy):
select try_convert(date, issuedate, 105)
当格式不匹配时,它将返回NULL
而不是失败。您可以找到以下值:
select issuedate
from certificates
where try_convert(date, issuedate, 105) is null and
issuedate is not null;
答案 1 :(得分:0)
这通常是服务器期望输入日期的格式。我相信它默认为“月-日-年”(美国)而不是“日-月-年”(英国)
尝试将SET DATEFORMAT DMY
放在代码的开头,以提示字符串的第一部分是“天而不是月”。