powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Формат месяца на русском языке
24 сообщений из 24, страница 1 из 1
Формат месяца на русском языке
    #39880799
Bereteli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Написал запрос в базу, где беру один параметр с датой и форматирую его в 3 столбца формата: Дата; Год; Месяц. И вот последний столбик Месяц преобразуется в Febrary, June и т.п. Везде облазил и пишут, что нужно ставить "Set language Russian". Ставил после кавычек выдало ошибку - "Преобразование типа данных varchar в тип данных smalldatetime привело к выходу значения за пределы диапазона", и куда я его только не вставлял. Может кто-то подскажет как в итоге вывести месяца на русском языке, при этом не изменяя какие-то глобальные настройки самого сервера для всех.


Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
let
 
       DateBegin = DateTime.ToText( Excel.CurrentWorkbook(){[Name="DateBegin"]}[Content]{0}[Column1], "yyyy-MM-dd"),
    DateEnd = DateTime.ToText( Excel.CurrentWorkbook(){[Name="DateEnd"]}[Content]{0}[Column1], "yyyy-MM-dd"),
 ConnectionString ="
WITH NEWSUM AS(
Select
   (m.StockID) AS StockID,
CAST(m.DocDate as date) AS DocDate, 
(DATEPART(hh,m.DocTime)) AS Hour ,
(DATEPART(yyyy,m.DocTime)) AS Year,
DATENAME(Month,m.DocTime) AS Month
 
from t_Sale m With(NoLock)
   Inner Join t_SaleD d With(NoLock) On d.ChID = m.ChID
                   
where 
m.StockID not in (102,115,116)
and ((m.DocDate Between '" & DatePre & "' and '" & DatePre2 & "') or (m.DocDate Between '" & DateBegin & "' and '" & DateEnd & "') )
                                     
GROUP BY m.StockID, m.DocDate, m.DocTime, c.PcatName, g.PGRName, g1.PGRName1,
 g3.PGRName3, g7.PGrName7, ga.PGrAName
...
Рейтинг: 0 / 0
Формат месяца на русском языке
    #39880807
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bereteli,

Код: sql
1.
2.
3.
Set language English
select DATENAME(Month,getdate()) AS Month
select format(getdate(), 'MMMM', 'ru-RU') 
...
Рейтинг: 0 / 0
Формат месяца на русском языке
    #39880824
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bereteli,

SET LANGUAGE N'RUSSIAN' устанавливается для сеанса с SQL Server. В справке есть информация.
Или в параметрах соединения укажите Default Language=Russian.
...
Рейтинг: 0 / 0
Формат месяца на русском языке
    #39880827
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Более правильно - не заниматься форматированием на сервере. У пользователя могут быть свои предпочтения, выставленные в региональных установках Windows, а вы ему подсовываете то что ему совершенно не нужно.
...
Рейтинг: 0 / 0
Формат месяца на русском языке
    #39880873
Bereteli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вы все пишете set language, но я просто не понимаю, куда именно в моем коде ставить это?
...
Рейтинг: 0 / 0
Формат месяца на русском языке
    #39880874
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bereteliвы все пишете set language, но я просто не понимаю, куда именно в моем коде ставить это?
а куда вы пытаетесь?
...
Рейтинг: 0 / 0
Формат месяца на русском языке
    #39880884
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndrF,

поддерживаю. Форматированием полученных данных по возможности должен заниматься клиент. Существуют принципы хранения и получения данных, основанные на достоверности и целостности. Это означает, что сервер гарантирует, что данные, которые на нем сохранены, будут возвращены в том же виде, что и получены. Как следствие, при получении внешним приложением данные должны вернуться в том же виде, в котором их разместило это или другое приложение. Отсутствие каких-либо преобразований или подмены данных гарантирует качество результата.

К примеру, пользователь сохранил даты на сервере в двоичном представлении типа даты-времени, но извлёк данные в виде текстовой строки. Очевидно, что сохраненные и полученные запросом данные сверить нельзя и подтвердить их достоверность также нельзя, можно лишь предполагать, что сравнение разнородных данных выполнено верно.

Назначение преобразования числа с слово месяца - это обработка и преобразование с последующим сохранением при помощи бизес-логики, размещённой на сервере баз данных. Например, если необходимо подготовить счет клиенту, то мы может написать месяц в понятной человеку форме в таблицу счетов. Клиентское приложение извлечёт данные счёта в готовом виде. Подчеркну, что запрос, который извлекает данные из таблицы счетов не производит никаких преобразований.
...
Рейтинг: 0 / 0
Формат месяца на русском языке
    #39880888
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bereteli,

как Вы подключаетесь к серверу БД?
...
Рейтинг: 0 / 0
Формат месяца на русском языке
    #39880890
Bereteli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
msLex,
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
 ConnectionString ="   set language russian 
WITH NEWSUM AS(


Select
	(m.StockID) AS StockID,
CAST(m.DocDate as date) AS DocDate, 
		(DATEPART(hh,m.DocTime)) AS DocTime ,

       (c.PcatName) as PcatName,
  (g.PGRName) AS PGRName,
	(g1.PGRName1) AS PGRName1,
  (g3.PGRName3) AS PGRName3,
  (g7.PGrName7) AS PGrName7,
  (ga.PGrAName) AS PGrAName, 
   
 SUM(d.Qty) AS Qty,
   SUM(0) AS QtyV,
SUM(d.SumCC_wt ) AS SumK,
Sum(0) AS SumKV,
(DATEPART(yyyy,m.DocTime)) AS Year,
DATENAME(Month,m.DocTime) AS Month
...
Рейтинг: 0 / 0
Формат месяца на русском языке
    #39880894
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bereteli,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
ConnectionString ="  set language russian
;WITH NEWSUM AS(


Select
	(m.StockID) AS StockID,
CAST(m.DocDate as date) AS DocDate, 
		(DATEPART(hh,m.DocTime)) AS DocTime ,

       (c.PcatName) as PcatName,
  (g.PGRName) AS PGRName,
	(g1.PGRName1) AS PGRName1,
  (g3.PGRName3) AS PGRName3,
  (g7.PGrName7) AS PGrName7,
  (ga.PGrAName) AS PGrAName, 
   
 SUM(d.Qty) AS Qty,
   SUM(0) AS QtyV,
SUM(d.SumCC_wt ) AS SumK,
Sum(0) AS SumKV,
(DATEPART(yyyy,m.DocTime)) AS Year,
DATENAME(Month,m.DocTime) AS Month



то, что вы в ConnectionString записываете команду, я опущу
...
Рейтинг: 0 / 0
Формат месяца на русском языке
    #39880903
Bereteli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
msLex, выдает ошибку
Код: plaintext
"Преобразование типа данных varchar в тип данных smalldatetime привело к выходу значения за пределы диапазона."
...
Рейтинг: 0 / 0
Формат месяца на русском языке
    #39880904
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLexBereteli,

Код: sql
1.
2.
ConnectionString ="set language russian;
WITH NEWSUM AS(



по-хорошему, вот так
...
Рейтинг: 0 / 0
Формат месяца на русском языке
    #39880911
Bereteli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
komrad,

"Преобразование типа данных varchar в тип данных smalldatetime привело к выходу значения за пределы диапазона."
...
Рейтинг: 0 / 0
Формат месяца на русском языке
    #39880913
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Beretelikomrad,

"Преобразование типа данных varchar в тип данных smalldatetime привело к выходу значения за пределы диапазона."
Понятное дело. Используйте FORMAT пример выше уже дали
...
Рейтинг: 0 / 0
Формат месяца на русском языке
    #39880915
Bereteli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот весь код, возможно ошибка из-за того, что количество select несколько а set всего 1?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
let
 ConnectionString =" set language russian;
WITH NEWSUM AS(
Select
DATENAME(Month,m.DocTime) AS Month
from t_Sale m With(NoLock)
	Inner Join t_SaleD d With(NoLock) On d.ChID = m.ChID
 						
UNION ALL
	Select 
DATENAME(Month,m.DocTime)
from t_CRRet m With(NoLock)
	Inner Join t_CRRetD d With(NoLock) On d.ChID = m.ChID
	
SELECT 

a.Month as Месяц
FROM NEWSUM a
...
Рейтинг: 0 / 0
Формат месяца на русском языке
    #39880919
Bereteli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TaPaK,

Incorrect syntax near 'format'.

Код: plaintext
1.
2.
3.
4.
5.
 ConnectionString =" set language russian;
WITH NEWSUM AS(

Select
DATENAME(Month,m.DocTime) AS Month
format(m.DocTime, 'MMMM', 'ru-RU')
...
Рейтинг: 0 / 0
Формат месяца на русском языке
    #39880920
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BereteliTaPaK,

Incorrect syntax near 'format'.

Код: plaintext
1.
2.
3.
4.
5.
 ConnectionString =" set language russian;
WITH NEWSUM AS(

Select
DATENAME(Month,m.DocTime) AS Month
format(m.DocTime, 'MMMM', 'ru-RU')

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

закрывающей скобки не хватает.
...
Рейтинг: 0 / 0
Формат месяца на русском языке
    #39880976
Bereteli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем огромное спасибо за отклик и помощь.
Оказалось проблема была в самих датах, а не в командах.
Код: plsql
1.
2.
ConnectionString ="set language russian; SET DATEFORMAT ymd;
WITH NEWSUM AS(
...
Рейтинг: 0 / 0
Формат месяца на русском языке
    #39880981
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BereteliВсем огромное спасибо за отклик и помощь.
Оказалось проблема была в самих датах, а не в командах.
Код: plsql
1.
2.
ConnectionString ="set language russian; SET DATEFORMAT ymd;
WITH NEWSUM AS(


как это печально
...
Рейтинг: 0 / 0
Формат месяца на русском языке
    #39881026
Bereteli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TaPaK,
так только начал знакомство((
...
Рейтинг: 0 / 0
Формат месяца на русском языке
    #39881030
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если я в Москве, сервер стоит в Лондоне, а пользователь сидит в Париже?
Он что же, будет получать даты на русском языке??
...
Рейтинг: 0 / 0
Формат месяца на русском языке
    #39881032
Ftt330
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владислав КолосовAndrF,

поддерживаю. Форматированием полученных данных по возможности должен заниматься клиент. Существуют принципы хранения и получения данных, основанные на достоверности и целостности. Это означает, что сервер гарантирует, что данные, которые на нем сохранены, будут возвращены в том же виде, что и получены. Как следствие, при получении внешним приложением данные должны вернуться в том же виде, в котором их разместило это или другое приложение. Отсутствие каких-либо преобразований или подмены данных гарантирует качество результата.

К примеру, пользователь сохранил даты на сервере в двоичном представлении типа даты-времени, но извлёк данные в виде текстовой строки. Очевидно, что сохраненные и полученные запросом данные сверить нельзя и подтвердить их достоверность также нельзя, можно лишь предполагать, что сравнение разнородных данных выполнено верно.

Назначение преобразования числа с слово месяца - это обработка и преобразование с последующим сохранением при помощи бизес-логики, размещённой на сервере баз данных. Например, если необходимо подготовить счет клиенту, то мы может написать месяц в понятной человеку форме в таблицу счетов. Клиентское приложение извлечёт данные счёта в готовом виде. Подчеркну, что запрос, который извлекает данные из таблицы счетов не производит никаких преобразований.
Хранить месяц в таблице счетов прописью - это гениально.
...
Рейтинг: 0 / 0
Формат месяца на русском языке
    #39881034
Фотография 4d_monster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iapА если я в Москве, сервер стоит в Лондоне, а пользователь сидит в Париже?
Он что же, будет получать даты на русском языке??
"А русский учи! Пригодится!"
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Формат месяца на русском языке
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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