Тяну данные из PostgreSQL, там поле типа "timestamp without time zone".
Нужно получить название месяцев, что бы они сортировались не по алфавиту, а по календарю. то есть просто заменить кейсом на на названия - не вариант.
Пробую так:
Month(order_client.date_order) As "Месяц",
Получаю ошибку: ErrorMsg: ERROR: function month(timestamp without time zone) does not exist;
Кто сталкивался и как исправить?
Вот пробую так (подсовываю отформатированую дату):
Month(date#(order_client.date_order, 'DD.MM.YYYY')) As "Месяц"
Но в итоге все равно ошибка (он почему то функцию принимает за название поля):
SQL##f - SqlState: 42703, ErrorCode: 7, ErrorMsg: ERROR: column "date" does not exist;
Error while executing the query
Вы это делаете в Select?
Используйте преобразование полей в операторе предшествующей загрузки
load date(...)..;
select from;
Все что в селекте идет через соединение к базе через драйвер, поэтому в нем пишем только понятное для конкретной СУБД.
Да, в SELECT делаю.
Я подключаюсь к базе и Селектами выдергиваю несколько таблиц, поля по которым они связаны представляются одинаковыми и сам Клик их связывает.
вот могу получить или номер месяца
extract(MONTH from order_client.date_order) As "Месяц",
или заменить его на название
CASE
WHEN extract(MONTH from order_client.date_order)=1 THEN 'январь'
WHEN extract(MONTH from order_client.date_order)=2 THEN 'февраль'
WHEN extract(MONTH from order_client.date_order)=3 THEN 'март'
WHEN extract(MONTH from order_client.date_order)=4 THEN 'апрель'
WHEN extract(MONTH from order_client.date_order)=5 THEN 'май'
WHEN extract(MONTH from order_client.date_order)=6 THEN 'июнь'
WHEN extract(MONTH from order_client.date_order)=7 THEN 'июль'
WHEN extract(MONTH from order_client.date_order)=8 THEN 'август'
WHEN extract(MONTH from order_client.date_order)=9 THEN 'сентябрь'
WHEN extract(MONTH from order_client.date_order)=10 THEN 'октябрь'
WHEN extract(MONTH from order_client.date_order)=11 THEN 'ноябрь'
WHEN extract(MONTH from order_client.date_order)=12 THEN 'декабрь'
ELSE '0'
END AS "Месяц",
замена на название не подходит - неправильно сортируются - графики, не верный и порядок месяцев в таблицах.
Дату возьмите, и с ней уже будете работать средствами клика.
Решил так сначала выгружаю в формате простой даты:
order_client.date_order::date As "Дата чека",
А потом в пост обработке делаю преобразование:
order_client:
Load *,
month("Дата чека") as Мес,
WeekDay("Дата чека") as День
From order_client.qvd (qvd);
Может кому-то поможет.
Спасибо за подсказку о том как лучше реализовать.