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)
-
重複する値を持つ別の列で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
-
MySQLで日付レコードを持つテーブルの日付を変更するにはどうすればよいですか?
日付を変更して年を追加する必要があるとします。このためには、DATE_ADD()とともにUPDATEコマンドを使用します。まずテーブルを作成しましょう- mysql> create table DemoTable1984 ( ShippingDate date ); Query OK, 0 rows affected (0.00 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1984 values('2014