本記事では、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関数)について紹介しました。こちらの記事はコマンドを忘れた際の備忘録としてしようしてもらえるとありがたいです。