找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 1451|回复: 0
打印 上一主题 下一主题

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数
$ B, w- n; Q- Q5 _, M! xascii(str)   % T5 N/ f: P) S+ w5 r3 R6 u
返回字符串str的第一个字符的ascii值(str是空串时返回0)  
) Y, b* s$ B8 Tmysql> select ascii('2');  
3 O* s3 E0 b, X# Z* T3 b  -> 50  
1 _) s6 ^7 m( {( wmysql> select ascii(2);  - T+ q& A( k, J8 c) _1 g: j
  -> 50  
) _1 _' U; Z: M' x" Lmysql> select ascii('dete');  ) r# u" G+ L/ X' e- ~" F6 E
  -> 100

8 L% e8 @" R. _7 N$ s5 C- _3 Z# d4 F3 ]  xord(str)   
0 N* ~- p2 x* w+ m( _2 {如果字符串str句首是单字节返回与ascii()函数返回的相同值。5 s* Z/ w8 r. d% g; q: W1 D
4 V1 }, a) B1 |" Q; D' f7 m! v
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  4 _2 C- x! b) t; {8 G2 o
mysql> select ord('2');  
! C% s3 j4 C) }4 o  -> 50  
+ b# s% C3 h  I" S( U" w; q   & K% b; D6 X+ u. ?
conv(n,from_base,to_base)   
: ?' Z# A5 K' D" _/ e3 D对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
; P& [8 ]5 g" v' g7 s: `* hmysql> select conv("a",16,2);  " H  V! O: R+ P) b' R$ [7 f
  -> '1010' 8 U$ {' T+ m# Y& y
mysql> select conv("6e",18,8);  * q$ B: U5 D, ~
  -> '172'
* k' u8 M5 O# J3 I+ amysql> select conv(-17,10,-18);  
' {) O, m- U& D* t; B7 P4 F  -> '-h' 0 v; r% ^0 Z3 f/ ]- B2 h' l
mysql> select conv(10+"10"+'10'+0xa,10,10);  # \) a) p( R" A2 v
  -> '40' 7 O9 e! G$ [1 N: l
   ( B; z0 y1 o3 D7 d, n& ^
bin(n)   1 r- u: ]0 B2 K( X$ J
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  $ }1 b, c# q& R4 A4 G
mysql> select bin(12);  
) Z7 A6 ?4 l; [  -> '1100' 4 R8 d5 P+ l7 l7 G  Q; @1 s, l1 V
8 f) X" N! E- @/ `
oct(n)   
( f' L4 h% z4 i8 J  V' Y把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
  d: g9 n" g- l+ X$ h4 {mysql> select oct(12);  * M" \; ]4 m) A. a  T
  -> '14' # b; z. j" ]9 B5 s1 `& `4 z4 i
   
' Y$ A% b$ M) i2 {7 c5 ~3 Uhex(n)   4 p7 N0 g" G8 F
把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  
# o" L% N, ]( c$ m) m1 F* ~mysql> select hex(255);  
2 |3 t' ?2 h7 j1 g, E" D5 j  -> 'ff' 6 s0 T! z7 f. E7 J; ]9 S0 \
   $ l8 `9 s2 E  E- V) {5 }) n: B
