0

exhibitions私は2つの列を持つテーブルを持ってstartDateいますendDate. 今日の日付に基づいてレコードを選択したい。したがって、今日が「2012-05-24」の場合、「2012-05-01」と「2012-05-31」のレコードが必要になりstartDateますendDate

クエリを逆に使用して、「2012-05-01」と「2012-05-31」の間のレコードを検索しましたが、今日の日付に基づいていません。どんな方向でも役に立ちます。

4

2 に答える 2

0
SELECT *
FROM exhibitions
WHERE startDate > DATE_FORMAT(CONCAT(SUBSTR(NOW(),1,8),'01'),'%a')
AND endDate < DATE_FORMAT(LAST_DAY(NOW()),'%a')
于 2012-05-25T02:31:40.703 に答える
0

これを試して:

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)
于 2012-05-25T02:23:23.803 に答える