oracle中时间强转,【转】Oracle 中时间的计算

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

Oracle中表示时间有DATE和TIMESTAMP,DATE可以存储年,月,日,小时,分钟,秒.

TIMESTAMP是DATE的扩展,可以存储年,月,日,小时,分钟,秒,同时还可以存储秒的小数部分.秒的小数部分可以为9位即纳秒,默认为6为的微秒.

表示时间差的为INTERVAL:INTERVAL YEAR TO MONTH 和INTERVAL DAY TO SECOND两种.

1,Date类型:sysdate和current_date

1. 日期格式参数含义说明

D 一周中的星期几,数字

DAY 一周中的星期几的名字,使用空格填充到 9 个字符

DD 月中的第几天

DDD 年中的第几天

DY 一周中的星期几的简写名

IW ISO 标准的年中的第几周

IYYY ISO 标准的四位年份

YYYY 四位年份

YYY,YY,Y 年份的最后三位,两位,一位

HH 小时,按 12 小时计

HH24 小时,按 24 小时计

MI 分

SS 秒

MM 月

Mon 月份的简写

Month 月份的全名

W 该月的第几个星期

WW 年中的第几个星期

从日期到字符串操作:to_char(日期,日期格式参数).

例:

select sysdate,to_char(sysdate,'DD/MM/YYYY HH24:MI:SS') from dual

select sysdate,to_char(sysdate,'DD/MM/YYYY HH:MI:SS') from dual

select sysdate,to_char(sysdate,'DD/MON/YYYY') from dual

select sysdate,to_char(sysdate,'DDD') from dual

从字符串到日期转换:to_date(字符串,日期格式参数).日期格式参数的组合要比to_char少.

例:

select to_date('2010/07/16 21:15:37','yyyy/mm/dd hh24:mi:ss') from dual

select to_date('198','DDD') from dual

两个日期相减得到的是一个以天为单位的number,带小数.

天:

ROUND(TO_NUMBER(DATE1 - DATE2))

小时:

ROUND(TO_NUMBER(DATE1 - DATE2) * 24)

分钟:

ROUND(TO_NUMBER(DATE1 - DATE2) * 24 * 60)

秒:

ROUND(TO_NUMBER(DATE1 - DATE2) * 24 * 60 * 60)

毫秒:

ROUND(TO_NUMBER(DATE1 - DATE2) * 24 * 60 * 60 * 1000)

日期和INTERVAL的操作:加减操作.

当前时间减去 7 分钟的时间

select sysdate,sysdate - interval '7' MINUTE from dual

当前时间加 7 小时的时间

select sysdate + interval '7' hour from dual

当前时间减去 7 天的时间

select sysdate - interval '7' day from dual

当前时间减去 7 月的时间

select sysdate,sysdate - interval '7' month from dual

当前时间减去 7 年的时间

select sysdate,sysdate - interval '7' year from dual

时间间隔乘以一个数字

select sysdate,sysdate - 8 *interval '2' hour from dual

2,TIMESTAMP类型:systimestamp和CURRENT_TIMESTAMP.

FF [1..9]小数秒.

从字符串到时间戳操作:to_timestamp(字符串,日期格式参数).

select to_timestamp('2010/07/16 21:15:37','yyyy/mm/dd hh24:mi:ss') from dual

select to_timestamp('2010/07/16 21:15:37.123456','yyyy/mm/dd hh24:mi:ss.ff') from dual

select to_timestamp('2010/07/16 21:15:37.123456789','yyyy/mm/dd hh24:mi:ss.ff9') from dual

从时间戳到字符串操作:to_char(时间戳,日期格式参数).

select to_char(systimestamp,'yyyy/mm/dd hh24:mi:ss') from dual

select to_char(systimestamp,'yyyy/mm/dd hh24:mi:ss.ff7') from dual

select to_char(systimestamp,'DDD') from dual

将date转为timestamp,转后的的timestamp的小数秒为0:

select systimestamp ,CAST (sysdate AS timestamp) from dual

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值