MariaDB 日付 DateTime での SQL case文

datetimeをselect case 四半期で別ける

MariaDBDateTimeを月単位や四半期で別けたい場合のSQLコード例です。

下↓の、 DateTimeが入ったテーブルがあります。

datetimeテーブル
テーブルの中身

2022年の、 1〜12月01日が入っています。

テーブルを select case で、 四半期に別ける場合のコード例

SELECT `day`, 
CONCAT(CONVERT(YEAR(`day`) ,CHAR),'年',CONVERT(MONTH(`day`) ,CHAR),'月') AS `Monthly`,
case 
WHEN (MONTH(`day`) <=3) THEN '第一四半期'
WHEN (MONTH(`day`) >=4) AND (MONTH(`day`) <=6)THEN '第二四半期'
WHEN (MONTH(`day`) >=7) AND (MONTH(`day`) <=9)THEN '第三四半期'
WHEN (MONTH(`day`) >=10) AND (MONTH(`day`) <=12)THEN '第四四半期'
ELSE '' END AS `quarters`
FROM date_test
四半期で別ける
四半期で別ける

MariaDB uuid()カラム作成

MariaDB default uuid()

MariaDBにはUUIDを生成するためのUUID関数が利用できます。UUID関数を使うことでユニークなIDを取得できPRIMARY KEY(主キー)として利用することも可能です。下のSQLはSELECTを用いたUUID生成例です。(MySQLでもUUIDは使えます)

SELECT UUID();
select uuid() 例
select uuid() 例

テーブル作成時にカラムのdefaultにuuid()を入れることもできます。下記はt1という名称のテーブル作成時s1カラムのデフォルトとしてuuid()を設定しています。

create table t1 ( s1 varchar(40) not null default uuid(), primary key(s1) );

テーブルt1にレコード追加を試してみます。

insert into t1 values();
レコード挿入
レコード挿入

テーブルt1をSELECT文で確認すると、上のようにカラムs1にUUIDがセットされていることが確認できます。。つづいて、このテーブルt1にもう1つs2というカラムを追加し、そのカラムにUUIDがデフォルトで入るようにします。

alter table t1
add column s2 varchar(40) not null default uuid() after s1,
add unique index i2 (s2);
default uuid()カラム追加
default uuid()カラム追加

uuid()がデフォルトに入っているので カラムs2を追加するとレコード内s2にuuidが入ります。

2022 MJELD TECHNOLOGIES. ALL RIGHTS RESERVED