2017-01-02 8 views
0

データベースに日付を含む行があるプロジェクトで作業しています。今日と等しいかそれ以上の日付を持つフィールドのデータをエコーし​​たいと思います。私は他の投稿を見ていて、いろいろな方法を試してみたが、まだ成功していない。現在私が持っているものは、> =を行うとエラーが返されますが、以下のステートメントで=を行うと、データベースからすべての行が取得されます。日付が今日より大きいmysqlテーブルのレコードを選択してください

$sql = "SELECT * FROM drives WHERE ddest = '{$trimmed}' AND 'leave_date' => DATE_FORMAT(CURDATE(), '%m/%d/%Y') LIKE '%$trimmed%' ORDER BY timeago DESC"; 
+0

「LIKE '%$ trimmed%'は何をすべきですか? – Chris

+0

私は通常 'SELECT * FROM table1 WHERE datestored> = \ ''のようなものを使用します。日付( 'Y-m-d H:i:s')。 '\'; '' –

+0

ddestがトリミングされたクエリに基づくデータを返します。ありがとうございます – kylel9506

答えて

3

他にこの

$sql = "SELECT * FROM drives WHERE ddest = '{$trimmed}' AND 'leave_date' >= NOW() LIKE '%$trimmed%' ORDER BY timeago DESC"; 

これを試してみてくださいあなたが今日と同じかそれ以上である日付をしたい場合は、

$sql = "SELECT * FROM drives WHERE ddest = '{$trimmed}' AND 'leave_date' >= DATE_FORMAT(CURDATE(), '%m/%d/%Y') LIKE '%$trimmed%' ORDER BY timeago DESC"; 
+0

ありがとうございますが、これは動作しません。 Ieave_dateは、01/01/2017の形式になっています。そのため、CURDATE()をフォーマットするのが良いと思ったのはそのためです。 – kylel9506

+0

次に、この 'leave_date'> = DATE_FORMAT(CURDATE()、 '%m /%d /%Y')を実行しようとします。私は唯一以上の演算子記号を修正しました – funsholaniyi

+0

@FunshoOlaniyiあなたは正しいですが、構文が間違っていますlil bit..net mysqlのデフォルトの日付形式は 'Ymd' os 'leave_date'> = DATE_FORMAT(CURDATE()、 '%Y- %m-%d ')' –

0

は、このクエリを試してみてください。

select * from drives where day(now()) <= day(ddest) and year(ddest) >= year(now()); 
0

有効なクエリは次のようになります。

SELECT * 
    FROM drives 
WHERE ddest = '{$trimmed}' 
    AND leave_date >= CURDATE() 
ORDER 
    BY timeago DESC 

残りの問題は、クエリ自体ではなく、あなたが私たちのデータを処理している方法で行う可能性が高くなります。

関連する問題