私はこれをあちこち検索しましたが、1つの日付が2つの「外部」日付の間にあるレコードを取得する方法しか見つけられないようです。
現在の日付がstartDateフィールドの値とendDateフィールドの値の間にあるレコードを選択する方法を知りたいです。
私がこれまでに持っているもの(PHP):
$now = new DateTime();
$sql = "
SELECT content, image, imageHeight, imageWidth, link, linkDescription
FROM news
WHERE appearanceDate < $now
AND $now < termDate
ORDER BY appearanceDate DESC
";
しかし、それは機能しません。
mysql でNOW()
関数を使用できます。これは、termDate
が後日であることを前提としています。
Select content, image, imageHeight, imageWidth, link, linkDescription
From news
Where appearanceDate < NOW()
And termDate > NOW()
Order By appearanceDate Desc;
包括的な範囲が必要な場合は、 [〜#〜] between [〜#〜] によって提供される少し優れた構文を使用できます
WHERE NOW() BETWEEN appearanceDate AND termDate
Exprがmin以上で、exprがmax以下の場合、BETWEENは1を返し、それ以外の場合は0を返します。これは、すべての引数が以下の場合、式(min <= expr AND expr <= max)と同等です。同じタイプの。それ以外の場合、セクション13.2「式評価でのタイプ変換」で説明されているルールに従ってタイプ変換が行われますが、3つの引数すべてに適用されます。