sql - 如何验证格式为 MMM/DD/YY 或 MMM/DD/YYYY 的日期字段?

标签 sql sql-server sql-server-2008 sql-server-2005

我的字段包含字符串值,如 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 ,则它工作正常。任何人都可以帮助我验证这一领域。

注意:我也尝试过使用设置语言选项。

最佳答案

您需要的只是更换您的'/'带空格的分隔符有 109 种数据格式:

SET DATEFORMAT MDY;  
if isdate(replace('JUL/11/2017', '/', ' '))=1
print 'VALID_DATE'
else
print 'invalid date'

关于sql - 如何验证格式为 MMM/DD/YY 或 MMM/DD/YYYY 的日期字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47345381/

相关文章:

sql-server - T-SQL : UNION ALL view not updatable because a partitioning column was not found

有条件选择相关记录的 SQL 语句

sql - 根据分隔符将值拆分为行

sql - select语句内的HQL比较

sql - PostgreSQL 中的并行 unnest() 和排序顺序

sql-server - 错误预测的 SQL Server 查询结果

sql - MSSQL 中带有 XML 查询的存储过程参数给出 "argument must be string literal"

sql-server-2008 - 我应该在事实表中的这些外键上放置一个非聚集索引吗

sql - 嗅探 SQL Server 查询

sql - 根据 smallint 和 datetime2(7) 的组合计算年份