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

MySQLのDATEレコードを含む列からその月のN番目の平日を取得します


平日、つまり日付1から7までの第1週、日付8から14までの第2週などを見つける必要があります。日を取得するには、MySQLのDAY()関数を使用します。 CASEステートメントを使用して平日(数値)を取得するための条件を設定します。

例を見て、テーブルを作成しましょう-

mysql> create table DemoTable
(
   AdmissionDate date
);
Query OK, 0 rows affected (0.63 sec)

挿入コマンド-

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

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

mysql> select *from DemoTable;

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

+---------------+
| AdmissionDate |
+---------------+
| 2019-09-12    |
| 2019-09-06    |
| 2019-09-26    |
| 2019-09-30    |
+---------------+
4 rows in set (0.00 sec)

以下は、その月の平日(数値)を取得するためのクエリです-

mysql> select
(
   CASE WHEN DAY(AdmissionDate) BETWEEN 1 AND 7 THEN 1
      WHEN DAY(AdmissionDate) BETWEEN 8 AND 14 THEN 2
      WHEN DAY(AdmissionDate) BETWEEN 15 AND 21 THEN 3
      WHEN DAY(AdmissionDate) BETWEEN 22 AND 28 THEN 4
   else 5
      end
) as NthWeekDayOfMonth
from DemoTable;

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

+-------------------+
| NthWeekDayOfMonth |
+-------------------+
|                 2 |
|                 1 |
|                 4 |
|                 5 |
+-------------------+
4 rows in set (0.01 sec)

  1. 重複する値を持つ別の列でMySQLグループのタイムスタンプから最初の日付を取得します

    このために、集計関数MIN()およびGROUPBYを使用できます。まずテーブルを作成しましょう- mysql> create table DemoTable1870      (      Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,      Value int,      ShippingTimestamp varchar(100)      ); Query OK, 0 rows affect

  2. MySQLで日付レコードを持つテーブルの日付を変更するにはどうすればよいですか?

    日付を変更して年を追加する必要があるとします。このためには、DATE_ADD()とともにUPDATEコマンドを使用します。まずテーブルを作成しましょう- mysql> create table DemoTable1984    (    ShippingDate date    ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1984 values('2014