Oracle常用日期函数
常用的时间格式掩码如下:
掩码元素 含义
YYYY 四位数年份 (如:2005) year
YY 二位数年份(如 05)
Q 季度(1-4)
MM 月份(01-12) month
WW 年的星期数(1-53),其中第一星期为年的第一天至第七天
W 月的星期数(1-5),其中第一星期为月的第一天至第七天
DDD 年的日(1-366)
DD 月的日(1-31)
D 周的日(1-7),其中周日为1,周六为7 day
HH24 24小时制(0-23) hour
MI 分钟(0-59) minute
SS 秒(0-59) second
SSSSS 自午夜之后的秒(0-86399)
两个很不错的函数,可以操作日期,也可以操作数值:
round(日期,'指定的日期掩码') 返回日期时间的四舍五入结果
指定的掩码不同则结果结果也不同
year 以 7月1日分界线
month 以16号为分界线
day 以中午12点为分界线
hh 以30分钟为分界线
mi 以30秒为分界线
trunc(日期,'指定的日期掩码') 返回截断时间
year 本年度的1月1日
month 本月的1号
例子:(注意: day d dd 三者的区别)
SQL> select round(to_date('20070516 16:31:46','yyyymmdd hh24:mi:ss'),'year') from dual;
ROUND(TO_DATE('2007051616:31:4
------------------------------
2007-1-1
SQL> select round(to_date('20070516 16:31:46','yyyymmdd hh24:mi:ss'),'month') from dual;
ROUND(TO_DATE('2007051616:31:4
------------------------------
2007-6-1
SQL> select round(to_date('20070516 16:31:46','yyyymmdd hh24:mi:ss'),'mm') from dual;
ROUND(TO_DATE('2007051616:31:4
------------------------------
2007-6-1
SQL> select round(to_date('20070516 16:31:46','yyyymmdd hh24:mi:ss'),'day') from dual;
ROUND(TO_DATE('2007051616:31:4
------------------------------
2007-5-20
SQL> select round(to_date('20070516 16:31:46','yyyymmdd hh24:mi:ss'),'d') from dual;
ROUND(TO_DATE('2007051616:31:4
------------------------------
2007-5-20
SQL> select round(to_date('20070516 16:31:46','yyyymmdd hh24:mi:ss'),'dd') from dual;
ROUND(TO_DATE('2007051616:31:4
------------------------------
2007-5-17
SQL> select trunc(to_date('20070516 16:31:46','yyyymmdd hh24:mi:ss'),'year') from dual;
TRUNC(TO_DATE('2007051616:31:4
------------------------------
2007-1-1
SQL> select trunc(to_date('20070516 16:31:46','yyyymmdd hh24:mi:ss'),'month') from dual;
TRUNC(TO_DATE('2007051616:31:4
------------------------------
2007-5-1
SQL> select trunc(to_date('20070516 16:31:46','yyyymmdd hh24:mi:ss'),'mm') from dual;
TRUNC(TO_DATE('2007051616:31:4
------------------------------
2007-5-1
SQL> select trunc(to_date('20070516 16:31:46','yyyymmdd hh24:mi:ss'),'day') from dual;
TRUNC(TO_DATE('2007051616:31:4
------------------------------
2007-5-13
SQL> select trunc(to_date('20070516 16:31:46','yyyymmdd hh24:mi:ss'),'d') from dual;
TRUNC(TO_DATE('2007051616:31:4
------------------------------
2007-5-13
SQL> select trunc(to_date('20070516 16:31:46','yyyymmdd hh24:mi:ss'),'dd') from dual;
TRUNC(TO_DATE('2007051616:31:4
------------------------------
2007-5-16
日期时间函数:
add_months(日期,number) 指定日期推迟number个月
last_day(日期) 指定日期当月的最后一天
new_time(日期,时区简写) 调整时区
next_day(日期,number) number表示周几,星期日是1,指定number的日期(一周内或一周后)
months_between(日期1,日期2) 日期1和日期2之间有几个月
sysdate 系统当期那日期和时间
练习时的代码:
select to_number(to_char(last_day(add_months(to_date('20040406','yyyymmdd'),-1))+1,'yyyymmdd')) from dual;
TO_NUMBER(TO_CHAR(LAST_DAY(ADD
------------------------------
20040401
select to_number(to_char(last_day(to_date('20040406','yyyymmdd')),'yyyymmdd')) from dual;
TO_NUMBER(TO_CHAR(LAST_DAY(ADD
------------------------------
20040430
create or replace procedure p_hkb_date_insert is
/*
过程功能描述:日期插入表中
*/
v_days number(10);
v_date date;
i number(10);
begin
begin
--取得当月天数
select to_number(to_char(last_day(sysdate), 'dd'))
into v_days
from dual;
--select sysdate from dual; 当前日期
--select last_day(sysdate) from dual; 月底日期
--select last_day(add_months(sysdate, -1)) from dual; 上月底日期
-- SELECT to_char(last_day(SYSDATE),'dd') days FROM dual; 当前月的天数
--select last_day(add_months(sysdate,-1))+1 from dual; 当前月第一天
--select to_number(to_char(sysdate,'yyyymmdd')) from dual;系统当前日期转换成如20070910格式:
end;
i := 1;
begin
select last_day(add_months(sysdate, -1)) into v_date from dual;
while i <= v_days
loop
insert into hkb_date
values
(v_date + i,
to_char(v_date + i, 'yyyymmdd'),
to_number(to_char(v_date + i, 'yyyymmdd')));
--insert into hkb_date
--(float_date)
-- values
--(to_char(v_date + i, 'yyyymmdd'));
-- insert into hkb_date
--(number_date)
-- values
--(to_number(to_char(v_date + i, 'yyyymmdd')));
i := i + 1;
end loop;
end;
end p_hkb_date_insert;
create table hkb_date_construct as select * from hkb_date where 1=2; 继承表字段
create table hkb_date_data as select * from hkb_date; 继承表记录
Oracle常用日期函数的更多相关文章
- ORACLE 常用日期函数
1 . add_months(arg1,num) 返回日期arg1加num个月的新日期. select add_months(date'2011-1-1',1) from dual; result: ...
- ORACLE 常用字符函数
ORACLE 常用字符函数1 ASCII(arg1)返回参数arg1的十进制数字表示.如果数据库设置为ASCII,则采用的是ASCII码字符.如果设置为EBCDIC,则采用的是EBCDIC字符 sel ...
- Oracle常用的函数
1.常用的函数分为五大类: 字符函数.数字和日期函数.数字函数.转换函数.混合函数 2.字符函数 字符函数主要用于修改字符列.这些函数接受字符输入,返回字符或数字值.Oracle 提供的一些字符函数如 ...
- oracle常用系统函数
一.字符类函数 字符类函数是专门用于字符处理的函数,处理的对象可以是字符或者字符串常量,也可以是字符类型的列. 1.ASCII(c)和CHR(i) ASCII(c)函数用于返回一个字符的ASCII码, ...
- Oracle常用单行函数(原创)
前言: 想把单行函数进行一个比较全面的总结,并分享给有需要的人,有不明之处还请多多指教. SQL函数:Oracle的内置函数,包括了单行函数和多行函数,本文重点讲解单行函数.单行函数又可以分为许多类, ...
- SQL常用日期函数
原文:http://www.cnblogs.com/coconut_zhang/archive/2009/02/02/1382598.html 1. 当前系统日期.时间 select getdate( ...
- 【hive 日期函数】Hive常用日期函数整理
1.to_date:日期时间转日期函数 select to_date('2015-04-02 13:34:12');输出:2015-04-02122.from_unixtime:转化unix时间戳到当 ...
- Oracle时间日期函数
ORACLE日期时间函数大全 TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year: yy two digits 两位年 ...
- MySql常用日期函数(转载)
/*date_add(date,interval expr type)和date_sub(date,interval expr type)执行日期运算. date 是一个 datetime 或date ...
随机推荐
- SQL 联合索引 与 单一列的索引 比较
背景: 公司业务迅速扩展,很多网站.接口都因为大流量的数据,发生服务器习惯性死机:一条sql查询语句只能适用于一定的网络环境,没有优化的查询当遇上大数据时就不适用了. 本文主旨: 讨论什么情况下能利用 ...
- linux 有趣的命令
input: echo ' > ..XXX. .XXX.. > .XXXXY.TXXXX. > XXXXXYXTXXXXX > .VXXVYXTVXXX. > `.TYX ...
- ubuntu su Authentication failure
这个问题产生的原因是由于ubtun系统默认是没有激活root用户的,需要我们手工进行操作,在命令行界面下,或者在终端中输入如下命令: sudo passwd Password:你当前的密码 Enter ...
- POI-HSSF and POI-XSSF - Java API To Access Microsoft Excel Format Files
一.概述 HSSF和XSSF是apache开源项目POI中实现java面向Excel的两个接口.两者的区别在于,HSSF适用于Excel '97(-2007)文档,而XSSF适用于Excel 2007 ...
- sbt Getting org.scala-sbt sbt 0.13.12 ...
本地仓库被我搞乱了,一气之下整个删掉了本地仓库,再重启sbt卡在Getting这一步. Getting org.scala-sbt sbt 0.13.12 ... 卡住 补充sbt配置文件: 文件结构 ...
- AOP 学习
学习 Spring.Net 的AOP 的时候,在做一个简单的测试例子的时候,配置文件和代码逻辑都是没问题的,但始终报这样一个异常: 无法将类型为“CompositionAopProxy_1e76f37 ...
- Oracle RAC的日志体系
Oracle Clusterware 不像数据库那样,有丰富的视图.工具可以用来辅助诊断,它的日志和trace文件是唯一的选择.但不像Oracle只有alert日志和几种trace文件,Oracle ...
- MyEclipse修改项目名称后,部署到tomcat问题
问题描述: 修改项目名称后,部署到tomcat server,部署出来的文件夹名还是旧的名称. 解决方案: 光把项目重命名是不够的,还要修改一下Myeclipse里面的配置. 工程名->右键-& ...
- php Output Control 函数 ob_系列函数详解
<?php /* * 输出缓冲控制 * * flush — 刷新输出缓冲 ob_clean — 清空(擦掉)输出缓冲区 ob_end_clean — 清空(擦除)缓冲区并关闭输出缓冲 ob_en ...
- Asp.net DropDownList 自定义样式(想怎么改就怎么改!)
最近在做一个asp.net的项目,需要对默认的dropdownlist样式进行美化,固有的dropdownlist的小箭头实在让人无法接受,于是开始在百度,google 上下求索,天不负有心人,终于找 ...