2013-01-01 72 views
2
select TO_CHAR(to_date(sysdate, 'DD-MON-YYYY'), 'DAY') FROM DUAL; 

當我運行此查詢輸出爲:SUNDAY。但我們今天知道的是星期二(1-1-2013)。 而to_date函數與sysdate

再變查詢作爲

select TO_CHAR(to_date('01-JAN-2013', 'DD-MON-YYYY'), 'DAY') FROM DUAL; 

答案:星期二。

再變查詢作爲

select TO_CHAR(to_date(sysdate+1, 'DD-MON-YYYY'), 'DAY') FROM DUAL; 

答案是:週一。

當我使用sysdate爲什麼它顯示SUNDAY作爲輸出?

我是oracle db中的新手。請幫幫我。

+0

SYSDATE已經是日期。爲什麼你認爲有必要使用TO_DATE()呢? – APC

+0

@APC現在我正在學習oracle的基礎知識,並且通過這個只是嘗試了一些示例,並且此查詢從其他一些查詢開發了自己。 –

+0

當我從雙重使用SELECT TO_CHAR(TO_DATE(sysdate,'DD-MM-RRRR'),'DAY')時;答案:TUESDAY –

回答

2

使用這個男人

select TO_CHAR(sysdate, 'DAY') FROM DUAL; 

你[R使用此:

to_date(sysdate, 'DD-MON-YYYY') 

這是給你的約會= 1/1/0013這是星期天

2

請參閱sysdate here的文檔。 Sysdate已經是日期數據類型。

您的示例查詢不合適,因爲to_date函數將第一個參數作爲字符串,而不是date

嘗試下面的簡單查詢:

 select TO_CHAR(sysdate, 'DAY') FROM DUAL; 

這應返回TUESDAY作爲輸出。

+0

感謝您的快速回復 –

1

To_date用於轉換嚴格的日期。由於sysdate已經是日期,所以不能添加添加to_date。

+1

一定不會是什麼? – Robert