如果我從我的Oracle數據庫PL/SQL運行下面的選擇我返回預期的結果:爲什麼TO_DATE需要從Oracle提取數據到水晶報表
select * from risk t where t.accounting_to_date='01-JAN-3000'
當我運行在相同的SELECT語句水晶報表2016使用命令和Oracle連接,我不能拉任何數據。
我已經找到了解決方法是:
使用我的水晶報表命令to_date函數是這樣的:
select * from risk t where t.accounting_to_date= to_date('01-JAN-3000','dd-MON-yyyy')
OR
- 使用ODBC連接。
這些變通辦法都做的工作。但是,我的問題是:什麼導致這個問題?有什麼地方可以改變嗎?問題在Oracle方面還是在Crystal Reports方面?這是一個錯誤?
我只是試圖環繞爲什麼發生這種情況我的頭。我必須使用Oracle連接而不是ODBC,因此我無法解決此問題。在Oracle或Crystal中使用to_date在everysingle日期周圍是壓倒性的。我不得不把這個功能添加到幾十個日期,而且還有數百個。
我偶然發現了這個時候,我們改變了我們的Crystal Reports使用ODBC連接到Oracle連接連接方式。我發現了很多缺失的數據,並且使用to_date函數進行了更正。
預先感謝您。
如果'accounting_to_date'是一個日期,然後比較字符串'01-JAN-3000'涉及的隱式數據轉換。您應該始終使用顯式數據轉換日期。 –
如果您確實需要,可以在Oracle中將日期文字指定爲'date'3000-01-31''或更詳細的'to_date()'表達式。 ''01 -JAN-3000''只是一個字符串,你信任當前的默認設置,它會按照你希望的方式轉換。如果某人從具有不同語言設置的桌面運行此操作,該怎麼辦? –