我正在使用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
格式格式化这些日期?
答案 0 :(得分:1)
您还可以使用FORMAT
:
select FORMAT(CAST(JSON_VALUE(trade, '$.entrytime') as datetimeoffset), 'yyyy-MM-dd hh:mm:ss') AS entrytime from dbo.Trades
答案 1 :(得分:0)
您希望将以下时间戳格式化为与其后面的时间戳相同:
2016-05-24T11:37:35.9555731-04:00
2016-05-24 11:37:35
以下查询使用空格替换T
,并且还将在句点之后(包括句点)之后的所有内容进行子串。
SELECT REPLACE(SUBSTRING(JSON_VALUE(trade, '$.entrytime'), 1,
CHARINDEX('.', JSON_VALUE(trade, '$.entrytime')) - 1),
'T', ' ') AS entrytime
FROM dbo.Trades
答案 2 :(得分:0)
SELECT CONVERT(VARCHAR(33),GetDate(),126)
SELECT LEFT(CONVERT(VARCHAR(33),GetDate(),126),19)+'Z'
可能值得一看