2014-04-15 121 views
2

在oracle中構建查詢時遇到問題。我有表「DATE_CREATE」,它有一個「TIMESTAMP」類型的列。一個值的例子是:從時間戳減去時間的Oracle SQL查詢

2012-10-20 05:43:47:001000 

我想建立一個where子句用於創建於15分鐘前新列選擇行。現在我有一個這樣的查詢(其中不返回行,但應):

SELECT DATE_CREATE,ID 
FROM TABLE 
WHERE DATE_CREATE >= CURRENT_TIMESTAMP - interval '15' minute 

請幫助...

+1

什麼錯誤時,拋出? – CodeBird

+0

你真的有一個名爲'CREATE'的列嗎?這是一個保留字,您需要引用它才能使用它''CREATE''。一般而言,您應該避免使用保留字作爲對象名稱 - 正因爲如此, –

+0

不,我剛剛舉了一個例子,它被稱爲「DATE_CREATE」。並且這個查詢不會引發錯誤(對不起,我混淆了),這個顯示沒有結果 - 實際上有 - 超過100個......如果我嘗試使用自定義日期,我會得到一個錯誤,假設: 「WHERE DATE_CREATE> ='2012年10月20日05:30:00:000000' - 然後我得到這個:ORA-01861:文字不匹配格式字符串 –

回答

6

試試這個:

SELECT DATE_CREATE,ID 
FROM TABLE 
WHERE DATE_CREATE >= CURRENT_TIMESTAMP - NUMTODSINTERVAL(15, 'MINUTE') 
+1

這一個工程!謝謝。但我想知道爲什麼我的返回零行?差異在哪裏? –