oracle获取日期的星期,[Oracle] 日期处理 Oracle 获取日期的周数 | 学步园...

日期与字符串转换

在进行日期限定的比对时,可能会用到这个场景。

比如查找 某个日期栏位 大于"2013/12/12" 的所有数据。

"2013/12/12" 这是一个字符串, 要和日期比对,就要转换了。

1. 将字串转化为日期--使用 TO_DATE 函数

select TO_DATE('20131212','YYYYMMDD') from DUAL;

返回: 12-12月-13  (和本地安装oracle 的日期格式有关)

2. 将日期转化为字串-- TO_CHAR

select to_char(sysdate,'yyyy/mm/dd') from DUAL;

返回: 2013/12/12

以yyyy/mm/dd 显示当前日期。

sysdate 是当前日期。

获取日期的星期

可以使用 ww 或是 iw 来获取星期。比如:

select to_char(sysdate,'yyyy/ww') from DUAL;

返回: 2013/50

第50周。

ww  和 iw 的区别是:

1. ww

这是 Oracle 计算星期的标准。 每年的 1 月1号作为这一年的第一天。(不管这一天是星期几)

比如:  2013/01/01 是星期二, 这一天作为2013年的第一天。

2. iw

这是ISO的标准。

星期一至星期日算一周,且每年的第一个星期一为第一周,

select to_char(TO_DATE('2013/12/01','yyyy/mm/dd'),'yyyy/iw') from DUAL;

这是看 2013/12/01是这一年的第多少周。

返回: 48

注意: 如果按每周从周日开始的话, 就要在日期上加 1 天了

select to_char(TO_DATE('2013/12/01','yyyy/mm/dd')+1,'yyyy/iw') from DUAL;

返回 49 了。

==》  特别注意, 以上的获取周数的方法当遇到跨年的时候, 会出现问题。

细部参见:

前言

前言

你可能感兴趣的:(oracle获取日期的星期)