忙于项目,空闲时候记点用到的东西

Oracle日期格式转换

日期转化为字符串 (以2016年10月20日为例)

  1. select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') strDateTime from dual; --获取年-月-日 时:分:秒

--显示结果为:2016-10-20 12:35:21

 

  1. select to_char(sysdate,'yyyymmdd hh24:mi:ss') strDateTime from dual; --获取年月日 时:分:秒

--显示结果为:20161020 13:39:25

 

  1. select to_char(sysdate,'yyyymmdd') strDateTime from dual; --获取年月日

--显示结果为:20161020

 

  1. select to_char(sysdate,'yyyy') strYear from dual; --获取年

--显示结果为:2016

 

  1. select to_char(sysdate,'mm') strMonth from dual; --获取月

--显示结果为:10

 

  1. select to_char(sysdate,'dd') strDay from dual; --获取日

--显示结果为:20

 

  1. select to_char(sysdate,'hh24') strHour from dual; --获取时

--显示结果为:13

 

  1. select to_char(sysdate,'mi') strMinute from dual; --获取分

--显示结果为:46

 

  1. select to_char(sysdate,'ss') strSecond from dual; --获取秒

--显示结果为:43

 

 

字符串和时间互转

  1. select to_date('2010-10-20 13:23:44','yyyy-mm-dd hh24:mi:ss') dateTime from dual;

显示结果:2010/10/20 13:23:44

  1. select to_date('2010-10-20 13:23:44','yyyy/mm/dd hh24:mi:ss') dateTime from dual;

显示结果:2010/10/20 13:23:44

  1. select to_char( to_date(222,'J'),'Jsp') from dual;

显示结果:Two Hundred Twenty-Two

 

如果按照下面的例子写,会报错:ORA-01849:小时值必须介于1和12之间。(因为其中的hh是12进制,没有13所以报错)

select to_date('2005-12-25,13:25:59','yyyy-mm-dd,hh:mi:ss') from dual;

 

  1. 查询某天是星期几

select to_char(to_date('2012-10-20','yyyy-mm-dd'),'day') strDay from dual;

显示结果:星期六

 

select to_char(to_date('2012-10-20','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = English') strDay from dual;

显示结果:saturday

 

  1. 两个日期间的天数

select floor(sysdate - to_date('20161010','yyyymmdd')) strTime from dual;

--其中sysdate=2016/10/20 17:10:51

--显示结果:10

 

  1. 时间为null的用法

select to_date(null) from dual;

 

  1. 月份差

select months_between(date'2014-04-23',date'2013-04-23') days from dual;

本文来自文中超链接处

 

posted @ 2020-08-17 20:13  叶不孤  阅读(115)  评论(0编辑  收藏  举报