char(n,...)   . y, o' c) Z7 Q6 f9 s
返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   
4 d3 a2 j2 B( }mysql> select char(77,121,83,81,'76');  
1 U. ?6 o3 G# u  l. p7 E: x) R, p" d  -> 'mysql' , o- a' ]9 e0 o8 T& @
mysql> select char(77,77.3,'77.3');  ! G$ i" X/ k% b$ }# |
  -> 'mmm' ( @# [, G( z; M( ?% J  T) x
   . \1 d  l3 O' M$ X: j6 ]
concat(str1,str2,...)  
# O0 J" {/ \, T$ c把参数连成一个长字符串并返回(任何参数是null时返回null)  % g4 \& V% l& W8 g8 R
mysql> select concat('my', 's', 'ql');  / v( n6 A6 H( Z7 k
  -> 'mysql'
: k& Z7 _% r7 g/ Y0 s. M) R% a% amysql> select concat('my', null, 'ql');  
3 p9 g5 H+ n! Y  u  c, z9 Z; i  -> null : L. F4 W$ Y% s( e
mysql> select concat(14.3);  ) s7 N& W2 T0 t0 ?9 n! z: a
  -> '14.3' 5 c* a" \; z& A% k

; {1 Q! V% l' F7 b! z+ @  g6 C/ rlength(str)   ' j* p7 M' p% l/ C, j8 t4 N
octet_length(str)  3 z8 G3 I5 {3 K$ [+ d2 ?
char_length(str)  6 ^- J' R4 ?; |. ^5 T, ?* j% B' {  {
character_length(str)  - o( F" ?8 S- K' w, P
返回字符串str的长度(对于多字节字符char_length仅计算一次)/ b- P8 T  i+ Q% K
mysql> select length('text');  
9 x" {0 j1 J" e+ V  -> 4  
8 V" H! Y' q) t2 d6 A6 ~4 _0 [9 Ymysql> select octet_length('text');  
1 t' S5 N; b. G6 ~- I5 t3 g  -> 4  1 S, [, f3 J8 Q! p8 A
9 L" Z4 S( ?  @
locate(substr,str)   ! k2 H( v/ O) k  M
position(substr in str)   6 v0 z0 Q( ^- j$ t4 Y
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
6 s' U# t& \9 g6 h6 J' ^mysql> select locate('bar', 'foobarbar');  
! V- K0 z7 B' m  -> 4  5 J% X9 f) u5 t4 l4 C3 Z. V) F) s
mysql> select locate('xbar', 'foobar');  5 C, i6 R. ]0 Y/ R1 r4 i
  -> 0  
' ?# ~% l) [0 e/ D0 D: H    , b: A9 I5 j. i" m
locate(substr,str,pos)
+ z: N6 L+ \2 _1 x# r返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
9 x/ a8 _0 a( P$ P# O& Qmysql> select locate('bar', 'foobarbar',5);  
. S: s2 b0 C1 k2 z4 a  -> 7  
+ F+ {  ]: u0 t $ ]/ Y! H8 r2 ]5 m6 ^4 n9 {
instr(str,substr)   ' g) L6 Y8 P! Z- W" m
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  2 N9 |3 ^8 [& f5 F3 O. T3 `. m
mysql> select instr('foobarbar', 'bar');  ; B: H; E5 f: |& v8 j2 J* g
  -> 4  
* o& M* N  d. S6 ?5 Tmysql> select instr('xbar', 'foobar');  
$ s, M4 c! k; V" s9 N/ B2 G9 K) s. y  -> 0   
! w3 l1 Q+ Y2 l- Y, g; w: Z+ @
* T- }" E7 ?5 x- b( H7 Llpad(str,len,padstr)   $ M' q3 X& R$ U3 {' a% v+ B
用字符串padstr填补str左端直到字串长度为len并返回  
9 s' b& V1 ^$ I8 K$ h2 X  ?+ @8 ?mysql> select lpad('hi',4,'??');  
  T$ P$ @7 t. [2 L  -> '??hi' - u3 E( ^9 C0 \  s' b6 s- b
     }* s2 }+ R5 f; i1 K0 D. B$ I; [9 W
rpad(str,len,padstr)   ' u4 q) z: z* i' h3 c
用字符串padstr填补str右端直到字串长度为len并返回  
- n% [0 H' U+ r& b7 Kmysql> select rpad('hi',5,'?');  
* n- [0 L) m* A  c- ~  -> 'hi???'
! G" w) j8 R6 k" m: }; Z
' b  Z& K8 H5 G0 Y9 [3 m$ |left(str,len)   8 f! E- y, |" z8 [4 N  U" y2 B
返回字符串str的左端len个字符  
9 J1 [& ^# r" I% Y7 [3 R, xmysql> select left('foobarbar', 5);  2 {- H/ Z7 W6 \- k3 A1 |
  -> 'fooba'
- V$ e$ c7 P( X3 G ; n. J2 o& s% {5 P- v% V+ q
right(str,len)   
/ Y- r6 X7 ]7 E' k( X返回字符串str的右端len个字符   
$ ^. a9 u. S2 u' @9 c8 ]mysql> select right('foobarbar', 4);  
: b- M4 C1 D! s( x  -> 'rbar'
6 p6 A" b) ~1 n! O7 i& [5 p
) E  R. a0 M! Lsubstring(str,pos,len)   
+ g- z9 H# G! }+ C. qsubstring(str from pos for len)   
) \+ j5 {- @: }6 t# C. h# Rmid(str,pos,len)   
2 a; d! ~: b# J返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  # G% n0 {  J4 q7 {$ u
  -> 'ratica' 2 b* [- R# |0 J9 k6 q9 N

3 U7 L8 T  l1 _0 Y/ xsubstring(str,pos)   
2 i, _. N0 n1 G! U1 Q* esubstring(str from pos)   
3 W. p: r; e3 A返回字符串str的位置pos起的一个子串  
) ~1 P0 f+ z' g  }* Q! \3 y$ ~5 ~mysql> select substring('quadratically',5);  
# o: ?' E! P- n# ]  D. ^  -> 'ratically' . a: [2 `, d1 U
mysql> select substring('foobarbar' from 4);  ' B. w0 E! W  q; B
  -> 'barbar' 5 M- b1 n+ c! |# w+ f5 }7 D! F
; j: \2 C- P+ T# M( c. k
substring_index(str,delim,count)   
) b& _  Q8 w5 h返回从字符串str的第count个出现的分隔符delim之后的子串
1 n- N' O* ?& M; k4 c6 J(count为正数时返回左端,否则返回右端子串)  
+ ^' P$ ]* b; q7 O& O. z" Mmysql> select substring_index('www.mysql.com', '.', 2);  
/ v9 N/ ]/ U" o8 t  -> 'www.mysql' * h3 b  ?& x, W" D2 k
mysql> select substring_index('www.mysql.com', '.', -2);  
! F' [. f1 k% H% a  -> 'mysql.com' $ k4 A5 s+ |, u% b6 X, d/ s4 w/ G; D
6 i1 ]8 B& m$ u# B$ a0 r
ltrim(str)   
: y4 }5 L5 e+ n返回删除了左空格的字符串str  3 z: d* X2 n) V1 b
mysql> select ltrim('  barbar');  * c" {. C" b6 n
  -> 'barbar' ( w3 \+ m8 |) K; m7 g& g$ G
8 t. q! l; @  k  i
rtrim(str)   
0 n; F" i% V7 H3 f' P返回删除了右空格的字符串str  
) q7 z0 w7 H  O: h* S+ Emysql> select rtrim('barbar   ');  % [  x, T! z& Y
  -> 'barbar'
# N7 p$ {0 b" ^6 L, p$ l& h
: _( H/ f4 o8 o4 K$ i$ c6 Ctrim([[both | leading | trailing] [remstr] from] str)   & x$ O& l2 f7 M+ ~; S9 B' Z4 a
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
# i8 t+ x& Q/ q8 l* ]  w; amysql> select trim('  bar   ');  
' v8 S* o3 b: j& s  -> 'bar'
2 X; ~; ~4 Y/ Dmysql> select trim(leading 'x' from 'xxxbarxxx');  
- g9 Q5 Q% M/ g' b8 @  -> 'barxxx'
! x: w6 A7 Q$ l  @3 w- s; Rmysql> select trim(both 'x' from 'xxxbarxxx');  + i2 X+ H6 h) ^/ Z4 n
  -> 'bar'
( v8 T2 ~& U! Gmysql> select trim(trailing 'xyz' from 'barxxyz');  
8 l+ H+ b9 v- h  -> 'barx' 1 W6 E" p2 O/ h/ m8 c
" \* [( c; M7 D; t
soundex(str)   
; p& e$ C4 x: r! b返回str的一个同音字符串(听起来“大致相同”字符串有相同的+ M) J  |, o) W# e6 L" @% ^5 |
同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  
4 v( D. {8 W; G2 Fmysql> select soundex('hello');  
  F, L/ D( x, G& o* L0 t7 R1 S: N& m  -> 'h400' 9 b2 O: v/ f2 b' r; }% L4 C4 E
mysql> select soundex('quadratically');  
, {5 e; A4 K: F* P2 q! z  -> 'q36324'
  g. p+ }$ n* ^; P9 M) o* A   8 n% L/ b0 a& f; |# |
space(n)   
8 o6 Y! ^/ q7 G" M: i3 d返回由n个空格字符组成的一个字符串  
4 _9 t$ n/ y  a$ u) {" rmysql> select space(6);  - _. F& t( ^* N
  -> '      '
  P2 K* X0 s1 ]- Q   / ?6 ?; P6 s5 }' A
replace(str,from_str,to_str)   * t' x4 k( C7 E  B$ H3 v
用字符串to_str替换字符串str中的子串from_str并返回  * }( i  W7 s1 C9 t/ Y7 v( h- _0 ]0 R
mysql> select replace('www.mysql.com', 'w', 'ww');  
' s, ?3 ]2 f3 G- b  -> 'wwwwww.mysql.com' 2 |3 C/ a" Z5 d! [* f2 M, u% t

3 s7 Y! U- m% L% [2 R) l$ l* G% V, d' qrepeat(str,count)   , \# _2 R* Q4 Z) D! N4 n
返回由count个字符串str连成的一个字符串(任何参数为null时- \8 Y' M" z0 H7 q- O( M& x/ p
返回null,count<=0时返回一个空字符串)  ! E  Q: \+ l6 I5 Q+ t
mysql> select repeat('mysql', 3);  
/ B/ l3 G8 {7 b  -> 'mysqlmysqlmysql'
3 x; D0 W' C/ n- l   : n2 w, m+ G" K# n8 X
reverse(str)   
) Z0 Z! \# [- O! n4 C颠倒字符串str的字符顺序并返回  $ P& z0 E( Y# M+ l5 R# e3 Q2 G
mysql> select reverse('abc');  
  v- B5 R. l, v" ]  J: y+ k  -> 'cba' 9 D, ~- u5 ~! \3 n0 s3 ~" \6 ]1 {4 r
6 K, \5 [6 c7 x  o+ q
insert(str,pos,len,newstr)   - [  X" x: I9 C, E/ G$ ~, N
把字符串str由位置pos起len个字符长的子串替换为字符串' B8 p. w) }' o7 B. `/ {9 `
newstr并返回  
$ I8 O: ^9 @+ H& E+ mmysql> select insert('quadratic', 3, 4, 'what');  6 Q3 C) B- Z+ T" z0 q2 @, ]
  -> 'quwhattic' - v1 h- }* J* r; F% _5 D

' ]4 t1 g# }6 R+ Xelt(n,str1,str2,str3,...)   0 U2 w8 \% s& `- l* t0 G/ g7 K
返回第n个字符串(n小于1或大于参数个数返回null)  
8 X9 W0 E! ]6 D5 B5 [; ymysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  
; u( V, U. n' e4 P- K9 {; Q  -> 'ej' ! ~& _: C" S! m( r; W
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  + V0 h. q& P; N1 E, v/ h9 J
  -> 'foo'
# ]( B3 o& a4 B
( t; C4 l7 [( D1 j7 ]field(str,str1,str2,str3,...)  
3 ~: h  Q" ]" z  k返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
( i1 R4 t; R; }mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',$ P/ t4 `: a+ g! s9 _' O( K
'foo');  6 a& ~" \1 l" D! U+ x- O) F
  -> 2  
$ ^4 H* i& K2 \+ wmysql> select field('fo', 'hej', 'ej', 'heja', 'hej',4 R$ U4 i2 A' X- ]6 V: S2 P
'foo');  
! q1 z4 h& N/ E% E" J  -> 0  ; t4 L7 o( y8 ~2 F

: F7 b6 |" U/ i* Wfind_in_set(str,strlist)   
# f/ [) }2 _) @* g9 F返回str在字符串集strlist中的序号(任何参数是null则返回& a- I  L: O3 [" X
null,如果str没找到返回0,参数1包含","时工作异常)  
) W" J! x1 a& V) h( H% P7 cmysql> select find_in_set('b','a,b,c,d');  
* Y6 }' L3 x. q4 c; {  -> 2  
- z5 a. x7 X' B, S+ k( g   
! c. h- r% ~9 y! j6 d/ Z+ B" a5 Gmake_set(bits,str1,str2,...)  
4 V1 ]7 Q# P6 b$ I0 q把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应7 V0 [8 H1 Z( r/ {$ J
位置的字串选入字串集并返回(null串不添加到结果中)  
& a6 B, K  w. L! o! U- Rmysql> select make_set(1,'a','b','c');  
. z$ j( Q4 C# h; q' `2 m" L  -> 'a' 1 _# `+ w9 S/ A/ c: r$ `! J4 P% p% }' T
mysql> select make_set(1 | 4,'hello','nice','world');  " \$ Y' u, i; W4 Q4 V
  -> 'hello,world'
4 T: Z9 T( N% T- R1 E; |mysql> select make_set(0,'a','b','c');  0 q: u+ {4 V# o0 I
  -> '' 0 H7 d+ z" z  U8 H* G
9 Z% {5 o4 g$ p8 Z% D
export_set(bits,on,off,[separator,[number_of_bits]])     ?, y1 f; R, _1 A
按bits排列字符串集,只有当位等于1时插入字串on,否则插入/ u4 a# C# g% ^% Z  U, P
off(separator默认值",",number_of_bits参数使用时长度不足补0
$ X9 H$ [. L6 T2 g) E, d而过长截断)   ) w8 b+ P& d: T9 W. V4 e# d% ?
mysql> select export_set(5,'y','n',',',4)  8 ]- G0 r! z6 @$ b5 o
  -> y,n,y,n   
2 R. |" I6 Q# n2 J
  M7 ]4 g1 n# n# V0 c' S3 q- Alcase(str)  * n$ {5 t1 h# {% L' |, s
lower(str)   8 y$ e6 I" O; c: r
返回小写的字符串str  ' ^: y- t/ e$ W7 g& d' |
mysql> select lcase('quadratically');  
) a; n, ^9 E4 P+ B2 l  -> 'quadratically' ! V5 p+ s& P" F
   5 z0 a3 M3 \; c( p; r5 D' M2 H
ucase(str)   
) p6 ~; b0 Q% @8 A( B: S* Supper(str)   : _; V, I$ I6 j, ~: \& @
返回大写的字符串str  ) C; F$ T. X6 [8 Z, G4 `5 K, u
mysql> select ucase('quadratically');  
* I$ V( C( K' F: C% {  -> 'quadratically'
, V5 B+ g  g5 q; t9 W$ E
, k* U3 [6 O9 K7 Nload_file(file_name)   
4 W" B. c( m6 ]) d- t: ~: U' ?读入文件并且作为一个字符串返回文件内容(文件无法找到,路径
$ O1 |  |- R' q: H" e6 K. Z% _不完整,没有权限,长度大于max_allowed_packet会返回null)  $ S  V8 B; w  q8 t+ Z2 _
mysql> update table_name set blob_column=load_file
7 h$ \" v: J/ w4 y$ K("/tmp/picture") where id=1;  
2 b' t4 u7 g4 }. C& s3 |& F% @
5 b3 H' U3 g/ m2 N7 `2、数学函数
- J$ [( U' e! mabs(n)
1 W4 `0 ~( j8 L! z; f2 T9 k$ S8 \返回n的绝对值  $ v# C  T' \( S" z, }- Q
mysql> select abs(2);    6 z- d; D7 g( d$ r
  -> 2   
6 _) N4 f8 Y' y* C8 O% B$ lmysql> select abs(-32);   
5 Y& O" `/ s# e% Z! v  J  -> 32   
1 m+ v% c/ M; @( z2 y! z, b     t7 k* ^7 O8 g0 z, w8 a
sign(n)  
! c5 ]/ L0 W6 S- m; V! n3 i3 O) l返回参数的符号(为-1、0或1)  
: R4 G( C9 r" O4 s% Zmysql> select sign(-32);    2 e( V2 _! t& g! {
  -> -1   
0 ^  C( K+ f; _) j/ r+ V$ Kmysql> select sign(0);    $ W" V* U8 o+ J0 o; Z! h& c
  -> 0    ' G/ P6 |, }4 n( t8 \: m- R
mysql> select sign(234);      D6 U2 ~4 d; r1 M9 a% W
  -> 1   
% B/ a" B! G" T) W! j1 m9 K # m" z% N- x5 R( s9 _* H  i
mod(n,m)    . T; h1 y' @' N" S' m5 L
取模运算,返回n被m除的余数(同%操作符)   
3 I( T. E( v- Y. D1 u/ Dmysql> select mod(234, 10);   
/ h- @; |/ r# U" Z9 T* x; I: f+ u  -> 4    ( `/ ~7 R* L4 Z6 N9 _0 Y/ Y
mysql> select 234 % 10;    0 \) l. \1 _0 Y
  -> 4    & H& c3 l$ n- S! v9 @6 C/ ^
mysql> select mod(29,9);   
  g3 W, s2 ^4 O9 r4 b; |, X  -> 2    ( ?9 L2 f2 {) o. L6 C9 d! c
1 I. u* |/ x5 D
floor(n)  3 h+ A( ~+ k2 _
返回不大于n的最大整数值  # t  y  W- `/ s1 ]8 \4 a; b5 }
mysql> select floor(1.23);   
0 x- I& E- Y% Q4 z. L& B, k  -> 1    ( Q4 X' O# q5 c& t: Q! s
mysql> select floor(-1.23);    ) S: S$ j! Z  r( S3 H
  -> -2    ! g$ m% s/ q& c6 i

; z2 R/ |) v+ Z4 H4 j# d& bceiling(n)  # D, g+ \3 V! P0 P# c  H2 y4 A
返回不小于n的最小整数值  9 c" ]( O0 C+ u7 M- p/ _4 G1 o: x  k
mysql> select ceiling(1.23);   
) K% V1 ~* ?# @8 y) h  -> 2   
& O  S- O1 N+ [2 ~$ fmysql> select ceiling(-1.23);   
# k* x# v$ r  i, V  -> -1   
/ B. d3 O" _7 F0 k- M% i/ l
/ t  n1 x; G: k! ]# iround(n,d)  
( f; Y7 n& z- O0 _3 Z. A返回n的四舍五入值,保留d位小数(d的默认值为0)  1 Y0 d$ J" \, h* g6 {/ r5 z* W  C
mysql> select round(-1.23);    % U  D: R9 Z+ i1 W7 Z- a" ]5 K
  -> -1    5 m1 y( L  c- z' B; q8 F+ \
mysql> select round(-1.58);   
' c$ }6 N, ], h7 q' _  -> -2   
/ T5 O, t4 ]$ Z7 D* R( {0 u- J0 ~7 }mysql> select round(1.58);    9 W3 E* n2 [4 P: q
  -> 2   
3 \! X, [2 Z# k/ X% P& h  _mysql> select round(1.298, 1);   
# {$ P5 H% k- D& c  -> 1.3    4 ?$ ]+ i! ]+ j( R( {* |$ H
mysql> select round(1.298, 0);    1 M; f. U8 ~* u$ P) y
  -> 1   
; H4 R4 O1 }- q* P7 R  \
) W- U: \- |" L/ J- Kexp(n)  % a& r# H" \8 G. q; @0 F
返回值e的n次方(自然对数的底)  2 m2 i1 U) ?, X* D
mysql> select exp(2);    0 ^: a4 X( e  F/ L
  -> 7.389056    $ |7 r2 Y8 S. y
mysql> select exp(-2);    ( w" ~- f4 Y7 M6 I( s6 P' L, ^
  -> 0.135335   
* U# ?+ ^7 w, ?8 k4 @
! \4 t& j" ~6 G" F% ~log(n)  1 B( Q$ m1 S4 f
返回n的自然对数    S5 I9 ]$ c. y; r6 _0 E' S( `
mysql> select log(2);   
6 W% t3 z& [4 k4 w6 k) E& h  -> 0.693147   
; _3 u; _  c1 E; ~0 Q% l9 \7 P) Umysql> select log(-2);   
& Y4 N  N( [3 H0 z  -> null   
: i& e: K' `2 _$ u2 I9 j! o& X
& r- Q# h3 F* [3 ^. vlog10(n)  ( S  z& _6 N( Y& t7 z% C
返回n以10为底的对数  
+ W8 i* ]. @0 e( v# t: R) Rmysql> select log10(2);    ! S$ U" s% @4 a  m+ _! F9 C1 a
  -> 0.301030   
  A) g' `5 t8 I0 Qmysql> select log10(100);   
* C; w: O7 G# I! g' i, v: C6 T; i  -> 2.000000    8 R" D1 T0 b# F4 y0 E9 a+ B$ f
mysql> select log10(-100);   
( T, E; f3 X5 m4 R1 x0 e  -> null      c/ A7 [! |: J- d3 T" ?
; y$ I) d/ r- X- H7 ^& D
pow(x,y)   
) D7 s8 D2 t; x8 E( J- g/ i. npower(x,y)   
. H9 z% w# {7 H, F* _/ T 返回值x的y次幂  
* t% K6 z7 c7 t* W! {3 K/ r+ Xmysql> select pow(2,2);    4 ]/ q% u% L( l) j5 ]1 H; [
  -> 4.000000    / f5 d% x: R! S; [
mysql> select pow(2,-2);    ! o* o+ h0 C8 e- t7 t
  -> 0.250000  ; e* m' r8 ^9 D- v% \- A  ?

" v( L7 g* d3 rsqrt(n)  
8 x) ?# U0 Q' y: w& v; O. \' T7 P% b 返回非负数n的平方根  4 X7 X( j) M1 M+ `; [6 j% q, |) k
mysql> select sqrt(4);   
+ C* D) d) K, N0 F  -> 2.000000    & k/ r% i; y  U4 c# m" t) j
mysql> select sqrt(20);    ) e4 C# J- a, s" U" ~
  -> 4.472136   
) [( ]. y$ y2 g9 _* q
7 B; z7 j, N- q2 fpi()   
' d( |! |; b  x9 D. O 返回圆周率   
0 V9 Y; e4 S5 I7 z$ F4 w$ Gmysql> select pi();    8 F4 d8 ^9 l* i9 Z6 V
  -> 3.141593    " ]6 p' ]) _( ^& G) `

' T' [8 Z9 P/ h8 ?cos(n)  / T- F2 t  i, f) f3 m
 返回n的余弦值  3 H/ a& s9 M, g) Y* q& Q" }
mysql> select cos(pi());  ) ?6 Z2 n% \4 A) J% i. k3 B5 w
  -> -1.000000   
4 A9 V- p- ~, }$ {3 b, k % ^2 Z) Q: w9 k+ m
sin(n)  
% ~3 q5 w* x9 W* N* z4 b) N) C6 { 返回n的正弦值   
5 p9 |2 t# [' hmysql> select sin(pi());   
' D; ^- p( v  l5 G; K  -> 0.000000    5 {: J( }+ x3 k: n6 N

" S/ S% ~1 ^# E5 [3 S: ?tan(n)  5 l& c) `" I8 J: T
返回n的正切值  + ?, h. W/ F2 n1 v+ u! }  e
mysql> select tan(pi()+1);   
6 M/ O* u! u' g1 A& n2 O6 @5 R, w  -> 1.557408    & b& S3 t; r4 N: R1 e
7 J  {6 y) R: x2 J
acos(n)  . X! j4 J/ X- N) {  o, R
 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  
/ r& t, b* ~) d; m- _" Wmysql> select acos(1);   
0 M. n# }# Q# u% g! P1 I- c( f  -> 0.000000   
1 p3 ?# h+ l% e+ E# Y4 H! Smysql> select acos(1.0001);   
  v8 i. z! n# o$ r/ _  A& _  -> null    5 m' ^% W( j& y( B# Q) k0 o1 A
