我需要自动生成一个报告,该报告将始终是WHERE caluses中当前月份和年份的第一天。
“YYYY-MM-01”
我正在努力实现以下目标,但遗憾的是,我无法使用To_Char / To_Date / SysDate进行任何工作。
to_date(SYSDATE('YYYY-MM') + '-01', 'yyyy-mm-dd')
谢谢
答案 0 :(得分:5)
要获取当月的第一天(作为DATE
),只需:
trunc(sysdate,'MON')
或格式化:
to_char(trunc(sysdate,'MON'),'yyyy-mm-dd')
答案 1 :(得分:1)
Oracle中的字符串连接运算符为||
,而不是+
。而SYSDATE
是一个不是函数的常量:
to_date(to_char(SYSDATE, 'YYYY-MM') || '-01', 'yyyy-mm-dd')
顺便说一下,你也可以这样计算:
trunc(sysdate - extract(day from sysdate) + 1)
即,减去当月的日期并添加一天。这样,你就不必乱七八糟的日期/字符格式。