powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Формат даты. Наименование месяца на русском языке
10 сообщений из 10, страница 1 из 1
Формат даты. Наименование месяца на русском языке
    #40017487
chasovoy96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые коллеги, добрый день!
Прошу Вашей помощи, вы не смогли бы мне напомнить как вывести дату с наименованием месяца на русском языке т.е. например:
"12 ноября"

В наличие у меня MS SQL 2008

Буду Вам очень признателен и благодарен за оказанную помощь!
...
Рейтинг: 0 / 0
Формат даты. Наименование месяца на русском языке
    #40017508
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chasovoy96,

Код: sql
1.
select format(getdate(), 'dd MMMM yyyy', 'ru-RU')




а я чет забыл в 2008 может format и не быть.

тогда выкручивайтесь с помощью
Код: sql
1.
2.
3.
set language russian;

select datename(month, getdate());
...
Рейтинг: 0 / 0
Формат даты. Наименование месяца на русском языке
    #40017529
chasovoy96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
felix_ff, Благодарю за ответ!
Поступил вот так:
convert(varchar(2), dateonly, 104)+' '+datename(month, dateonly) as 'Дата отключения',
В итоге получаю в своём случае такую картину:

12 Ноябрь, скажите а никак нельзя сделать именно 12 Ноября ???
...
Рейтинг: 0 / 0
Формат даты. Наименование месяца на русском языке
    #40017542
chasovoy96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
т.е. я прошу Вашей помощи как вывести именно (Января, Февраля, Марта, Апреля и.т.д) а сейчас некорректно Январь, Февраль, Март
...
Рейтинг: 0 / 0
Формат даты. Наименование месяца на русском языке
    #40017544
WGA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WGA
Гость
chasovoy96,

Не проще ли задать свою функцию? С CASE WHEN... и так по 12 месяцам.
...
Рейтинг: 0 / 0
Формат даты. Наименование месяца на русском языке
    #40017548
chasovoy96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
WGA, Прошу прощения а можно подсказать как вывести например текущий день - 12 Ноября

case
when dateonly = 'Январь' then 'Января'
when dateonly = 'Февраль' then 'Февраля'
when dateonly = 'Март' then 'Марта'
when dateonly = 'Апрель' then 'Апрель'
when dateonly = 'Май' then 'Мая'
when dateonly = 'Июнь' then 'Июня'
when dateonly = 'Июль' then 'Июля'
when dateonly = 'Август' then 'Августа'
when dateonly = 'Сентябрь' then 'Сентября'
when dateonly = 'Октябрь' then 'Октября'
when dateonly = 'Ноябрь' then 'Ноября'
when dateonly = 'Декабрь' then 'Декабря'
else
''
end as 'Дата отключения ',
...
Рейтинг: 0 / 0
Формат даты. Наименование месяца на русском языке
    #40017549
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chasovoy96,

ну не умеет он (datename) скольнять падежи, там инфа вроде берется из sys.syslanguages (но не точно)

поэтому тут вариант написать свою какую нибудь скалярку в виде

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
create function dbo.fn_getstringdate (@date datetime)
returns varchar(255)
as begin
     
return cast(datepart(dd, @date) as varchar(2)) + ' ' + 
        case datepart(mm, @date)
              when 1 then 'января'
              when 2 then 'февраля'
              when 3 then 'марта'
              when 4 then 'апреля'
              when 5 then 'мая'
              when 6 then 'июня'
              when 7 then 'июля'
              when 8 then 'августа'
              when 9 then 'сентября'
              when 10 then 'октября'
              when 11 then 'ноября'
              when 12  then 'декабря'
         end + ' ' + cast(datepart(yyyy, @date) as varchar(4)) + ' года'
end
go

select [dbo].[fn_getstringdate] ('20201112')
...
Рейтинг: 0 / 0
Формат даты. Наименование месяца на русском языке
    #40017868
chasovoy96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
felix_ff, Коллеги благодарю Вас за оказанную помощь! Очень Вам признателен!
Функцию я написал, с этим я разобрался, но прошу прощения возможно дурацкий вопрос, но как ее использовать в своем запросе.

Например у меня есть такой запрос и мне необходимо применить функцию для "Дата отключения"

;WITH CTE AS(
select
se_upload_off.OBJ_FIL as 'Филиал', se_upload_off.OBJ_PO as 'ПО',
se_upload_off.phone as 'Телефон', convert(varchar(10), dateonly, 104) as 'Дата отключения',
ROW_NUMBER() OVER (PARTITION BY se_upload_off.CTG_NM, se_upload_off.OBJ_ADDR, se_upload_off.phone, dateonly, timeonly ORDER BY dateonly) as RN
from se_supa_dg, se_upload_off
)
select [Филиал],[ПО],[Дата отключения], [RN]
from cte
where RN = 1
order by [Дата отключения]
...
Рейтинг: 0 / 0
Формат даты. Наименование месяца на русском языке
    #40017873
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chasovoy96,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
;WITH CTE AS(
select
se_upload_off.OBJ_FIL as 'Филиал', se_upload_off.OBJ_PO as 'ПО',
se_upload_off.phone as 'Телефон', convert(varchar(10), dateonly, 104) as 'Дата отключения',
ROW_NUMBER() OVER (PARTITION BY se_upload_off.CTG_NM, se_upload_off.OBJ_ADDR, se_upload_off.phone, dateonly, timeonly ORDER BY dateonly) as RN
from se_supa_dg, se_upload_off
)
select [Филиал],[ПО],

[dbo].[fn_getstringdate]([Дата отключения]) as [Дата отключения], [RN]
from cte
where RN = 1
order by [Дата отключения]
...
Рейтинг: 0 / 0
Формат даты. Наименование месяца на русском языке
    #40017875
chasovoy96
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
felix_ff, Благодарю Вас! Теперь мне стало многое понятно.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Формат даты. Наименование месяца на русском языке
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]