[英]Oracle: how to substract a date from table column from a fixed date
我有一个表,其中包含一个名为“date_started”的日期格式的列。 我想从固定日期(例如 2022 年 3 月 31 日)中减去此列中的所有日期,从而生成一个新列“绝对天数”,显示两个日期之间的天数差异。
我尝试使用以下语句:
SELECT('31.03.2022'- date_started)作为绝对天数......
不幸的是,我无法为生成的错误消息找到解决方法:
ORA-00932: Inkonsistente Datentypen: CHAR erwartet, DATE erhalten 00932.00000 - “不一致的数据类型:预期的 %s 得到 %s”
我是 SQL 的初学者,特别是 Oracle 的初学者,期待一些帮助,谢谢!
'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;
两者都是 output:
绝对_DAYS |
---|
89 |
db<> 在这里摆弄
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.