【发布时间】:2018-04-30 22:04:11
【问题描述】:
我的字段包含字符串值,例如 JUL/11/2017、JAN/11/17。虽然它是一个有效字段,但我无法使用 is_date 函数对其进行验证
SET DATEFORMAT MDY;
if isdate('JUL/11/2017')=1
print 'VALID_DATE'
else
print 'invalid date'
如果字段值为 DD/MMM/YY 或 DD/MMM/YYYY ,则可以正常工作。任何人都可以帮助我验证这个字段。
注意:我也尝试过使用设置语言选项。
【问题讨论】:
-
MON/DD/YYYY似乎不是 SQL Server 支持转换的格式,q.v. here. -
为什么不使用 if isdate('2017/JUL/11')=1,因为 SQL server 使用格式 YYYY/MON/DD?
-
此字段是否仅包含字符串格式的日期,还是包含更多文本?如果它只包含一个日期,我会花很多时间将它从 varchar 转换为 datetime 类型,因为在将日期存储为 varchar 时会不断遇到问题
-
实际上该文件包含这些值,因此作为 DQ 验证和分析的一部分,我正在尝试使用各种组合验证日期字段。
标签: sql sql-server sql-server-2008 sql-server-2005