日期函数的基本操作,一直是用 Oracle 写 SQL 时绕不开的事儿。MONTHS_BETWEEN
、ADD_MONTHS
这些函数,挺常用,尤其在做账期计算、对账统计时,真的省不少事。你要是真经常跟日期打交道,早点熟点好,少踩坑。
MONTHS_BETWEEN 是用来计算两个日期相差多少月的,注意不是 30 天平均数,而是按日历月算的。比如 MONTHS_BETWEEN('2024-06-01', '2024-01-01')
就是 5。
ADD_MONTHS 就挺直白了,往日期上加几个月,项目排期、保修期计算用得上。
NEXT_DAY 比较适合搞周报或者安排周例会那种需求,比如你想知道下个星期一是哪天,就它来搞定。
LAST_DAY 拿来搞月末报表再合适不过了,啥时候是月底?一行 SQL 就。
还有 ROUND 和 TRUNC,一个是四舍五入日期(比如按月取整),一个是直接截断,不要小看这俩,在做时间段统计的时候挺有用的。
不熟?没事,下面这几个链接可以帮你系统过一遍:
如果你在做报表、搞统计,或者跟财务打交道比较多,强烈建议你把这些函数记熟点。写 SQL 的时候,顺手多了。