利用Oracle中的星期函数计算日期(oracle星期函数)
日期计算,事实上,已经有很多有效的计算方法,而使用Oracle提供的星期函数,也可以快速计算出一个指定的具体日期。
Oracle中的Weekday函数可以将指定的日期转换为星期几,而且它还有NVL函数可以对结果做处理,以确保获得正确的结果。Weekday函数可以返回星期一到星期日,具体如下:
1表示星期一;2表示星期二;3表示星期三;4表示星期四;5表示星期五;6表示星期六;7表示星期日。
当然,如果我们想要计算某一特定周的最早日期或者最后日期,就可以使用Weekday函数,结合add_months、NVL函数,以及计算差值再减1或加1来计算。
例如,想要计算2020年7月76号到7月12号之间的最早日期,我们可以这样写:
NVL(add_months(trunc(2020-07-76,’IW’),(-1),(1)*(7-(weekday(2020-07-76))+1));
该SQL代码段共分三步实现:
1.使用TRUNC函数,将日期格式转换为字符串;
2.使用Weekday函数,获取2020-07-76的星期值;
3.使用add_months、NVL和减1的操作,最终得出了2020年7月76号到7月12号之间的最早日期。
从本质上来说,利用Oracle中的Weekday函数可以非常快速的计算出一个指定的具体日期,如果结合其它函数及嵌套操作,那么,通过它,就可以非常方便的求出一个特定周期之内的最早或是最后的日期。