你也被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不會取整到年,他會取整到當前月!下面我...