1.如果表中某个字段中存的是JOSN,那么mysql可以使用JSON_EXTRACT函数来进行字符串的解析。
字段内容如下所示:
{ "tax": { "taxName": "Tax1", "taxAmount": { "amount": 0, "currency": "USD" } }, "chargeName": "ItemPrice", "chargeType": "PRODUCT", "chargeAmount": { "amount": 499.99, "currency": "USD" } }
SELECT JSON_EXTRACT(charges, '$[0].tax.taxAmount.amount') AS tax_amount,
JSON_EXTRACT(charges, '$[0].chargeAmount.amount') AS charge_amount,
JSON_EXTRACT(charges, '$[0].chargeAmount.currency') AS currency
FROM your_table
WHERE line_id = xxx;
sql
SELECT
JSON_EXTRACT(charges, '$[0].tax.taxAmount.amount') AS tax_amount,
JSON_EXTRACT(charges, '$[0].chargeAmount.amount') AS charge_amount,
JSON_EXTRACT(charges, '$[0].chargeAmount.currency') AS currency
FROM
your_table WHERE line_id=xxx;
查询结果 如下

2.将13位时间戳转换成标准的日期格式
例如数据库中某些时间字段记录的是 1688041306058 这样的时间戳
mysql可以使用 FROM_UNIXTIME() 来对时间戳进行转换
SELECT FROM_UNIXTIME(your_timestamp_column / 1000) AS standard_time FROM your_table;
SELECT DATE_FORMAT(FROM_UNIXTIME(your_timestamp_column / 1000), '%Y-%m-%d %H:%i:%s') AS formatted_time FROM your_table;
sql
SELECT FROM_UNIXTIME(1688041306058 / 1000) ;
SELECT DATE_FORMAT(FROM_UNIXTIME(1688041306058 / 1000), '%Y-%m-%d %H:%i:%s');