У меня есть запрос в sql, мне нужно получить дату в формате dd/mmm/yy
.
Пример: 25/июня/2013
.
Как я могу преобразовать его для SQL сервера?
Я не уверен, что существует точное соответствие для нужного вам формата. Но вы можете приблизиться к нему с помощью convert()
и стиля 106
. Затем замените пробелы:
SELECT replace(convert(NVARCHAR, getdate(), 106), ' ', '/')
Есть уже несколько ответов и типы форматирования для SQL Server 2008 г. Но этот метод несколько двусмысленно, и это будет трудно для вас, чтобы запомнить номер в связи с определенным форматом даты. Что's, почему в следующей версии SQL Server есть лучший вариант.
FORMAT ( value, format [, culture ] )
С опцией культуры, можно указать дату в соответствии с вашим зрителям.
DECLARE @d DATETIME = '10/01/2011';
SELECT FORMAT ( @d, 'd', 'en-US' ) AS 'US English Result'
,FORMAT ( @d, 'd', 'en-gb' ) AS 'Great Britain English Result'
,FORMAT ( @d, 'd', 'de-de' ) AS 'German Result'
,FORMAT ( @d, 'd', 'zh-cn' ) AS 'Simplified Chinese (PRC) Result';
SELECT FORMAT ( @d, 'D', 'en-US' ) AS 'US English Result'
,FORMAT ( @d, 'D', 'en-gb' ) AS 'Great Britain English Result'
,FORMAT ( @d, 'D', 'de-de' ) AS 'German Result'
,FORMAT ( @d, 'D', 'zh-cn' ) AS 'Chinese (Simplified PRC) Result';
US English Result Great Britain English Result German Result Simplified Chinese (PRC) Result
---------------- ----------------------------- ------------- -------------------------------------
10/1/2011 01/10/2011 01.10.2011 2011/10/1
US English Result Great Britain English Result German Result Chinese (Simplified PRC) Result
---------------------------- ----------------------------- ----------------------------- ---------------------------------------
Saturday, October 01, 2011 01 October 2011 Samstag, 1. Oktober 2011 2011年10月1日
Для ОП'ы решение, мы можем использовать следующий формат, который, как уже упоминалось в @Мартин Смит:
FORMAT(GETDATE(), 'dd/MMM/yyyy', 'en-us')
Некоторые примеры форматов даты:
Если вы хотите больше форматов даты в SQL Server, вы должны посетить:
мы можем конвертировать дату во многие форматы, например
SELECT convert(varchar, getdate(), 106)
Это возвращает dd mon yyyy
.
Подробнее здесь Это может помочь вам
Принято отвечать уже дает наилучшее решение, используя встроенные методы форматирования в 2008 году.
Следует отметить, что возвращаемый результат зависит от языка, однако для входа.
SET language Russian
SELECT replace(CONVERT(NVARCHAR, getdate(), 106), ' ', '/')
Возвращает
06/апр/2015
на момент написания статьи.
Для людей, приезжающих на этот вопрос, на более поздних версиях SQL-сервера метод, который позволяет избежать этой проблемы - нужно "заменить" - это
FORMAT(GETDATE(),'dd/MMM/yyyy', 'en-us')
На 2005+ можно было бы написать и CLR UDF, который принял дату, шаблон форматирования и культуры имитировать то же самое.
Попробуйте это
select convert(varchar,getdate(),100)
третий параметр-это формат, диапазон от 100до
114`, любой человек должен работать для вас.
Если вам нужна дата В использовать ДД/МММ/гггг
это:
replace(convert(char(11),getdate(),113),' ','-')
Заменить функцию getdate()` с вашим именем столбца. Этот работал для меня.
Попробуйте это :
select replace ( convert(varchar,getdate(),106),' ','/')
Тех, кто пытается вручную введите даты для SQL-сервера 'типа' переменная используйте этот формат при вводе :
'гггг-ММ-ДД'
Вы можете использовать этот запрос-
SELECT FORMAT (getdate(), 'dd/MMM/yy') as date
Надеюсь, этот запрос поможет вам.
Спасибо!!