Как преобразовать формат столбца даты и времени из гггг-дд-мм чч: мм: сс в гггг-мм-дд чч: мм: сс - PullRequest
0 голосов
/ 11 ноября 2019

У меня есть столбец даты и времени, где дата хранится как yyyy-dd-MM HH:mm:ss, но я хочу изменить его на yyyy-MM-dd HH:mm:ss.

Например, 09 ноября 2019 должно быть 2019-11-09 но отображается как 2019-09-11.

Я пробовал CAST / CONVERT, но они не изменили формат.

Ответы [ 4 ]

0 голосов
/ 11 ноября 2019

Спасибо за помощь. Это указало мне правильное направление для того, что я искал.

Мое решение было (возможно, неправильным, но работает) ...

,SUBSTRING(CONVERT(char(8), [LeadSentTime], 112), 1, 4) + '-' + SUBSTRING(CONVERT(char(8), [LeadSentTime], 112), 7, 2) + '-'  + SUBSTRING(CONVERT(char(8), [LeadSentTime], 112), 5, 2) + ' ' +
  CONVERT(char(12), [LeadSentTime], 14)

Это дало требуемый результат - 2019-11-09 10:41:55 вместо 2019-09-11 10: 41: 55

0 голосов
/ 11 ноября 2019

Вы можете использовать следующий формат:

SELECT CONVERT(DATE, @YourDate, 106)

Рабочий запрос:

SELECT CONVERT(DATE, '09 Nov 2019', 106) -- it will return 2019-11-09

Если вы ожидаете результат в формате yyyy-MM-dd HH:mm:ss, тогда

SELECT CONVERT(VARCHAR(19), CONVERT(DATETIME, '09 Nov 2019', 106), 120) -- will result 2019-11-09 00:00:00
0 голосов
/ 11 ноября 2019

Вам следует изменить формат базы данных DEFAULT_LANGUAGE

, попробуйте это:

USE [master]
GO
EXEC sys.sp_configure N'default language', N'0'
GO
RECONFIGURE WITH OVERRIDE
GO
ALTER LOGIN [myuser] WITH DEFAULT_LANGUAGE=[us_english]
GO

При необходимости измените [us_english], используя предпочитаемый язык, но будьте внимательны, если ваша база данных уже используется….

0 голосов
/ 11 ноября 2019

Попробуйте:

select convert(varchar, getdate(), 23)

declare @t date='09 Nov 2019'
select convert(varchar, @t, 23)

Вывод: -

2019-11-09

Формат даты 120

select convert(varchar, getdate(), 120)

Вывод:

2019-11-11 16:46:26
...