Oracle判断星期几的快速方法(oracle判断是周几)
Oracle判断星期几的快速方法
在实际的开发过程中,经常会遇到从日期中快速的获取星期几,或者只需要提取年月日的信息,很多时候要求我们必须要借助Oracle来实现。Oracle提供了一些简单而又实用的函数来实现这一功能,例如:获取星期几及节日等。
Oracle中利用2个函数可以快速获得星期几,一个是,该函数可以快速的把日期转换成字符形式的表达形式,另外一个函数是,该函数可以把日期转换为数字,而数字前七个是星期日至六的星期几。
下面的例子演示了通过TO_NUMBER()函数把Oracle的日期类型转换为星期几的方法:
“`sql
–一是使用TO_NUMBER()函数
SELECT CASE
WHEN TO_NUMBER(TO_CHAR(SYSDATE, ‘D’))= 1 THEN ‘星期日’
WHEN TO_NUMBER(TO_CHAR(SYSDATE, ‘D’))= 2 THEN ‘星期一’
WHEN TO_NUMBER(TO_CHAR(SYSDATE, ‘D’))= 3 THEN ‘星期二’
WHEN TO_NUMBER(TO_CHAR(SYSDATE, ‘D’))= 4 THEN ‘星期三’
WHEN TO_NUMBER(TO_CHAR(SYSDATE, ‘D’))= 5 THEN ‘星期四’
WHEN TO_NUMBER(TO_CHAR(SYSDATE, ‘D’))= 6 THEN ‘星期五’
WHEN TO_NUMBER(TO_CHAR(SYSDATE, ‘D’))= 7 THEN ‘星期六’
ELSE ‘不正确的值’
END FROM DUAL;
–二是使用TO_CHAR()函数
SELECT
CASE
WHEN TO_CHAR(SYSDATE, ‘D’) = ‘1’ THEN ‘星期日’
WHEN TO_CHAR(SYSDATE, ‘D’) = ‘2’ THEN ‘星期一’
WHEN TO_CHAR(SYSDATE, ‘D’) = ‘3’ THEN ‘星期二’
WHEN TO_CHAR(SYSDATE, ‘D’) = ‘4’ THEN ‘星期三’
WHEN TO_CHAR(SYSDATE, ‘D’) = ‘5’ THEN ‘星期四’
WHEN TO_CHAR(SYSDATE, ‘D’) = ‘6’ THEN ‘星期五’
WHEN TO_CHAR(SYSDATE, ‘D’) = ‘7’ THEN ‘星期六’
ELSE ‘不正确的值’
END FROM DUAL;
–当然也可以使用EXTRACT()函数:
SELECT
CASE
WHEN EXTRACT (DAY FROM SYSDATE) = 0 THEN ‘星期日’
WHEN EXTRACT (DAY FROM SYSDATE) = 1 THEN ‘星期一’
WHEN EXTRACT (DAY FROM SYSDATE) = 2 THEN ‘星期二’
WHEN EXTRACT (DAY FROM SYSDATE) = 3 THEN ‘星期三’
WHEN EXTRACT (DAY FROM SYSDATE) = 4 THEN ‘星期四’
WHEN EXTRACT (DAY FROM SYSDATE) = 5 THEN ‘星期五’
WHEN EXTRACT (DAY FROM SYSDATE) = 6 THEN ‘星期六’
ELSE ‘不正确的值’
END FROM DUAL;
以上三种方法转换日期得到星期几的方法,用起来及其方便,但是也有一些要注意的点,因为在oracle中没有日期“0”,所以,当把日期转为数字时(“1”表示星期一,”2”表示星期二),就不能表示星期日。同样也要注意改造输出形式,以适应不同国家和地区等。
总之,在程序中,我们可以使用Oracle中对日期和星期几的快速处理,函数也是越来越完善,但是,仍然应该仔细考虑实际的情况,简化其使用方法,提升开发效率。