Как я могу формат даты в TSQL не, когда я использую значение в JSON
Я использую SQL Server 2016 и сохраняю json. Когда я извлекаю его, формат datetime не отображается чистым. Как отформатировать формат datetime?
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
?
2 ответа:
Вы также можете использовать
FORMAT
:select FORMAT(CAST(JSON_VALUE(trade, '$.entrytime') as datetimeoffset), 'yyyy-MM-dd hh:mm:ss') AS entrytime from dbo.Trades
Вы хотите отформатировать следующую метку времени, чтобы она выглядела как следующая за ней:
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