带格式函数SQL的Max或Top1

时间:2014-01-15 23:01:46

标签: sql vba

无论如何,我可以在下面包含Max或Top1功能。

我正在尝试返回最新的日期值,但是由于数据库返回日期&时间格式我需要使用FORMAT语法来纠正这个问题。

我在SELECTWHERE条款中都尝试过,但无法让它工作

sSql = "SELECT FORMAT(Total.StockDate, 'dd/mm/yy' ) AS DateRev FROM " & Mailbox & Totals & " WHERE(Total.UnitCode=" & Sheets("Pipe Cleaning").Range("C4") & " )"

2 个答案:

答案 0 :(得分:0)

嗯,你可以做一个子查询:

sSql = "SELECT FORMAT(StockDate, 'dd/mm/yy' ) AS DateRev FROM " & _
       " (SELECT MAX(StockDate) StockDate FROM " & Mailbox & Totals & _
       " WHERE(Total.UnitCode=" & Sheets("Pipe Cleaning").Range("C4") & " ) )"

但是获取日期值然后在VBA格式化可能更清晰:

sSql = " (SELECT MAX(StockDate) StockDate FROM " & Mailbox & Totals & _
       " WHERE(Total.UnitCode=" & Sheets("Pipe Cleaning").Range("C4") & " ) "

.. execute SQL, store result in dtDate

sDate = Format(dtDate, "dd/mm/yy")

答案 1 :(得分:0)

将格式包装在MAX语句中。您必须将月份指定为上限 MM

样品:

Select Max(Format(mydatefield, 'dd/MM/yy')) from mytable