选择DISTINCT(日期)多次返回相同的日期

人气:427 发布:2022-10-16 标签: sql date oracle 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

的详细信息

656