我将 Access 用于数据库,我需要编写 SQL 查询来显示信息。我不知道如何显示我需要的东西。
在英语中,当到期日期距当前日期不到三十天时,我需要一个查询以显示带有到期日期的说明。
我对 SQL 的了解有限。如果有人能指出我的具体资源,那将非常有帮助。提前致谢。
这是我所拥有的:
SELECT Description, [Expiration Date]
FROM Hardware
WHERE [Expiration Date] = "(GET DATE()";
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);
您可以使用这些功能NOW()
并DATE()
获取当前日期。
要将日期添加到日期,请使用DATEADD函数。
WHERE DATEADD(d, 30, [Expiration Date]) >= DATE()
这个:
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);
应该管用。