2013-10-17 40 views
1

我有一個變量的類型「時間戳」我想它比較反對「record_date」(這是一個數據庫列)的Oracle SQL - 加入天timestamp類型的變量

指明MyDate」

我的查詢是獲取mydate = record_date的記錄,但是我的查詢(record_date =:mydate)只給出了record_date類似於'06/10/13 12:00:00.000000000 AM'的結果。如果record_date有一些不同的hh:mm:ss值,如'06/10/13 02:23:32.000000000 AM',則相等運算符不會給出任何輸出。

record_date> =:指明MyDate作品,但它也給出了日期輸出大於6,即7等。

如何寫這樣 record_date> =的比較:數值指明MyDate和record_date < =:指明MyDate + 1(數值指明MyDate + 1)是有問題的。請建議

+2

使用TRUNC功能。 – OldProgrammer

回答

1

上述問題可以通過使用下面的查詢

TO_CHAR(RECORD_DATE, ''DD-MON-YYYY'') = TO_CHAR(:MYDATE, ''DD-MON-YYYY'') 
0

你大多是正確的......上面的問題雖然解決了,看起來就像你問一個日期範圍...因爲是不幸的,不止一種方法來編寫查詢,所以你可以寫入a = b的地方,或者你可以寫出a> b-1和a + b + 2的地方。如果你只考慮a = b,那麼是的,to_char = to_char將會工作,trunc(a)= trunc(b)也是如此。

但是,如果您需要查看某個日期是否大於另一個日期,那麼您只需要進行一個小的編輯,因爲它現在先看dd,然後是mm,而去年......不會爲您提供正確的結果,因此您可以將日期順序更改爲yyyy-mm-dd。 :)