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