如何检查给定日期是否为yyyymmdd格式的sql server

时间:2014-03-24 20:12:12

标签: sql sql-server sql-server-2008

我花了很长时间退出,无法弄清楚我如何检查给定日期是否为YYYYMMDD格式。任何人都可以建议我一个简单的方法,这可以在sql中实现

感谢。

3 个答案:

答案 0 :(得分:4)

更新到SQL Server 2012后,您可以使用TRY_CONVERTTRY_CAST来测试字符串。

使用TRY_CONVERT(DATE, MyColumn, 112),转换失败时,您将获取值或空值,因为字符串为YYYYDDMM格式。

对于2012之前的SQL Server,您可以做的最好的事情是在CONVERT(DATE, MyColumn, 112)内包装TRY CATCH。每当您尝试转换格式不正确的字符串时,这都会捕获错误,但这不会在2012年为您提供NULL TRY_CONVERT的结果。

答案 1 :(得分:3)

您最多可以询问字符串是否表示YYYYMMDD格式的日期。答案是没有,没有这样的方法。您永远无法区分20140305(即2014年3月5日)和20140305(2014年5月3日)。最多可以声称您可以放心地回答某些日期

答案 2 :(得分:0)

您可以将迄今为止的 try_cast 与 isnumeric() 检查结合起来

percentage