本文介紹了選擇DISTINCT(日期)多次返回相同的日期的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
在我的Oracle數據庫上,我有一個表,其中有一列的數據類型為Date
。
當我這樣做時:
select distinct(MY_DATE) from MY_TABLE where extract(year from MY_DATE) = 2014;
我明白了:
當我執行此查詢時:
select MY_DATE from MY_TABLE where extract(year from MY_DATE) = 2014;
這就是我擁有的:
我猜是因為秒和毫秒不同。
如何忽略Time In Date以便在我的First查詢中只有一個結果?
推薦答案
嘗試下面的查詢,該查詢只需將TRUNC()
添加到您的日期列中,然后再獲取DISTINCT
。
select distinct(TRUNC(MY_DATE)) from MY_TABLE where extract(year from MY_DATE) = 2014;
這是因為列數據中的時間因素不同。
TRUNC()
將使時間元素無效,僅保留日期
查詢實際上會顯示它。TO_CHAR()
輸出以指定格式保存的日期。
select TO_CHAR(MY_DATE,'MM-DD-YYYY HH24:MI:SS') from MY_TABLE where extract(year from MY_DATE) = 2014;
有關TRUNC
來自Oracle Docs
的詳細信息
這篇關于選擇DISTINCT(日期)多次返回相同的日期的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,