You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将JSON中特定varchar格式日期转换为可读日期并解决转换报错

错误原因

你当前JSON中存储的actual_arrival、actual_departure字段为yyyyMMddHHmmss±时区偏移的自定义字符串格式,SQL Server的DATETIME类型不支持直接解析该格式,因此会触发Conversion failed when converting date and/or time from character string报错。

解决方案

先在OPENJSON的WITH子句中以字符串类型取出两个时间字段,再通过字符串处理+日期转换函数转为可读格式,可按需选择是否处理时区偏移:

方案1:保留时区偏移转换(推荐)

支持将原始时区的时间转为你需要的目标时区时间,示例中转为东八区北京时间:

Declare @json varchar(MAX) = '
{
    "stops": {
        "type": "stop",
        "name": "stops",
        "company_id": "xxx",
        "actual_arrival": "20210910130000-0500",
        "actual_departure": "20210910140000-0500"
    }
}';

SELECT 
    Type,
    Name,
    CompID,
    -- 可修改FORMAT第二个参数自定义输出格式,如改为'yyyy-MM-dd HH:mm:ss'输出纯数字格式
    FORMAT(SWITCHOFFSET(CAST(STUFF(STUFF(STUFF(STUFF(STUFF(AcArrvlStr, 13, 0, ':'), 11, 0, ':'), 9, 0, 'T'), 7, 0, '-'), 5, 0, '-') AS DATETIMEOFFSET), '+08:00'), 'yyyy年MM月dd日 HH:mm:ss') AS 实际到达时间,
    FORMAT(SWITCHOFFSET(CAST(STUFF(STUFF(STUFF(STUFF(STUFF(AcDprtrStr, 13, 0, ':'), 11, 0, ':'), 9, 0, 'T'), 7, 0, '-'), 5, 0, '-') AS DATETIMEOFFSET), '+08:00'), 'yyyy年MM月dd日 HH:mm:ss') AS 实际出发时间
FROM OPENJSON ( @json, '$.stops' )             
WITH (          
    Type Varchar(50) '$.type',
    Name Varchar(50) '$.name',
    CompID Varchar(100) '$.company_id' ,
    AcArrvlStr VARCHAR(30) '$.actual_arrival' ,
    AcDprtrStr VARCHAR(30) '$.actual_departure'
) as j1

方案2:忽略时区直接转换

如果不需要处理时区偏移,可以直接截取时间字符串前14位转换,写法更简洁:

SELECT 
    Type,
    Name,
    CompID,
    CONVERT(VARCHAR(20), CONVERT(DATETIME, LEFT(AcArrvlStr,14), 112), 120) AS 实际到达时间,
    CONVERT(VARCHAR(20), CONVERT(DATETIME, LEFT(AcDprtrStr,14), 112), 120) AS 实际出发时间
FROM OPENJSON ( @json, '$.stops' )             
WITH (          
    Type Varchar(50) '$.type',
    Name Varchar(50) '$.name',
    CompID Varchar(100) '$.company_id' ,
    AcArrvlStr VARCHAR(30) '$.actual_arrival' ,
    AcDprtrStr VARCHAR(30) '$.actual_departure'
) as j1

执行上述任意方案的查询后,结果就会以表格形式返回人类可读的日期格式。

内容的提问来源于stack exchange,提问作者beginsql

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 13:54:04