在代碼中,我的日期為ZonedDateTime(Java)
SELECT *
FROM MYTABLE
WHERE DATE_START = to_date('22/01/22 01:00:00', 'YYYY-MM-DD hh:mm:ss[.nnnnnnn]') --(TIMESTAMP(6))
AND DATE_TO = to_date('22/01/22 02:00:00', 'YYYY-MM-DD hh:mm:ss[.nnnnnnn]') --(TIMESTAMP(6))
當我運行此查詢時,我得到:
不一致的資料型別:預期 %s 得到 %s” 預期 NUMBER,得到 DATE
當我不嘗試時,to_date我得到:
- 00000 - “無效號碼”
當我嘗試與to_char相同時to_date,我不知道問題出在哪里。我怎樣才能做到這一點?沒有任何效果。我在列中的日期格式是 eq:
22/01/22 01:00:00,000000000
uj5u.com熱心網友回復:
您現在遇到的一個問題是您要求用 4 年數字表示年份,然后只給它一個 2 數字值。您將需要切換 yyyy -> yy
uj5u.com熱心網友回復:
由于您有一個 2 位數的年份,因此您想要RRorYY代替YYYYandHH24小時和MI分鐘,如果您想要可選的小數秒,那么您可以使用TO_TIMESTAMPand .FF:
SELECT *
FROM MYTABLE
WHERE DATE_START = TO_TIMESTAMP('22/01/22 01:00:00', 'RR-MM-DD HH24:MI:SS.FF')
AND DATE_TO = TO_TIMESTAMP('22/01/22 02:00:00', 'RR-MM-DD HH24:MI:SS.FF')
或者,您可以使用TIMESTAMP文字:
SELECT *
FROM MYTABLE
WHERE DATE_START = TIMESTAMP '2022-01-22 01:00:00'
AND DATE_TO = TIMESTAMP '2022-01-22 02:00:00'
如果您從 Java 呼叫它并傳入時間,則使用:
SELECT *
FROM MYTABLE
WHERE DATE_START = ?
AND DATE_TO = ?
并將時間戳作為系結引數傳入。
其中,對于樣本資料:
CREATE TABLE mytable (date_start, date_to) AS
SELECT TIMESTAMP '2022-01-22 01:00:00.000000', TIMESTAMP '2022-01-22 02:00:00.000000' FROM DUAL;
兩個輸出:
DATE_START DATE_TO 2022-01-22 01:00:00.000000000 2022-01-22 02:00:00.000000000
db<>在這里擺弄
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/419148.html
標籤:
上一篇:如何將特定型別轉換為泛型型別
