我正在尝试从表中获取具有最大负日期差异(例如date - Now()
)的行。
像这样(伪代码):
SELECT ID, MAX( DateDiff("d", Now(), myDate) ) AS [test] FROM myTable
WHERE test < 0;
结果将是这样的:
ID | test
1 | -15
我试图自己解决这个问题但是失败了。我甚至不知道如何在谷歌上搜索搜索问题,所以互联网无法帮助我。我被困住了。
注:
最大负数示例:介于-10和-125之间,结果应为-10。
独自尝试,我能够接近:
SELECT MAX( DateDiff("d", myDate, Now()) as [test] from myTable
WHERE DateDiff("d", myDate, Now() < 0;
它返回正确的日期差异,但是当我尝试添加ID时,它会返回所有行的日期差异。我无法获得单一价值。
答案 0 :(得分:1)
使用ORDER BY
和TOP 1
。
这样的事情。
SELECT TOP 1 ID, myDate, DateDiff(Day, now(), myDate) AS [test]
FROM myTable
WHERE DateDiff(Day, now(), myDate) < 0
ORDER BY DateDiff(Day, now(), myDate) DESC -- min differenz
-- ORDER BY DateDiff(Day, now(), myDate) ASC -- max differenz
答案 1 :(得分:1)
SELECT TOP 1
ID,
DateDiff('d', Now(), myDate) AS [test]
FROM myTable
WHERE Now() > myDate
ORDER BY 2 DESC;