sql >> Base de Datos >  >> RDS >> PostgreSQL

Obtener el día de una fecha en PostgreSQL

En PostgreSQL puede usar extract() función para obtener el día a partir de una fecha.

También puede usar date_part() hacer lo mismo.

Al extraer el día de una fecha, debe especificar a qué sentido de la palabra "día" se refiere. Por ejemplo, "día de la semana", "día del mes", "día del año", etc.

Ejemplo 1:Día de la semana

Aquí hay un ejemplo del uso de extract() función para extraer el día de la semana de una fecha.

Usando dow devuelve el día de la semana de 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   

En este ejemplo, también devolví el nombre del día, para que no haya confusión sobre qué día se está devolviendo realmente.

Usaré la misma fecha para los ejemplos restantes, por lo que no es necesario que imprima el nombre del día en esos ejemplos.

Ejemplo 2:Día de la semana ISO

Usando isodow devuelve el día de la semana de lunes (1) a domingo (7).

SELECT extract(
    isodow from date '2020-12-27'
    ) AS "ISO Day of week";

Resultado:

 ISO Day of week 
-----------------
               7

La razón por la que usé Sunday en estos ejemplos es porque resalta la diferencia entre isodow y dow .

Ejemplo 3:Día del mes

Al usar marca de tiempo o fecha valores, day devuelve el día del mes (1 – 31).

SELECT extract(
    day from date '2020-12-27'
    ) AS "Day of month";

Resultado:

 Day of month 
--------------
           27

Cuando se usa un intervalo valor, el day el campo da como resultado el número de días que se devuelven.

SELECT extract(
    day from interval '32 weeks'
    ) AS "Number of days";

Resultado:

 Number of days 
----------------
            224

Ejemplo 4:Día del año

Usando doy devuelve el día del año (1 – 365/366).

SELECT extract(
    doy from date '2020-12-27'
    ) AS "Day of year";

Resultado:

 Day of year 
-------------
         362

Ejemplo 5:La función date_part()

El date_part() La función se puede usar en lugar de extract() función. He aquí un ejemplo.

SELECT date_part(
    'doy', timestamp '2020-12-27'
    ) AS "Day of year";

Resultado:

 Day of year 
-------------
         362