我想提取從數據庫數據,其中場「結束_日期」小於今天的日期和地方END_DATE不等於空;我會怎麼做?我想第二部分了..我有第一部分的麻煩的Oracle SQL查詢的問題
select *
from table
where to_char(end_date) IS NOT null
我想提取從數據庫數據,其中場「結束_日期」小於今天的日期和地方END_DATE不等於空;我會怎麼做?我想第二部分了..我有第一部分的麻煩的Oracle SQL查詢的問題
select *
from table
where to_char(end_date) IS NOT null
試試這個
...
Where end_ date is not null and
And end_date < sysdate
而且,實際上,我認爲你可能甚至不需要第一部分,彷彿END_DATE爲null ,它肯定不會是今天的日期之後,因此其本身試試這個:
Where end_date < sysdate
編輯備註:
這會給你的每個記錄是 具有先於當前 系統日期和時間END_DATE,今天早些時候 包括 那些END_DATE值。如果你想只有那些 end_Dates達和不包括 昨天午夜,那麼你需要 與 表達對於昨天午夜結束日期 時間值替換「SYSDATE」 ..
在哪裏end_date之間< TRUNC(SYSDATE)
SYSDATE是甲骨文特定語法返回當前系統日期和時間。 (在SQL Server中,例如,它的)稱爲GETDATE(的功能。在ANSI標準語法實現此功能,(在Oracle和SQL Server的工作,並應在任何ANSI標準的數據庫工作)是。CURRENT_TIMESTAMP
+1:你不需要「not null」部分(因爲NULL日期不會「小於sysdate」) –
很好的解釋tnx一堆 –
要告訴你多一點關於如何使用Oracle中的日期檢查了這一點:
選擇當前日期,並刪除它30分鐘其中check_date被聲明爲時間戳
select current_timestamp + interval '-30' minute into check_date from dual;
選擇從表中的一切地方END_DATE不爲空及以上現 - 30分鐘
select * from table
where to_char(end_date) is not null and end_date < check_date;
select * from table where end_date < CURRENT_DATE and end_date IS NOT null
SELECT * FROM表 其中TO_CHAR(END_DATE, 'DD-MM-YYYY')是not null and end_date < sysdate;
您不需要浪費時間將結束日期轉換爲字符串來測試它是否爲空;只需使用「WHERE end_date IS NOT NULL」。 –