[英]Validating date format dd-mmm-yyyy and dd mmm yyyy in SQL Server
I need to validate two date formats: DD-MMM-YYYY
and DD MMM YYYY
. 我需要验证两种日期格式: DD-MMM-YYYY
和DD MMM YYYY
。
Here is the code I use to validate DD-MMM-YYYY 这是我用来验证DD-MMM-YYYY的代码
CASE
WHEN (date_column != ' '
AND (ISDATE(date_column) = 0
OR (ISDATE(date_column) = 1
AND (CHARINDEX('-', date_column, 0) <> 3
OR (CHARINDEX('-', date_column, 4) <>7
OR (LEN(date_column) <> 11)))
THEN 1
ELSE 0
END)
Here is the code I use to validate DD MMM YYYY: 这是我用来验证DD MMM YYYY的代码:
CASE WHEN ( date_column !=' '
AND ( ISDATE(date_column )=0
OR ( ISDATE(date_column )=1
AND ( CHARINDEX(' ',date_column ,0) <>3
OR ( CHARINDEX(' ',date_column ,4) <>7
OR (LEN(date_column) <>11
)
)
) THEN 1
ELSE 0 END)
Can these be combined to populate at a same time instead of two blocks of code? 是否可以将它们组合在一起以同时填充而不是两个代码块?
CONVERT the datetime into the format that you want. 将日期时间转换为所需的格式。
https://docs.microsoft.com/en-us/sql/t-sql/functions/cast-and-convert-transact-sql https://docs.microsoft.com/zh-cn/sql/t-sql/functions/cast-and-convert-transact-sql
Example query: SELECT GETDATE(), CONVERT(varchar(10), GETDATE(), 120) Example output: 2018-02-06 14:02:50.900 2018-02-06 查询示例:SELECT GETDATE(),CONVERT(varchar(10),GETDATE(),120)示例输出:2018-02-06 14:02:50.900 2018-02-06
try_parse returns NULL when it is not a valid date. 如果不是有效日期,try_parse将返回NULL。 German Culture 'de-de' knows the formats 'dd-mm-yyyy' or 'dd mm yyyy' 德国文化“ de-de”知道格式“ dd-mm-yyyy”或“ dd mm yyyy”
CASE WHEN TRY_PARSE(date_column AS DATE USING 'de-de') IS NOT NULL
THEN 1
ELSE 0
END
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.