4.2 日付関数
ここでは、日付を処理するための関数をいくつか取り上げます。
4.2.1 CURDATE関数
現在の日付を取得する関数です。この関数は、引数をとりません。下記のように記述すると、現在の日付を取得できます。
※今日が2010年9月13日の場合です。
単純なデータ表示
MariaDBのSELECT文では、参照するテーブルがなく、単にデータを表示したいような場合は「FROM」句を省略できます。例えば、単に「A」という文字列を表示したい場合は、
と記述できます。
4.2.2 YEAR関数、MONTH関数、DAY関数
それぞれ日付から年、月、日を取得する関数です。書式は下記のようになります。
「orderinfo」の注文日からそれぞれ年、月、日を取得してみましょう。まず年です。
次は月を取得してみましょう。
最後に日を取得してみましょう。
4.2.3 DAYNAME関数
引数で与えられた日付の曜日を取得する関数です。書式は下記のようになります。
「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でも、これ以外の関数が存在したり、同じ機能をもつものでも、関数名や書式が違う場合があります。 詳しくは、それぞれのマニュアルを参照してください。