【mysql】SQL関数


1.算術関数
関数#カンスウ#
意味
サンプル
ABS
絶対値をとる
SELECT ABS(-1); #結果は1
MOD
余剰を取る
SELECT MOD(22,5); #22%5結果は2
ROUND
四捨五入時小数点以下の桁数を指定する
SELECT ROUND(15.43,1); # 結果は15.4
2.文字列関数
関数#カンスウ#
意味
サンプル
CONCAT
複数の文字列を接続
SELECT CONCAT("%","pibigstar"); # 結果は%pibigstar
LENGTH
計算フィールドの長さ、1つの漢字-3文字、アルファベット、数値1文字
SELECT LENGTH(「こんにちは」);#結果は6
CHAR_LENGTH
すべてを1文字にする
SELECT CHAR_LENGTH(「こんにちは」);#結果は2
LOWER
すべて小文字に変換
SELECT LOWER("AB"); # 結果はab
UPPER
すべてを大文字に変換
SELECT UPPER("ab")#結果はAB
REPLACE
置換文字
SELECT REPLACE("abc","a", "f"); # 結果はfbc
SUBSTRING
切り取り文字列(文字列、切り取り開始位置、切り取り長)
SELECT SUBSTRING("abc", 1, 2); # 結果はab
3.日付関数
関数#カンスウ#
さぎょう
サンプル
DATE_FORMAT
日付書式
select count(id),DATE_FORMAT(pay_time,"%Y%m%d%H%i") from pay_20200409 group by DATE_FORMAT(pay_time,"%Y%m%d%H%i");

DATEDIFF
2時間の比較
#照会当日のデータSELECT*FROM user WHERE DATEDIFF(create_at,now()=0#照会昨日のデータSELECT*FROM user WHERE DATEDIFF(create_at,now()=-1#照会今月のデータSELECT*FROM user WHERE MONTH(create_at)=MONTH(now())
CURRENT_DATE
システムの現在の日付
SELECT CURRENT_DATE(); # 2019-06-29
CURRENT_TIME
システム現在時刻
SELECT CURRENT_TIME(); # 21:44:33
CURRENT_TIMESTAMP
システムの現在時刻(日付+時刻)
SELECT CURRENT_TIMESTAMP(); # 2019-06-29 21:44:33
ECTRACT
具体的な年、月、日を抽出する
SELECT EXTRACT(YEAR FROM '2019-06-29'); # 2019
DATE
戻り時間の日付セクション
SELECT DATE('2019-06-29 21:44:33'); # 2019-06-29
YEAR
戻り時間の年セクション
 
MONTH
戻り時間の月部分
 
DAY
「戻る日数」セクション
SELECT DAY('2019-06-29 21:44:33');  # 29
HOUR
戻り時間の時間部分
 
MINUTE
戻り時間の分
 
SECOND
戻り時間の秒部分
 
4.変換関数
関数#カンスウ#
さぎょう
サンプル
CAST
データ型変換の強制
SELECT CAST(65.243 AS DECIMAL(8,2)); # 65.24
COALESCE
最初のNull以外の値を返します.
SELECT COALESCE(null,null,2,3); # 2
5.集約関数
関数#カンスウ#
さぎょう
サンプル
SUM
和を求める
SELECT SUM(age) FROM user;
AVG
平均値を求める
SELECT AVG(age) FROM user;
MAX
最大値の検出
SELECT MAX(age) FROM user;
MIN
最小値の検出
SELECT MIN(age) FROM user;
COUNT
カウント
SELECT COUNT(*) FROM user; # null SELECT COUNT(age)FROM userを含む全行数を計上する.ageがnullの場合、SELECT COUNT(*)FROM user GROUP BY ageをフィルタします.
PS:キーワードの順序を逆さまにしてはいけない.
SELECT...FROM...WHERE...GROUP BY...HAVING...ORDER BY...LIMIT...