Изменение формата даты в инструкции SQL Select

#sql-server #tsql #date #date-formatting

#sql-сервер #tsql #Дата #форматирование даты

Вопрос:

Привет, я написал запрос для извлечения даты создания, и я хотел бы, чтобы результат был ГГГГ. Однако существующий формат в базе данных возвращает YYMM. Как мне выполнить преобразование? Я попытался запустить приведенный ниже код, и он возвращает ошибку, в которой говорится, что у меня отсутствует выражение.

 SELECT CONVERT(VARCHAR(6,[CREATED_DATE], 120) as 'CREATED_DATE' 
FROM SGTEL10.B$GC_NETELEM
WHERE IPID IN (4001702, 4006023, 4320791);
  

Ответ №1:

Попробуйте использовать маску формата 112 с varchar(6) (т.е. шириной в 6 символов):

 SELECT CONVERT(VARCHAR(6), GETDATE(), 112);
  

Это выводит:

 201904
  

Ваш полностью обновленный запрос:

 SELECT CONVERT(VARCHAR(6),[CREATED_DATE], 112) AS [CREATED_DATE]
FROM SGTEL10.B$GC_NETELEM
WHERE IPID IN (4001702, 4006023, 4320791);
  

Технология в сети — мой любимый справочник для поиска масок формата SQL Server CONVERT .

Комментарии:

1. 🙂 просто очень близко… Я удаляю свой ответ 🙂

2. Привет. Я только что попробовал то, что вы предложили, но это возвращает ту же ошибку. Я хотел бы проверить, ссылается ли указанное вами getdate на столбец «дата создания» в моем коде?

3. @Samuel У вас отсутствует закрывающая скобка после VARCHAR(6 . Исправьте это, и ошибка должна исчезнуть.

Ответ №2:

SQL Server: используйте FORMAT функцию для форматирования дат:

 SELECT FORMAT(CURRENT_TIMESTAMP, 'yyyyMM')
-- 201904
  

PL / SQL: использовать TO_CHAR функцию:

 SELECT TO_CHAR(CURRENT_TIMESTAMP, 'YYYYMM') FROM DUAL
-- 201904
  

Комментарии:

1. Какую версию SQL Server вы используете? Однако вам необходимо заменить GETDATE() на имя coumn.

2. я использую SQL PL: D

3. Смотрите пересмотренный ответ

Ответ №3:

ВЫБЕРИТЕ преобразовать (nvarchar(10), datepart(год, getdate ())) ‘ ‘ преобразовать(nvarchar(10), datepart (месяц, getdate ()))

Комментарии:

1. замените getdate () на created_date