我试图在几天内获得差异,将结果转换为十进制:
SELECT
CAST( TO_DATE('2999-01-01','yyyy-mm-dd') - TO_DATE('2909-01-01','yyyy-mm-dd') AS DECIMAL )
;
现在,如果我将 1 个月添加到第二个日期:
SELECT
CAST( TO_DATE('2999-01-01','yyyy-mm-dd') - (TO_DATE('2909-01-01','yyyy-mm-dd') + INTERVAL '1 MONTH' * (1) ) AS DECIMAL )
;
我收到一个错误: 错误:无法将类型间隔转换为数字
好的,我可以转换为 char 以获得结果:
SELECT
CAST( TO_CHAR( TO_DATE('2909-02-10','yyyy-mm-dd') - (TO_DATE('2909-01-01','yyyy-mm-dd') + INTERVAL '1 MONTH' * (1) ), 'DD') AS DECIMAL )
;
但在这种情况下,使用 TO_CHAR 转换修改的第一个查询停止工作:
SELECT
CAST( TO_CHAR(TO_DATE('2999-01-01','yyyy-mm-dd') - TO_DATE('2909-01-01','yyyy-mm-dd'), 'DD') AS DECIMAL )
;
我收到错误:多个小数点。
所以,我的问题是,我怎样才能使用相同的 sql 语句来获得天数?对于这两个 sql 查询。