PDA

View Full Version : [SQL] la data di oggi


IAmZak
12-06-2008, 15:25
ciao ragazzi, come faccio durante una insert, ad inserire in un campo di tipo DATE, la data di oggi??? ciò funziona tipo
INSERT INTO blablabla (data) VALUES ('20080612');
ma chiaramente non posso mettere ogni giorno la data a mano. cerco qualcosa tipo today.date :D :D :D

shinya
12-06-2008, 15:50
Dipende dal db...cosa usi?

vizzz
12-06-2008, 16:01
non so se è standard per tutti i db, prova con "now()"

shinya
12-06-2008, 16:47
Non è standard. In oracle non esiste, ad esempio.

IAmZak
12-06-2008, 19:07
Dipende dal db...cosa usi?

postgre sql 8.5 con pgAdmin3

vizzz
12-06-2008, 19:15
postgre sql 8.5 con pgAdmin3

allora vai tranquillo di now(), sia con campi date che timestamp

INSERT INTO blablabla (data) VALUES (now());

IAmZak
12-06-2008, 19:34
thank you!!!!!
e.... posso anche dirgli un qualcosa tipo now() + 3 per dirgli "più tre mesi"

john_revelator
12-06-2008, 19:42
select current_date + interval '3 month'

vizzz
12-06-2008, 19:44
postgresql ha delle funzioni di manipolazione date e tempo spettacolari:
http://www.postgresql.org/docs/8.0/interactive/functions-datetime.html

buon divertimento :D

IAmZak
14-06-2008, 14:36
il problema è ora più particolare:
cioè ho una variabile tipo date, chiamiamola A

io devo fare una select in cui mi stampa solo le persone con 25 anni.
quindi devo fare una cosa tipo SELECT cognome FROM tabella WHERE now() - data_n = 25, ma è chiaro che non va perchè ci sono in ballo anche mesi e giorni nella variabie tipo date........ come cavolo faccio :muro:

amedeoviscido
14-06-2008, 18:16
Dovresti poter fare

data_nascita - interval '25 years' > now() - interval '25 years'

Oppure gioca con la funzione di postgres "date_trunc" (ad esempio, date_trunc('year',now()) -> 2008

vizzz
15-06-2008, 01:04
il problema è ora più particolare:
cioè ho una variabile tipo date, chiamiamola A

io devo fare una select in cui mi stampa solo le persone con 25 anni.
quindi devo fare una cosa tipo SELECT cognome FROM tabella WHERE now() - data_n = 25, ma è chiaro che non va perchè ci sono in ballo anche mesi e giorni nella variabie tipo date........ come cavolo faccio :muro:

viene comoda la funzione age:
SELECT cognome FROM tabella WHERE date_part('years', age(now(), data_n)) = 25