mysql> select acos(0);    7 J% G5 R0 Z( J: \
  -> 1.570796    $ Y- C! G1 u5 S4 \# C7 v. f- d
7 |0 |* J% W  J- B$ K3 D7 J3 v
asin(n)  
- w" D9 H5 l) `6 S$ J, e8 Y, i! u1 ^返回n反正弦值  
9 G) f# j, M( v. q+ Mmysql> select asin(0.2);   
# D9 G7 R& u3 [( H# T0 x$ w7 x  -> 0.201358    ; I! R$ _9 J' s5 W) v$ p
mysql> select asin('foo');    . F/ d& \2 l" l& g" @2 t
  -> 0.000000    6 e6 S6 n1 M+ u/ q0 S

7 v) J- B5 ~% k( ?  v  u3 o* n1 p$ yatan(n)  
2 ]9 E8 v9 W  a5 C返回n的反正切值  
  |1 j- Q$ o+ }. r. ~* q3 wmysql> select atan(2);    1 n$ e* B+ X. [3 g: q0 R
  -> 1.107149    , U0 p4 C7 K9 X0 J' w1 R
mysql> select atan(-2);   
9 W( s* B) }3 H8 s+ H  -> -1.107149   
0 Q! Z1 C# d. K+ p; hatan2(x,y)   
& x: {: D0 ?9 O6 _, F# @3 Z3 ]+ ^3 h 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  6 _( V: Q. X1 A0 h; @6 R2 b8 l
mysql> select atan(-2,2);    $ l5 S1 ]  \: N* D4 p( j
  -> -0.785398   
2 Z0 ~3 n% O% Y- [mysql> select atan(pi(),0);      }( c" q1 Q$ h% [% P
  -> 1.570796   
( U+ L$ t2 p& d" `6 F7 H / h" W1 ?4 \7 h3 f/ z# [5 z" k5 e
cot(n)  : l1 j; h. l2 m5 D: Y# k4 F
返回x的余切  
% |5 C% R4 u. C7 l2 x4 amysql> select cot(12);   
  U5 i: v9 o, o  -> -1.57267341   
) ], Z" i& l7 A0 _mysql> select cot(0);   
% V: r8 [, i6 ~& d5 R/ o/ e  -> null    - t5 J2 Z$ U. G' [- k

' {8 a- D9 [# w: Krand()  
1 @: m8 V- |& B& N$ a. y7 G4 b6 hrand(n)    
4 F" ^/ e1 z6 w7 n1 [返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
5 }% ?  ?- i) T# n+ L/ I
( @% I. ^; R" ?$ [! smysql> select rand();   
$ A' I" H: Q, I4 F2 N  -> 0.5925   
. ]! U7 ^) s9 k& |3 r$ Pmysql> select rand(20);    4 a' d6 k' D! [! |- R! r1 I# @; |
  -> 0.1811   
- F8 q& a& e7 v! R6 K, Nmysql> select rand(20);   
7 n  Y% i- ]9 [# F2 b! S  \! F' n, O  -> 0.1811   
0 a# o1 |( w# I/ Mmysql> select rand();    : R- W2 R3 d7 _$ K- V
  -> 0.2079   
9 y+ @/ H' T- f9 p7 T5 K. ~6 _) L5 Qmysql> select rand();   
& a' I+ q+ S: h) u  -> 0.7888    : q- P7 a% t" W- s: m2 y
6 D9 |9 l. Y7 q2 h! S
degrees(n)  
7 {# S5 `0 l: e) B  g; T$ {, q' p把n从弧度变换为角度并返回  ) q* Q) }* ]3 z3 C; i
mysql> select degrees(pi());   
3 w8 Z* T2 ~$ C8 A+ y  -> 180.000000    8 D# R$ r9 o, `( O: H: X, ?% {3 v
0 Y9 \9 B: m6 c4 x4 `' r. b2 s
radians(n)
: X, F9 Q* y" f6 _" F4 a$ `把n从角度变换为弧度并返回   " O6 u( A; L3 I) ?
mysql> select radians(90);   
0 E2 X3 z4 o0 ]  l1 P  -> 1.570796   
: a' F  |# i& `$ j- y2 M5 P7 s
9 ?; Y- f  M& t/ U4 m  \truncate(n,d)    8 _8 C. i. U7 t3 I6 B
保留数字n的d位小数并返回  
3 W6 _- t) R& l. O1 umysql> select truncate(1.223,1);    0 H' \; I5 O1 `; V! j0 n
  -> 1.2    : d: p4 H1 `9 u: ~
mysql> select truncate(1.999,1);    : N. S6 e1 Q. k, k
  -> 1.9   
# q  P7 z: l. o3 zmysql> select truncate(1.999,0);   
; w! @4 }7 A: |: D# g  -> 1    * P/ M2 y! {% u/ u7 c2 M% ^* A

9 u9 u) x' E* E  i$ i4 L) d4 V3 O  ileast(x,y,...)    3 K* k" O% e. h! V. E; P7 c; v
返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  9 f, Q6 R; Z. p9 v0 H
mysql> select least(2,0);      Z+ t& I$ e  t, u: ~. _
  -> 0    ( B7 o/ u# _; W  ^( a. U
mysql> select least(34.0,3.0,5.0,767.0);    4 c5 D) ^' ]5 Q: @" k7 x
  -> 3.0    - t4 n3 E# a2 q5 u8 p6 O' J
mysql> select least("b","a","c");   
$ u0 V3 l! x  W4 a# H' X  z  -> "a"    * C: O: {7 ^. k* }- [- M# J: t

6 }2 Y1 O+ u6 Q; bgreatest(x,y,...)   
* w/ m: P7 ^" r7 }. w: x" O' E6 Y. \返回最大值(其余同least())    ^5 L, P& J$ T8 C0 U
mysql> select greatest(2,0);   
2 F" G" ?. d1 v5 }/ s/ Y$ W& W, O  y" p  -> 2   
! ?# u! J* Y# k9 xmysql> select greatest(34.0,3.0,5.0,767.0);    % @. Q1 m! K: q4 l/ }) w: _6 s
  -> 767.0   
5 E; |) {/ C  J( \0 {mysql> select greatest("b","a","c");   
0 W& t' E, y+ @- g. c# m. y8 k  -> "c"     . T6 n7 i2 a: U

+ x3 D  }9 W# [' I. R+ ^5 ~( c3、时期时间函数 9 J" }& F( h1 m: f( Q5 w" c: i4 O
dayofweek(date)    " f* |' t4 m( g* X. _
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  * @7 L$ ^* b/ x7 {* p  t
mysql> select dayofweek('1998-02-03');    1 H9 \2 q  y4 {0 t) b
  -> 3    * [& I9 v) B2 m2 P5 E1 [, R$ Y

& U+ _% f' W# o" h( i  ~  b% hweekday(date)   
8 f* a6 I8 _3 n* ?; z返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
5 X+ w' r* q0 o$ X. e( u# j  
8 X4 }" x2 H; F. O& jmysql> select weekday('1997-10-04 22:23:00');   
; F: Q6 b) }0 @5 U  -> 5    4 G. S3 A9 ]9 i! N' g# a
mysql> select weekday('1997-11-05');   
, d, `! }, _" F/ w+ i1 D; @  -> 2    + p7 C. {7 \1 N% A! i; X- ]

