私はテーブル内のすべての年の2つの日付(月と日)の間に位置するレコードを取得しようとします。 私のテーブルには、50年間のレコードが含まれています。私は1年のためにこれを行うことができますテーブル内のすべての年の2つの日付(月と日)の間にあるレコードを取得する方法は?
:
SELECT*
FROM mytable
WHERE "Date" BETWEEN {D '1700-05-01'} AND {D '1700-07-31'};
私はテーブル内のすべての年の2つの日付(月と日)の間に位置するレコードを取得しようとします。 私のテーブルには、50年間のレコードが含まれています。私は1年のためにこれを行うことができますテーブル内のすべての年の2つの日付(月と日)の間にあるレコードを取得する方法は?
:
SELECT*
FROM mytable
WHERE "Date" BETWEEN {D '1700-05-01'} AND {D '1700-07-31'};
:
SELECT *
FROM mytable
WHERE EXTRACT (month FROM "Date") BETWEEN 5 AND 7
AND EXTRACT (day FROM "Date") BETWEEN 1 AND 31;
あなたのRDBMSに応じて、簡単に答えがあるかもしれません。 日付フィールドの名前を"Date"
以外の名前にすることを検討してください。通常は予約済みのキーワードです。
編集:MS Accessでは、代わりにEXTRACT
の、DatePart
機能を使用します。あなたが望む唯一のことは、あなたは忘れることができます「すべての年のすべての月の月」である場合
DatePart("m", "Date")
DatePart("d", "Date")
を」この回答の一部を抽出し、1か月に抽出するだけです。
編集:それを知っている18世紀
SELECT *
FROM mytable
WHERE EXTRACT (year FROM "Date") BETWEEN 1701 AND 1750
AND EXTRACT (month FROM "Date") = 5;
オフ最初の50年間に5月中に含ますべてのレコード、MS-Accessで、あなたは、EXTRACT (year FROM "Date")
はDatePart("yyyy", "Date")
あり、そしてEXTRACT (month FROM "Date")
はDatePart("m", "Date")
です今すぐそれを把握できるはずです:)
WHERE句に 'EXTRACT(day FROM" Date ")BETWEEN 1 AND 31'は本当に必要ありませんか? –
実際の例ではありませんが、「5月1日から5月25日」など、他のケースでも動作する必要があります。意図したケースが "7月14日から8月2日"の場合、BETWEENの使用は単純に機能せず、AND/OR句が必要になります。 @Wilcar、 "day"句を追加する必要はなく、 "month"部分を抽出するだけで十分ですが、元の投稿ではありません:) –
月に含まれるすべてのレコードを抽出したいWilcar – Wilcar
はい次のことができるようにすべきです。構文は、それに応じて編集する必要があります。そのため、月と日ではなく、必要な年の間だけ行います。あなたが1つの特定の年のためにそれをしたいなら、あなたが望む年の1月1日から12月31日までの日付を指定してください。標準SQLでは
これはどのRDBMSですか? 'mysql'、' postgresql'、 'sql-server'、' oracle'、 'db2'のどれかを指定するタグを追加してください。 –
私はMsアクセスに接続されたLibreoffice Baseを使用しています...だから私は標準SQLを使用します。 – Wilcar