我有一个日期时间字段,我希望找到最大值,然后将其截断,以便我只有' 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
这失败了。我做错了什么?
谢谢, 乔
答案 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()
函数。