1

次の mySQL クエリを使用して、date_start が次の 14 日以内にあるエントリを選択しています。ほとんどの場合、正常に動作しますが、「今日」のエントリは含まれていません。

SELECT * , DATE_FORMAT( date_start,  ' %d.%m.%Y' ) AS date_formatted
FROM calendar_event
WHERE Date_start
BETWEEN NOW( ) 
AND DATE_ADD( NOW( ) , INTERVAL 14 
DAY ) 
AND amountpaid + amountpaid2 + amountpaid3 < amount
AND amountpaid > 0 

今日の日付でスケジュールされているエントリも表示する方法を教えてください

どうもありがとう

4

3 に答える 3

3
SELECT * , DATE_FORMAT( date_start,  ' %d.%m.%Y' ) AS date_formatted
FROM calendar_event
WHERE Date_start
BETWEEN CURDATE() 
AND DATE_ADD( CURDATE() , INTERVAL 14 DAY ) 
AND amountpaid + amountpaid2 + amountpaid3 < amount
AND amountpaid > 0

午前 0 時を除く 1 日のいつでも、 によって返される値は、NOW()その日の午前 12 時より大きくなります。

于 2012-11-17T18:56:52.680 に答える
1

あなたはこれを試してください

SELECT * , DATE_FORMAT( date_start, ' %d.%m.%Y' ) AS date_formatted FROM calendar_event WHERE Date_start BETWEEN GETDATE() AND DATE_ADD(GETDATE()+14) AND amountpaid + amountpaid2 + amountpaid3 < amount AND amountpaid > 0
于 2012-11-17T18:59:48.810 に答える
0

DATE_FORMATを使用すると、時間と分ではなく日付のみで比較できます。これは、00:00 から数時間先の現在の時刻と比較するため、ここでは間違っています。

于 2012-11-17T18:54:26.437 に答える