[英]Sql Developer Date Comparasion
在代碼中,我將 Dates 作為 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))
當我運行此查詢時,我有
"inconsistent datatypes: expected %s got %s" Expected NUMBER, got DATE"
當我嘗試沒有to_date
我有
01722. 00000 - "invalid number"
。
當我嘗試與to_char
一樣的to_date
,我不知道問題出在哪里......我怎樣才能做到這一點。 沒有任何效果。 我在列中的日期格式是 eq: 22/01/22 01:00:00,000000000
您現在遇到的一個問題是您要求用 4 年數字表示年份,然后只給它一個 2 數字值。 您將需要切換 yyyy -> yy
由於您有一個兩位數的年份,因此您需要RR
或YY
而不是YYYY
和MI
而不是mm
分鍾,如果您想要可選的小數秒,那么您可以使用TO_TIMESTAMP
和.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;
output:
DATE_START DATE_TO 2022-01-22 01:00:00.000000000 2022-01-22 02:00:00.000000000
db<> 在這里擺弄
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.