% p8 T5 g. J5 R) [: H+ j* k3 g# Rdayofmonth(date)    
1 n6 _0 _# \. {' ^3 n返回date是一月中的第几日(在1到31范围内)   
% O/ x$ |0 T& N) |& ~mysql> select dayofmonth('1998-02-03');    * n  j1 G# i2 ]0 w
  -> 3   
+ c; D8 C% n/ R: Y
0 @+ E! N; Z  A$ L! q6 O2 Z/ Y$ xdayofyear(date)   
9 U$ R) t: U# t. P# M( v返回date是一年中的第几日(在1到366范围内)    # h& w. |) `3 L
mysql> select dayofyear('1998-02-03');   
# A# A. L! o# |" l) _8 F  -> 34   
) v) s8 k- I: g, Z. X( q+ o* D % Z0 P0 n& K& c* J5 H" P
month(date)   
' e$ w; z$ k. H6 g- h7 \0 o返回date中的月份数值    ; p& ]0 ~6 |9 v) [/ |8 o
mysql> select month('1998-02-03');   
- G" e2 S! m7 D  -> 2   
. ]& N+ E# }8 u  R ( K+ ~1 X9 @5 \( V- F4 |3 Z. F
dayname(date)   
9 g6 ~" n1 [, G5 f  W! t+ @5 ~" W返回date是星期几(按英文名返回)  
2 b$ J# G9 A( ~$ dmysql> select dayname("1998-02-05");   
  a/ _; |$ M/ c  -> 'thursday'    % |' v4 X6 o2 L. G! A! x( a7 U

