4.2 日付関数

ここでは、日付を処理するための関数をいくつか取り上げます。

4.2.1 CURDATE関数

現在の日付を取得する関数です。この関数は、引数をとりません。下記のように記述すると、現在の日付を取得できます。

    SELECT CURDATE();

※今日が2010年9月13日の場合です。

単純なデータ表示
MariaDBのSELECT文では、参照するテーブルがなく、単にデータを表示したいような場合は「FROM」句を省略できます。例えば、単に「A」という文字列を表示したい場合は、

    SELECT 'A';

と記述できます。

4.2.2 YEAR関数、MONTH関数、DAY関数

それぞれ日付から年、月、日を取得する関数です。書式は下記のようになります。

   SELECT YEAR(列名) FROM テーブル名;
   SELECT MONTH(列名) FROM テーブル名;
   SELECT DAY(列名) FROM テーブル名;

「orderinfo」の注文日からそれぞれ年、月、日を取得してみましょう。まず年です。

    SELECT YEAR(date) FROM orderinfo;

次は月を取得してみましょう。

    SELECT MONTH(date) FROM orderinfo;

最後に日を取得してみましょう。

    SELECT DAY(date) FROM orderinfo;

4.2.3 DAYNAME関数

引数で与えられた日付の曜日を取得する関数です。書式は下記のようになります。

    SELECT DAYNAME(列名) FROM テーブル名;

「orderinfo」テーブルの注文日付の曜日を取得する場合は、

    SELECT DAYNAME(date) FROM orderinfo;

のようになります。

その他の関数
その他の関数には、下記のようなものがあります。

カテゴリ 関数名 機能
数値関数 ABS 絶対値を求める
MOD 剰余を求める
FLOOR 小数点以下を切り下げる
CEILING 小数点以下を切り上げる
CEIL 小数点以下を切り上げる
ROUND 小数点以下を四捨五入する
POW 累乗(べき乗)を求める
POWER 累乗(べき乗)を求める
SIGN 符号を調べる
RAND 乱数を生成する
LEAST 最小値を調べる
GREATEST 最大値を調べる
TRUNCATE 小数点第N位で切り捨てる
文字列関数 FORMAT 数値を整形する
ASCII 1文字目のアスキーコードを調べる
ORD 1文字目の文字コードを調べる
CHAR 文字コードを文字に変換する
CONCAT_WS 文字列を結合する(区切文字を間に挟む)
LENGTH 文字列のバイト数を調べる
BIT_LENGTH 文字列のビット数を調べる
LOCATE 特定の文字列が最初に出現する位置を調べる
POSITION 特定の文字列が最初に出現する位置を調べる
INSTR 特定の文字列が最初に出現する位置を調べる
LPAD 特定の文字を左側に追加して文字列の長さを整える
RPAD 特定の文字を右端に追加して文字列の長さを整える
LEFT 文字列の左側から文字列を取り出す
RIGHT 文字列の右側から文字列を取り出す
MID 文字列から位置を指定して文字列を取り出す
SUBSTRING_INDEX 区切り文字列N個目までの文字列を取り出す
CONV X進数をY進数へ変換する
LTRIM 文字列の左側から半角スペースを削除する
RTRIM 文字列の右側から半角スペースを削除する
TRIM 文字列の両側から特定の文字列を削除する
SPACE 任意の数の半角スペースを生成する
LOWER アルファベット大文字を小文字に変換する
UPPER アルファベット小文字を大文字に変換する
変換関数 CAST 型を変換する
BIN 10進数の整数を2進数に変換する
OCT 10進数の整数を8進数に変換する
HEX 10進数の整数を16進数に変換する
日付・時刻関数 DATE 日時から日付を取り出す
DAYOFWEEK 日付の曜日を調べる
DAYOFMONTH 年月日から日を取り出す
DAYOFYEAR 日付がその年の1月1日から何日目かを調べる
MONTHNAME 日付の月の英語名称を調べる
HOUR 時刻から時を取り出す
MINUTE 時刻から分を取り出す
SECOND 時刻から秒を取り出す
システム関数 DATABASE 接続中のデータベースを確認する
USER 接続時に指定されたユーザー名を確認する
VERSION MariaDBサーバのバージョンを確認する

※MariaDBにはこれ以外にも関数が用意されています。それぞれの関数の使い方については、MariaDBのマニュアルを参照してください。 また、他のRDBMSでも、これ以外の関数が存在したり、同じ機能をもつものでも、関数名や書式が違う場合があります。 詳しくは、それぞれのマニュアルを参照してください。