如何在包含DateSerial函数的Date字段中添加或使用MAX函数来查询最近的日期?

时间:2012-01-18 05:28:27

标签: sql ms-access ms-access-2007

我使用DateSerial函数转换列上的日期,如下所示:

(DateSerial(CInt(Left([EXAMPLE_TBL.APP_DATE],4)),CInt(Mid([EXAMPLE_TBL.APP_DATE],5,2)),
CInt(Right([EXAMPLE_TBL.APP_DATE],2)))) AS Application_Date

日期来自Oracle链接表,该表在Access中为text数据类型。一切正常,但是,我需要添加MAX函数或找到一种方法来获取最新的APP_DATE。

如何添加MAX函数或我可以使用哪些函数,这样如果有两个APP_DATES,我会得到最新的?

谢谢大家!

1 个答案:

答案 0 :(得分:1)

这将根据您真正需要完成的内容而改变。如果这是您需要查询的唯一列,那么您应该能够:

SELECT MAX((DateSerial(CInt(Left([EXAMPLE_TBL.APP_DATE],4)),CInt(Mid([EXAMPLE_TBL.APP_DATE],5,2)),
CInt(Right([EXAMPLE_TBL.APP_DATE],2)))) 
AS Application_Date FROM EXAMPLE_TBL;

另一方面,如果您需要查询多个列,则需要尝试以下方法:

SELECT col1, col2, MAX(DateSerial(CInt(Left([APP_DATE],4)),CInt(Mid([APP_DATE],5,2)),CInt(Right([AP‌​P_D‌​‌​ATE],2)))) AS Application FROM tablename GROUP BY col1, col2;

是否有理由将其存储为文本类型而非DateTime?