3 m2 o, ~& `( `' qmonthname(date)    2 D5 j1 B0 _# V# h
返回date是几月(按英文名返回)  
- v% L' S7 [7 c2 ^- }. e- Bmysql> select monthname("1998-02-05");    7 W/ W6 l: k( B6 P
  -> 'february'    7 Q# d0 Y5 Z5 j  A  G+ j8 e

9 V& P* B; K! C8 X3 v2 ^2 W2 Z2 \quarter(date)    ' O9 K0 e/ s" h$ d  h9 J- |
返回date是一年的第几个季度      g+ U/ A  f0 ^( H: p9 o& z
mysql> select quarter('98-04-01');   
7 \7 j  ?6 u6 L& x1 ]  -> 2    " @+ F% M8 x$ F/ A0 Z3 t* T3 p

( N  f' C! [# p, s& o, Dweek(date,first)   
9 \' }) w9 g  M8 i3 U返回date是一年的第几周(first默认值0,first取值1表示周一是
" W9 M1 [# U8 t' {) J1 f+ K周的开始,0从周日开始)  9 r2 f( N; o, c6 s
mysql> select week('1998-02-20');   
6 ?7 @% d& U% g  -> 7   
: E8 H/ u: u/ f2 W5 Kmysql> select week('1998-02-20',0);   
2 \# @* J  D" O; T$ z! Z6 w1 J2 J  -> 7   
1 g, u: J, e* V( C  w, A  cmysql> select week('1998-02-20',1);    * r$ E: `0 R4 M6 S* i" Z3 ~! w
  -> 8    - S7 A% k" d* `4 {6 U* ^
$ n9 y$ ^# {  }- T" x/ L
year(date)    ) O6 \. |7 C/ d5 \
返回date的年份(范围在1000到9999)   
0 W* _+ q9 F/ }  l# z; p; u" ymysql> select year('98-02-03');   
7 p: e; `4 q; b& D6 M  -> 1998   
; q+ `5 J8 q. ?0 x, s5 }/ F
! V7 H; m0 ~- K3 @) Nhour(time)    
! r* B4 R& C* A& j返回time的小时数(范围是0到23)   - W8 g: k+ ?. o+ R+ ~% |1 X
mysql> select hour('10:05:03');   
0 Y5 s8 P% M# L+ O1 B  -> 10    & H0 P" b$ l) \* G% C- u$ {

