No PostgreSQL você pode usar o
extract()
função para obter o dia de uma data. Você também pode usar
date_part()
para fazer a mesma coisa. Ao extrair o dia de uma data, você precisa especificar o sentido da palavra “dia” que você quer dizer. Por exemplo, “dia da semana”, “dia do mês”, “dia do ano”, etc.
Exemplo 1:dia da semana
Aqui está um exemplo de uso do
extract()
função para extrair o dia da semana de uma data. Usando
dow
retorna o dia da semana como domingo (0) a sábado (6). SELECT extract(dow from date '2020-12-27') AS "Day of week", to_char(date '2020-12-27', 'Day') AS "Day Name";
Resultado:
Day of week | Day Name -------------+----------- 0 | Sunday
Neste exemplo, também retornei o nome do dia, para que não haja confusão sobre qual dia está realmente sendo retornado.
Usarei a mesma data para os exemplos restantes, então não há necessidade de imprimir o nome do dia nesses exemplos.
Exemplo 2:dia da semana ISO
Usando
isodow
retorna o dia da semana como segunda-feira (1) a domingo (7). SELECT extract( isodow from date '2020-12-27' ) AS "ISO Day of week";
Resultado:
ISO Day of week ----------------- 7
A razão pela qual usei o domingo nesses exemplos é porque ele destaca a diferença entre
isodow
e dow
. Exemplo 3:dia do mês
Ao usar carimbo de data e hora ou data valores,
day
retorna o dia do mês (1 – 31). SELECT extract( day from date '2020-12-27' ) AS "Day of month";
Resultado:
Day of month -------------- 27
Ao usar um intervalo valor, o
day
campo resulta no número de dias que está sendo retornado. SELECT extract( day from interval '32 weeks' ) AS "Number of days";
Resultado:
Number of days ---------------- 224
Exemplo 4:dia do ano
Usando
doy
retorna o dia do ano (1 – 365/366). SELECT extract( doy from date '2020-12-27' ) AS "Day of year";
Resultado:
Day of year ------------- 362
Exemplo 5:A função date_part()
O
date_part()
função pode ser usada no lugar do extract()
função. Aqui está um exemplo. SELECT date_part( 'doy', timestamp '2020-12-27' ) AS "Day of year";
Resultado:
Day of year ------------- 362