to date函式與當前系統時間格式轉換問題總結

2021-08-27 15:19:39 字數 2832 閱讀 7382

bys@bys1>select sysdate from dual;

sysdate

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

2013/10/25 09:40:31

bys@bys1>select to_date('2013/10/25 09:40:31') from dual;

to_date('2013/10/25

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

2013/10/25 09:40:31

當前日期格式下,下面幾種格式都可以隱式轉換--應該是日期間連線符使用特殊字元都沒問題,但是月與日、小時、分鐘要能對上。

不能使用&,&表示傳入變數。不能使用數字或字母字元。

bys@bys1>select to_date('2013-02-21 10:00:00') from dual;

to_date('2013-02-21

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

2013/02/21 10:00:00

bys@bys1>select to_date('2013-02#21 10:00+00') from dual;

to_date('2013-02#21

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

2013/02/21 10:00:00

bys@bys1>select to_date('2013-02a21 10:00+00') from dual;

select to_date('2013-02a21 10:00+00') from dual

*error at line 1:

ora-01861: literal does not match format string

bys@bys1>select to_date('2013-02921 10:00+00') from dual;

select to_date('2013-02921 10:00+00') from dual

*error at line 1:

ora-01861: literal does not match format string

bys@bys1>select to_date('2013-02@21 10:00+00') from dual;

to_date('2013-02@21

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

2013/02/21 10:00:00

如果to_date函式中格式-字段長度與系統的不符的幾種情況:

把最後的表示秒的字元省略,可以正常顯示。

bys@bys1>select to_date('2013-02@21 10:00') from dual;

to_date('2013-02@21

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

2013/02/21 10:00:00

把最後的表示秒的字元及表示具體幾號的字元省略,報錯。

bys@bys1>select to_date('2013-@21 10:00') from dual;

select to_date('2013-@21 10:00') from dual

*error at line 1:

ora-01858: a non-numeric character was found where a numeric was expected

只給出10點,分和秒未給出,以0代替。

bys@bys1>select to_date('2013-02@21 10') from dual;

to_date('2013-02@21

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

2013/02/21 10:00:00

只給出日期的字段,時、分、秒用0來代替。

bys@bys1>select to_date('2013-02@21 ') from dual;

to_date('2013-02@21

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

2013/02/21 00:00:00

只給出年-月,未給幾號,報錯。

bys@bys1>select to_date('2013-02 ') from dual;

select to_date('2013-02 ') from dual

*error at line 1:

ora-01840: input value not long enough for date format

bys@bys1>select to_date('2013-02$1 ') from dual;

to_date('2013-02$1'

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

2013/02/01 00:00:00

bys@bys1>select sysdate from dual;

sysdate

---------

25-oct-13

注意列寬,以免不能顯示全。

bys@bys1>col aa for a20

bys@bys1>select to_date('2013-02-21 10:00:00','yyyy-mm-dd hh24:mi:ss') aa from dual;

aa--------------------

21-feb-13

不指定格式會報錯:

bys@bys1>select to_date('2013-02-21 10:00:00') from dual;

select to_date('2013-02-21 10:00:00') from dual

*error at line 1:

ora-01861: literal does not match format string

MySQL獲取系統當前時間的函式

mysql獲取系統當前時間的函式 環境 mysql server 5.1 問題 mysql獲取系統當前時間的函式 解決 now 函式以 yyyy mm dd hh mm ss 返回當前的日期時間,可以直接存到datetime欄位中。curdate 以 yyyy mm dd 的格式返回今天的日期,可以...

獲得系統當前時間

方案 優點 僅使用c標準庫 缺點 只能精確到秒級 include include int main void size t strftime char strdest,size t maxsize,const char format,const struct tm timeptr 根據格式字串生成字...

獲得系統當前時間

nsdateformatter nsdformatter nsdateformatter alloc init autorelease nsdformatter setdatestyle nsdateformattershortstyle nsdformatter setdateformat yyy...