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

現在の日付からの日付の違いを注文して表示するMySQLクエリ


これには、ORDERBY句を使用します。現在の日付は次のとおりです-

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2019-06-09 21:08:16 |
+---------------------+
1 row in set (0.00 sec)

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

mysql> create table DemoTable
   -> (
   -> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   -> DueDate datetime
   -> );
Query OK, 0 rows affected (0.62 sec)

挿入コマンド-

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

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

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

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

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

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

mysql> select *from DemoTable;

出力

+----+---------------------+
| Id | DueDate             |
+----+---------------------+
| 1  | 2019-06-12 00:00:00 |
| 2  | 2019-06-01 00:00:00 |
| 3  | 2019-06-05 00:00:00 |
| 4  | 2019-06-10 00:00:00 |
| 5  | 2019-06-11 00:00:00 |
+----+---------------------+
5 rows in set (0.00 sec)
>

これは、差を取得して日付を並べ替えるために並べ替えるクエリです。日付の違いは別の列に表示されます-

mysql> select Id,DueDate,DATEDIFF(DueDate, CURDATE()) AS t from DemoTable
   -> order by CASE WHEN t < 0 THEN 1 ELSE 0 END, t;

出力

+----+---------------------+------+
| Id | DueDate             | t    |
+----+---------------------+------+
| 4  | 2019-06-10 00:00:00 | 1    |
| 5  | 2019-06-11 00:00:00 | 2    |
| 1  | 2019-06-12 00:00:00 | 3    |
| 2  | 2019-06-01 00:00:00 | -8   |
| 3  | 2019-06-05 00:00:00 | -4   |
+----+---------------------+------+
5 rows in set (0.00 sec)

  1. 現在の日付とMySQLテーブルの日付レコードの違いを見つける

    違いを見つけるには、DATEDIFF()メソッドを使用します。まずテーブルを作成しましょう- mysql> create table DemoTable1446    -> (    -> DueDate date    -> ); Query OK, 0 rows affected (1.42 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1446 values('2019-01-21'); Que

  2. 現在の日付と参加日の差を返すMySQLDATE関数

    最初に、現在の日付を見つけ、DATEDIFF()を使用して参加日と現在の日付の差を取得します。 現在の日付は次のとおりです- mysql> select curdate(); +------------+ |  curdate() | +------------+ | 2019-10-26 | +------------+ 1 row in set (0.00 sec) まずテーブルを作成しましょう- mysql> create table DemoTable    -> (    -> JoiningDate va