2011-05-06 24 views
8

¿Cómo puedo obtener una marca de tiempo con una fecha de 30 días a partir de ahora?PostgreSQL: Timestamp en el futuro

Probé cosas como ahora() + entero '30' ... pero no funcionó.

Estoy ejecutando Postgres 8.

¿Alguna idea?

+1

PostrgreSQL 8? 8.0? 8.4? – Charles

Respuesta

17

intentar algo como esto:

SELECT NOW() + '30 days'::interval 
+2

FWIW, la sintaxis 'intervalo '30 días'' también funciona [a partir de 8.0] (http://www.postgresql.org/docs/8.0/static/functions-datetime.html). – Charles

+1

Sí ... y para 9.1 'now() + '30 days'' también funciona, no lo he comprobado para versiones anteriores. –

+0

¡Gracias! ¡Funciona! – paoloP

5

La expresión SQL estándar es

select current_timestamp + interval '30' day 

Cotizaciones alrededor del número, no en torno a la frase. Ver the earliest SQL standard Puedo encontrar en línea, p 91. PostgreSQL es mucho más flexible que el estándar, lo que puede ser algo bueno o malo. Admito muchos dbms diferentes: la flexibilidad me duele más a menudo de lo que ayuda. PostgreSQL, por ejemplo, admite esta declaración no estándar.

select current_timestamp + interval '1 month, 2 days, 3 hours, 2 minutes';