questo
SELECT field,datetime_field
FROM database
WHERE datetime_field > (sysdate-1)
funzionerà. La domanda è: il 'datetime_field' ha lo stesso formato di sysdate? Il mio modo di gestirlo: usa la funzione 'to_char()' (funziona solo in Oracle).
campioni: giorno precedente:
select your_column
from your_table
where to_char(sysdate-1, 'dd.mm.yyyy')
o data
select extract(day from date_field)||'/'||
extract(month from date_field)||'/'||
extract(year from date_field)||'/'||
as mydate
from dual(or a_table)
where extract(day from date_field) = an_int_number and
extract(month from date_field) = an_int_number and so on..
confrontando:
select your_column
from your_table
where
to_char(a_datetime_column, 'dd.mm.yyyy') > or <or>= or <= to_char(sysdate, 'dd.mm.yyyy')
intervallo di tempo tra ieri e il giorno prima di ieri:
select your_column
from your_table
where
to_char(a_datetime_column, 'dd.mm.yyyy') > or <or>= or <= to_char(sysdate-1, 'dd.mm.yyyy') and
to_char(a_datetime_column, 'dd.mm.yyyy') > or <or>= or <= to_char(sysdate-2, 'dd.mm.yyyy')
altro tempo gammavariazione
select your_column
from your_table
where
to_char(a_datetime_column, 'dd.mm.yyyy') is between to_char(sysdate-1, 'dd.mm.yyyy')
and to_char(sysdate-2, 'dd.mm.yyyy')
Supponendo che datetime_field sia di tipo DATE, il codice dovrebbe funzionare. Tuttavia, stai convertendo una data in una stringa e torna a una data senza motivo. Usa la risposta di shahkalpesh. –
Il motivo della conversione è Voglio solo la DATA, non la DATA/ORA –