当前位置:文章写作网 >日记 >日记 >oracle 日期运算1

oracle 日期运算1

2009-06-25 17:45 作者:tshfang 阅读量:9974 推荐19次 | 我要投稿

--1、日期到字符操作

select to_char(sysdate,'yyyy-mm-dd') from dual;

/*

TO_CHAR(SYSDATE,'YYYY-MM-DD')

-----------------------------

2009-06-11

*/

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

/*

TO_CHAR(SYSDATE,'YYYY-MM-DDHH24:MI:SS')

---------------------------------------

2009-06-11 14:30:26

*/

select to_char(sysdate,'yyyy-mm-dd hh:mi:ss') from dual;

/*

TO_CHAR(SYSDATE,'YYYY-MM-DDHH:MI:SS')

-------------------------------------

2009-06-11 02:31:39

*/

--2、字符到日期操作

--很多时候都将日期保存成字符,如何将字符转换成日期?

select to_date('2009-06-25-21:15:37','YYYY-MM-DD-HH24:MI:SS') from dual;

/*

TO_DATE('2009-06-25-21:15:37','YYYY-MM-DD-HH24:MI:SS')

-------------------------

2009-6-25 21:15:37

*/

/*3、TRUNC、ROUND函数

格式:trunc(date,[fmt])

返回截取时间部分后的DATE,如果有fmt部分的设置,则返回与该部分最近的日期。

round(date,[fmt])

返回将日期date舍入后的DATE,如果有fmt部分的设置,则按照fmt指定的格式舍入返回DATE。

*/

--首先看看系统日期

select sysdate from dual;

--25-6月 -09

--返回当年第一天

select trunc(sysdate,'yyyy') from dual;

select round(sysdate,'yyyy') from dual;

--01-1月 -09

--返回当月第一天

select trunc(sysdate,'mm') from dual;

--01-6月 -09

select round(sysdate,'mm') from dual;

--01-7月 -09 四舍五入下个月的第一天

--通过add_months和trunc计算当月最后一天

select trunc(add_months(sysdate,1),'mm')-1 from dual;

--30-6月 -09

--返回当前星期的第一天.

select trunc(sysdate,'d') from dual;

--21-6月 -09 实际上这是周日。可以这样使用

select trunc(sysdate,'d')+1 from dual;

--22-6月 -09 这样就是周一了。

select round(sysdate,'d') from dual;

28-6月 -09 四舍五入到下周的第一天.

--本周周末的日期,假设周五是周末

select trunc(sysdate,'d')+5 from dual;

--26-6月 -09

--TRUNC数字函数返回处理后的数值,函数不做相应舍入选择处理,而统统截去。

select trunc(1.888,2) from dual;

--1.88

select trunc(1.888) from dual;

--1

select trunc(1.888,-1) from dual;

--0 第二个参数可以为负数,表示为小数点左边指定位数后面的部分截去,即均以0记。

--再来看看round

select round(19.888,-1) from dual;

--20

select round(13.888,-1) from dual;

--10

其他人在看啥

    《oracle 日期运算1》的评论 (共 0 条)