У меня есть таблица task_details. Мне нужно выбрать его еженедельную дату из этой таблицы. Я использовал ISO Год & Неделя ISO, чтобы извлечь еженедельные даты из этой таблицы, так как я хочу извлечь ее номер недели как 53, если ее декабрь 2015 года, а затем в дни 28 декабря, 29 декабря, 30 декабря, 31 декабря и 1 января '16, 2 января '16, поскольку он не должен отделяться от двух разных недель для таких дат.
Запрос, который я использовал для ISO Год & ISO-неделя приведена ниже.Получение странного результата для ISO Дата в Postgresql
select
name, id,
to_date(week || ' ' || yr, 'IW IYYY') week_date,
sum(worked_hours) worked_hours_per_week,
week, yr
from (
select
name, id,
newdate, hours worked_hours,
to_number(to_char(newdate, 'IW'), '99') week,
extract(year from newdate) yr
from task_details t
) sub
where worked_hours > 0
group by name, id, to_date(week || ' ' || yr, 'IW IYYY'), week, yr
order by yr, week
Он работает отлично на недели, но затем я получаю этот странный результат для одной даты для записи в таблице.
таблица не имеет данных за год 2017.Also, то года колонок показывает 2016 год, который по желанию, но тогда newdate колонки и недели колонок дают странный результата . Почему это происходит? Как это исправить ?
Вот SQL скрипку для него: http://sqlfiddle.com/#!15/53abf/1
Очень творческий формат. Вам может быть интересна эта небольшая страница помощника: http://stackoverflow.com/editing-help. При обновлении формата не забудьте включить вашу версию Postgres и правильное определение таблицы. –