Oracle:时间类型
Oracle中的时间类型
1、Oracle中的时间类型只有date和TIMESTAMP,TIMESTAMP是⽐date更精确的类型
⑴DATE类型:ORACLE最常⽤的⽇期类型,它可以保存⽇期和时间,常⽤⽇期处理都可以采⽤这种类型
⑵TIMESTAMP类型:ORACLE常⽤的⽇期类型,它与date的区别是TIMESTAMP类型不仅可以保存⽇期和时间,还能保存⼩数秒,⼩数位数可以指定为0-9,默认为6位
2、⽇期时间函数⽤于处理时间类型的数据,Oracle中提供了很多和⽇期相关的函数。并且包括了⽇期的加减,在⽇期的加减是有⼀些规律
⑴⽇期 - 数字 = ⽇期
⑵⽇期 + 数字 = ⽇期(天)
⑶⽇期 - ⽇期 = 数字(天)
⑷在Oracle中,date类型可以直接进⾏加减天数,⽽加减⽉份要⽤add_months函数
⑸TIMESTAMP⽇期类型如果与数值进⾏加减运算会⾃动转换为DATE型,也就是说⼩数秒会⾃动去除
3、在Oracle中准确来说⼀个礼拜是从星期⽇开始到星期六结束的,其中时间差以天数为单位
Oracle中的date类型
date类型:表⽰年⽉⽇时分秒
⑴其展⽰格式既可以为:YYYY/MM/DD,也可以为YYYY/MM/DD HH24:MI:SS
⑵其存储格式只有⼀种:YYYY/MM/DD HH24:MI:SS
⑶即,date类型的值在数据库图形界⾯中可以有不同的显⽰格式(具体的显⽰格式由⼯具设置决定),但其实际储存的格式只有⼀种
⑷当你只存年⽉⽇时,date实际存储的是:年⽉⽇0时0分0秒,在plsql中,其展⽰格式为:YYYY/MM/DD
例1:
Oracle中的timestamp类型
1、date和timestamp都是对⽇期和时间的表⽰,只是两种类型的精确度不同,前者精确到秒,后者精确到⼩数秒
2、timestamp简称时间戳。时间戳可以存储世纪、4位年、⽉、⽇、时(以24⼩时格式)、分、秒。与DATE类型相⽐,时间戳具有以下优点:
⑴时间戳可以存储秒的⼩数位
⑵时间戳可以存储时区
3、TIMESTAMP数据类型,它包括了所有DATE数据类型的年⽉⽇时分秒的信息,⽽且包括了⼩数秒的信息。如果想把DATE类型转换成TIMESTAMP类型,就使⽤CAST函数
Oracle中的⽇期格式
格式描述
YYYY四位表⽰的年份
YYY,YY,Y 年份的最后三位、两位或⼀位,缺省为当前世纪 MM01~12的⽉份编号
MONTH九个字符表⽰的⽉份,右边⽤空格填补
MON 三位字符的⽉份缩写
WW⼀年中的星期
D星期中的第⼏天
DD⽉份中的第⼏天
DDD 年所中的第⼏天
DAY 九个字符表⽰的天的全称,右边⽤空格补齐 HH,HH12⼀天中的第⼏个⼩时,12进制表⽰法
HH24⼀天中的第⼏个⼩时,取值为00~23
MI⼀⼩时中的分钟
SS⼀分钟中的秒
SSSS 从午夜开始过去的秒数
Oracle时间函数
sysdate
作⽤:sysdate函数⽤于返回当前系统的时间(返回date数据类型)
例2:查询
例2_1:插⼊
sql:insert into USER_INFO (ID,NAME,COUNTRY,DATE_TIME,TIMESTAMP) values(3,'王五','China',sysdate,sysdate)
systimestamp
作⽤:在Oracle中,systimestamp函数返回本机数据库上当前系统⽇期和时间(包括微秒和时区)
例3:查询
例3_1:插⼊
insert into USER_INFO (ID,NAME,COUNTRY,DATE_TIME,TIMESTAMP) values(4,'李六','China',systimestamp,systimestamp)
注:可以看出
sysdate函数最好⽤于date类型的数据,systimestamp最好⽤于timestamp类型的数据。当然两种可以混⽤,只是说有点⼩差别
to_date()
作⽤:将字符类型按⼀定格式转化为⽇期类型
例4:查询数据
例4_1:插⼊数据
INSERT INTO USER_INFO (ID,NAME,CREATE_TIME,UPDATE_TIME) VALUES (9,'⼩m',to_date('2020-07-29 18:00:00','yyyy-mm-dd hh24:mi:ss'),to_date('2020-
oracle四舍五入
注:
1、to_date()只能格式化不带毫秒级别的时间型字符串
⑴to_date()的作⽤是将字符串时间转化为⽇期类型,⽇期类型就有年⽉⽇时分秒
2、如果字段是⼀个timetsmp类型的,那么就会默认毫秒级别为0
3、Oracle根据时间来查询数据跟Mysql是有很⼤区别的
⑴在Mysql中可以直接根据时间字符串来进⾏查询:SELECT * FROM roleinfo WHERE logintime = "2019-01-25";
⑵在Oracle中根据时间来查询时,就必须先把时间字符串转为date类型
4、⼩时格式化:不带24时,默认为12⼩时制,24⼩时格式转换时需要指明
例4_2:
to_timestamp()
作⽤:将字符类型按⼀定格式转化为⽇期时间戳类型(timestamp类型)
例4_3:查询数据
例4_4:
insert into user_info (ID,
NAME,
COUNTRY,
DATE_TIME,
TIMESTAMP,
DEPT_ID,
EMPLOYEE_NO,
LEADER_NO) values (6,'LL','yy',to_timestamp('2020-07-30 20:30:30.123400','yyyy-mm-dd hh24:mi:ss.ff'),to_timestamp('2020-07-30 20:30:30.123','yyyy-mm-dd
to_char()
1、作⽤:将⽇期转按⼀定格式换成字符类型

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。