我想轉換actual_arrival和actual_departure人類可讀的日期,然后看到的一切作為一個簡單的表。現在我收到一個錯誤:
從字串轉換日期和/或時間時轉換失敗
怎么做?
Declare @json varchar(MAX) = '
{"stops":
{
"type": "stop",
"name": "stops",
"company_id": "xxx",
"actual_arrival": "20210910130000-0500",
"actual_departure": "20210910140000-0500"}
}';
SELECT *
FROM OPENJSON ( @json, '$.stops' )
WITH (
Type Varchar(50) '$.type',
Name Varchar(50) '$.name',
CompID Varchar(100) '$.company_id' ,
AcArrvl DATETIME '$.actual_arrival' ,
AcDprtr DATETIME '$.actual_departure') as j1
uj5u.com熱心網友回復:
我認為問題在于 datetimeoffset 的格式。您也可能希望轉換為datetimeoffset保留時間偏移量?這對我有用(不是很漂亮,但您必須將字串重新格式化為yyyy-MM-dd hh:mm:ss-hh:mm):
Declare @json varchar(MAX) = '
{"stops":
{
"type": "stop",
"name": "stops",
"company_id": "xxx",
"actual_arrival": "20210910130000-0500",
"actual_departure": "20210910140000-0500"}
}';
SELECT
Type,
Name,
CompID,
CONVERT(DATETIMEOFFSET,
STUFF(STUFF(STUFF(STUFF(STUFF(STUFF(AcArrvl,
18,0,':'),
13,0,':'),
11,0,':'),
9,0,' '),
7,0,'-'),
5,0,'-')
) AcArrvl,
CONVERT(DATETIMEOFFSET,
STUFF(STUFF(STUFF(STUFF(STUFF(STUFF(AcDprtr,
18,0,':'),
13,0,':'),
11,0,':'),
9,0,' '),
7,0,'-'),
5,0,'-')
) AcDprtr
FROM OPENJSON ( @json, '$.stops' )
WITH (
Type Varchar(50) '$.type',
Name Varchar(50) '$.name',
CompID Varchar(100) '$.company_id' ,
AcArrvl VARCHAR(100) '$.actual_arrival' ,
AcDprtr VARCHAR(100) '$.actual_departure') as j1
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/335347.html
標籤:json sql-server 查询语句 约会时间
上一篇:ValueError:基數為10的int()的無效文字:'10/24/2021,02:49:28'
下一篇:使用泛型和隱式轉換多載決議
