Oracle数据库日期格式转换操作

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

select to_char(sysdate,’yyyy-mm-dd hh24:mi:ss’)  strDateTime from dual;    –获取年-月-日 时:分:秒   
–显示结果为:2016-10-20 12:35:21

select to_char(sysdate,’yyyymmdd hh24:mi:ss’)  strDateTime from dual;    –获取年月日 时:分:秒  
–显示结果为:20161020 13:39:25

select to_char(sysdate,’yyyymmdd’)  strDateTime from dual;     –获取年月日 
–显示结果为:20161020

select to_char(sysdate,’yyyy’)  strYear from dual;    –获取年  
 –显示结果为:2016

select to_char(sysdate,’mm’)   strMonth  from dual;    –获取月  
–显示结果为:10

select to_char(sysdate,’dd’)    strDay    from dual;     –获取日  
–显示结果为:20

select to_char(sysdate,’hh24′)   strHour   from dual;     –获取时 
–显示结果为:13

select to_char(sysdate,’mi’)  strMinute from dual;   –获取分  
–显示结果为:46

select to_char(sysdate,’ss’)  strSecond from dual;   –获取秒
–显示结果为:43

 

2. 字符串和时间互转

select to_date(‘2010-10-20 13:23:44′,’yyyy-mm-dd hh24:mi:ss’) dateTime from dual;
显示结果:2010/10/20 13:23:44

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

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

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;

 

3. 查询某天是星期几

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

 

4. 两个日期间的天数

 select floor(sysdate – to_date(‘20161010′,’yyyymmdd’)) strTime from dual; 

–其中sysdate=2016/10/20 17:10:51
–显示结果:10

 

5. 时间为null的用法

select to_date(null) from dual;

 

6.月份差

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

(0)
上一篇 2022年3月22日
下一篇 2022年3月22日

相关推荐