使用 json_value 时如何在 Sql 中格式化日期
How do I format date in TSql when I use json_value
我正在使用 SQL Server 2016 并且正在存储 json。当我提取它时,日期时间格式显示不干净。如何格式化日期时间格式?
select
JSON_VALUE(trade, '$.entrytime') AS entrytime
from
dbo.Trades
显示的值:
2016-05-23T05:21:30.3068919-04:00
2016-05-24T10:49:16.337257-04:00
2016-05-24T11:05:30.8941267-04:00
2016-05-24T11:37:35.9555731-04:00
如何将这些日期设置为 yyyy-mm-dd hh:mm:ss
格式?
您想将以下时间戳格式化为它后面的时间戳:
2016-05-24T11:37:35.9555731-04:00
2016-05-24 11:37:35
以下查询将 T
替换为 space,并且还去掉了句点之后(包括句点)之后的所有内容。
SELECT REPLACE(SUBSTRING(JSON_VALUE(trade, '$.entrytime'), 1,
CHARINDEX('.', JSON_VALUE(trade, '$.entrytime')) - 1),
'T', ' ') AS entrytime
FROM dbo.Trades
你也可以使用FORMAT
:
select FORMAT(CAST(JSON_VALUE(trade, '$.entrytime') as datetimeoffset), 'yyyy-MM-dd hh:mm:ss') AS entrytime from dbo.Trades
SELECT CONVERT(VARCHAR(33), GetDate(), 126)
SELECT LEFT(CONVERT(VARCHAR(33), GetDate(), 126),19)+'Z'
值得一看
我正在使用 SQL Server 2016 并且正在存储 json。当我提取它时,日期时间格式显示不干净。如何格式化日期时间格式?
select
JSON_VALUE(trade, '$.entrytime') AS entrytime
from
dbo.Trades
显示的值:
2016-05-23T05:21:30.3068919-04:00
2016-05-24T10:49:16.337257-04:00
2016-05-24T11:05:30.8941267-04:00
2016-05-24T11:37:35.9555731-04:00
如何将这些日期设置为 yyyy-mm-dd hh:mm:ss
格式?
您想将以下时间戳格式化为它后面的时间戳:
2016-05-24T11:37:35.9555731-04:00
2016-05-24 11:37:35
以下查询将 T
替换为 space,并且还去掉了句点之后(包括句点)之后的所有内容。
SELECT REPLACE(SUBSTRING(JSON_VALUE(trade, '$.entrytime'), 1,
CHARINDEX('.', JSON_VALUE(trade, '$.entrytime')) - 1),
'T', ' ') AS entrytime
FROM dbo.Trades
你也可以使用FORMAT
:
select FORMAT(CAST(JSON_VALUE(trade, '$.entrytime') as datetimeoffset), 'yyyy-MM-dd hh:mm:ss') AS entrytime from dbo.Trades
SELECT CONVERT(VARCHAR(33), GetDate(), 126)
SELECT LEFT(CONVERT(VARCHAR(33), GetDate(), 126),19)+'Z'
值得一看