日期类型的数据
date
建立一张订单表
create table datet(
oid varchar2(30),
oname varchar2(50),
omoney number,
odate date
);
a.放入日期类型的数据
日期的格式: 'dd-MON-yy'//英文
'dd-n月-yy'//中文
insert into datet
values('liu001','liu',123,'12-AUG-2013');
b.如何表现四位年
日期的格式显示
to_char(要处理的日期,'日期格式')
日期格式
yyyy
mm
dd
hh24
mi
ss
eg.
select to_char(odate,'yyyy-mm-dd hh24:mi:ss') from datet where oid='liu001';
day 星期几
mon 三位月的缩写
month 全写
pm 表达上午还是下午
am pm
eg1.
select to_char(odate,'yyyy-mm-dd hh24:mi:ss day pm mon') from datet where oid='liu001';
c.按照需求放入日期
放入当前日期 ------- sysdate
insert into datet values ('liu002','chi',898,sysdate);
commit;
select to_char(odate,'yyyy-mm-dd hh24:mi:ss') from datet where oname='chi';
放入任何一个制定的日期
2008-08-08 20:08:08
to_date(par1,par2)
par1表示要转换的日期字符串
par2表示根据日期字符串指定日期格式
eg.
insert into datet values ('liu003','lcc',8448,to_date('2008-08-08 20:08:08','yyyy-mm-dd hh24:mi:ss'));
select to_char(odate,'yyyy-mm-dd hh24:mi:ss') from datet where oname='lcc';
练习:
/*2013-09-19 22:08:15*/
insert into datet values('liu004','lchi',7787,to_date('2013-09-19 22:08:15','yyyy-mm-dd hh24:mi:ss'));
select to_char(odate,'yyyy-mm-dd hh24:mi:ss') from datet where oname='lchi';
d.对日期的调整
按照天对日期进行调整
select to_char(odate-1,'yyyy-mm-dd hh24:mi:ss') from datet where oname='lchi';
e.按照小时 分钟 秒进行调整
select to_char(odate-1/(24*3600),'yyyy-mm-dd hh24:mi:ss') from datet where oname='lchi';//秒
f.按照月进行调整
select to_char(add_months(odate,-1),'yyyy-mm-dd hh24:mi:ss') from datet where oname='lchi';
g.给定一个时间,得到这个时间对应月的最后一天的时间
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from datet;
last_day(日期)
select to_char(last_day(sysdate),'yyyy-mm-dd hh24:mi:ss') from datet;
eg.
2013-08-08 19:08:08
select to_char(last_day('2013-08-15 19:08:08','yyyy-mm-dd hh24:mi:ss') from datet;
next_day(日期)
h.round
trunc 来处理日期类型
/*默认以天为单位进行四舍五入*/
select round(sysdate) from datet;
select to_char(round(sysdate),'yyyy-mm-dd hh24:mi:ss') from datet;
edit 进入标准的vi编辑界面
保存退出之后执行
还可以指定单位进行四舍五入
/*看过没过半天*/
select to_char(round(sysdate,'dd'),'yyyy-mm-dd hh24:mi:ss') from datet;
select to_char(round(sysdate,'mm'),'yyyy-mm-dd hh24:mi:ss') from datet;
select to_char(round(sysdate,'yy'),'yyyy-mm-dd hh24:mi:ss') from datet;
/*trunc 默认以天为单位进行截取*/
select to_char(trunc(sysdate),'yyyy-mm-dd hh24:mi:ss') from datet;
select to_char(trunc(sysdate,'dd'),'yyyy-mm-dd hh24:mi:ss') from datet;
select to_char(trunc(sysdate,'mm'),'yyyy-mm-dd hh24:mi:ss') from datet;
-------------------------------------------------------------------------------
给定一个日期,求出这个日期对应的月的最后一天的最后一秒对应的时间点.
用to_char来验证
sysdate------2013-09-30 23:59:59
2008-08-08 20:08:08 --------2008-08-31 23:59:59
select to_char(trunc(last_day(sysdate)+1)-1/(24*60*60),'yyyy-mm-dd hh24:mi:ss') from datet;
select to_char(trunc(add_months(sysdate,1),'mm')-1/(24*60*60),'yyyy-mm-dd hh24:mi:ss') from datet;
add_months(trunc(sysdate,'mm'),1)-1/(24*60*60)
select to_char(trunc(last_day('2008-08-08 20:08:08')+1)-1/(24*60*60),'yyyy-mm-dd hh24:mi:ss') from datet;
select to_char(last_day('2008-08-08 20:08:08'),'yyyy-mm-dd hh24:mi:ss') from datet;
date
建立一张订单表
create table datet(
oid varchar2(30),
oname varchar2(50),
omoney number,
odate date
);
a.放入日期类型的数据
日期的格式: 'dd-MON-yy'//英文
'dd-n月-yy'//中文
insert into datet
values('liu001','liu',123,'12-AUG-2013');
b.如何表现四位年
日期的格式显示
to_char(要处理的日期,'日期格式')
日期格式
yyyy
mm
dd
hh24
mi
ss
eg.
select to_char(odate,'yyyy-mm-dd hh24:mi:ss') from datet where oid='liu001';
day 星期几
mon 三位月的缩写
month 全写
pm 表达上午还是下午
am pm
eg1.
select to_char(odate,'yyyy-mm-dd hh24:mi:ss day pm mon') from datet where oid='liu001';
c.按照需求放入日期
放入当前日期 ------- sysdate
insert into datet values ('liu002','chi',898,sysdate);
commit;
select to_char(odate,'yyyy-mm-dd hh24:mi:ss') from datet where oname='chi';
放入任何一个制定的日期
2008-08-08 20:08:08
to_date(par1,par2)
par1表示要转换的日期字符串
par2表示根据日期字符串指定日期格式
eg.
insert into datet values ('liu003','lcc',8448,to_date('2008-08-08 20:08:08','yyyy-mm-dd hh24:mi:ss'));
select to_char(odate,'yyyy-mm-dd hh24:mi:ss') from datet where oname='lcc';
练习:
/*2013-09-19 22:08:15*/
insert into datet values('liu004','lchi',7787,to_date('2013-09-19 22:08:15','yyyy-mm-dd hh24:mi:ss'));
select to_char(odate,'yyyy-mm-dd hh24:mi:ss') from datet where oname='lchi';
d.对日期的调整
按照天对日期进行调整
select to_char(odate-1,'yyyy-mm-dd hh24:mi:ss') from datet where oname='lchi';
e.按照小时 分钟 秒进行调整
select to_char(odate-1/(24*3600),'yyyy-mm-dd hh24:mi:ss') from datet where oname='lchi';//秒
f.按照月进行调整
select to_char(add_months(odate,-1),'yyyy-mm-dd hh24:mi:ss') from datet where oname='lchi';
g.给定一个时间,得到这个时间对应月的最后一天的时间
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from datet;
last_day(日期)
select to_char(last_day(sysdate),'yyyy-mm-dd hh24:mi:ss') from datet;
eg.
2013-08-08 19:08:08
select to_char(last_day('2013-08-15 19:08:08','yyyy-mm-dd hh24:mi:ss') from datet;
next_day(日期)
h.round
trunc 来处理日期类型
/*默认以天为单位进行四舍五入*/
select round(sysdate) from datet;
select to_char(round(sysdate),'yyyy-mm-dd hh24:mi:ss') from datet;
edit 进入标准的vi编辑界面
保存退出之后执行
还可以指定单位进行四舍五入
/*看过没过半天*/
select to_char(round(sysdate,'dd'),'yyyy-mm-dd hh24:mi:ss') from datet;
select to_char(round(sysdate,'mm'),'yyyy-mm-dd hh24:mi:ss') from datet;
select to_char(round(sysdate,'yy'),'yyyy-mm-dd hh24:mi:ss') from datet;
/*trunc 默认以天为单位进行截取*/
select to_char(trunc(sysdate),'yyyy-mm-dd hh24:mi:ss') from datet;
select to_char(trunc(sysdate,'dd'),'yyyy-mm-dd hh24:mi:ss') from datet;
select to_char(trunc(sysdate,'mm'),'yyyy-mm-dd hh24:mi:ss') from datet;
-------------------------------------------------------------------------------
给定一个日期,求出这个日期对应的月的最后一天的最后一秒对应的时间点.
用to_char来验证
sysdate------2013-09-30 23:59:59
2008-08-08 20:08:08 --------2008-08-31 23:59:59
select to_char(trunc(last_day(sysdate)+1)-1/(24*60*60),'yyyy-mm-dd hh24:mi:ss') from datet;
select to_char(trunc(add_months(sysdate,1),'mm')-1/(24*60*60),'yyyy-mm-dd hh24:mi:ss') from datet;
add_months(trunc(sysdate,'mm'),1)-1/(24*60*60)
select to_char(trunc(last_day('2008-08-08 20:08:08')+1)-1/(24*60*60),'yyyy-mm-dd hh24:mi:ss') from datet;
select to_char(last_day('2008-08-08 20:08:08'),'yyyy-mm-dd hh24:mi:ss') from datet;