0

データベースに追加のテーブルがあり、各レコードでフィールド日付を定義します。各レコードには、日付形式のvarcharおよびsrores日付のタイプがあります。now()関数を使用して日付フィールドに値を挿入し、日付フィールドの形式に値があります

2012-10-07 14:00:54

今日、昨日、先週、先月の日付で一致するレコードを取得したいのですが、その方法がわかりません。私はグーグルでたくさん検索しました、そして私は多くの機能を試しました、しかしそれは機能しません私は次のクエリを実行します

select * from adds where date(date_sub(now(), interval 0 day))
   select * from adds where date(date_sub(now(), interval 1 day))
   select * from adds where date(date_sub(now(), interval 7 day))
   select * from adds where date(date_sub(now(), interval 31 day))

これらはすべて機能しておらず、私も試しました

select * from adds where date=curdate()
  select * from adds where date=current_date()

レコードを取得する方法を教えてください。私はローカルホストサーバーxamppwin321.7.7を使用しています

4

1 に答える 1

0

今日、昨日、先週、先月の日付で一致するレコードを取得したいのですが、その方法がわかりません。

SELECT次に、日付が境界の間にあるレコードを作成する必要があります。

SELECT * FROM adds WHERE `date`
      BETWEEN
          DATE(DATE_SUB(NOW(), INTERVAL 7 DAY))
      AND DATE(DATE_SUB(NOW(), INTERVAL 0 DAY))
;

上記は先週あなたに与えるべきであり、今日の00:00に始まります。

注:上記は、varcharの日付構文がMySQLと同じ場合に機能します。そうでない場合は、MySQLに解析方法を具体的に指示する必要があります。

  WHERE STR_TO_DATE(`date`,'%Y:%d:%m %H:%i:%s') BETWEEN..

date_format()日付形式の構文については、を参照してください。

于 2012-10-11T15:14:52.707 に答える