oracle日期格式轉換問題

2021-08-25 04:33:46 字數 1452 閱讀 3782

在預設的sqlplus或者sqlplusw下或者程式編寫過程中,執行該命令後,如果是同乙個session是肯定會產生你要的效果。

如果要將整體的資料庫級別預設格式改掉需要修改引數檔案,並重啟資料庫才可以,但是這個也改不掉你第三方工具的顯示格式,第三方工具只能在工具內部去改,它只能改掉預設的日期格式,第三方工具都是轉換後的;但是很多時候容易被工具所忽悠,給人的感覺就是資料庫就是這樣儲存的,其實儲存的只有日期格式,沒有yyyymm這些東西,這些東西都是通過演算法計算出來的結果,然後根據格式要求進行對應的格式化給看到的這樣的效果而已。

oracle date型別有自己的儲存方式,轉換也只能轉換成字串的顯示方式,而沒有改變date型別,另外date型別的每個域是有限制的,比如小時是0-23,哪有24的啊,所有的日期都沒有24的

sql code

dingjun123>select to_date('2010050623','yyyymmddhh24') from dual;

to_date('20100

--------------

06-5月 -10

dingjun123>alter session set nls_date_format='yyyymmdd hh24:mi:ss';

會話已更改。

dingjun123>/

會話已更改。

dingjun123>select to_date('2010050623','yyyymmddhh24') from dual;

to_date('20100506

-----------------

20100506 23:00:00

dingjun123>alter session set nls_date_format='yyyymmdd hh:mi:ss';

會話已更改。

dingjun123>select to_date('2010050623','yyyymmddhh24') from dual;

to_date('20100506

-----------------

20100506 11:00:00

dingjun123>alter session set nls_date_format='yyyymmdd hh24:mi:ss,am';

error:

ora-01818: 'hh24' 不使用上下午指示符

dingjun123>alter session set nls_date_format='yyyymmdd hh:mi:ss,am';

會話已更改。

dingjun123>select to_date('2010050623','yyyymmddhh24') from dual;

to_date('2010050623','

----------------------

20100506 11:00:00,下午

Oracle日期格式轉換

本文主要介紹oracle中的日期轉換。日期轉化為字串 以2016年10月20日為例 select to char sysdate,yyyy mm dd hh24 mi ss strdatetime from dual 獲取年 月 日 時 分 秒 顯示結果為 2016 10 20 12 35 21 s...

ORACLE日期格式轉換

今天乙個朋友,資料庫做了資料遷移,可是在新的oracle資料庫中,卻忘記了設定日期格式為date,而設定成了varchar2,所以在資料庫中顯示的日期格式都是 11 1月 10 現在需要轉換為 yyyy mm dd 格式的,這樣的問題之前還沒有遇到過,oracle有乙個to date 函式,是把字元...

Oracle實現日期格式轉換

to date 將字元型轉換為date型 select to date 2011 09 20 08 30 45 yyyy mm dd hh24 mi ss from dual to char 將date轉換為字元型 select to char sysdate,yyyy mm dd hh24 mi ...