JSON_EXTRACT中字符串日期如何查询日期区间范围
时间: 2024-02-05 11:14:29 浏览: 32
您可以使用MySQL中的STR_TO_DATE函数将字符串日期转换为日期格式,然后再使用BETWEEN运算符查询日期区间范围。
例如,假设您的JSON数据中包含名为"date"的键,其值为字符串日期,您想查询2021年1月1日到2021年3月31日之间的数据,可以使用以下查询语句:
```
SELECT *
FROM your_table
WHERE STR_TO_DATE(JSON_EXTRACT(your_json_column, '$.date'), '%Y-%m-%d') BETWEEN '2021-01-01' AND '2021-03-31';
```
其中,your_table是您的表名,your_json_column是包含JSON数据的列名,'%Y-%m-%d'是您字符串日期的格式,需要根据实际情况进行调整。
相关问题
JSON_EXTRACT中字符串日期如何查询
在使用 `JSON_EXTRACT` 函数查询字符串日期时,可以将日期字符串作为普通字符串进行查询,但需要使用正确的日期格式,否则查询可能会失败。例如,假设 JSON 数据中有一个键值对 `{"date": "2021-12-31"}`,可以使用以下语句查询:
```
SELECT * FROM my_table WHERE JSON_EXTRACT(json_data, '$.date') = '2021-12-31';
```
如果日期字符串中包含时间,则需要使用相应的日期时间格式进行查询。例如,假设日期时间字符串格式为 `2021-12-31 23:59:59`,则可以使用以下语句查询:
```
SELECT * FROM my_table WHERE JSON_EXTRACT(json_data, '$.datetime') = '2021-12-31 23:59:59';
```
注意,如果查询的日期时间格式与存储在 JSON 数据中的格式不匹配,查询可能会失败。因此,在使用 `JSON_EXTRACT` 函数查询日期时间时,请确保使用正确的日期时间格式。
简化sql: select JSON_UNQUOTE(JSON_EXTRACT(woo.attachment, '$.transformerObjList')) as transformerObjList from workflow_order woo where workflow_order_id in ( select c.workflow_order_id from ( select concat( JSON_UNQUOTE(JSON_EXTRACT(wo.attachment, '$.province')), JSON_UNQUOTE(JSON_EXTRACT(wo.attachment, '$.city')), JSON_UNQUOTE(JSON_EXTRACT(wo.attachment, '$.county')), JSON_UNQUOTE(JSON_EXTRACT(wo.attachment, '$.town')), JSON_UNQUOTE(JSON_EXTRACT(wo.attachment, '$.village')) ) as address , JSON_UNQUOTE(JSON_EXTRACT(wo.attachment, '$.dataType')) as dataType ,wo.workflow_order_id from workflow_order as wo ) as c where c.dataType = 1587434126787240000 and c.address = '江苏省无锡市宜兴市A镇8村'
简化后的 SQL 查询语句如下:
```
SELECT JSON_UNQUOTE(JSON_EXTRACT(attachment, '$.transformerObjList')) AS transformerObjList
FROM workflow_order
WHERE workflow_order_id IN (
SELECT workflow_order_id
FROM (
SELECT CONCAT(
JSON_UNQUOTE(JSON_EXTRACT(attachment, '$.province')),
JSON_UNQUOTE(JSON_EXTRACT(attachment, '$.city')),
JSON_UNQUOTE(JSON_EXTRACT(attachment, '$.county')),
JSON_UNQUOTE(JSON_EXTRACT(attachment, '$.town')),
JSON_UNQUOTE(JSON_EXTRACT(attachment, '$.village'))
) AS address,
JSON_UNQUOTE(JSON_EXTRACT(attachment, '$.dataType')) AS dataType,
workflow_order_id
FROM workflow_order
) AS c
WHERE c.dataType = 1587434126787240000 AND c.address = '江苏省无锡市宜兴市A镇8村'
)
```