<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Decode360's Blog

    業(yè)精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 ::  :: 管理 ::
      397 隨筆 :: 33 文章 :: 29 評論 :: 0 Trackbacks
    DATE類型默認(rèn)格式的設(shè)置
    ?
    ??? 今天在工作中發(fā)現(xiàn)一個(gè)問題,同樣的代碼在同事的機(jī)子上可以執(zhí)行,在我的機(jī)子上報(bào)錯(cuò)。在分析了之后,發(fā)現(xiàn)是date類型數(shù)據(jù)的默認(rèn)格式問題引起的。到網(wǎng)上查了一下,發(fā)現(xiàn)遇到這個(gè)問題的人算是不少,但是能說清楚的也沒幾個(gè)人,所以專門研究了一下這個(gè)問題,基本上得到了答案,具體的過程如下:
    ?
    ?
    ??? 首先把問題重現(xiàn)一下,SQL做了一些簡化,代碼如下:
    ?
    SQL > select to_date(to_char(last_day(add_months(sysdate,-1)),'YYYY-MM-DD')) from dual;
    ?????????????? *
    ERROR at line 1:
    ORA-01861: literal does not match format string
    ?
    ?
    ??? 發(fā)現(xiàn)應(yīng)該是date類型的默認(rèn)格式的問題。在同事機(jī)子上的默認(rèn)格式本身就是'YYYY-MM-DD'的,所以在to_date函數(shù)后面,對'YYYY-MM-DD'格式的char無需再指定date格式類型,但是如果char格式與默認(rèn)不一致,則會報(bào)錯(cuò)。
    ?
    ??? date類型的默認(rèn)格式由啟動(dòng)參數(shù) nls_date_format 指定
    ?
    SQL > select * from nls_database_parameters where PARAMETER = 'NLS_DATE_FORMAT';
    ???
    PARAMETER?????? VALUE
    --------------- ----------------
    NLS_DATE_FORMAT DD-MON-RR
    ?
    SQL > select sysdate from dual;
    ?
    SYSDATE
    -----------
    2008-NOV-05
    ?
    ??? 發(fā)現(xiàn)系統(tǒng)的默認(rèn)NLS_DATE_FORMAT參數(shù)值為DD-MON-RR。 再查看當(dāng)前DATABASE的該參數(shù):
    ?
    SQL > show parameter nls_date_format
    ?
    NAME??????????????? TYPE??????? VALUE
    ------------------- ----------- --------------------
    nls_date_format???? string
    ?
    ??? 發(fā)現(xiàn)當(dāng)前數(shù)據(jù)庫未設(shè)定該參數(shù)。 由于這個(gè)是系統(tǒng)的啟動(dòng)參數(shù),不能直接用alter database來修改,所以可以通過修改當(dāng)前session來暫時(shí)實(shí)驗(yàn)一下:
    ?
    SQL > alter session set nls_date_format='yyyy-mm-dd';
    ?
    Session altered.
    ?
    SQL > select sysdate from dual;
    ?
    SYSDATE
    ----------
    2008-11-05
    ?
    ??? 再試一下之前的那段SQL
    ?
    SQL > select to_date(to_char(last_day(add_months(sysdate,-1)),'YYYY-MM-DD')) from dual;
    ?
    TO_DATE(TO
    ----------
    2008-10-31
    ?
    ?
    ??? 如果需要一直都這樣顯示,則可以修改注冊表、添加環(huán)境變量,或直接修改啟動(dòng)參數(shù)文件。
    ?
    ?
    ?
    posted on 2008-10-28 23:12 decode360 閱讀(2585) 評論(0)  編輯  收藏 所屬分類: 07.Oracle
    主站蜘蛛池模板: 亚洲va国产va天堂va久久| 亚洲粉嫩美白在线| 国产国产人免费视频成69堂| 亚洲一区欧洲一区| 不卡精品国产_亚洲人成在线| 日本免费久久久久久久网站| 亚洲午夜无码久久久久小说| 亚洲区不卡顿区在线观看| 99久久国产免费-99久久国产免费 99久久国产免费中文无字幕 | 成年男女男精品免费视频网站| 日韩大片在线永久免费观看网站| 亚洲国产香蕉碰碰人人| 国内精品免费视频自在线| 成人免费无码H在线观看不卡| 亚洲国产精品成人久久久| 不卡精品国产_亚洲人成在线| 国产在线a免费观看| 99久久免费国产精精品| 亚洲欧洲AV无码专区| a毛片视频免费观看影院| 含羞草国产亚洲精品岁国产精品 | 国产精品免费电影| 84pao强力永久免费高清| 香港一级毛片免费看| 亚洲不卡中文字幕| 亚洲国语精品自产拍在线观看| 国产免费av一区二区三区| 91免费国产在线观看| 嫩草成人永久免费观看| 日本免费精品一区二区三区 | 免费A级毛片在线播放| eeuss影院ss奇兵免费com| 亚洲AV第一成肉网| 亚洲中文久久精品无码1| 亚洲第一成年男人的天堂| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 亚洲人成无码网站| 亚洲国产日韩成人综合天堂 | 国色精品卡一卡2卡3卡4卡免费| 两个人看的www免费视频中文| 免费无遮挡无遮羞在线看|