2

我将 Access 用于数据库,我需要编写 SQL 查询来显示信息。我不知道如何显示我需要的东西。

在英语中,当到期日期距当前日期不到三十天时,我需要一个查询以显示带有到期日期的说明。

我对 SQL 的了解有限。如果有人能指出我的具体资源,那将非常有帮助。提前致谢。

这是我所拥有的:

SELECT Description, [Expiration Date]
FROM Hardware
WHERE [Expiration Date] = "(GET DATE()";
4

3 回答 3

1
SELECT [Description], [Expiration Date]
FROM Hardware
WHERE DateDiff('d', [Expiration Date], Date()) < 30;

注意Description保留字。我将它括在方括号中以避免混淆数据库引擎。

此外,该DateDiff表达式仅计算天数变化。这意味着#2013-9-23 23:00##2013-9-24 01:00#被计为 1 天。如果这不是您想要的,您可以直接对日期/时间值进行日期算术。

SELECT [Description], [Expiration Date]
FROM Hardware
WHERE (Date() - [Expiration Date]) < 30;

如果Hardware是一个带有索引的大表[Expiration Date],您可以使用支持索引检索的查询获得更好的性能,而不是检查表的每一行。

SELECT [Description], [Expiration Date]
FROM Hardware
WHERE [Expiration Date] > (Date() - 30);
于 2013-09-24T15:09:32.457 回答
1

您可以使用这些功能NOW()DATE()获取当前日期。

要将日期添加到日期,请使用DATEADD函数。

WHERE DATEADD(d, 30, [Expiration Date]) >= DATE()
于 2013-09-24T15:00:17.947 回答
0

这个:

SELECT Description, [Expiration Date]
FROM Hardware
WHERE DATEDIFF([Expiration Date], NOW()) < 30;

或这个 :

 SELECT Description, [Expiration Date]
FROM Hardware
WHERE [Expiration Date] < DATE_ADD(NOW(),INTERVAL 30 DAY);

应该管用。

于 2013-09-24T15:04:09.890 回答