Oracle 日期四舍五入

-- Start

日期也能做四舍五入?是的,我们可以使用 ROUND 和 TRUNC 函数对日期四舍五入。下面是一个简单的例子。

SELECT
        TIMESTAMP '2015-02-10 05:15:29.800'              DATE_TIME,
        ROUND(TIMESTAMP '2015-02-10 05:15:29.800', 'DD') ROUND,
        TRUNC(TIMESTAMP '2015-02-10 05:15:29.800', 'DD') TRUNC
FROM DUAL
UNION ALL
SELECT
        TIMESTAMP '2015-08-20 15:40:31.100'              DATE_TIME,
        ROUND(TIMESTAMP '2015-08-20 15:40:31.100')       ROUND,
        TRUNC(TIMESTAMP '2015-08-20 15:40:31.100')       TRUNC
FROM DUAL;

-- 结果如下
DATE_TIME	                ROUND	                    TRUNC
2015-02-10 05:15:29.800000	2015-02-10 00:00:00.000000	2015-02-10 00:00:00.000000
2015-08-20 15:40:31.100000	2015-08-21 00:00:00.000000	2015-08-20 00:00:00.000000

-- 说明
1. ROUND 和 TRUNC 函数接受两个参数,第一个参数是要四舍五入的日期,第二个参数是格式,第二个参数可以省略,默认值是 'DD'
2. ROUND 是四舍五入,使用时特别要注意
3. TRUNC 顾名思义就是砍掉

下面的表格是 ROUND 和 TRUNC 函数支持的格式。

CC          四舍五入年的后两位
SCC         四舍五入年的后两位
SYYYY       四舍五入年
YYYY        四舍五入年
YEAR        四舍五入年
SYEAR       四舍五入年
YYY         四舍五入年
YY          四舍五入年
Y           四舍五入年
IYYY        四舍五入ISO年
IY          四舍五入ISO年
IY          四舍五入ISO年
I           四舍五入ISO年
Q           四舍五入季度
MONTH       四舍五入月
MON         四舍五入月
MM          四舍五入月
RM          四舍五入月
WW          四舍五入每年的第一个星期
IW          四舍五入每月的第一个ISO星期
W           四舍五入每月的第一个星期
DDD         四舍五入日
DD          四舍五入日
J           四舍五入日
DAY         四舍五入日每星期的第一个天
DY          四舍五入日每星期的第一个天
D           四舍五入日每星期的第一个天
HH          四舍五入小时
HH12        四舍五入小时
HH24        四舍五入小时
MI          四舍五入分钟

--更多参见:Oracle SQL 精萃

-- 声明:转载请注明出处

-- Last edited on 2015-06-23

-- Created by ShangBo on 2015-02-24

-- End


你可能感兴趣的:(oracle,sql,plsql)