加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

to_date  ORA-01830:日期格式图片在转换整个输入字符串之前结束

(2012-12-04 19:04:59)
标签:

杂谈

分类: ORACLE

TO_DATE的使用实例:

今天使用to_date获取年份,出现问题:

case:

select to_char(to_date('2012-12-04','yyyy'),'yyyy') from dual;

result:

http://s10/mw690/82a09f10xd004de716919&690 ORA-01830:日期格式图片在转换整个输入字符串之前结束" TITLE="to_date  ORA-01830:日期格式图片在转换整个输入字符串之前结束" />

错误产生原因:date类型不能包含秒以后的精度。

修改后语句如下:

select to_char(to_date('2012-12-04','yyyy'),'yyyy-MM-dd') from dual;

结果:可以正确执行

 

针对以上问题,在网上找到了不少资料,并整理了一下:

 

--查询日期语言种类

select * from V$NLS_PARAMETERS;

select * fromnls_session_parameters

 

--TO_DATE(null)的用法(插入null字段??

select 1, TO_DATE(null) from dual;

 

--实际时间2012-12-04 18:22  测试结果如下:

--24小时显示方式---需用  HH24:mi:ss这个形式

select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;--mi是分钟   2012-12-04 18:22:06

select to_char(sysdate,'yyyy-MM-dd HH24:mm:ss') from dual;--mm会显示月份  2012-12-04 18:12:15

--12小时制显示方式

select to_char(sysdate,'yyyy-MM-dd HH:mi:ss') from dual;--mi是分钟   2012-12-04 06:22:58

select to_char(sysdate,'yyyy-MM-dd HH:mm:ss') from dual;--mm会显示月份  2012-12-04 06:12:21

 

--2012-12-04 是星期几    星期二

selectto_char(to_date('2012-12-04','yyyy-MM-dd'),'day') from dual;

--2012-12-04 是星期几    tuesday     (以American语言显示)

selectto_char(to_date('2012-12-04','yyyy-mm-dd'),'day','NLS_DATE_LANGUAGE = American') from dual;

 

--2012-12-04 的月份   12

selectto_char(to_date('2012-12-04','yyyy-MM-dd'),'MONTH') from dual;

--2012-12-04 的月份   DECEMBER    (以American语言显示)

select to_char(to_date('2012-12-04','yyyy-mm-dd'),'MONTH','NLS_DATE_LANGUAGE = American') from dual;

下面是在网上找的to_date的格式:

TO_DATE格式(以时间:2007-11-02   13:45:25为例)

        Year:     

        yy two digits 两位年                显示值:07

        yyy three digits 三位年                显示值:007

        yyyy four digits 四位年                显示值:2007

           

        Month:     

        mm    number     两位月              显示值:11

        mon    abbreviated 字符集表示          显示值:11,若是英文版,显示nov    

        month spelled out 字符集表示          显示值:11,若是英文版,显示november

         

        Day:     

        dd    number         当月第几天        显示值:02

        ddd    number         当年第几天        显示值:02

        dy    abbreviated 当周第几天简写    显示值:星期五,若是英文版,显示fri

        day    spelled out   当周第几天全写    显示值:星期五,若是英文版,显示friday       

        ddspth spelled out, ordinal twelfth

            

              Hour:

              hh    two digits 12小时进制            显示值:01

              hh24 two digits 24小时进制            显示值:13

             

              Minute:

              mi    two digits 60进制                显示值:45

             

              Second:

              ss    two digits 60进制                显示值:25

             

              其它

              Q     digit         季度                  显示值:4

              WW    digit         当年第几周            显示值:44

              W    digit          当月第几周            显示值:1

             

        24小时格式下时间范围为: 0:00:00 - 23:59:59....     

        12小时格式下时间范围为: 1:00:00 - 12:59:59 ....

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有