MYSQL直接在SQL提取json字符串中的内容-----将13位时间戳转换成标准的日期格式【记录SQL常用函数】

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');
相关推荐
oradh8 小时前
Oracle闪回技术操作总结
数据库·oracle·oracle闪回技术操作总结·oracle闪回·flashback技术
ltl8 小时前
RocksDB 并发 Compaction 与 Rate Limiter
数据库
闻道且行之10 小时前
图片处理助手|泊松融合原理 + C++ 工程实现,seamlessClone 三模式一次讲透
数据库·c++·人工智能·opencv
夏炳辉.11 小时前
PostgreSQL 高可用集群核心配置参数全解:从原生流复制到 Patroni 企业级方案
数据库·postgresql
不会代码的小猴12 小时前
7. JSON
开发语言·c++·笔记·qt·算法·json
努力的小雨12 小时前
KES 开启 SSL 前,证书、端口和客户端要一起验
数据库
DevOps老兵12 小时前
AI全栈知识07:向量数据库 - Milvus/Chroma实战
数据库·ai·milvus
这个DBA有点耶12 小时前
当数据库从“存储”走向“决策”:金仓数据库的融合架构之路
数据库·架构·aigc
smilejingwei12 小时前
Trae+SQLazy 实践 SQL 国产化移植:Oracle => 达梦
数据库·sql·oracle
意疏13 小时前
2026年远控软件安全横评:六款主流工具逐项核查——官方文档、一手实测与安全事件,全摊开
大数据·前端·数据库