2012-08-25 22 views
13

我需要顯示一些數據,如果它是 - 新數據 - 更新數據 比方說,我將基於發佈日期列和更新列的這些數據,其中publishdate和updateddate都是時間戳? 。那麼如何計算日期,如果它是一個新的?oracle sql date不遲於今天

+0

目前尚不清楚你想要什麼。你能描述得更好嗎? – codingbiz

+0

我有一個發佈日期列,我想顯示在這一天內發佈的數據,而不是昨天或更早發佈的數據 – sasori

回答

34

對於過去24小時:

Where publish_date >= sysdate -1 

或任何時候,今天(午夜前)

where publish_date >= trunc(sysdate) 

如果這是一個很大的表,我假設你有一個指數出版日期。如果您使用trunc(publish_date),它可能無法使用索引(未經測試,但運行解釋計劃以確保)。

+1

wuhuuuu!完美的作品+1 –

+0

sysdate -1 ... nice:D – GedankenNebel

8

試試這個

Where TRUNC(sysdate) = TRUNC(publish_date) 

sysdate返回今天的日期與時間。該TRUNC刪除部分時間

+0

我不想破壞-1,但正如@tbone解釋的那樣,使用'TRUNC (publish_date)'在這種情況下可能是一個糟糕的主意和性能殺手 –