to date 函式的使用

2021-04-17 12:31:08 字數 1720 閱讀 3144

to_date 函式的使用

今天碰到了to_date函式,在網上發現一篇寫的不錯的。摘來一起用

sql> alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss';

會話已更改。

sql> select to_date('2006-05-01 19:25:34', 'yyyy-mm-dd hh24:mi:ss') from dual;

to_date('2006-05-01

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

2006-05-01 19:25:34

sql> select to_date('2006-05-01 19:25', 'yyyy-mm-dd hh24:mi') from dual;

to_date('2006-05-01

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

2006-05-01 19:25:00

sql> select to_date('2006-05-01 19', 'yyyy-mm-dd hh24') from dual;

to_date('2006-05-01

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

2006-05-01 19:00:00

sql> select to_date('2006-05-01', 'yyyy-mm-dd') from dual;

to_date('2006-05-01

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

2006-5-1

sql> select to_date('2006-05', 'yyyy-mm') from dual;

to_date('2006-05','

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

2006-5-1

sql> select to_date('2006', 'yyyy') from dual;

to_date('2006','yyy

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

2006-1-1

當省略hh、mi和ss對應的輸入引數時,oracle使用0作為default值。如果輸入的日期資料忽略時間部分,oracle會將時、分、秒部分都置為0,也就是說會取整到日。

同樣,忽略了dd引數,oracle會採用1作為日的預設值,也就是說會取整到月。

但是,不要被這種「慣性」所迷惑,如果忽略mm引數,oracle並不會取整到年,取整到當前月。

注意:1.在使用oracle的to_date函式來做日期轉換時,可能會直覺地採用「yyyy-mm-dd hh:mm:ss」的格式作為格式進行轉換,但是在oracle中會引起錯誤:「ora 01810 格式**出現兩次」。如:select to_date('2005-01-01 13:14:20','yyyy-mm-dd hh24:mm:ss') from dual;

原因是sql中不區分大小寫,mm和mm被認為是相同的格式**,所以oracle的sql採用了mi代替分鐘。select to_date('2005-01-01 13:14:20','yyyy-mm-dd hh24:mi:ss') from dual;

2.另要以24小時的形式顯示出來要用hh24

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;//mi是分鐘

select to_char(sysdate,'yyyy-mm-dd hh24:mm:ss') from dual;//mm會顯示月份

TO DATE函式的小問題

今天比較忙,總結乙個已經就發現的小問題。使用to date函式的時候,小心不要被oracle的 慣性 騙了。例子很簡單 sql alter session set nls date format yyyy mm dd hh24 mi ss 會話已更改。sql select to date 2006 ...

Oralce中的to date 函式

oralce中的to date 函式用於將字串轉換為日期物件,具體使用格式為 to date string,format mask nls language string1 要轉換的字串.format mask 可選項,日期轉換格式.nls language 可選項.指定用於轉換字串的nls lan...

SQL語句to date函式

今天有個需求要對乙個表中某個字段,截斷後進行日期格式轉換,順便學習下to date函式。查詢語句 select substr doc create time 0,6 select fd name from sys org element c where c.fd id a.fd name selec...