本文主要是介绍oracle获取去年的第12月第一天,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
要获取去年的12月份的第一天,你可以使用ADD_MONTHS
和TRUNC
函数组合。这里是一个简单的SQL查询,它将返回去年的12月1日:
sql复制代码
SELECT TRUNC(ADD_MONTHS(TRUNC(SYSDATE, 'YYYY'), -1), 'MM') AS first_day_of_last_december | |
FROM dual; |
在这个查询中:
TRUNC(SYSDATE, 'YYYY')
会将当前日期截断到年份的开始,即当前年份的1月1日。ADD_MONTHS(..., -1)
会从上一步得到的日期中减去1个月,这将我们带到去年(last year)的12月1日。但是,由于我们只需要年份减1,而不是月份减1(因为我们要的是12月),所以我们实际上不需要减去1个月。TRUNC(..., 'MM')
确保我们得到的是月份的第一天。但是在这个例子中,因为我们已经是12月1日了,这一步其实是多余的,但它不会改变结果,所以包括它也没关系。
因此,简化的查询(没有多余的TRUNC
)可以是:
sql复制代码
SELECT TRUNC(ADD_MONTHS(TRUNC(SYSDATE, 'YYYY'), -12), 'MM') AS first_day_of_last_december | |
FROM dual; |
或者更简单地:
sql复制代码
SELECT TRUNC(ADD_MONTHS(SYSDATE, -12), 'MM') AS first_day_of_last_december | |
FROM dual; |
在这个简化的版本中,我们直接对SYSDATE
使用ADD_MONTHS
来得到去年的同一天(去年的今天),然后使用TRUNC
来截断到月份的开始,即去年的12月1日。
这篇关于oracle获取去年的第12月第一天的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!