SQL查找MAX并截断

时间:2016-01-26 15:21:42

标签: sql max

我有一个日期时间字段,我希望找到最大值,然后将其截断,以便我只有' YYYY-MM-DD'。

我的陈述是

select TO_CHAR(MAX(AUDIT_TIMESTAMP), 'YYYY-MM-DD') as UPDATE_DATE from        
BUS.ZIP_ACTIVITY
where zip = '01001' order by AUDIT_TIMESTAMP

这失败了。我做错了什么?

谢谢, 乔

2 个答案:

答案 0 :(得分:0)

以下是您的需求:

SELECT DATE_FORMAT(MAX(AUDIT_TIMESTAMP), "%Y-%m-%d") as UPDATE_DATE
FROM BUS.ZIP_ACTIVITY
WHERE zip = '01001'

答案 1 :(得分:0)

您的查询问题是ORDER BY。它有一个无法识别的列,因为您有一个聚合查询。查询只返回一行,因此ORDER BY根本不需要。所以:

select TO_CHAR(MAX(AUDIT_TIMESTAMP), 'YYYY-MM-DD') as UPDATE_DATE
from BUS.ZIP_ACTIVITY
where zip = '01001' ;

如果您想要所有拉链:

select zip, TO_CHAR(MAX(AUDIT_TIMESTAMP), 'YYYY-MM-DD') as UPDATE_DATE
from BUS.ZIP_ACTIVITY
group by zip;

注意:这假定您的数据库支持to_char()函数。