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 ...
随机推荐
- 8个主要的Velocity语法使用说明
8个主要的Velocity语法使用说明,分别是:Velocity表达式,Velocity注释,Velocity循环,Velocity条件判断,Velocity赋值,Velocity调试,Velocit ...
- select在各个浏览器中的兼容性问题
我们知道select标签在各个浏览器中的属性和各浏览器的支持各有些不同,从而造成select选择框在各浏览器的显示有不同. 下面我们通过对主要CSS属性的支持,打造全兼容select. 对select ...
- c#语句 习题
1.输入月份,日期,打印出是今年的第几天.(今年是平年) 2. 一个游戏,前20关是每一关自身的分数,21-30关每一关是10分,31-40关每一关是20分,41-49关每一关是30分,50关是100 ...
- NeuSoft(1)构建嵌入式交叉编译环境
操作系统版本:ubuntu 12.04 内核名称:Linux 内核发行版:3.2.0-generic 内核版本:#50-Ubuntu SMP Mon Sep 12 21:18:14 UTC 2011 ...
- bug1
1从相册中获取图片,低版本可以,高版本不行.看见抛出 Bitmap too large to be uploaded into a texture 原来是高版本的android,机子好点,相机就好点, ...
- JSTL 核心标签库 使用(C标签)
JSTL 核心标签库标签共有13个,功能上分为4类: 1.表达式控制标签:out.set.remove.catch 2.流程控制标签:if.choose.when.otherwise 3.循环标签:f ...
- 一个xib钟多个Cell
在实际开发中,有时候需要在一个xib钟拖几个cell,注意连线过程的object选择,不然出现没反应的现象. 例如: 在下图中,我在一个xib钟创建了五个cell,他们分别是:收货地址.订单信息.支付 ...
- Android课程---视图组件之开关按钮
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="ht ...
- shutter截图工具
安装: 1.打开ubuntu software center,搜索shutter,安装. 使用:
- Docker Compose—简化复杂容器应用的利器
Compose是用于定义和运行复杂Docker应用的工具.你可以在一个文件中定义一个多容器的应用,然后使用一条命令来启动你的应用,然后所有相关的操作都会被自动完成. 1. 安装Docker和Compo ...