0

(この質問は簡単で、ちょっとばかげているように思えるかもしれません。無知であることをお許しください。)

PDO クエリを使用してSELECTいくつかの値を取得しましたが、開始日と終了日の範囲内にあるいくつかのエントリのみを取得する必要があるということになりました。

私のデータベース

+----------+-----------------+----------------------+--------------------+
| id (INT) | title (VARCHAR) | start_date (VARCHAR) | end_date (VARCHAR) |
+----------+-----------------+----------------------+--------------------+
|    1     |     buddy       |     2012-11-26       |     2012-11-30     |
|    2     |     metro       |     2012-12-05       |     2012-12-20     |
|    3     |     justin      |     2012-11-28       |     2012-12-01     |
+----------+-----------------+----------------------+--------------------+

私のクエリは次のとおりです。

$query = "SELECT title, start_date, end_date FROM debts WHERE start_date >= CURDATE() AND end_date >= CURDATE()";

私が達成したいのは、start_dateが今日以上であるが、end_dateそれを超えない場合はいつでも有効になるということです。これは の行を返しますがid 1、 を に変更するstart_date2012-11-25、 の最初の条件により失敗しANDます。私はこれに慣れていないので、これについて本当に混乱しています。この種の状況を処理するための組み込み関数はありますか?

4

2 に答える 2

1

これの方が良い:

SELECT title、start_date、end_dateFROM債務WHEREdate(now())BETWEEN start_date AND end_date

于 2012-11-26T11:02:24.117 に答える
0
SELECT title, start_date, end_date FROM debts
WHERE start_date >= CURDATE() AND end_date <= CURDATE()
于 2012-11-26T10:57:52.490 に答える