第1个回答 2013-09-04
--讲解:年份按**1-6月和7-12月**四舍五入到最近的 几几年1月1日
select round(to_date('6-2月-13'),'year') from dual;
select round(to_date('6-5月-13'),'year') from dual;
select round(to_date('6-7月-13'),'year') from dual;
--讲解:月份按**1-15日和16-30日**四舍五入到最近的 几月1日
select round(to_date('15-2月-13'),'month') from dual;
select round(to_date('16-2月-13'),'month') from dual;
--讲解:天数按**周一-周三和周四到周日**四舍五入到最近的 周日
--去掉注释不然会有错误测试:
select round(to_date('3-2月-13'),'day') from dual;--周日
select round(to_date('4-2月-13'),'day') from dual;--周一
select round(to_date('5-2月-13'),'day') from dual;--周二
select round(to_date('6-2月-13'),'day') from dual;--周三
以上都是2月3日
以下都是2月10日
select round(to_date('7-2月-13'),'day') from dual;--周四
select round(to_date('8-2月-13'),'day') from dual;--周五
select round(to_date('9-2月-13'),'day') from dual;--周六
select round(to_date('10-2月-13'),'day') from dual;--周日
第2个回答 2017-07-01
CREATE OR REPLACE FUNCTION f_RoundDate(uDate IN Date,FMT VARCHAR2)
/***
oracle round日期函数 天数如何四舍五入?
以 1999.11.21 10:31:11 为例
格式 结果
---------------------------------------------------------------------------
SS 1999.11.24 10:31:11
MI 1999.11.24 10:31:00
HH 1999.11.24 11:00:00
DD 1999.11.24 00:00:00
MM 1999.12.01 00:00:00
YY 2000.01.01 00:00:00
SELECT f_RoundDate(TO_DATE('1999.11.21 10:31:11','YYYY-MM-DD HH24:MI:SS'),'SS') FROM DUAL;
***/
RETURN DATE
IS
uReturn DATE; -- 返回日期
BEGIN
uReturn := uDate;
IF (FMT = 'SS') THEN -- 秒
uReturn := uDate;
ELSIF (FMT = 'MI') THEN -- 分
uReturn := Round(uDate,'MI');
ELSIF (FMT = 'HH') THEN -- 时
uReturn := Round(uDate,'HH24');
ELSIF (FMT = 'DD') THEN -- 日
uReturn := Round(uDate,'DAY');
ELSIF (FMT = 'MM') THEN -- 月
uReturn := Round(uDate,'month');
ELSIF (FMT = 'YY') THEN -- 年
uReturn := Round(uDate,'year');
END IF;
RETURN (uReturn);
END f_RoundDate;
第3个回答 2017-07-01
oracle中的round函数是用来将数值四舍五入的。语法:round(number,digits)其中number是要进行四舍五入的数值,digits是保留的小数位数。举例:要将三个人的身高四舍五入保留1位小数,可用如下语句:select id,姓名,round(身高,1) from person;运行结果:
第4个回答 2011-08-24
DD 1999.11.24 00:00:00 你现在是上午的10点多,是应该舍到24号的