我有三个参数,$motivazione,$dateFrom和$dateTo。在我的表中,我有以下字符串:{quot;动机":17,quot;dfp quot;;:quot;31/10/2022 quot;}
如果数据库中的字符串包含motivazione:$motivazione和dfp:介于dateFrom和dateTo之间,则查询必须返回行的id,
通过以下查询,我只能获得字符串中包含的日期:
SELECT column, SUBSTRING (column, CHARINDEX ('dfp', column) +6, 10) FROM myTable
但我无法将其与进行比较
我该怎么办?
谢谢
将日期字符串转换为SQL Server日期:CONVERT(DATE,'31/10/2022', 103)
。
格式103是CCD_ 3。如果不指定,则日期可能会被解释为美国格式mm/dd/yyyy
。
此外,如果您有一个JSON字符串,请使用@AnthonyG的建议提取日期值。
where子句类似于
WHERE CONVERT(JSON_VALUE(Data, '$.dfp'), 103) BETWEEN '2022-01-01' AND '2022-01-31'
日期文字使用年份优先格式,这样就不会出现dd/mm-mm/dd问题。