Изменение формата даты в SQL Select Statement - PullRequest
0 голосов
/ 05 апреля 2019

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

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

Ответы [ 3 ]

1 голос
/ 05 апреля 2019

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

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

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

SELECT TO_CHAR(CURRENT_TIMESTAMP, 'YYYYMM') FROM DUAL
-- 201904
1 голос
/ 05 апреля 2019

Попробуйте использовать маску формата 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);

Tech on the Net - мой любимый справочник по поиску масок формата SQL Server CONVERT.

0 голосов
/ 05 апреля 2019

SELECT convert (nvarchar (10), datepart (год, getdate ())) + '' + convert (nvarchar (10), datepart (месяц, getdate ()))

...