( F& B6 P, \- N6 Fminute(time)    2 l- b6 ?- g% w. q
返回time的分钟数(范围是0到59)      y6 p( L7 [7 B( t4 v3 R( y
mysql> select minute('98-02-03 10:05:03');   
( q. ~1 N* @* a4 N  -> 5   
6 Q2 _$ T; j/ z. }1 V
1 v. ?. |# {: o9 k7 Q' Zsecond(time)    
6 @' o( F; v; M4 Z! K返回time的秒数(范围是0到59)   ) s9 Z+ G' I7 v6 N4 c, [, |9 E
mysql> select second('10:05:03');   
) ^7 z/ P6 o7 y; N7 T/ ]# m  -> 3    ' f# l9 ]) }8 t) l1 G( C" O
7 J, Y; l0 R1 {1 l# A( Z% D
period_add(p,n)   
2 ^4 L6 T& S5 @增加n个月到时期p并返回(p的格式yymm或yyyymm)   
: W0 g( q& X! z. Z* q: a, Lmysql> select period_add(9801,2);    + O' K: |( ?' n' _
  -> 199803   
- R: m6 m! M4 X3 w' v( ]: o # J9 o0 W  ~- I" y% t; a2 k4 {; N$ W# z
period_diff(p1,p2)   
7 A( V# ]) ~: v' K0 ~2 G9 L3 ^: q返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  , Q; X+ b# X( L( @  e! `
mysql> select period_diff(9802,199703);   
3 k0 Q- U! k3 j4 r* F  -> 11      D( ]% Z# C+ |, Q9 \# G* J3 \
' O2 Z: g- ^- x+ j+ t/ }5 H9 Z. w2 q
date_add(date,interval expr type)  ; j7 U2 @  [5 U# A4 L8 D- ]
date_sub(date,interval expr type)    / S  n, A" \5 G3 X/ W8 T
adddate(date,interval expr type)    : O! l% e% G/ z, ~
subdate(date,interval expr type)  ' [- ]3 Z7 {  h2 n* ^
对日期时间进行加减法运算  
6 |& I; i! d! Q0 K1 {' Q1 Y(adddate()和subdate()是date_add()和date_sub()的同义词,也0 w! ]3 @8 e7 g+ i% l
可以用运算符+和-而不是函数  ' V$ v2 ^: `) S3 U+ s
date是一个datetime或date值,expr对date进行加减法的一个表3 r: y" ]# b* R% n' w
达式字符串type指明表达式expr应该如何被解释  / h' u9 ?4 l: E) Z8 R
 [type值 含义 期望的expr格式]:  $ h  s( d) d  o# ~5 u0 u
 second 秒 seconds    - f/ Q& k' W+ _1 M3 o
 minute 分钟 minutes   
6 Z( u- g2 X# B# B% _: `( |: ]& {( ?8 H hour 时间 hours   
/ _5 s6 f! y7 H day 天 days   
# H6 A  x1 N  u+ a: R0 B month 月 months   
' X+ `+ h2 g% c year 年 years   
( J- E+ ?* S  ^+ z; K6 t6 C minute_second 分钟和秒 "minutes:seconds"    4 r9 u8 o8 |, }- n. m' W
 hour_minute 小时和分钟 "hours:minutes"    0 R& W& ~) T+ ~, }6 Z
 day_hour 天和小时 "days hours"    6 r3 P2 X, s1 y2 z) C
 year_month 年和月 "years-months"    + l, E! r" H7 D" f  q: J
 hour_second 小时, 分钟, "hours:minutes:seconds"   
9 _5 T$ c* S9 P8 G$ \$ Q+ v day_minute 天, 小时, 分钟 "days hours:minutes"    $ a5 N) j' }, [7 z3 \* x+ s8 \2 K
 day_second 天, 小时, 分钟, 秒 "days; e) B" z! m  l) B0 B
hours:minutes:seconds"
' n! h" x4 D3 T% `2 O3 [; S3 A+ W8 ~ expr中允许任何标点做分隔符,如果所有是date值时结果是一个6 j' ?0 O1 ~* C) J
date值,否则结果是一个datetime值)  / n" Z! w: n3 D6 `3 z/ G( h7 x
 如果type关键词不完整,则mysql从右端取值,day_second因为缺
5 t$ B9 G6 B. R少小时分钟等于minute_second)  7 l, y; j: }' o6 N; k( {+ a9 c
 如果增加month、year_month或year,天数大于结果月份的最大天+ ~3 ]  m  q/ k$ u" N! e5 ?2 N( J3 L
