select distinct(date)多次返回相同的日期

时间:2014-08-11 09:00:22

标签: sql oracle date distinct

在我的Oracle数据库中,我有一个表格,其中Date列为数据类型。

当我这样做时:

select distinct(MY_DATE) from MY_TABLE where extract(year from MY_DATE) = 2014;

我明白了:

Result

当我执行此查询时:

select MY_DATE from MY_TABLE where extract(year from MY_DATE) = 2014;

这就是我所拥有的:

Result

我想这是因为秒和毫秒的不同。

如何忽略我的fisrt查询中只有一个结果的日期时间?

2 个答案:

答案 0 :(得分:7)

尝试下面的查询,只需将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;

有关Oracle Docs

TRUNC的更多信息

答案 1 :(得分:-3)

select distinct(date(MY_DATE)) from MY_TABLE where extract(year from MY_DATE) = 2014;