簡體   English   中英

Sql 開發者日期對比

[英]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

由於您有一個兩位數的年份,因此您需要RRYY而不是YYYYMI而不是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.

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