数则使用最大天数)   
6 c" x1 Z* X5 L1 E, ?, Dmysql> select "1997-12-31 23:59:59" + interval 1 second;  
6 w6 Z0 _3 K& T4 V# l2 C& ~! q
- w0 W% A! d5 b# h  -> 1998-01-01 00:00:00   
7 B5 k( x5 \0 ]. ?4 m' jmysql> select interval 1 day + "1997-12-31";   
: |' P2 F. J+ ~' w  -> 1998-01-01    - x& Y1 @, n& A* @
mysql> select "1998-01-01" - interval 1 second;    % ^! L* r% Y+ T5 |2 C
  -> 1997-12-31 23:59:59    ! u# d" i7 d$ Q5 f/ ]0 A
mysql> select date_add("1997-12-31 23:59:59",interval 1: @$ {$ D6 w& I
second);    & ?0 F+ H: V; c1 P; {+ ^
  -> 1998-01-01 00:00:00    & l4 K/ \6 A) ^! v0 r2 t7 a
mysql> select date_add("1997-12-31 23:59:59",interval 1& `* r4 H2 s: S- N/ m0 C
day);      R: U/ h( b/ I. t, z; o
  -> 1998-01-01 23:59:59    " S+ V  g7 ~' k- [4 I
mysql> select date_add("1997-12-31 23:59:59",interval
# k( A) Y7 N$ {0 \) o"1:1" minute_second);    * U# ]1 u7 |" p8 o, N
  -> 1998-01-01 00:01:00    ' ~( V+ P, F0 s
mysql> select date_sub("1998-01-01 00:00:00",interval "1# E( J, s: P' d- c" K, B0 G$ V
1:1:1" day_second);   
# b) t2 ~/ Q% k, S7 t  -> 1997-12-30 22:58:59   
) _, p  D" m$ S5 C# B* Mmysql> select date_add("1998-01-01 00:00:00", interval "-1
: t; h, G+ ?# T10" day_hour);  
9 w% h' q$ B, A' ?. B  -> 1997-12-30 14:00:00   
" e/ D& W. h, \( I3 Pmysql> select date_sub("1998-01-02", interval 31 day);    ' X6 Q: w0 \0 o5 ~2 k4 Z
  -> 1997-12-02   
% s6 p. S- d5 F1 pmysql> select extract(year from "1999-07-02");    , s6 |5 ]6 R5 Q& U* Y0 o
  -> 1999    : e9 @" k3 c1 a4 ]6 _- u) X5 O
mysql> select extract(year_month from "1999-07-02; J4 V" ~) Z! ?) C) U
01:02:03");   
1 p7 @) y8 `% M4 d' \: a  -> 199907    ( ]( [; H" ?* q5 m# J; \, e0 [
mysql> select extract(day_minute from "1999-07-02. P  p4 V2 j: ?2 k# p) K
01:02:03");    - w. `/ z3 L6 d! ?1 J4 i
  -> 20102    4 e  u9 }7 a2 R' }/ z$ s
- p) d- A; E1 X$ J
to_days(date)    7 G2 W5 G0 E: c& O
返回日期date是西元0年至今多少天(不计算1582年以前)  2 C+ ~( l" D" Z8 n8 m
mysql> select to_days(950501);   
* O  G6 s, l- t  E5 ^; ?  -> 728779   
3 h* O" F! \+ e2 L) _  o; umysql> select to_days('1997-10-07');   
4 c% b1 j/ k) b/ F8 a- w  -> 729669    ; l( P; G$ G; [0 [
; k( X- p6 f; W" E6 R* M: p* w
from_days(n)   
* @6 u+ w1 ]1 a3 h0 ]- i) @) } 给出西元0年至今多少天返回date值(不计算1582年以前)   
7 e& M  o6 P$ F. E1 emysql> select from_days(729669);   
2 B: o+ `2 H3 }$ [: z  -> '1997-10-07'   
2 ^/ Q) M; l: X# | . P/ v0 I1 F, K! q7 Z
date_format(date,format)   
; ^/ `' a" O2 X, y' ~0 i1 Q$ N 根据format字符串格式化date值  ! K6 E7 H, K3 ?/ t9 L0 q
 (在format字符串中可用标志符:  
1 {3 ~  O: |) Y! O/ z( q) A6 u %m 月名字(january……december)    # x8 z) U: U. g5 N& J7 L) w
 %w 星期名字(sunday……saturday)   
1 ?& y- \: D# R/ x4 r %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    % [3 O% x1 t( @  S3 v* S4 m
 %y 年, 数字, 4 位   
2 r2 v8 K1 S% E- ]2 r6 [ %y 年, 数字, 2 位    2 J* O1 S0 ?# P- e# c) R5 w0 s3 @
 %a 缩写的星期名字(sun……sat)   
! d/ L( ?9 l3 O4 H. L! B( q; G8 | %d 月份中的天数, 数字(00……31)   
. Y# G9 s/ b, R: k& m %e 月份中的天数, 数字(0……31)    , d* X) g( M+ q3 |% z" M
 %m 月, 数字(01……12)   
& T# A8 K, @9 e. D. e, c %c 月, 数字(1……12)   
  t& Q, p- E% f0 U' H7 x2 x %b 缩写的月份名字(jan……dec)    / q  n9 L5 P* X- X% C9 U2 e
 %j 一年中的天数(001……366)   
' o$ z, Y. }& _; T" I) I* { %h 小时(00……23)    $ \+ D& Q3 v7 D* U1 ^$ \. |
 %k 小时(0……23)   
; I0 n* g5 ~0 [* Q( K8 ~, F %h 小时(01……12)   
5 a' w7 z" A' k. T  }+ U  u %i 小时(01……12)    3 o5 w- v! v$ m2 l. m! ^
 %l 小时(1……12)   
0 `1 g  z  F' |. k$ ~# ~ %i 分钟, 数字(00……59)    + Y% o5 Q; j8 y7 A
 %r 时间,12 小时(hh:mm:ss [ap]m)    3 |4 H- Y9 h! R+ g! }% o3 t1 w" w
 %t 时间,24 小时(hh:mm:ss)   
+ m( W6 N8 B; H. i %s 秒(00……59)   
: J  `, g6 P' ?$ A0 Z: L/ ` %s 秒(00……59)    . C, S0 {  r7 D, @4 j* @& U
 %p am或pm   
  X- n: h8 v* e+ u9 x/ f& p %w 一个星期中的天数(0=sunday ……6=saturday )    ( x" G! @, F4 Z4 p! U
 %u 星期(0……52), 这里星期天是星期的第一天   
2 {! J. A- B* E3 b3 m) O %u 星期(0……52), 这里星期一是星期的第一天    4 ]) q, t8 }1 A8 u
 %% 字符% )    g- x( V: H6 i8 R* P, z5 b+ p$ J, {
mysql> select date_format('1997-10-04 22:23:00','%w %m %
. ?$ m- Q7 F6 X  |2 Cy');    ( U/ C* }* M; B" f' U! |  [0 X/ c
  -> 'saturday october 1997'   
1 S- f4 v- S- g- a! Tmysql> select date_format('1997-10-04 22:23:00','%h:%i:%
& O: Q+ W5 D& B( {$ q# A3 b! W8 G9 ls');      I4 W5 r7 O5 D9 Z3 f. E" ~! E  z
  -> '22:23:00'   
) h! Y7 d# D' A7 X% r  i7 Emysql> select date_format('1997-10-04 22:23:00','%d %y %a6 E- z1 ]; @8 h7 G
%d %m %b %j');   
" x) X) g0 y3 ^* e  -> '4th 97 sat 04 10 oct 277'    ' @# d; N" J& f6 i% q0 E4 C& N
mysql> select date_format('1997-10-04 22:23:00','%h %k %i
5 e4 n1 ?. v  W%r %t %s %w');    : j/ h, D% N& h' ?9 |# A, U
  -> '22 22 10 10:23:00 pm 22:23:00 00 6'    4 Z& G- A# H: c$ _
- @5 ^; A; |4 ~5 z" E0 l, o
time_format(time,format)  4 A8 K/ Q* b  J0 \) V& H' u# k
 和date_format()类似,但time_format只处理小时、分钟和秒(其" m3 B& r, |& r
余符号产生一个null值或0)  0 {$ ^* i' v4 M" S, f

! M. z" M3 S* ecurdate()     
; h% k* l  }, R3 _9 Hcurrent_date()  + h2 r! ?; ?7 K  S8 x; G# ~2 N1 n7 b
 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所; [; N2 C! S4 u, p' s
处上下文是字符串或数字)    . R, R5 i9 o9 f& w5 t( m/ |
mysql> select curdate();   
/ M$ z4 `. f1 D* I  y$ G  -> '1997-12-15'   
; }/ J  Y$ b$ R9 ^mysql> select curdate() + 0;   
4 P3 D  p. U0 N/ v; ]  -> 19971215   
- o) _/ I+ Z8 q( ]
+ J& H3 w& r$ @' e, acurtime()    0 G8 G- l) E# S# L: d& y
current_time()  
) U/ j4 t9 }6 i' F5 G) } 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
$ o$ K: {% |4 {4 n下文是字符串或数字)      
9 Q4 q, Y# E. K' h! x+ Qmysql> select curtime();    ; E. v! W8 x" b; s: E2 ?  a
  -> '23:50:26'   
) G% X6 c/ b8 B5 X- F5 Emysql> select curtime() + 0;    + n! K/ ^4 ?4 ]
  -> 235026    - g5 X' V4 r3 F9 u" I! U

  d3 Y( S# P5 X9 h+ Lnow()    
9 n3 m3 @; S0 M2 C9 h6 v+ e5 Dsysdate()    9 |1 }' e& y* P
current_timestamp()  3 B! }4 N4 b4 s
 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
& B" y) ~. {, o! f时间(根据返回值所处上下文是字符串或数字)     
& B3 _  N( c7 Rmysql> select now();   
( T9 s1 z3 G; ?4 g1 T/ k( Z5 C3 ?  -> '1997-12-15 23:50:26'    : A4 b: j& |6 }/ Y. b; O- u
mysql> select now() + 0;   
; A3 t% z4 q; t: e' r  -> 19971215235026   
3 m) C, R8 R" e) N" \1 Q
$ z$ \9 H0 g! m3 m: y9 Lunix_timestamp()   
+ H/ J4 z/ o4 D( H' tunix_timestamp(date)   
- ?3 d, B2 K2 Z: A. l6 M- w返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
! u2 @% [5 H. s+ E数,date默认值为当前时间)    r/ h0 V) L7 w: u
mysql> select unix_timestamp();    + q7 p# N. M6 E4 A5 k* f! J) o
  -> 882226357    7 u9 r; ~$ w) |3 X) g
mysql> select unix_timestamp('1997-10-04 22:23:00');    ( \2 V  i( E7 O6 C! G8 H
  -> 875996580   
: T: C: L/ Z0 ]3 L/ g* O5 V 9 L+ ~% [5 M, w2 j
from_unixtime(unix_timestamp)    3 D, v/ q: |9 A6 P& Q' k% d/ ?
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的7 h  T9 J( k1 B3 P$ \$ ^* i
值(根据返回值所处上下文是字符串或数字)     
7 |3 ]$ m1 p( h1 H3 w& y' k* N2 O/ dmysql> select from_unixtime(875996580);   
9 W2 j. V, b4 w. `3 m8 p3 F9 R  -> '1997-10-04 22:23:00'   
% O/ e- r& u- j6 ?mysql> select from_unixtime(875996580) + 0;   
' d5 I+ T) M0 o+ k1 v  -> 19971004222300   
% N% A' S* b1 I5 f9 E8 ~
& j4 z" f, z$ G% Nfrom_unixtime(unix_timestamp,format)    
$ K$ _# S4 B* k4 i* @  d, h以format字符串格式返回时间戳的值  
# g3 m7 P! ~2 q/ B2 G6 l1 ?mysql> select from_unixtime(unix_timestamp(),'%y %d %m %, c, l" N% \; v1 E  h
h:%i:%s %x');   
; \* `0 E7 }6 S) `; C  -> '1997 23rd december 03:43:30 x'   
. h9 W6 a& d) u7 i5 u # d; r0 |  R' c8 k
sec_to_time(seconds)   
$ ]1 S( P( S# `& a. k2 a; o以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     2 n3 ~$ W/ D' b  o' w
mysql> select sec_to_time(2378);    9 k2 v: n$ E6 B8 P. O7 ^9 Y
  -> '00:39:38'    . @% d8 D4 I+ _6 P5 y  j
mysql> select sec_to_time(2378) + 0;    9 R  k: G  g5 |0 u, U
  -> 3938   
( p. \1 l3 v* B4 T! E
! Y4 ?. f4 u$ W5 Otime_to_sec(time)   
/ o) v8 |3 S$ S' ]7 c3 v& O9 }返回time值有多少秒    : g3 F+ w/ V! |* E: t) G2 A( P
mysql> select time_to_sec('22:23:00');    $ c+ F7 C( S: `2 C: Y+ c
  -> 80580   
3 a/ K1 P2 [3 l1 {" b6 Emysql> select time_to_sec('00:39:38');   
) \: [" o! ]% A& n7 C4 A  -> 2378   K( L) k+ d* Y. R+ M4 @
& r. n8 W% |" O, a6 O+ E' V
转换函数
) P6 J4 p* d% Y& }* z5 C) Jcast
& p1 y- D" M+ G8 S7 M" {) R用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]+ T! C% K7 {$ k- b
实例:select cast(a as unsigned) as b from cardserver where order by b desc;
+ W3 R9 b1 e, C  f, mconvert:
( d7 K. ^9 J, N1 w  N: ^& k3 l用法:convert(字段,数据类型)# O9 F% L% w& V1 T. \+ I7 n: C9 l$ T
实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

' L8 p- d5 f% w, j
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表