繁体   English   中英

Oracle:如何从固定日期中减去表列中的日期

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM