Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как преобразовать дату в формат "2 августа 2014 г."?  [new]
storming
Member

Откуда:
Сообщений: 13
Как преобразовать дату в формат "2 августа 2014 г." на MSSQL Server 2008 R2?
Для 2012-х и старше серверов есть FORMAT, но что делать остальным?
2 авг 14, 18:21    [16391413]     Ответить | Цитировать Сообщить модератору
 Re: Как преобразовать дату в формат "2 августа 2014 г."?  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3264
storming,

CONVERT ( DATETIME, VALUE, стиль)
2 авг 14, 19:16    [16391541]     Ответить | Цитировать Сообщить модератору
 Re: Как преобразовать дату в формат "2 августа 2014 г."?  [new]
mag2000
Member

Откуда:
Сообщений: 182
storming,
Так подойдет ?
select  datename(d,GETDATE())+' '+ datename(m,GETDATE())+' '+ datename(yy,GETDATE()) + ' г.'
2 авг 14, 19:19    [16391549]     Ответить | Цитировать Сообщить модератору
 Re: Как преобразовать дату в формат "2 августа 2014 г."?  [new]
storming
Member

Откуда:
Сообщений: 13
mag2000
storming,
Так подойдет ?
select  datename(d,GETDATE())+' '+ datename(m,GETDATE())+' '+ datename(yy,GETDATE()) + ' г.'


Если еще добавить
SET LANGUAGE Russian;
select  datename(d,GETDATE())+' '+ datename(m,GETDATE())+' '+ datename(yy,GETDATE()) + ' г.'

то выдает: 2 Август 2014 г.

Как так сделать чтобы Август был с маленькой буквы и в родительном падеже?
2 авг 14, 20:26    [16391705]     Ответить | Цитировать Сообщить модератору
 Re: Как преобразовать дату в формат "2 августа 2014 г."?  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
storming
Как так сделать чтобы Август был с маленькой буквы и в родительном падеже?
Месяцев уж очень много!
Аж 12 штук.
Собрать их все в таблицу во всех падежах - непосильная задача!
2 авг 14, 21:03    [16391802]     Ответить | Цитировать Сообщить модератору
 Re: Как преобразовать дату в формат "2 августа 2014 г."?  [new]
storming
Member

Откуда:
Сообщений: 13
iap
Месяцев уж очень много!
Аж 12 штук.
Собрать их все в таблицу во всех падежах - непосильная задача!

Подсказали помогли

Появилась функция

create FUNCTION fullDateFormat(@date DATE)
	RETURNS VARCHAR(100)
	BEGIN
	
		DECLARE @month varchar(50)
		
		IF (MONTH(@date) = 1) SET @month = 'января'
		IF (MONTH(@date) = 2) SET @month = 'февраля'
		IF (MONTH(@date) = 3) SET @month = 'марта'
		IF (MONTH(@date) = 4) SET @month = 'апреля'
		IF (MONTH(@date) = 5) SET @month = 'мая'
		IF (MONTH(@date) = 6) SET @month = 'июня'
		IF (MONTH(@date) = 7) SET @month = 'июля'
		IF (MONTH(@date) = 8) SET @month = 'августа'
		IF (MONTH(@date) = 9) SET @month = 'сентября'
		IF (MONTH(@date) = 10) SET @month = 'октября'
		IF (MONTH(@date) = 11) SET @month = 'ноября'
		IF (MONTH(@date) = 12) SET @month = 'декабря'
		
		RETURN datename(d, @date)+' '+ @month+' '+ datename(yy, @date) + ' г.'

	END
2 авг 14, 21:40    [16391917]     Ответить | Цитировать Сообщить модератору
 Re: Как преобразовать дату в формат "2 августа 2014 г."?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
Зачем это? Преобразуйте дату в текст на клиентском приложении.
3 авг 14, 01:50    [16392571]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить