2016-04-04 3 views
0

Я нуждаясь преобразовать даты/времени в следующем формате с помощью SQL: 4 апреля 2016SQL Date Format 107 без ведущих нулей в течение дня

Использование

SELECT 
DATENAME(MM, GETDATE()) + 
RIGHT(CONVERT(VARCHAR(12), GETDATE(), 107), 9) AS [PaymentDate] 

получает мне почти то, что мне нужно, однако он ставит ведущий 0 в день, оставляя меня: April 04, 2016

Как я могу избавиться от этого ведущего 0 в день?

+0

Что ваша СУБД и номер версии? Из формата он выглядит как SQL Server? Если да, то какая версия? – Siyual

+0

вы можете получить день с помощью 'CONVERT (VARCHAR, DATEPART (DAY, GETDATE()))', но тогда вам понадобится другая функция для года 'CONVERT (VARCHAR, DATEPART (YEAR, GETDATE()))', если вы используя sql 2012+, вы можете использовать 'CONCAT' для объединения значений без преобразования в varchars' CONCAT (DATENAME (MM, GETDATE()), '', DATEPART (DAY, GETDATE()), ',', DATEPART (YEAR, GETDATE())) ' – JamieD77

+0

К сожалению, в настоящее время я работаю в SQL Server. Вы решили проблему с помощью функции FORMAT(). Ценить это. –

ответ

2

В качестве альтернативы, если вы используете SQL Server 2012 или более поздней версии, вы можете использовать функцию FORMAT() для этого :

Select Format(GetDate(), 'MMMM d, yyyy') 

4 апреля 2016

0

это будет работать:

QUERY:

SELECT DATENAME(MM, GETDATE())+' '+DATENAME(dd, GETDATE())+' '+DATENAME(yy, GETDATE()) AS [PaymentDate]; 

РЕЗУЛЬТАТ:

enter image description here

Смежные вопросы