2

データベースに Access を使用しており、情報を表示するために SQL クエリを作成する必要があります。必要なものを表示する方法がわかりません。

英語では、有効期限が現在の日付から 30 日未満の場合に有効期限を含む説明を表示するクエリが必要です。

SQL に関する私の知識は限られています。誰かが私に特定のリソースを教えてくれれば、それは非常に役に立ちます。前もって感謝します。

ここに私が持っているものがあります:

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

3 に答える 3

1

関数NOW()DATE()を使用して、現在の日付を取得できます。

日付に日数を追加するには、DATEADD関数を使用します。

WHERE DATEADD(d, 30, [Expiration Date]) >= DATE()
于 2013-09-24T15:00:17.947 に答える
1
SELECT [Description], [Expiration Date]
FROM Hardware
WHERE DateDiff('d', [Expiration Date], Date()) < 30;

NoteDescription予約語です。db エンジンを混乱させないように、角かっこで囲みました。

また、そのDateDiff式は日の変更の数のみをカウントします。つまり、#2013-9-23 23:00#to#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 に答える
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 に答える