TRUNC的用法:
1.select trunc(sysdate) from dual --2013-01-06 今天的日期为2013-01-06
2.select trunc(sysdate, 'mm') from dual --2013-01-01 返回当月第一天.
3.select trunc(sysdate,'yy') from dual --2013-01-01 返回当年第一天
4.select trunc(sysdate,'dd') from dual --2013-01-06 返回当前年月日
5.select trunc(sysdate,'yyyy') from dual --2013-01-01 返回当年第一天
6.select trunc(sysdate,'d') from dual --2013-01-06 (星期天)返回当前星期的第一天
7.select trunc(sysdate, 'hh') from dual --2013-01-06 17:00:00 当前时间为17:35
8.select trunc(sysdate, 'mi') from dual --2013-01-06 17:35:00 TRUNC()函数没有秒的精确
中国的日期是由国外演变而来的。
因此0代表的是周日
当前系统时间的下一星期一的时间select next_day(sysdate,1) from dual
我想查询上周二到这周一的数据:
SELECT
TRUNC (NEXT_DAY(SYSDATE - 8, 1) - 5),
TRUNC (SYSDATE, 'd') + 1
FROM
T_PRICE_INDEX;
此处主要是前面的next_day函数, -8为上个星期,1表示从上个星期-8天往后推的第一天,即星期日,-5表示为了适应中国的习惯,第二天为星期二,所以一般来说是+2,这里要-5是要表示上个星期