1

私のSQLクエリでは、日付を時系列で出力しています。

データベースの日付は dMY 形式で保存されています。

私がやりたいのは、結果を今日以降の日付で並べ替えて、最初に出力することです。

私のクエリでは、クエリにこの並べ替えがあります

...From $db ORDER BY STR_TO_DATE(sortdate, '%d-%M-%Y') ASC

各レコードがデータベースから出力されるため、今日の日付で比較できるかどうか誰か教えてもらえますか?

これにより、今日の日付が表示されます

$todaysdate = date("d-M-Y", time());

しかし、それをクエリに組み込むことができるかどうか誰か教えてもらえますか?

前もって感謝します。

4

6 に答える 6

2

==> http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_current-dateDATEDIFFと組み合わせてmysqlをチェックしてくださいCURRENT_DATE

于 2012-08-23T08:08:20.953 に答える
1

日付をdateTime形式で保存する必要があります。これにより、あらゆる種類の注文、比較、およびその他の多くのことがはるかに簡単になります。たとえば、now()必要な結果のみを取得するために mysql 関数を使用できますか?

...From $db where sortDate>=now() ORDER BYsortdate ASC
于 2012-08-23T08:08:32.070 に答える
1

sortdate が datetime フィールドであると仮定すると、最初に今日以降の日付を表示するには、UNION を使用できます。

SELECT * FROM my_table WHERE sortdate>= CURDATE()
UNION
SELECT * FROM my_table WHERE sortdate< CURDATE()
于 2012-08-23T08:16:51.777 に答える
1

私の推測では、日付を VARCHAR 列に保存したと思います。そうしないでください。日付を使って (このような) 処理を行うと、自分にとって非常に複雑になります。列を DATE フィールドに変換してから、次を使用することをお勧めします。

SELECT * FROM my_table WHERE my_date_field >= CURDATE()

また、日付を dmY 形式で出力する場合は、DATE_FORMAT() を使用できます。

于 2012-08-23T08:11:26.933 に答える
0

この条件をdate_column>=curdate()/$todaysdateのような場所に置くだけです

ありがとう

于 2012-08-23T08:17:36.043 に答える
0

使用できますWHERE sortdate >= $todaysdate

于 2012-08-23T08:10:08.637 に答える