<一> to_char 用法
注意:
1. HH24和hh24结果相同。
2. HH24(hh24)和hh 分别表示24小时制和12小时制。
(1) SELECT to_char(exchange_time,'yyyy-MM-dd HH24:mi:ss') from ware_transaction;
结果:2013-09-29 15:29:10
(2) SELECT to_char(exchange_time,'yyyy-MM-dd hh:mi:ss') from ware_transaction;
结果:2013-09-29 03:29:10
(3) SELECT to_char(exchange_time,'yyyy-MM-dd hh:mm:ss') from ware_transaction;
结果:错误用法,分钟格式化 没有mm,只有mi
(4) select to_char(exchange_time,'yyyy-ddd hh24:mi:ss') from ware_transaction;
结果:2013-272 15:29:10(272是指 9-29 是一年中的第272天)
其他查询:
A. 查今天是今年的第几周
select sysdate,to_char(sysdate,'yyyy-mm iw-d hh:mi:ss') from dual;
B. 查今天是本月的第几周
SELECT TO_CHAR(SYSDATE,'WW') - TO_CHAR(TRUNC(SYSDATE,'MM'),'WW') + 1 AS "weekOfMon" from dual;
SELECT TO_CHAR(SYSDATE,'W') from dual;
注意:
1)ww的算法为每年1月1日为第一周开始,date+6为每一周结尾
例如20050101为第一周的第一天,而第一周的最后一天为20050101+6=20050107
公式 每周第一天 :date + 周 * 7 - 7
每周最后一天:date + 周 * 7 - 1
2)iw的算法为星期一至星期日算一周,且每年的第一个星期一为第一周,
例如20050101为星期六,所以用iw的算法是前年的53周,而20050103之后才是第一周的开始。
公式 每周第一天 :next_day(date) + 周 * 7 - 7
每周最后一天:next_day(date) + 周 * 7 - 1
<2>to_date用法
SELECT to_date('2013-9-29 14:44:10','yyyy-MM-dd HH24:mi:ss') from dual;
SELECT to_date('2013-9-29 14:44:10','yyyy-MM-dd hh24:mi:ss') from dual;
SELECT to_date('2013-9-29 4:44:10','yyyy-MM-dd hh:mi:ss') from dual;
SELECT to_date('2013-9-29 14:44:10','yyyy-MM-dd hh24:mi:ss') from dual;