我在 Oracle DB 中有以下 SQL,我期望它返回 2024 年 3 月 1 日 (01-MAR-24),但它却返回了 01-AUG-24
SELECT TRUNC(TRUNC (SYSDATE, 'MM') - 6, 'MM')
FROM dual
有人能告诉我为什么会出现这种情况吗?我想选择几个月前的第一天,格式如上所述,但这并不符合我的预期。
我在 Oracle DB 中有以下 SQL,我期望它返回 2024 年 3 月 1 日 (01-MAR-24),但它却返回了 01-AUG-24
SELECT TRUNC(TRUNC (SYSDATE, 'MM') - 6, 'MM')
FROM dual
有人能告诉我为什么会出现这种情况吗?我想选择几个月前的第一天,格式如上所述,但这并不符合我的预期。
您将日期截断到月初,然后减去 6 天(而不是 6 个月),最后将该值(现在在上个月)截断到该月初。
你想要的是
或者:
两者都输出:
小提琴