Возвращает первую дату (воскресенье) определенной недели в SQL redshift

#sql #amazon-redshift

#sql #amazon-redshift

Вопрос:

Я пытаюсь установить фильтр WHERE, в котором возвращаются только результаты с датами после воскресенья прошлой недели (включая воскресенье прошлой недели). На данный момент у меня есть:

date_part(w,GETDATE())

Это дает мне номер текущей недели. Как мне узнать, что первая дата этой недели номер (43), то есть 18 октября?

Ответ №1:

Хммм … это возвращает недели, начинающиеся с понедельника, что довольно стандартно:

 date_trunc('week', current_date)
  

Если вы хотите, чтобы воскресенье начинало неделю, то:

 date_trunc('week', current_date   interval '1 day') - interval '1 day'
  

Примечание: Если сегодня воскресенье, то возвращается сегодняшняя дата. Если в этом случае вам нужна дата последнего воскресенья, просто используйте:

 date_trunc('week', current_date) - interval '1 day'