2013-12-09 81 views
0

我正在使用Oracle SQL Developer。動態SQL查詢To_Date格式Oracle

我的導師要求我們將動態查詢包含到我們的SQL語句中。我查詢的

部分是這樣的:

where booking.date_event != to_date('20140309','yyyymmdd') and booking.occassion_id=2 

我曾在某時修改查詢一步包括動態方面。所以它現在看起來像這樣:

where booking.date_event != to_date('20140309','yyyymmdd') and booking.occassion_id='&occassion_id' 

這給了我彈出框來正確輸入ID,它工作正常。

但是,我現在想要爲日期做同樣的事情。但顯然,以'yyyymmdd'格式輸入日期不是非常方便用戶。

如何將我的查詢更改爲允許各種類型的日期格式或將消息添加到彈出框以通知用戶使用正確的格式?此時彈出框只顯示「Date_Event」和一個輸入框。

+0

你確定這是你的導師想要的嗎?這聽起來像你可能會混淆動態SQL與SQL Developer的內置綁定變量替換。 – Drumbeg

+0

我很可能是。谷歌搜索後,我看到動態SQL指的是別的東西。不過,我認爲這只是一個簡單的方法來解釋她之後的事情。我想她也可能稱它爲「交互式查詢」。 –

+0

如果問題是如何以不同的格式接受日期,那麼在to_date()中使用任何你想要的。像to_date('31 -12-2014','dd-mm-yyyy')或to_date('31.12.14','dd.mm.yy'),只需閱讀to_date文檔即可。您可以一次嘗試多次,但應該在applicetion一側完成,而不是一般的數據庫。 – Elhana

回答

0

SQL Developer是用戶沒有工具。所以你不必擔心'20140309'格式不是用戶友好的。對於真正的用戶,您可以編寫一個真實的應用程序來接受日期(例如日曆彈出窗口),並以適當的格式將其發送到數據庫。

但是爲了讓SQL Developer更方便一些,您可以使用to_date而不使用格式。將環境和數據庫設置爲相同的語言環境後,您可以簡單地以您習慣的格式(例如9.3.13或09.03.2013或2013年3月9日)輸入日期,並且它們都可以工作。