Подтвердить что ты не робот

Преобразование формата даты в формат DD/MMM/YYYY в SQL Server

У меня есть запрос в sql, мне нужно получить дату в формате dd/mmm/yy

Пример: 25/jun/2013.

Как я могу преобразовать его для SQL-сервера?

4b9b3361

Ответ 1

Я не уверен, что есть точное соответствие для формата, который вы хотите. Но вы можете приблизиться к convert() и style 106. Затем заменим пробелы:

SELECT replace(convert(NVARCHAR, getdate(), 106), ' ', '/')

Ответ 2

Уже существует несколько ответов и типов форматирования для SQL-сервера 2008 года. Но этот метод несколько неоднозначен, и вам будет сложно запомнить число в отношении конкретных Формат даты. Вот почему в следующих версиях SQL-сервера есть лучший вариант.

Если вы используете SQL Server 2012 или более поздние версии, вы должны использовать функцию Format()

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日

Для решения OP мы можем использовать следующий формат, о котором уже упоминал @Martin Smith:

FORMAT(GETDATE(), 'dd/MMM/yyyy', 'en-us')

Некоторые примеры форматов даты:

введите описание изображения здесь

Если вам нужно больше форматов дат SQL-сервера, вы должны посетить:

Ответ 3

мы можем конвертировать дату во многие форматы, например

SELECT convert(varchar, getdate(), 106)

Это возвращает dd mon yyyy

Подробнее здесь Это может помочь вам

Ответ 4

Принятый ответ уже дает лучшее решение, используя встроенные методы форматирования в 2008 году.

Следует отметить, что возвращенные результаты зависят, однако, от языка входа.

SET language Russian

SELECT replace(CONVERT(NVARCHAR, getdate(), 106), ' ', '/') 

Возвращает

06/апр/2015

на момент написания.

Для людей, сталкивающихся с этим вопросом в более поздних версиях SQL Server, метод, который позволяет избежать этой проблемы, а необходимость REPLACE -

FORMAT(GETDATE(),'dd/MMM/yyyy', 'en-us')

В 2005 году можно было бы написать CLR UDF, который принял бы DateTime, шаблон форматирования и культуру, чтобы имитировать то же самое.

Ответ 5

Попробуйте использовать следующий запрос.

SELECT REPLACE(CONVERT(VARCHAR(11),GETDATE(),6), ' ','/');  

Результат: 20/Июнь/13

SELECT REPLACE(CONVERT(VARCHAR(11),GETDATE(),106), ' ','/');  

Результат: 20/Июнь/2013

Ответ 6

Попробуйте это

select convert(varchar,getdate(),100)

Третий параметр - формат, диапазон от 100 до 114, любой из них должен работать для вас.

Если вам нужна дата в dd/mmm/yyyy, используйте следующую команду:

replace(convert(char(11),getdate(),113),' ','-')

Замените getdate() своим именем столбца. Это сработало для меня.

Ответ 7

Попробуйте следующее:

select replace ( convert(varchar,getdate(),106),' ','/')

Ответ 8

Любой, кто пытается вручную ввести дату в переменную sql-сервера, использует этот формат при вводе:

'yyyy-mm-dd'

Ответ 9

Вы можете использовать это query-

SELECT FORMAT (getdate(), 'dd/MMM/yy') as date

Надеюсь, этот запрос поможет вам.

Спасибо!!