example ejemplo date_trunc date_part sql postgresql datetime

ejemplo - insert date postgresql



Postgresql-seleccione algo donde fecha="01/01/11" (2)

Tengo un campo de fecha y hora en mi Postgresql, llamado "dt". Me gustaria hacer algo como

SELECT * FROM myTable WHERE extract (date from dt) = ''01/01/11''

¿Cuál es la sintaxis correcta para hacer eso?

¡Gracias!


Con PostgreSQL hay una serie de funciones de fecha / hora disponibles, vea here .

En tu ejemplo, podrías usar:

SELECT * FROM myTable WHERE date_trunc(''day'', dt) = ''YYYY-MM-DD'';

Si ejecuta esta consulta regularmente, también es posible crear un índice utilizando la función date_trunc :

CREATE INDEX date_trunc_dt_idx ON myTable ( date_trunc(''day'', dt) );

Una ventaja de esto es que hay más flexibilidad con las zonas horarias si es necesario, por ejemplo:

CREATE INDEX date_trunc_dt_idx ON myTable ( date_trunc(''day'', dt at time zone ''Australia/Sydney'') ); SELECT * FROM myTable WHERE date_trunc(''day'', dt at time zone ''Australia/Sydney'') = ''YYYY-MM-DD'';


Creo que quieres convertir tu dt en una date y corregir el formato de tu fecha literal :

SELECT * FROM table WHERE dt::date = ''2011-01-01'' -- This should be ISO-8601 format, YYYY-MM-DD

O la versión estándar :

SELECT * FROM table WHERE CAST(dt AS DATE) = ''2011-01-01'' -- This should be ISO-8601 format, YYYY-MM-DD

La función de extract no comprende la "fecha" y devuelve un número.