2017-01-10 2 views

ответ

1

Используйте 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 настроил. Он может потерпеть неудачу, если компьютер клиента использует другой язык, а затем английский

+0

Поэтому 1 будет понедельник, 2 - вторник и т. Д.? –

+0

@MarkoPolo: См. Ссылку на руководство. Обе версии документированы. Но да, 1 будет понедельника. 'dow' и' isodow' отличаются числом в течение первого дня месяца ('isodow' никогда не вернет' 0' - он начинается с 1 в понедельник) –