Используйте extract()
функцию:
Select *
From the_table
Where extract(dow from date_column) = 0;
В качестве альтернативы, если вы предпочитаете недели, начиная с понедельника, вы можете использовать isodow
вместо:
Select *
From the_table
Where extract(isodow from date_column) = 7;
Вышеуказанные два запроса независимы на клиента язык. Вы можете также использовать название дня, если вы хотите использовать to_char()
:
Select *
From the_table
Where to_char(date_column, 'DAY') = 'SUNDAY';
Но я бы не рекомендуем, так как это зависит от языка клиент SQL настроил. Он может потерпеть неудачу, если компьютер клиента использует другой язык, а затем английский
Поэтому 1 будет понедельник, 2 - вторник и т. Д.? –
@MarkoPolo: См. Ссылку на руководство. Обе версии документированы. Но да, 1 будет понедельника. 'dow' и' isodow' отличаются числом в течение первого дня месяца ('isodow' никогда не вернет' 0' - он начинается с 1 в понедельник) –