SQL 前后子串

SQL Substring after and before

我正在尝试查找未输入的日期,我的查询中有这个 json

{"year":"2020","dateFrom":"2011-01-01T00:00:00Z","dateTo":"2011-12-31T00:00:00Z"}

  1. 只有“dateFrom”的子字符串:“2011-01-01T00:00:00Z
  2. 只有“dateTo”的子字符串:“2011-12-31T00:00:00Z
  3. 验证日期输入是否正确

似乎最简单的方法可能是将数据解析为 JSON,然后使用 TRY_CONVERT 来确保它的日期有效。然后你可以手动修复坏数据:

SELECT J.Year,
       dateFrom,
       dateTo
FROM dbo.YourTable YT
     CROSS APPLY OPENJSON(YT.YourJson)
                 WITH (year int, 
                       dateFrom varchar(30),
                       dateTo varchar(30)) J
WHERE TRY_CONVERT(datetimeoffset(0),dateFrom,127) IS NULL
   OR TRY_CONVERT(datetimeoffset(0),dateTo,127) IS NULL;