Comment mettre en forme la date dans TSql lorsque j'utilise json_value

J'utilise SQL Server 2016 et je stocke json. Lorsque je l'extrait, le format datetime ne s'affiche pas propre. Comment formater le format datetime?

select JSON_VALUE(trade, '$.entrytime') AS entrytime from dbo.Trades 

Valeurs affichées:

 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 

Comment formater ces dates dans le format yyyy-mm-dd hh:mm:ss ?

Vous pouvez également utiliser FORMAT :

 select FORMAT(CAST(JSON_VALUE(trade, '$.entrytime') as datetimeoffset), 'yyyy-MM-dd hh:mm:ss') AS entrytime from dbo.Trades 

Vous souhaitez mettre en forme l'horodatage suivant pour ressembler à celui qui le suit:

 2016-05-24T11:37:35.9555731-04:00 2016-05-24 11:37:35 

La requête suivante remplace le T par un espace, et par des sous-strings de tout ce qui vient après (et incluant) la période.

 SELECT REPLACE(SUBSTRING(JSON_VALUE(trade, '$.entrytime'), 1, CHARINDEX('.', JSON_VALUE(trade, '$.entrytime')) - 1), 'T', ' ') AS entrytime FROM dbo.Trades