前后的SQL子字符串
我正在尝试查找未键入的日期,我的查询中有这个json {“年份”:“2020年”,“日期自”:“2011-01-01T00:00:00Z”,“日期至”:“2011-12-31T00:00:00Z”}前后的SQL子字符串,sql,sql-server,date,substring,Sql,Sql Server,Date,Substring,我正在尝试查找未键入的日期,我的查询中有这个json {“年份”:“2020年”,“日期自”:“2011-01-01T00:00:00Z”,“日期至”:“2011-12-31T00:00:00Z”} 仅子字符串“dateFrom”:“2011-01-01T00:00:00Z 仅子字符串“dateTo”:“2011-12-31T00:00:00Z 验证键入的日期是否正确 似乎最简单的方法可能是将数据解析为JSON,然后使用TRY\u CONVERT确保它是有效的日期。然后您可以手动修复坏数据: 选
似乎最简单的方法可能是将数据解析为JSON,然后使用
TRY\u CONVERT
确保它是有效的日期。然后您可以手动修复坏数据:
选择J.年份,
日期:,
达特托
从dbo.YourTable YT
交叉应用OPENJSON(YT.YourJson)
带(整年),
从varchar(30)开始的日期,
dateTo varchar(30))J
其中TRY_CONVERT(datetimeoffset(0),dateFrom,127)为空
或者尝试转换(datetimeoffset(0),dateTo,127)为空;
似乎最简单的方法可能是将数据解析为JSON,然后使用TRY\u CONVERT
确保它是有效的日期。然后您可以手动修复坏数据:
选择J.年份,
日期:,
达特托
从dbo.YourTable YT
交叉应用OPENJSON(YT.YourJson)
带(整年),
从varchar(30)开始的日期,
dateTo varchar(30))J
其中TRY_CONVERT(datetimeoffset(0),dateFrom,127)为空
或者尝试转换(datetimeoffset(0),dateTo,127)为空;
您的问题是什么?为什么不将数据按原样解析为JSON,然后使用TRY_CONVERT
?至于数据的固定;这是一个人的事,不是SQL。然后在插入此数据的应用程序层中执行数据验证。您的问题是什么?为什么不将数据按原样解析为JSON,然后使用TRY\u CONVERT
?至于数据的固定;这是一个人的事,不是SQL。然后在插入此数据的应用程序层中实现数据验证。