码迷,mamicode.com
首页 > 其他好文 > 详细

日期转换函数

时间:2019-07-23 09:51:53      阅读:691      评论:0      收藏:0      [点我收藏+]

标签:表示   ext   默认   四舍五入   一周   months   date   rda   to_date   

--时间格式
  --yyyy-MM-dd HH:mi:ss
  --HH默认24小时制 1-23:59:59
  --HH12表示12小时制 1-12

 

--to_char()将日期转换成字符串
  select sysdate from dual;
  select to_char(sysdate,‘yyyy-MM-dd HH:mi:ss‘) from dual;

 

--to_date()将字符串转换成日期
  select to_date(‘2017-11-2‘,‘yyyy-MM-dd HH:mi:ss‘) from dual;

  select * from ttt_demo01;
  insert into ttt_demo01 values(102,‘scott‘,200.99,to_date(‘1992-11-2‘,‘yyyy-MM-dd HH:mi:ss‘));

 

--转换含有数字的字符串
  select to_number(‘1233.456‘) from dual;

  SELECT TO_TIMESTAMP(‘2016-12-12 12:23:34‘, ‘YYYY-MM-DD HH:MI:SS‘) FROM DUAL;
--添加了时区
  SELECT TO_TIMESTAMP_TZ(‘2016-12-12 12:23:34 8:00‘, ‘YYYY-MM-DD HH24:MI:SS TZH:TZM‘) FROM DUAL;


---日期操作函数*****

--截取目标日期里的时间,比如获取当前系统时间的年、月、日
--注意在截取当前系统时间的年月日,可以直接写成 year/month/day from sysdate
--但是hour minute second不可以这么写,需要先转换成字符串,再转换成日期
  select extract( year from sysdate) from dual;
  select extract( month from sysdate) from dual;
  select extract( day from sysdate) from dual;

  select extract( second from to_timestamp(to_char(sysdate,‘YYYY-MM-DD HH24:MI:SS‘),‘YYYY-MM-DD HH24:MI:SS‘)) from dual;

  select extract(hour from TO_TIMESTAMP(‘2016-12-12 12:23:34‘, ‘YYYY-MM-DD HH24:MI:SS‘)) from dual;
  select extract(minute from TO_TIMESTAMP(‘2016-12-12 12:23:34‘, ‘YYYY-MM-DD HH24:MI:SS‘)) from dual;
  select extract(second from TO_TIMESTAMP(‘2016-12-12 12:23:34‘, ‘YYYY-MM-DD HH24:MI:SS‘)) from dual;

 

--计算月差:两个日期之间相差的月数
--注意:计算结果是第一个参数减第二个参数
  select months_between(sysdate,to_date(‘1995-11-11‘,‘YYYY-MM-DD HH:mi:ss‘))from dual;

  select months_between
  (to_date(‘1980-11-1‘,‘YYYY-MM-DD HH:mi:ss‘),
  to_date(‘1995-11-11‘,‘YYYY-MM-DD HH:mi:ss‘))from dual;

 

--添加月数
  select add_months(sysdate,2)from dual;
  select add_months(to_date(‘2017-11-1‘,‘YYYY-MM-DD HH:mi:ss‘),-13)from dual;

 

--获取当前系统时间以后的时间(星期)
--一周的组合以下周的日期(本周已过的日期或者正在过的日期)
--和本周的日期(本周还未过的日期)加起来
  select next_day(sysdate,‘Monday‘) from dual;--下周一
  select next_day(sysdate,‘Tuesday‘) from dual;--下周二
  select next_day(sysdate,‘Wednesday‘) from dual;--下周三
  select next_day(sysdate,‘Thursday‘) from dual;--本周四
  select next_day(sysdate,‘Friday‘) from dual;--本周五
  select next_day(sysdate,‘Saturday‘) from dual;--本周六
  select next_day(sysdate,‘Sunday‘) from dual;--本周日

 

--每个月的最后一天
  select last_day(sysdate)from dual;
  select last_day(to_date(‘2016-2-1‘,‘YYYY-MM-DD‘))from dual;


--对日期的四舍五入
  select round(sysdate,‘year‘) from dual;
  select round(sysdate,‘month‘) from dual;


--对年的四舍五入 分界点是6月和7月
  select round(to_date(‘2017-6-1‘,‘YYYY-MM-DD‘),‘year‘) from dual;
  select round(to_date(‘2017-7-1‘,‘YYYY-MM-DD‘),‘year‘) from dual;


--对月的四舍五入 分界点是15日和16日
  select round(to_date(‘2017-6-1‘,‘YYYY-MM-DD‘),‘month‘) from dual;
  select round(to_date(‘2017-6-15‘,‘YYYY-MM-DD‘),‘month‘) from dual;
  select round(to_date(‘2017-6-16‘,‘YYYY-MM-DD‘),‘month‘) from dual;

  select round(to_date(‘2016-2-15‘,‘YYYY-MM-DD‘),‘month‘) from dual;
  select round(to_date(‘2016-2-16‘,‘YYYY-MM-DD‘),‘month‘) from dual;

 

--截取日期
--此处的day表示星期几
--获取离当前时间最近的星期日(已经过了的)
  select trunc(sysdate,‘day‘)from dual;


--获取年初
  select trunc(to_date(‘2017-5-5‘,‘yyyy-MM-dd‘),‘year‘)from dual;
  select trunc(to_date(‘2016-5-5‘,‘yyyy-MM-dd‘),‘year‘)from dual;

日期转换函数

标签:表示   ext   默认   四舍五入   一周   months   date   rda   to_date   

原文地址:https://www.cnblogs.com/chen8023miss/p/11229651.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!