你也被to date 函式欺騙了嗎

2022-04-09 08:18:40 字數 1657 閱讀 7853

你也被to_date()函式欺騙了嗎

我們可以用to_date函式來構造自己想要的任何時間。當省略了hh,mi,ss時,oracle預設置為0,即:取整到日。當省略了dd時,oracle預設置為1,即:取整到月。當省略了mm時,oracle會取整到年嗎?我們都會慣性的認為:會。然,非也!oracle不會取整到年,他會取整到當前月!!

下面我們來實驗一下。

[sql]

sys@orcl> select to_date('2012-7-27 19:39:25','yyyy-mm-dd hh24:mi:ss') from dual;  

www.2cto.com  

to_date('2012-7-271  

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

2012-07-27 19:39:25  

sys@orcl> select to_date('2012-7-27 19:39','yyyy-mm-dd hh24:mi') from dual;  

to_date('2012-7-271  

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

2012-07-27 19:39:00  

sys@orcl> select to_date('2012-7-27 19','yyyy-mm-dd hh24') from dual;  

to_date('2012-7-271  

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

2012-07-27 19:00:00  

sys@orcl> select to_date('2012-7-27','yyyy-mm-dd') from dual;  

to_date('2012-7-27'  

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

2012-07-27 00:00:00  

www.2cto.com  

sys@orcl> select to_date('2012-7','yyyy-mm') from dual;  

to_date('2012-7','y  

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

2012-07-01 00:00:00  

sys@orcl> select to_date('2012','yyyy') from dual;  

to_date('2012','yyy  

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

2012-07-01 00:00:00  

sys@orcl> select to_date('2016','yyyy') from dual;  

to_date('2016','yyy  

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

2016-07-01 00:00:00  

www.2cto.com  

我們可以將計就計,用它來去當前月的第一天。那麼,我們要取當前年的第一天呢?trunc()函式是標準的求法。

[sql]

sys@orcl> select trunc(to_date('2016','yyyy'),'yyyy') from dual;  

trunc(to_date('2016  

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

2016-01-01 00:00:00    

作者 linwaterbin

你也被to date 函式欺騙了嗎?

我們可以用to date函式來構造自己想要的任何時間。當省略了hh,mi,ss時,oracle預設置為0,即 取整到日。當省略了dd時,oracle預設置為1,即 取整到月。當省略了mm時,oracle會取整到年嗎?我們都會慣性的認為 會。然,非也!oracle不會取整到年,他會取整到當前月!下面我...

你也被to date 函式欺騙了嗎?

我們可以用to date函式來構造自己想要的任何時間。當省略了hh,mi,ss時,oracle預設置為0,即 取整到日。當省略了dd時,oracle預設置為1,即 取整到月。當省略了mm時,oracle會取整到年嗎?我們都會慣性的認為 會。然,非也!oracle不會取整到年,他會取整到當前月!下面我...

你也被to date 函式欺騙了嗎?

我們可以用to date函式來構造自己想要的任何時間。當省略了hh,mi,ss時,oracle預設置為0,即 取整到日。當省略了dd時,oracle預設置為1,即 取整到月。當省略了mm時,oracle會取整到年嗎?我們都會慣性的認為 會。然,非也!oracle不會取整到年,他會取整到當前月!下面我...