MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

1週間より古い行を選択するMySQLクエリ?


このために、DATEDIFF()関数を使用できます。現在の日時は次のとおりです-

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2019-06-09 19:15:56 |
+---------------------+
1 row in set (0.00 sec)

まずテーブルを作成しましょう-

mysql> create table DemoTable
   -> (
   -> ShippingDate datetime
   -> );
Query OK, 0 rows affected (0.66 sec)

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable values('2019-06-01');
Query OK, 1 row affected (0.19 sec)

mysql> insert into DemoTable values('2019-06-02');
Query OK, 1 row affected (0.21 sec)

mysql> insert into DemoTable values('2019-06-14');
Query OK, 1 row affected (0.18 sec)

mysql> insert into DemoTable values('2019-05-21');
Query OK, 1 row affected (0.24 sec)

selectステートメントを使用してテーブルのすべてのレコードを表示する-

mysql> select *from DemoTable;

出力

+---------------------+
| ShippingDate        |
+---------------------+
| 2019-06-01 00:00:00 |
| 2019-06-02 00:00:00 |
| 2019-06-14 00:00:00 |
| 2019-05-21 00:00:00 |
+---------------------+
4 rows in set (0.00 sec)

以下は、1週間より古い行を選択するためのクエリです。現在の日付が「2019-06-09」であるとします。したがって、行は1週間より前、つまり「2019-06-02」より前に選択されます-

mysql> select *from DemoTable where DATEDIFF(now(),ShippingDate) > 7;

出力

+---------------------+
| ShippingDate        |
+---------------------+
| 2019-06-01 00:00:00 |
| 2019-05-21 00:00:00 |
+---------------------+
2 rows in set (0.00 sec)

  1. 一度に1バッチずつ行を選択するMySQLクエリ

    このために、LIMITとOFFSETの概念を使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1514    -> (    -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,    -> FirstName varchar(20)    -> ); Query OK, 0 rows affected (0.63 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します

  2. MySQLで1日より古いタイムスタンプで更新された行をフェッチしますか?

    このために、yYouはnow()と一緒にfrom_unixtime()を使用できます。 いくつかのデータ型でテーブルを作成しましょう- 例 mysql> create table demo75    -> (    -> due_date int(11)    -> ); Query OK, 0 rows affected, 1 warning (2.87 挿入コマンド-を使用して、いくつかのレコードをテーブルに挿入します。 例 mysql> insert into demo75 values(uni