ホームページ  >  記事  >  データベース  >  mysqlで一定期間のレコードをクエリする方法

mysqlで一定期間のレコードをクエリする方法

coldplay.xixi
coldplay.xixiオリジナル
2020-11-18 09:46:404156ブラウズ

一定期間のレコードをクエリする Mysql メソッド: 1. N 日以内のレコードをクエリします。コードは [WHERE TO_DAYS(NOW()) - TO_DAYS (時間フィールド)

mysqlで一定期間のレコードをクエリする方法

#その他の関連する無料学習の推奨事項:

mysql チュートリアル (ビデオ)

# #一定期間のレコードをクエリする mysql メソッド:

24 時間以内 (つまり 86400 秒) のレコード

$sql="SELECT video_id,count(id)as n FROM `rec_down` WHERE UNIX_TIMESTAMP(NOW())-UNIX_TIMESTAMP(add_time)<=86400 group by video_id order by n desc ";
$sql="select a.id,a.title,b.n from video_info a,(".$sql.")b where a.id=b.video_id order by n desc limit 20";

N 日以内のレコード

WHERE TO_DAYS(NOW()) - TO_DAYS(时间字段) <= N

今日の記録

where date(时间字段)=date(now())
または

where to_days(时间字段) = to_days(now());

一週間のクエリ:

select * from table   where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(column_time);

クエリ 1 か月:

select * from table where DATE_SUB(CURDATE(), INTERVAL INTERVAL 1 MONTH) <= date(column_time);

クエリは、過去 30 日以内の date_col 値を持つすべてのレコードを選択します。

mysql> SELECT something FROM tbl_name
            WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 30;    //真方便,以前都是自己写的,竟然不知道有这,失败.

DAYOFWEEK(date)

日付の週インデックスを返します (1 = 日曜日、2 = 月曜日、... 7 = 土曜日)。インデックス値はODBC規格に準拠しています。

mysql> SELECT DAYOFWEEK(’1998-02-03’);
         -> 3

WEEKDAY(date)

日付の週インデックスを返します (0 = 月曜日、1 = 火曜日、... 6 = 日曜日):

mysql> SELECT WEEKDAY(’1998-02-03 22:23:00’);
         -> 1
mysql> SELECT WEEKDAY(’1997-11-05’);
         -> 2

DAYOFMONTH(date)

返される日付は、1 ~ 31 の範囲の日です:

mysql> SELECT DAYOFMONTH(’1998-02-03’);
         -> 3

DAYOFYEAR(date)

戻り日は、1 ~ 366 の範囲の日です:

mysql> SELECT DAYOFYEAR(’1998-02-03’);
         -> 34

MONTH(date)

戻り日 月1 ~ 12 の範囲:

mysql> SELECT MONTH(’1998-02-03’);
         -> 2

DAYNAME(date)

日付の曜日名を返します:

mysql> SELECT DAYNAME("1998-02-05");
         -> ’Thursday’

MONTHNAME (日付)

日付の月名を返します:

mysql> SELECT MONTHNAME("1998-02-05");
         -> ’February’

QUARTER(date)

日付を四半期で返します。年、範囲は 1 ~ 4 です:

mysql> SELECT QUARTER(’98-04-01’);
         -> 2

WEEK(date)

WEEK(date,first)

日曜日の場合は次のようになります。 週の最初の日の場合、引数を 1 つだけ指定して関数を呼び出した場合、返される日付はその年の週であり、戻り値の範囲は 0 ~ 53 です (はい、 53週目の初め)。 WEEK() の 2 つの引数形式を使用すると、週が日曜日または月曜日のどちらで始まるか、および戻り値が 0 ~ 53 か 1 ~ 52 であるかを指定できます。 2 番目のパラメーターがどのように機能するかを示す表は次のとおりです。

値の意味

0 週は日曜日に始まり、戻り値の範囲は 0 ~ 53

1 週の始まり月曜日から始まる場合、戻り値の範囲は 0 ~ 53

2 日曜日から始まる週の場合、戻り値の範囲は 1 ~ 53

3 月曜日から始まる週の場合、戻り値値の範囲は 1 ~ 53 (ISO 8601)

mysql> SELECT WEEK(’1998-02-20’);
         -> 7
mysql> SELECT WEEK(’1998-02-20’,0);
         -> 7
mysql> SELECT WEEK(’1998-02-20’,1);
         -> 8
mysql> SELECT WEEK(’1998-12-31’,1);
         -> 53

バージョン 4.0 では、WEEK(#,0) が米国のカレンダーに一致するように変更されたことに注意してください。その週が前年の最終週の場合、オプションのパラメータとして 2 または 3 を使用しないと、MySQL は 0 を返すことに注意してください:

mysql> SELECT YEAR(’2000-01-01’), WEEK(’2000-01-01’,0);
         -> 2000, 0
mysql> SELECT WEEK(’2000-01-01’,2);
         -> 52

指定された日付値が実際には 1999 年の第 52 週の一部で、MySQL の WEEK() 関数は 52 を返すはずです。関数が「指定された年の週」を返すようにするため、0 を返すことにしました。これにより、日付値から月と日の値を抽出する他の関数と組み合わせて WEEK() 関数を使用する際に、信頼性が高くなります。適切な年週値を取得したい場合は、パラメータ 2 または 3 をオプションのパラメータとして使用するか、関数 YEARWEEK():

mysql> SELECT YEARWEEK(’2000-01-01’);
         -> 199952
mysql> SELECT MID(YEARWEEK(’2000-01-01’),5,2);
         -> 52

YEAR(date)

日付の年を 1000 ~ 9999 の範囲で返します:

mysql> SELECT YEAR(’98-02-03’);
         -> 1998

YEARWEEK(date)

YEARWEEK(date,first)

日付値が年の何週目であるかを返します。 2 番目のパラメータの形式と機能は、WEEK() の 2 番目のパラメータと完全に一致しています。年の最初または最後の週である特定の日付パラメーターの場合、返される年の値は、日付パラメーターで指定された年と一致しない可能性があることに注意してください。

mysql> SELECT YEARWEEK(’1987-01-01’);
         -> 198653

オプションのパラメーターの場合は、0 または1 、週の値の戻り値は WEEK() 関数によって返される値 (0) と異なります。WEEK() は、指定された年のコンテキストに従って週の値を返します。

HOUR(time)

0 ~ 23 の範囲の時間の値を返します:

mysql> SELECT HOUR(’10:05:03’);
         -> 10

MINUTE(time)

0 ~ 59 の範囲の時間の分の値を返します。

mysql> SELECT MINUTE(’98-02-03 10:05:03’);
         -> 5

SECOND(time)

時間の 2 番目の値を返します。 0 ~ 59 の範囲:

mysql> SELECT SECOND(’10:05:03’);
         -> 3

PERIOD_ADD(P,N)

期間 P に N か月を追加します (形式は YYMM または YYYYMM)。 YYYYMM形式で値を返します。期間パラメータ P は日付値ではないことに注意してください。

mysql> SELECT PERIOD_ADD(9801,2);
         -> 199803

PERIOD_DIFF(P1,P2)

期間 P1 と P2 の間の月数を返します。 P1 と P2 は YYMM または YYYYMM で指定する必要があります。期間パラメータ P1 と P2 は日付値ではないことに注意してください:

mysql> SELECT PERIOD_DIFF(9802,199703);

-> 11

DATE_ADD(date,INTERVAL)式タイプ )

DATE_SUB(日付,INTERVAL 式タイプ)

ADDDATE(日付,INTERVAL 式タイプ)

SUBDATE(date,INTERVAL expr type)

これらの関数は、日付の算術演算を実行します。 ADDDATE() と SUBDATE() は、それぞれ DATE_ADD() と DATE_SUB() の同義語です。 MySQL 3.23 では、式の右側が日付値または日時フィールドの場合、DATE_ADD() および DATE_SUB() の代わりに and - を使用できます (以下の例)。 date パラメーターは、日付の始まりを指定する DATETIME または DATE 値です。 expr は、開始日から間隔値を加算するか減算するかを指定する式です。 expr は文字列であり、その前に「-」を付けると負の間隔値を表すことができます。 type は、式が解釈される形式を示すキーワードです。

以上がmysqlで一定期間のレコードをクエリする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。