当我使用json_value时,如何在TSql中格式化日期

时间:2016-05-26 02:19:13

标签: sql-server json datetime sql-server-2016

我正在使用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格式格式化这些日期?

3 个答案:

答案 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'

可能值得一看