2016-12-16 2 views
1
select extract(dow from datefield) 

вывести номер от 0 до 6, где 0 - воскресенье; есть ли способ получить день недели в SQL, предполагая, что недели начнутся в понедельник (так что 0 будет в понедельник)?Извлечь день недели с поля даты в PostgreSQL при условии начала недель в понедельник

ответ

2

From the manual

isodow 

    The day of the week as Monday (1) to Sunday (7) 

Итак, вам просто нужно вычесть 1 из этого результата:

psql (9.6.1) 
Type "help" for help. 

postgres=> select extract(isodow from date '2016-12-12') - 1; 
    ?column? 
----------- 
     0 
(1 row) 
postgres=> 
1

Использование date_part Функция доу()

Здесь 0 = воскресенье, 1 = Понедельник, 2 = вторник, ... 6 = Суббота

select extract(dow from date '2016-12-18'); /* sunday */ 

Выход: 0

select extract(isodow from date '2016-12-12'); /* Monday */ 

Ouput: 1

Смежные вопросы