Есть ли в SQL Server функция Date_Format?


8

Все, что я нашел, это список предопределенных DateFormat, из которых я могу выбрать, как это

Как я помню, в MySQL (и PostgeSQL тоже?) Вы можете определить свой формат даты:

DATE_FORMAT(now(),'&m_%Y') --for 02_2012 etc.

SQL Server имеет то же самое? Я вижу, что люди должны написать функцию, чтобы сделать такую ​​вещь, у нее есть встроенная?


РЕДАКТИРОВАТЬ:

Я только что нашел DatePartфункцию. Месяц может принимать как число, но всегда возвращает 1 цифру, даже если я использую datePart(MM, getdate())


Возможный дубликат stackoverflow.com/questions/8202257/…
GSerg

1
Как правило, форматирование должно выполняться клиентом, а не базой данных. При этом, если вам нужно отформатировать вывод базы данных, Мартин Смит уже предоставил опции.
JSR

Ответы:


16

Еще нет.

Вам нужно использовать CONVERTпараметр стиля или взломать что-нибудь вместе с DATEPARTили DATENAME.

SQL Server 2012 будет иметь FORMATфункцию, которая принимает строку формата .NET Framework

Синтаксис:

FORMAT ( value, format [, culture ] )

Пример использования

SELECT FORMAT(getdate(), 'dd/MM/yyyy', 'en-US' ) 

Вы всегда можете использовать интеграцию с CLR и создать свой собственный UDF, который делает то же самое в 2005 или 2008 году.


Аааа, 2012! О, хорошо, я думаю, я напишу UDF, как вы сказали. Спасибо
Король Чан

Это будет потрясающе.
Гордон Белл

1
@KingChan и Martin: Что касается использования SQLCLR для достижения этой цели в SQL Server 2005/2008/2008 R2, всегда есть возможность загрузить бесплатную версию SQL # (автор которой я являюсь, но Date_Format бесплатен) и тогда нет необходимости заниматься кодированием. У меня есть несколько примеров обоих SQL#.Date_Formatи встроенный FORMATответ на этот SO: Есть ли способ получить даты с пользовательскими форматами в SQL Server? :-)
Соломон Руцкий

0

Если ваша цель - просто форматированный вывод, и он не должен оставаться в типе данных datetime, использование CONVERT с кодом формата является отличным инструментом. Список форматов и их соответствующие коды можно найти здесь: http://msdn.microsoft.com/en-us/library/ms187928.aspx

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.