2012-08-25 22 views
13

ho bisogno di visualizzare alcuni dati, se si tratta di un - nuovi dati - i dati aggiornati diciamo, sarò basando questi dati da una colonna publishdate e aggiornato colonna in cui publishdate e updateddate sono entrambi timestamp? . quindi come calcolare la data se è nuova?Oracle Data sql non oltre oggi

+0

Non è chiaro cosa vuoi. Puoi descrivere meglio? – codingbiz

+0

ho una colonna publishdate e voglio visualizzare i dati che sono stati pubblicati in questo giorno, e non quelli postati ieri né precedenti – sasori

risposta

34

Per ultime 24 ore:

Where publish_date >= sysdate -1 

o in qualsiasi momento oggi (mezzanotte in avanti)

where publish_date >= trunc(sysdate) 

Se questo è un grande tavolo, suppongo di avere un indice su data di pubblicazione. Se si utilizza trunc (publish_date), potrebbe non essere possibile utilizzare l'indice (non testato, ma eseguire un piano di spiegazione per essere sicuri).

+1

wuhuuuu! funziona perfettamente +1 –

+0

sysdate -1 ... nice: D – GedankenNebel

8

Prova questa

Where TRUNC(sysdate) = TRUNC(publish_date) 

sysdate restituisce la data odierna con il tempo. Il TRUNC rimuove la parte di tempo

+0

Non voglio rovinare un -1, ma come spiegato da @tbone, usando 'TRUNC (publish_date) 'è probabilmente una cattiva idea e un killer delle prestazioni in questa situazione –