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

月の範囲からレコードをフェッチするMySQLクエリ?


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

mysql> create table DemoTable1795
     (
     Name varchar(20),
     DueDate date
     );
Query OK, 0 rows affected (0.00 sec)

挿入コマンド-

を使用して、テーブルにいくつかのレコードを挿入します
mysql> insert into DemoTable1795 values('John','2018-07-21');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1795 values('Sam','2019-10-21');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1795 values('Sam','2019-01-10');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1795 values('Mike','2018-12-31');
Query OK, 1 row affected (0.00 sec)

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

mysql> select * from DemoTable1795;

これにより、次の出力が生成されます-

+------+------------+
| Name | DueDate    |
+------+------------+
| John | 2018-07-21 |
| Sam  | 2019-10-21 |
| Sam  | 2019-01-10 |
| Mike | 2018-12-31 |
+------+------------+
4 rows in set (0.00 sec)

これは、月の範囲からレコードを取得するためのクエリです-

mysql> select * from DemoTable1795
     where (YEAR(DueDate) = YEAR(DATE_SUB(CURDATE(), INTERVAL 1 YEAR))
         AND MONTH(DueDate) BETWEEN 7 AND 12)
     OR (YEAR(DueDate) = YEAR(CURRENT_DATE())
         AND MONTH(DueDate) BETWEEN 1 AND 7);

これにより、次の出力が生成されます-

+------+------------+
| Name | DueDate    |
+------+------------+
| John | 2018-07-21 |
| Sam  | 2019-01-10 |
| Mike | 2018-12-31 |
+------+------------+
3 rows in set (0.00 sec)

  1. currentdate + 2週間前にレコードをフェッチするMySQLクエリ?

    これには、以下の構文を使用します- select * from yourTableName where yourColumnName < DATE_ADD(CURDATE(), INTERVAL 2 WEEK); 注:現在の日付は次のとおりです- mysql> select curdate(); +------------+ | curdate()  | +------------+ | 2019-10-20 | +------------+ 1 row in set (0.00 sec) まずテーブルを作成しましょう- mysql> create table

  2. 単一のクエリでIN()を使用してMySQLテーブルからレコードを削除する

    テーブルを作成しましょう- mysql> create table DemoTable1922    (    StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,    StudentName varchar(20)    ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1922(StudentNa