Добрый день. Написал запрос в базу, где беру один параметр с датой и форматирую его в 3 столбца формата: Дата; Год; Месяц. И вот последний столбик Месяц преобразуется в Febrary, June и т.п. Везде облазил и пишут, что нужно ставить "Set language Russian". Ставил после кавычек выдало ошибку - "Преобразование типа данных varchar в тип данных smalldatetime привело к выходу значения за пределы диапазона", и куда я его только не вставлял. Может кто-то подскажет как в итоге вывести месяца на русском языке/
Код
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
А что в SQL нельзя объявить табличку с соответствиями месяцев и в лоб к столбцу с английскими названиями приджойнить русские? Ну, если с настройками не выходит. Опять же, раз вы в БД лезете при помощи PQ, то можно такой джойн проделать силами PQ после получения массива из БД. Если решение на PQ заинтересует, то публикуйте запрос целиком и в файлике покажите структуру таблички, которую получаете из БД с английскими названиями месяцев.
Впр это немного из другой оперы)) PQ,я могу это сделать одним действием, но мне очень хочется это сделать в sql. PQ я с самой даты преобразовать в месяц могу, но проблема в том, что на удаленке pq кушает больше ресурсов чем sql.
PooHkrd написал: А что в SQL нельзя объявить табличку с соответствиями месяцев и в лоб к столбцу с английскими названиями приджойнить русские?
А этот вариант не реально реализовать? Я в SQL не силен, но что джойнить в нем можно знаю, вопрос в том, позволяет ли синтаксис использовать для джойна таблицы не из БД, а сформированные прямо в запросе.
bereteli, SQL и Excel находятся немного по разные стороны этого форума. У вас в примере синтаксис чего? Это не просто запрос с синтаксисом SQL, который может быть выполнен, как скриптом VBA, так и прочими инструментами.
БМВ, это кусок запроса PQ, в котором генерируется строка запроса к серверу SQL. А вот какая это разновидность SQL сие мне не ведомо. bereteli, есть такой ресурс там и форум есть.
Привет, Михаил. А что говорить-то, если ТС, как пленный партизан молчит и не сообщает, с чем дело имеет. Боюсь и sql.ru его также куда-нибудь пошлют В Microsoft SQL Server, начиная с 2016, можно так
bereteli написал: ormat' is not a recognized built-in function name.
Версию нужно сообщать? Вы настолько уверены, что версии SQL Server Microsoft выпускает только с целью денег получить, а никакой новой функциональности не добавляет?
Цитата
bereteli написал: пишут, что нужно ставить "Set language Russian"
Правильно пишут, конструкция вполне рабочая. Вообще запросы из Power Query вполне себе процедурные
Код
let
Source = Sql.Database("serverName\instanceName", "databaseName", [
Query=
"Set Language Russian;
Select DateName(Month, GETDATE());"
])
in
Source