exhibitions
私は2つの列を持つテーブルを持ってstartDate
いますendDate
. 今日の日付に基づいてレコードを選択したい。したがって、今日が「2012-05-24」の場合、「2012-05-01」と「2012-05-31」のレコードが必要になりstartDate
ますendDate
。
クエリを逆に使用して、「2012-05-01」と「2012-05-31」の間のレコードを検索しましたが、今日の日付に基づいていません。どんな方向でも役に立ちます。
SELECT *
FROM exhibitions
WHERE startDate > DATE_FORMAT(CONCAT(SUBSTR(NOW(),1,8),'01'),'%a')
AND endDate < DATE_FORMAT(LAST_DAY(NOW()),'%a')
これを試して:
Select *
FROM exhibitions
WHERE startDate < CURRENT_DATE() and endDate > CURRENT_DATE()
アップデート:
月の最初の日と月の最後の日を見つける必要があります。LAST_DAY() 関数はありますが、FIRST_DAY() 関数はありません。
今日の日付に基づいて月の最初の日を見つけるには、次を使用できます。
DATE_ADD(LAST_DAY(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH)), INTERVAL 1 DAY)
今日の日付に基づいて月の最終日を見つけるには、次を使用できます。
LAST_DAY(CURRENT_DATE())
最後のクエリは次のようになります。
Select *
FROM exhibitions
WHERE Startdate = LAST_DAY(CURRENT_DATE())
AND
endDate = DATE_ADD(LAST_DAY(DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH)), INTERVAL 1 DAY)