按日期获取最新记录

时间:2014-09-08 21:30:52

标签: sql oracle

我将名为AUDIT_LOG_1的表作为AL1,将日期作为DATE数据类型的属性。 我有另一个表AUDIT_LOG_2作为AL2,日期作为DATE数据类型的属性。

我想在AL1.date = AL2.date之类的查询中比较两个表的日期属性 比较不仅限于日期,也限于时间意义 比较应该发生在日期和时间,如08-09-2014 16:29:42不仅在日期 让我们在表AUDIT_LOG_1表中有如下记录: 2014年8月9日 2014年8月9日 2014年8月10日 考虑在时间为16:29:42时插入第1条记录,在时间为16:31:42时插入第二条记录

并且在AUDIT_LOG_2表中有一行如下: 2014年8月9日 这个记录也是在时间是16:29:42

所以我需要在表格

中根据日期和时间匹配得到一条记录

现在,由于它是一个日期类型,它将在表格中显示日期,但实际上它也隐藏了时间戳。 我需要一个Oracle查询。

1 个答案:

答案 0 :(得分:1)

如果您要通过日期加入日志,可以发出:

SELECT * FROM AL1 INNER JOIN AL2 ON (al1.date = al2.date)

如果您要查找最新记录(如问题标题所示),您可以这样做:

SELECT * FROM AL1 ORDER BY date DESC

或者,如果您需要两个表的结果

( SELECT * FROM AL1
  UNION
  SELECT * FROM AL2
) ORDER BY date DESC