簡體   English   中英

JOOQ問題:需要AM / AM或PM / PM

[英]JOOQ Issue: AM/A.M. or PM/P.M. required

我使用JOOQ 3.4.1作為與Oracle數據庫進行通信的中間件,但是當我在代碼中編寫以下查詢時,出現了SqlDataException:AM / AM或PM / PM。

select 0 prodid, cast(((cast('31-DEC-' as varchar2(4000)) || cast(YearForBilling as varchar2(4000))) || ' 12.59.00.000000000 PM ') as timestamp) theDate  0 Balance from ProductDetails where productRSN = 71 
group by YearForBilling

有人可以幫我解決該問題嗎?

始終嘗試避免使用本地日期時間格式

我永遠不會依賴於與語言環境相關的格式化日期和時間戳字符串。 從不 您永遠都不知道這些設置是否會在某個時間點發生更改,例如作為系統默認值或作為會話設置等。請不要依賴它。 別這樣

如果可以的話,請使用完全不依賴於NLS設置的SQL標准時間戳文字( 我已經在此寫過博客 )。 例如:

TIMESTAMP '2016-12-31 23:59:00.0'

在您的情況下,您正在動態創建日期,因此時間戳文字將不起作用。 但仍然請使用ISO 8601日期格式,例如

TO_TIMESTAMP(YearForBilling || '-12-31 23:59:00', 'YYYY-MM-DD HH24:MI:SS')

此處描述了TO_TIMESTAMP()函數

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM