我有一個表,其中包含一個名為“date_started”的日期格式的列。我想從固定日期(例如 31.03.2022)中減去此列中的所有日期,從而生成一個新列“absolut days”,顯示兩個日期之間的天數差異。
我嘗試使用以下陳述句:
SELECT ('31.03.2022'- date_started) AS 絕對天數 FROM ....
不幸的是,我無法找到生成的錯誤訊息的解決方法:
ORA-00932: Inkonsistente Datentypen: CHAR erwartet, DATE erhalten 00932. 00000 - “不一致的資料型別:預期的 %s 得到了 %s”
我是 SQL 的初學者,尤其是 Oracle 的初學者,期待得到一些幫助,謝謝!
uj5u.com熱心網友回復:
'31.03.2022'可能看起來像日期,但它不是DATE資料型別;它是一個字串文字。
如果你想要一個DATE資料型別,那么你可以使用日期文字:
SELECT DATE '2022-03-31' - date_started AS absolut_days
FROM your_table;
或將您的字串轉換為日期:
SELECT TO_DATE('31.03.2022', 'DD.MM.YYYY') - date_started AS absolut_days
FROM your_table;
然后,對于樣本資料:
CREATE TABLE your_table (date_started) AS
SELECT DATE '2022-01-01' FROM DUAL;
兩個輸出:
| ABSOLUT_DAYS |
|---|
| 89 |
db<>在這里擺弄
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/466320.html
