Как вернуть только дату с форматом из типа данных sql server datetime

Я знаю, что по этому поводу есть много вопросов. Я пытаюсь найти ответ, но не могу его найти.

когда я пишу SELECT CONVERT(date, getdate()) from tblBlogs

этот запрос дает мне результат, подобный этому 2018-09-10

но хочу 10, September, 2018

Надеюсь кто-нибудь мне поможет

Какая у вас версия sql-сервера?

D-Shih 10.09.2018 08:59
2
1
362
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

попробуйте использовать FORMAT

вы можете указать свой формат даты, как хотите

SELECT FORMAT(getdate(),'dd,MMMM,yyy') from tblBlogs;
Ответ принят как подходящий

Если у вас версия SQL-сервера выше 2012, вы можете попробовать использовать функцию ФОРМАТ, чтобы это сделать.

SELECT FORMAT(getdate(),'dd,MMMM,yyy')

sqlifddle


Или вы можете использовать функцию DATENAME, чтобы получить имя, которое будет вашим ожидаемым результатом.

SELECT DATENAME(day,Getdate())+','+DATENAME(month,Getdate())+','+DATENAME(year,Getdate())

sqlfiddle

Результат

10,September,2018

Лично я стараюсь избегать FORMAT, он может быть ужасно медленным при применении к набору данных. Другой способ - использовать DATENAME:

DATE NAME(DAY,GET DATE()) +', ' + DATENAME(MONTH,GETDATE()) + ', ' + DATENAME(YEAR,GETDATE())

Однако, если это касается формата отображения, часто лучше делать это на уровне представления, а не в СУБД.

Если ваш SQL Server не поддерживает функцию FORMAT

SELECT CAST(DAY(@DateTime) AS VARCHAR) + ', ' + DATENAME(MONTH, @DateTime) + ', ' + CAST(YEAR(@DateTime) AS VARCHAR)

Другие вопросы по теме