#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