我花了很长时间退出,无法弄清楚我如何检查给定日期是否为YYYYMMDD格式。任何人都可以建议我一个简单的方法,这可以在sql中实现
感谢。
答案 0 :(得分:4)
更新到SQL Server 2012后,您可以使用TRY_CONVERT
或TRY_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