format_list_bulleted
【MySQL】MySQLの一般的な関数(日付関数、数値関数、COALESCE関数)について解説
最終更新日時:2022-07-06 23:53:52



本記事では、MySQLに関する単一行関数(日付関数、数値関数、COALESCE関数)について紹介します。コマンドを忘れた際の備忘録として使用してください。

日付関数

MySQLでは様々な日付に関する関数が用意されています。以下の表で確認してみてください。

select 関数; (例:select now();)
関数説明使用例結果
now()現在の日時select now();
2022-07-05 15:51:16
curdate()現在の日にちselect curdate();
2022-07-05
curtime()現在の時刻select curtime();
15:53:24
datediff(日付1,日付2)
日付の差(日付1-日付2)
select datediff("2022-07-05","2022-08-31");
-57
date_add(日付1,加算1)
日付加算(日付1+加算1)select date_add("2022-07-05",interval 30 day); 
2022-08-04
last_day('日付')日付の月の最終日select last_day("2022-07-05");
2022-07-31

数値関数

MySQLでは、四捨五入や割った余りを出力する関数が用意されています。以下の表で確認しましょう。

select 関数; (例:select mod(5,2);)
関数説明使用例結果
round(数値[, n])数値を小数点以下n桁に四捨五入select round(123.456, 1);
123.5
truncate(数値,n)数値を小数点以下n桁に切り捨てselect truncate(123.456, 1);
123.4
mod(m,n)mをnで割った余りselect mod(5,2);
1
abs(n)nの絶対値select abs(-5);5

COALESCE関数

COALESCE(式1, 式2)

式1,式2の値で最初のNULL以外の値を戻す。以下のサンプルコードで確認しましょう。

左の列が、元の値です。また、右の列が、COALESCE関数を使用した際の戻り値です。

coalesce関数を使用することでサンプル1ではNULLの部分が0に、サンプル2ではNULLの部分が200書き換わりました。

タイトル: ターミナル(サンプル1)

mysql> select not_coalesce, COALESCE(coalesce , 0) as coalesce from sampleDB;                 
+--------------+----------+
| not_coalesce | coalesce |
+--------------+----------+
|         NULL |        0 |
|         NULL |        0 |
|         NULL |        0 |
|          100 |      100 |
|          101 |      101 |
|          103 |      103 |
|          105 |      105 |
|          200 |      200 |
|          201 |      201 |
|          202 |      202 |
+--------------+----------+
20 rows in set (0.00 sec)

タイトル:ターミナル(サンプル2)

mysql> select not_coalesce ,COALESCE(not_coalesce , 200) as coalesce from sampleDB; 
+--------------+----------+
| not_coalesce | coalesce |
+--------------+----------+
|         NULL |      200 |
|         NULL |      200 |
|         NULL |      200 |
|          100 |      100 |
|          101 |      101 |
|          103 |      103 |
|          105 |      105 |
|          200 |      200 |
|          201 |      201 |
|          201 |      201 |
|          202 |      202 |
+--------------+----------+
20 rows in set (0.00 sec)

まとめ

本記事では、MySQLに関する単一行関数(日付関数、数値関数、COALESCE関数)について紹介しました。こちらの記事はコマンドを忘れた際の備忘録としてしようしてもらえるとありがたいです。