中国网络渗透测试联盟

标题: mysql常用函数大全 [打印本页]

作者: admin    时间: 2018-3-21 16:07
标题: mysql常用函数大全
1、字符串函数
5 R% t7 J2 m6 q3 i- d7 iascii(str)   6 Y/ U3 T, q; X
返回字符串str的第一个字符的ascii值(str是空串时返回0)  4 o. C& \: G8 ]! o* s
mysql> select ascii('2');  ; g$ H% H6 J( K* Q; L
  -> 50  , d$ s8 ~  D; _( p, X
mysql> select ascii(2);  
* r% O) M- @1 X* _  -> 50  $ n. Q9 \; d, \5 D# {  v' M; Z/ E
mysql> select ascii('dete');  7 Y6 H" G0 w3 w- T2 S% f% R! @0 o
  -> 100
1 \+ ]' c  [4 j* Y! [
ord(str)   
* l3 v( J0 Y( M* N+ i0 Z7 y0 ]如果字符串str句首是单字节返回与ascii()函数返回的相同值。: ~; e6 b2 p! k7 G8 O

3 ~* J% i& [3 F如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  
; ~  Y& q7 H- u, W  tmysql> select ord('2');  % v0 I" w) X% o% r* e+ k: k  P
  -> 50  
0 w( T; k8 o& }3 d+ r   $ Q4 h0 D7 m& T) Z& Y/ J
conv(n,from_base,to_base)   
) q/ v. ~- N5 H  V8 _8 t对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  : y  M# @3 g3 |8 R3 A( R
mysql> select conv("a",16,2);  
" Q* F5 C! l3 s  -> '1010'
6 Y; ], \( w0 g( k6 _# kmysql> select conv("6e",18,8);  
; X# q# g5 i. z: _# y% w' R, ?  -> '172'
  z9 W! x: p2 Zmysql> select conv(-17,10,-18);  , w* v# M0 W. P  |* x! N5 j. l
  -> '-h'
7 X4 j% W! Z& M& f6 ^8 N; hmysql> select conv(10+"10"+'10'+0xa,10,10);  
+ X3 T  i5 w/ J1 y  -> '40' - P/ O8 M; u3 E1 \& W4 Z  D; e- I
   
. n- k4 |9 V! Z$ w0 [2 E* gbin(n)   
/ \1 x! r4 s; S* T) U" O, N( @把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
: h3 h; p9 `: O/ wmysql> select bin(12);  
, k3 K% c2 j0 ?) d  -> '1100' . _% n3 I4 Q! g' [; y8 i; y& N( C

& Q5 ]  r7 F0 M) c1 h0 B5 F9 U2 O- a8 Koct(n)   6 S. y: \: G7 s! o: N! k
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  0 h8 U/ s; t* q" E
mysql> select oct(12);  " z, e! ~. u2 R% N+ x
  -> '14'
& `, v% V+ s$ l+ u   
, w- V$ x: d* v9 rhex(n)   
* e' V$ P$ c8 }2 b" i/ P* t1 Z2 n, G把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  + Y0 m5 `. I+ v3 s) n4 N8 x! Q+ Q0 I
mysql> select hex(255);  
2 x( ~6 ]9 {0 W  -> 'ff' 7 }2 l, `3 f# s6 y) d+ N
   8 q$ c3 M' c6 x6 ]4 `* l# m
char(n,...)   3 W- ]& S7 V2 R- W3 `' t- k
返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   
  x! v/ h8 O/ p# J* vmysql> select char(77,121,83,81,'76');  
% h, P% A9 t* N" W! S  -> 'mysql' 6 s' }: W+ `- V1 j7 o3 z7 z
mysql> select char(77,77.3,'77.3');  3 o+ n/ s" V& R$ q4 H& o' K
  -> 'mmm'
5 X+ v4 \8 p& `. I8 I3 \' C   
- Z3 D7 b0 F: [( y) p7 @concat(str1,str2,...)   7 d1 I6 q  x; }4 i7 i- s, q
把参数连成一个长字符串并返回(任何参数是null时返回null)  # Q0 h( p* y0 P6 b7 }% Y: t; m) V, q4 A
mysql> select concat('my', 's', 'ql');  % G/ i$ h. W3 D/ g: v
  -> 'mysql'
4 c. j, r0 E: R+ r: O# S+ }& lmysql> select concat('my', null, 'ql');  2 t! N1 @: ]; ^* S
  -> null 5 X. X3 b) f4 ^( e6 ]
mysql> select concat(14.3);  & q$ |/ t3 A0 a& j# H
  -> '14.3' 6 [, H8 u, Z/ H4 l0 p( t1 `
" Y5 S2 l5 O  A6 m% E# N3 W3 r* M
length(str)   ; I1 R4 R7 Q: V, `$ h2 z/ a
octet_length(str)  
' {) ~: k9 X( U- ?2 Tchar_length(str)  
7 s2 R7 q9 a) e  a. M$ A& `: w2 Lcharacter_length(str)  
' R8 ]8 l4 M  C' U* x返回字符串str的长度(对于多字节字符char_length仅计算一次)# \- O: f& }1 W9 A1 o
mysql> select length('text');  
% \( j, O% z8 S8 F  -> 4  0 R8 L. g* b. A4 ^2 V' O
mysql> select octet_length('text');  # y7 b" [6 S/ i, n
  -> 4  9 t, E$ T& R; I; B
3 `8 `$ A  t& \& n, A" ]  o" K
locate(substr,str)   / A$ h4 U1 G) ?% W
position(substr in str)   
8 S- d' _6 P: J. M, T返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
1 {# ]; O$ K# w2 ^  Kmysql> select locate('bar', 'foobarbar');  
" _# B( ^. I7 t: [  -> 4  8 P% u1 }6 B; D- C& ~
mysql> select locate('xbar', 'foobar');  
! F( t$ d9 ?; e' k7 |$ a# {$ S  -> 0  ; s7 N" @; f# D: \3 _4 X
   
3 a; t3 z, z; C% h' u8 f" ^locate(substr,str,pos)
% W: J  I7 D9 n% @, I$ m9 x% `返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
1 o1 G4 y% V: T" ?! J) w4 Z) Bmysql> select locate('bar', 'foobarbar',5);  
( {7 A* k. v# O6 s' w2 @0 ^8 C  -> 7  ; s' j# {5 w! y5 k% {# p
6 g' W$ m/ n% ?0 O6 `3 D8 r" E) C
instr(str,substr)   4 o2 K- z* F& j4 m* C: z/ I: Y! M* W
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  5 u+ R& B+ y9 C* Q2 [
mysql> select instr('foobarbar', 'bar');  ) f7 x& ?8 `! q# ^6 M8 X, V; _, s
  -> 4  8 V, j2 [! f8 ^0 y- {
mysql> select instr('xbar', 'foobar');  8 Y  g  f, d; J0 h9 Q6 E) H
  -> 0   2 Q* z. u* b1 t6 B# q# o
6 x7 _+ A  }9 M1 M& x- ^, x: p$ N( J
lpad(str,len,padstr)   
, I$ m* T: b1 K7 M) Q2 V5 u用字符串padstr填补str左端直到字串长度为len并返回  
; K. z; i/ x3 ?; T8 Imysql> select lpad('hi',4,'??');  7 q: g) f4 k$ B  P3 W) S
  -> '??hi'
( N/ Y& ~2 N$ ~   
1 C, y; P4 `( z' L3 U  X: B' a5 Arpad(str,len,padstr)   
3 j6 e# s# D3 @- F# p  ~用字符串padstr填补str右端直到字串长度为len并返回  
/ {$ V2 l, M7 w1 V: m- ?- P5 Emysql> select rpad('hi',5,'?');  2 s9 f7 @9 h4 D+ i% ^! C* d2 r
  -> 'hi???'
& u) [7 z6 r: E" w3 c* S
0 M& C2 w. r5 Y! lleft(str,len)   : v9 @' x9 q+ K" F' w& P5 R+ e
返回字符串str的左端len个字符  5 X; M% }  \+ t# {3 O0 O- Z/ `
mysql> select left('foobarbar', 5);  . F7 N1 P& x- m* p& y$ M& u- F
  -> 'fooba' , T" W, \9 X' D

# P7 g1 e. z5 Nright(str,len)   ! b! A) \3 v8 k9 Y
返回字符串str的右端len个字符   
7 H2 U( s% f$ f" B6 c8 l, Nmysql> select right('foobarbar', 4);  % F3 v) ~- g. p7 n  @/ x4 X
  -> 'rbar'
; ~- B% N: R! y# {- j
1 u* Q, n+ J$ B+ j) Wsubstring(str,pos,len)   + R9 q  I9 u( t. P: i
substring(str from pos for len)   0 D6 ]/ A4 m, [2 z% K6 o
mid(str,pos,len)   ) K- q; a+ N1 t
返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
) v& x% O4 g# S$ r; s  -> 'ratica' : I9 h/ [: o2 E5 s0 ^

- i$ r1 b: S* |9 Dsubstring(str,pos)   9 x' L* E! g1 ]" t3 i
substring(str from pos)   
1 C2 M+ V: L6 }返回字符串str的位置pos起的一个子串  
3 f+ m4 E  F$ Wmysql> select substring('quadratically',5);  
7 h4 _4 V% t+ f% N  -> 'ratically' - R  a' v3 [0 q6 s+ L0 W7 Y
mysql> select substring('foobarbar' from 4);  : {" r: y; h  F& t  ^4 j
  -> 'barbar' - [" F" I$ d+ n, ]
# ]: h# M* a( K) o% S) V
substring_index(str,delim,count)   - H& W2 R; ?! D* Q+ a
返回从字符串str的第count个出现的分隔符delim之后的子串
& i# Z! `4 [( t0 ^3 p2 T/ j4 z(count为正数时返回左端,否则返回右端子串)  . q/ B5 R% o, ]" _9 Q4 H! Y
mysql> select substring_index('www.mysql.com', '.', 2);  
6 G! x  A. v9 K! `  -> 'www.mysql' " J- s5 O/ y2 l
mysql> select substring_index('www.mysql.com', '.', -2);    o& [" K6 c2 X
  -> 'mysql.com' 9 [7 P" M  a  X7 R5 b0 X/ z

3 h  w. R" U' ~! b4 x" ]5 Cltrim(str)   ; `% E" R, S' E
返回删除了左空格的字符串str  
9 _) ], W! [1 z1 k$ j. Jmysql> select ltrim('  barbar');  ( q0 @7 E5 |4 W- a' r7 q! e5 p
  -> 'barbar'
+ D, Q9 v& [5 M* `, D' P 5 z( Z$ q  S" _3 j* R
rtrim(str)   + O, U% A$ d3 \* {: ]' ?
返回删除了右空格的字符串str  , V. K. [# C* t8 h+ s, k
mysql> select rtrim('barbar   ');  5 Q; n9 S! I/ m% ~
  -> 'barbar'
/ n0 b7 v/ g1 \0 { % H, b# i; f, q) n& ?
trim([[both | leading | trailing] [remstr] from] str)   8 E: s+ [% q5 Y( |2 Q
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
' k& q2 k9 p( [3 M2 ?8 Cmysql> select trim('  bar   ');  $ K! f3 U, Q* ]3 L
  -> 'bar' + b0 D' O$ O( K* s" r
mysql> select trim(leading 'x' from 'xxxbarxxx');  + E9 B3 a4 S2 V
  -> 'barxxx'
2 ?' j; o' V4 D% t4 Zmysql> select trim(both 'x' from 'xxxbarxxx');  
! X6 C7 {$ G2 F  m# c  -> 'bar' 6 v* X) y/ l% k
mysql> select trim(trailing 'xyz' from 'barxxyz');  
- k3 `9 K) z& Y- L  -> 'barx' , T; i. w& t# m% ^6 ]

% ^* v; q' C, n- }5 ?4 V/ hsoundex(str)   
3 g6 j) I% ]6 j/ w5 b0 L8 ]返回str的一个同音字符串(听起来“大致相同”字符串有相同的
" L( O+ j+ W2 b9 N' R同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  
. g$ c9 H1 w0 ^' Smysql> select soundex('hello');  
) Q5 \% R1 C- S* I  -> 'h400'
( X8 C- k, Z. z8 ]3 Emysql> select soundex('quadratically');  - h- t% f; w" S: x, n! {
  -> 'q36324' * n. V6 t6 G/ {, |8 B7 ^
   
6 N# k$ r" l: h) fspace(n)   ; ^0 f5 M- s2 c3 A) g! C
返回由n个空格字符组成的一个字符串  # ^4 Y& _; `: f# l7 ^
mysql> select space(6);  
, w7 M# p# o9 d8 Q+ {6 I  -> '      '
$ j' g  g% g- A   0 H# l5 T! s" e. h
replace(str,from_str,to_str)   2 M  x0 A1 u& q& I
用字符串to_str替换字符串str中的子串from_str并返回  5 F8 \3 A$ l* u! Y1 Q: ]
mysql> select replace('www.mysql.com', 'w', 'ww');  
6 b5 f0 B: q# o* a2 ]4 f- P  -> 'wwwwww.mysql.com'
, U! V% c; B$ m  D
* B: z9 z( N2 V3 V2 nrepeat(str,count)   / V% f/ S9 e+ \, I: Z, a
返回由count个字符串str连成的一个字符串(任何参数为null时
+ H" x4 V& g7 A0 U返回null,count<=0时返回一个空字符串)  $ g# X3 W2 R) g' o* E2 L6 z: v% N
mysql> select repeat('mysql', 3);  
3 X$ H) Y0 F; \; R  -> 'mysqlmysqlmysql'
, k" l1 r* {9 w( n) q. f   4 i& ?$ x9 I! [: {5 L
reverse(str)   2 P) ?4 e9 G, K8 F0 c8 V/ Q
颠倒字符串str的字符顺序并返回  
3 S2 f# T8 d8 R/ l% c5 ^mysql> select reverse('abc');    E. x5 ?( B6 Q; @( L
  -> 'cba'
- Y- b0 h: P* v
' J- b! i# s# minsert(str,pos,len,newstr)   ' w1 A$ o* n2 q0 _/ X0 j
把字符串str由位置pos起len个字符长的子串替换为字符串6 X1 G5 a! L7 W8 d4 f9 M+ D6 b: M
newstr并返回  
0 k/ {4 z5 q! amysql> select insert('quadratic', 3, 4, 'what');  ; y% H6 Q% ?! s' R% x7 {
  -> 'quwhattic'
% V: W' z  a( {; |2 |- `5 p; q
1 b3 N( x. S) \0 }elt(n,str1,str2,str3,...)   
! W% b2 K5 y7 g; _$ l5 J返回第n个字符串(n小于1或大于参数个数返回null)  
+ l4 q7 D! N" B/ l  X+ @2 S1 pmysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  $ P6 h4 m. I7 Z) U0 `: X6 C& C
  -> 'ej'
" U$ U# i) J6 H6 C* cmysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  , a0 \; H; _& O
  -> 'foo' 0 J' t6 ]% h* k- Q; {5 j/ z: k5 d
& v8 }% u6 P& E5 \1 L% S. n. k2 X
field(str,str1,str2,str3,...)   ; }7 @2 b, f; g2 d
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
1 w& U, j) s/ o1 ~9 wmysql> select field('ej', 'hej', 'ej', 'heja', 'hej',. N5 x; `( P+ W* _
'foo');  
( ?; n# I# Y6 s& e) H  -> 2  
) m) x- H% S% |1 Jmysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
* j# c# ^. E" L'foo');  & v1 @$ |2 i, U- d4 Z- m# z
  -> 0  
  Q9 A' U9 l/ |4 b7 |9 t% T 0 ^+ V, q' k( Y9 w
find_in_set(str,strlist)   
& U; z. S2 j4 G! \" V6 |' q返回str在字符串集strlist中的序号(任何参数是null则返回' {' N8 D5 E3 e2 ?. f# O$ B# x
null,如果str没找到返回0,参数1包含","时工作异常)  , Q6 H8 G- L7 p
mysql> select find_in_set('b','a,b,c,d');  5 ?; h8 J  Y' ~$ A% J, h+ u* r
  -> 2  / M/ x' [$ x) W2 u2 ?2 _+ `
     J% Q, B0 a$ X5 r8 K' S. j- w
make_set(bits,str1,str2,...)  
. T- A" f2 U! \6 R" ~把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应7 x- }* Q; M) P$ S; ?% P1 @
位置的字串选入字串集并返回(null串不添加到结果中)  
1 B- k2 L; N3 H3 @/ C2 K1 q+ Jmysql> select make_set(1,'a','b','c');  * }% V0 G9 f/ d) _! q/ y, b% K
  -> 'a'
- M8 \. M5 k/ y3 ~) D8 \7 Gmysql> select make_set(1 | 4,'hello','nice','world');  
% [9 }* m% o6 x( n+ l  \  -> 'hello,world'
; }# H, D  |7 `1 A# ]# O. kmysql> select make_set(0,'a','b','c');  * l5 J( J3 n% u# i, w# G' O+ ?- b
  -> ''
( |( D7 F6 s+ b" y6 D , h( T  r0 Z; x+ z; @: d% f& R
export_set(bits,on,off,[separator,[number_of_bits]])   2 U5 R* d/ r" _& O) ~. Y
按bits排列字符串集,只有当位等于1时插入字串on,否则插入& E" t; B. P& Y" `. i7 Y
off(separator默认值",",number_of_bits参数使用时长度不足补0
: }9 d2 Q' |& K  w8 {3 _而过长截断)   # ~" F" h6 c( _5 Y1 \# s# a
mysql> select export_set(5,'y','n',',',4)  3 N% X' w7 U7 V
  -> y,n,y,n   2 L) s  |  F  @+ R* |

! E' P  `* m1 G, z6 T" d3 Ylcase(str)  
- N8 V; D0 M, D: I$ plower(str)   ' f  H% H, l# G2 \
返回小写的字符串str  - x4 {6 q+ i+ W+ p# h
mysql> select lcase('quadratically');  
0 p+ o; ?( v5 W% i! ?- S3 n  -> 'quadratically' + A- J: f( o8 v, X0 y* |
   
' k% R- k, [, u% w0 c2 m1 F! Yucase(str)   
  W3 y& v$ i+ \2 f" L' t5 |upper(str)  
. e9 p3 N8 h6 T  M" \& p+ ]2 ]* j返回大写的字符串str  0 C( _8 f6 j6 N4 U
mysql> select ucase('quadratically');  " d- `; K  c8 Q$ ~
  -> 'quadratically'
+ Z9 d3 C' }9 z& P / Y8 o1 H: D4 X
load_file(file_name)   
$ K) u% i1 `/ N! y% C读入文件并且作为一个字符串返回文件内容(文件无法找到,路径
: e+ A# F& c& t- d不完整,没有权限,长度大于max_allowed_packet会返回null)  
/ p4 H/ z3 m; u7 _; umysql> update table_name set blob_column=load_file4 T6 L$ ]1 n: T; ^& M5 D5 Q& X/ v5 j' }
("/tmp/picture") where id=1;  8 _& C9 x9 U) G6 D- t2 z$ c4 U$ Z
, b0 N  Q& k7 j, L
2、数学函数
8 E$ S0 f+ {. B* h2 U' `abs(n) $ K" O' p8 q- s# ~9 c# K
返回n的绝对值  5 L' |9 n% p0 Z- A' Q
mysql> select abs(2);   
2 u! F* F2 X2 d5 f' F  -> 2    7 _8 `9 R) b1 G9 U5 V: H' N7 v+ v
mysql> select abs(-32);    - V$ l9 E7 S' I* v" t* V
  -> 32   
0 ?3 x& _# ^) g& r7 r0 E# ~3 q   1 u( m7 a, _  r- x$ B0 a3 l
sign(n)  . l3 J( D$ b( ^* }4 Q) m; T: K
返回参数的符号(为-1、0或1)  
2 z) }8 @9 _2 F& b& |/ [mysql> select sign(-32);    * d- V4 U4 ?; j
  -> -1    + B! F* o0 W$ N+ k6 s- ^  P" X
mysql> select sign(0);   
" I$ D( h+ u( o4 k/ u  -> 0    ! M! J0 Q! @" \8 p
mysql> select sign(234);   
( G+ ^/ S5 J- }9 r  -> 1    6 D. ?9 C# |! ~0 a) X( \
. z8 d, l# K; Z9 c
mod(n,m)   
& r0 [3 B0 x: v- f: l4 J6 z取模运算,返回n被m除的余数(同%操作符)    3 L+ L. z6 [# }# z4 H' O
mysql> select mod(234, 10);    8 f, `  {* v' X1 X1 a3 s: K
  -> 4      Q+ W7 F" |/ S- m* u- h
mysql> select 234 % 10;      D* {8 a- h& d4 n9 M9 L5 V
  -> 4   
. G4 O6 \" b# m, w& B) x' lmysql> select mod(29,9);   
5 g: @) I/ T3 n& V* I, ?  -> 2    $ O# r6 @5 b% G- u

9 P- v/ J$ i! E) Z( P6 V6 Kfloor(n)  
8 ~3 ~3 Q# ]8 P0 J3 o( B返回不大于n的最大整数值  
2 d. Z5 t0 \/ n/ rmysql> select floor(1.23);   
) _3 q  U6 I7 Z/ g% z  -> 1   
2 F+ \. n& E0 g5 s/ L2 cmysql> select floor(-1.23);   
/ ?: h4 ?/ p0 J6 S" ?  -> -2   
1 }! l/ \$ s6 B1 R/ u" l* d
* w0 o2 E: o( k, vceiling(n)  
5 t! ~  Q2 L2 R$ I返回不小于n的最小整数值  0 V( N  U" ^$ Q
mysql> select ceiling(1.23);    0 O4 u+ ~- a, p* ]; O
  -> 2    # z2 F: s4 P( `' {  f/ N
mysql> select ceiling(-1.23);   
1 I, p7 ?7 `% o; k8 O6 ]  -> -1      K( ?2 R. m# H, `( `' g  W
6 C  q" O3 X4 f8 w6 M( S: C( z
round(n,d)  5 |9 R1 i1 z2 f/ i7 q. P) B
返回n的四舍五入值,保留d位小数(d的默认值为0)  8 y2 e4 L) W* s0 [0 a
mysql> select round(-1.23);    ' V/ E0 Q- W3 X: I( S6 D
  -> -1    ; J, T1 {( G) i! ?
mysql> select round(-1.58);    ; k4 U, r' d6 o) q2 O/ l
  -> -2   
1 T& C& t% g0 r: {mysql> select round(1.58);    ( I5 R% }) Q. C
  -> 2    ' P3 k' T$ B5 v, O7 f/ g! C
mysql> select round(1.298, 1);   
5 g( F# C7 p8 l% r  -> 1.3    2 |. B3 I9 o) G% X; @
mysql> select round(1.298, 0);    ; _: _/ S) s! N6 B7 g: ?9 B# v; T' u
  -> 1   
7 E+ k2 ]. }1 N+ [2 y ; ^1 J) U" f: W" `& A3 }
exp(n)  
0 C# I' a# {4 [9 J5 k返回值e的n次方(自然对数的底)  
9 q$ {9 }" w9 `0 M* g% }mysql> select exp(2);    7 s% g" Y7 F+ M8 y% l0 J
  -> 7.389056   
7 O0 G% D. @4 Gmysql> select exp(-2);    ) v2 b. K- l: k
  -> 0.135335   
9 `" d1 ^+ i( N; G* G: a
, v8 J7 E" E- c3 a/ @# M; Plog(n)  
( b( b  E8 ~& g/ Q1 J+ s返回n的自然对数  
& E, H6 \5 t  omysql> select log(2);    8 R4 K4 Z6 c1 r- I: ]% R
  -> 0.693147    , T9 V3 W8 ^  a3 `4 y; O7 r" G
mysql> select log(-2);    5 i# v3 r' B6 I% Q: ^0 [" u
  -> null    " u4 `& |3 X( ~- Q

# o+ ~: Y! ?" g+ D4 j8 ilog10(n)  + c! r4 |  Z8 ^+ m; {
返回n以10为底的对数  
& U7 E  q4 m+ @: Mmysql> select log10(2);    / e) H, Z8 l" r- u1 @' |
  -> 0.301030    * x" c& ]% z) C! B& n% f
mysql> select log10(100);    # Z# c! G0 n) P* b5 ~' E7 x, I
  -> 2.000000   
/ ~  C; J# v" D& x/ J* W" ~mysql> select log10(-100);    " }1 m, T" D+ z* a6 q
  -> null    7 w# x; N: n& [2 t7 R; I8 x

3 V3 @7 R; ^( P7 @2 `pow(x,y)    / P/ A+ t" o2 I8 q6 k
power(x,y)   
% V/ q" X8 i7 k2 A; t& s7 l 返回值x的y次幂  
- h4 u4 w" x! R8 }7 }3 H' u' cmysql> select pow(2,2);    9 r6 N3 x  I8 s% ^* d/ ~4 k
  -> 4.000000   
( `# g, K' l( Q. A& u9 V$ vmysql> select pow(2,-2);    : h" C1 P/ P- o' t* I: C7 ~1 \; \
  -> 0.250000  * g) t) D5 `' i$ m. Y' ?4 B

. t6 ~" ]3 W6 Y' Qsqrt(n)  
# V( O- Q* y/ U" _8 t* R* a 返回非负数n的平方根  
& [* F3 {; p4 e0 g" mmysql> select sqrt(4);   
$ z+ e  @2 P% u0 d7 o$ ?0 k  -> 2.000000    2 T5 J4 O) T+ l- t1 ^
mysql> select sqrt(20);   
! |6 j; g6 _, S  -> 4.472136   
! O# Y9 B. o9 Z3 t* o
. E' R3 }2 S+ x- G) p$ |pi()    # n  s& W/ M8 l4 m# B  p+ C7 g
 返回圆周率   & D# d5 t4 }* E; @& Q& }
mysql> select pi();   
8 c9 ?3 Q. V. M4 i$ a  -> 3.141593    ' [" I- w; @; t* Z& h

7 p4 w0 _7 Y/ q2 a" Y; Ocos(n)  ) J) Y% _1 A. l8 A4 f
 返回n的余弦值  ! k; X$ A* U/ v# h% F
mysql> select cos(pi());  - p$ [. \3 l1 s- |" P
  -> -1.000000   
  Z# g# x4 H/ f: K; f7 m# f
+ ^- ?, w& F# a% S1 ]sin(n)  4 Z- Z) ^6 C. e
 返回n的正弦值   4 O3 U7 g! \1 k! k) _: U8 K
mysql> select sin(pi());    4 n2 H: K; {$ O. H2 m  D
  -> 0.000000      ^$ X+ j+ ?! U7 R' n
% f& T2 _) S5 Q( b4 \/ L1 U
tan(n)  
$ X5 y! O" \+ Z4 Z$ c( q返回n的正切值  
, l1 e8 c0 L1 x6 {' zmysql> select tan(pi()+1);    % ], v; Z: G. r# S0 r
  -> 1.557408    1 h! I( Z* I, q- u# d
  n8 Z! P! `# q" C- F( T- T
acos(n)  
) u/ X- q; y! ?& H 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  # h1 U, f' w& ]7 q2 s
mysql> select acos(1);   
+ `3 [: c0 e2 t3 d' x3 s  U" w  -> 0.000000    " ^7 g4 `: j1 s. g6 x
mysql> select acos(1.0001);    ( q" ]9 p3 B% u; z/ [
  -> null    / c$ K0 L- a1 d7 r
mysql> select acos(0);   
$ h3 l% p$ @! c  -> 1.570796   
0 e9 Y9 A9 k  T( D2 c0 W5 d6 a
/ I# x6 F. W0 Z  B+ i; b& M% Basin(n)  ; v2 B) g+ j9 r7 k$ q
返回n反正弦值  8 `; P9 H6 _0 v$ O7 R
mysql> select asin(0.2);   
. g$ F: `, c) \  -> 0.201358    " Q/ A$ T; K' C% f7 n
mysql> select asin('foo');    7 a4 o1 p! P8 z  s3 h( Y. M0 R
  -> 0.000000    $ W2 d% g  ]5 {- n3 E4 x
2 q7 o$ M% J, E" t+ c. B
atan(n)  
- b( h- r& F' x: o6 A7 C返回n的反正切值  ( o/ ~, @5 O8 h. a+ x4 d2 v, `
mysql> select atan(2);    8 w) c6 R- N% Q1 {. s4 Y+ m
  -> 1.107149   
1 I' R/ }2 K: v2 W4 R- wmysql> select atan(-2);    : r( C) r2 V7 e! G0 i/ V
  -> -1.107149   
: J, J, f! i. f( @' @9 P0 Katan2(x,y)    : D6 b3 K  V' l! `- D
 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  
1 I3 r" N2 ~% e9 J% y/ o+ y2 `mysql> select atan(-2,2);   
1 D0 q& K9 V& U6 Y' x% Q; P  -> -0.785398    ( t+ I" x. C. T% u9 x4 L, O( i7 q. v
mysql> select atan(pi(),0);    # P  q1 o/ h1 N1 S, S9 O' }! _
  -> 1.570796   
; i$ C  J; J+ \8 o' N ) V5 ?$ E/ ]  }6 }. ?$ t# I
cot(n)  
0 s* }+ u" [& O4 z返回x的余切  7 H, b/ z9 ?  ^- I% ], w
mysql> select cot(12);   
/ p8 g0 a' a, i8 x. P" i  -> -1.57267341    2 L% B- Q8 A( u9 |2 i
mysql> select cot(0);   
; z; a0 P" w6 {8 W# U0 ~3 j! ~  -> null   
/ A# v6 I1 g( h9 [6 J; {/ s$ _
' G2 r( }% x$ h. d7 Orand()  
' O  E4 n) }6 r8 z; Wrand(n)    4 p' f: V8 r+ d# r& ~; G+ O
返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
" ~4 o: @! X' `) B) z
. U3 \" V) G4 Dmysql> select rand();    1 N! k8 |2 V  X& J
  -> 0.5925    - I! L8 E6 |" ~% j! d; G/ E
mysql> select rand(20);    ' X6 v# J/ c3 v# L3 q
  -> 0.1811   
: J  W# H) O- d2 w* o7 Emysql> select rand(20);   
# _8 z" v7 c0 H: o5 n+ Y5 H  -> 0.1811   
$ s) k+ c) a8 Qmysql> select rand();   
+ X* @0 Q+ Y( D: X7 ~2 @* f$ h! }  -> 0.2079    4 Y' x3 P7 N. J  I! K
mysql> select rand();    . @6 ?- L5 z2 h2 ]
  -> 0.7888    ; d4 ]7 Y" r7 n7 P$ ^; l

# v- a/ V, h7 B5 G# t. y# bdegrees(n)  
2 G% l6 P0 `2 O* e7 [4 a- |把n从弧度变换为角度并返回  5 S" y9 V0 j( ]; z1 H* X
mysql> select degrees(pi());    ! V( i: P# K( U6 L2 d, Y0 ?0 ]
  -> 180.000000   
% a6 Z; e; s( H9 M  C, F
: K% e) P8 X+ jradians(n)
/ [+ j4 r6 J3 K! B- G4 {把n从角度变换为弧度并返回   
) s" Z# L7 c# a8 ?& l; I  S" _. \mysql> select radians(90);    * ~1 H+ f3 L; @" d$ d) N: J
  -> 1.570796    . A( Q& B; T6 u  J

3 Y8 E( N& E7 Q  |2 t! ]truncate(n,d)   
. Z: O$ n# U: g% t保留数字n的d位小数并返回  9 a, d3 Y9 ?) @) }9 c+ j
mysql> select truncate(1.223,1);    1 k: i# Y* s/ Q! ?  }9 P9 C
  -> 1.2   
  Z/ ^# i+ {6 A! D1 w* cmysql> select truncate(1.999,1);   
' N; @  {4 q9 L$ v  -> 1.9   
; \: a- t# H& Zmysql> select truncate(1.999,0);    - i/ _! l' Y& v. q: G: A
  -> 1   
* o' @* `* C  x1 i4 W) j* z
9 d  w8 i) H: ~  ^least(x,y,...)    - w9 I3 {- o5 F3 x* U
返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  ) f. n/ U/ w6 N; ?
mysql> select least(2,0);   
# z3 x1 ?$ c8 {' [* y5 G& b7 d& R  -> 0   
* b) ?, Z! d. c* l% b/ [1 Bmysql> select least(34.0,3.0,5.0,767.0);   
; ]% j0 g, i/ N: x$ `) R  -> 3.0    $ r. a4 P+ v$ @
mysql> select least("b","a","c");    / w$ U, Z5 A8 \* C4 x/ ~& j
  -> "a"   
% {( q, H/ B7 F3 {4 C/ O) h
* L# Y$ d/ A6 s+ ggreatest(x,y,...)    / D1 s' d9 c, M  I" C# Y/ u5 H
返回最大值(其余同least())  
0 h+ u8 ]  V) ~( Zmysql> select greatest(2,0);    4 Y# z* j$ h4 O  f7 t7 f
  -> 2   
& i: z* M$ |7 k. x5 umysql> select greatest(34.0,3.0,5.0,767.0);   
% Y# e8 q, @/ |2 b) K0 Z  -> 767.0   
/ W7 g* z8 l- x9 M1 b! Omysql> select greatest("b","a","c");    8 q, |( |) U0 ]# u
  -> "c"     
) v& W& D# U/ h9 U" E. [- [5 `+ u7 _4 F: P: c! r. Z: R" U; }
3、时期时间函数 1 H/ i. ~$ `, G/ z; \- A( E
dayofweek(date)   
7 c# T" u  R! N5 C7 }# m1 E$ o返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
9 @* h" l3 j- _9 P# ]9 Z& Dmysql> select dayofweek('1998-02-03');    $ |' U+ o7 o) }2 [$ y
  -> 3   
* X+ n7 `$ g4 c- w+ V5 B9 t2 ^3 x
) A- t- S0 H: D8 I* T1 F! hweekday(date)    # n2 M; D6 H) ~1 E
返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
/ K" M3 Y  R0 J0 Y' G( U  / [% k5 ?( ~  O) j6 Q, L
mysql> select weekday('1997-10-04 22:23:00');    ! s/ [8 F4 q6 u# A, _
  -> 5   
9 X5 e8 }1 m" |* |7 {# S) T$ M7 Vmysql> select weekday('1997-11-05');    ) \6 `0 E$ k; b& j8 L; ]# z) T/ e. V
  -> 2   
6 }/ W/ K# r* w% C* m$ u4 L1 D ; I" X0 N' @6 i2 x
dayofmonth(date)    2 ^( u& v7 Y! W2 }! z% T& b6 E
返回date是一月中的第几日(在1到31范围内)   
( R* U& ^* {/ y/ c# zmysql> select dayofmonth('1998-02-03');    . L: O. P- M0 n/ f( k; D- ?! y
  -> 3    ( o: ?( l( o/ e5 ~

! l' @0 m' n+ l$ Kdayofyear(date)    ; K+ N( ?# y1 Q
返回date是一年中的第几日(在1到366范围内)    , r/ a% Z2 @% y+ ~9 Z
mysql> select dayofyear('1998-02-03');    # o  t5 ^; m: B9 l
  -> 34      }; {: h( K% F3 m8 D4 g/ N2 N
/ c" C9 y$ O: B% r
month(date)   
% `! t& a; D; Q' K' W返回date中的月份数值    9 u- S& s' |4 A5 l" ?& M
mysql> select month('1998-02-03');    : v% }6 j- |5 T" T, o
  -> 2   
( h- @' j9 \8 j" U1 @9 V  t 1 \0 S& k% x' C% l, o2 ]
dayname(date)   
. v7 S- d' L4 ?8 j返回date是星期几(按英文名返回)  % B+ X6 I! |% Y% R; r% X6 L
mysql> select dayname("1998-02-05");   
; }( l+ T# c8 d& T( j# n  -> 'thursday'    & _  f& O7 }" ^5 K. y
+ x9 C/ |% ?' _
monthname(date)    1 ]4 g: I1 c; t% ?+ u8 X/ @! X
返回date是几月(按英文名返回)  
9 S% ?( ]4 x$ mmysql> select monthname("1998-02-05");   
3 K3 g. w4 D8 g" y# c8 ?* I) l& `# n  -> 'february'    : v2 Q. R7 l  O3 [' `6 W! s
8 q- T( i: ?6 P8 K% Y0 y3 V
quarter(date)   
1 D& O( Y" w* q( \9 k+ U7 x返回date是一年的第几个季度    $ r' [! a( v6 S' ]
mysql> select quarter('98-04-01');    3 h+ q* {  m2 @2 l7 D
  -> 2    5 ?- \& \0 \, p& M  M
3 K$ @' K: r- A+ p2 ~3 a
week(date,first)   1 l* A! H+ g, m- x* W
返回date是一年的第几周(first默认值0,first取值1表示周一是! }8 ?1 R7 E! I2 U" i; e3 e
周的开始,0从周日开始)  
0 w3 Q( h" J3 z5 _mysql> select week('1998-02-20');   
. O# T' u' E) J. H  -> 7    6 n2 \: f7 K! ^* ~" W
mysql> select week('1998-02-20',0);    ( s" |# d! y6 p, k, ^
  -> 7   
  U  V7 C' h; w5 }" I/ xmysql> select week('1998-02-20',1);   
/ q! |5 U6 S2 h  y: a0 d  -> 8    7 o! k7 v+ t/ Z& F

- y0 E7 L  K8 J$ ]6 J& ~8 U0 K! {year(date)   
& k$ k" Z- b' L/ D3 p/ S返回date的年份(范围在1000到9999)   
3 T- f( K. l7 w9 F) l4 a# smysql> select year('98-02-03');   
# ]. `% i) K# J1 v& n- h  -> 1998    7 u5 X) e0 d  l3 _

$ R, e8 i# M2 b1 {3 f- Ihour(time)    ! U( t8 s: ?% w
返回time的小时数(范围是0到23)   . h$ `! [" _8 Z% n& }
mysql> select hour('10:05:03');    # e. ~, w8 K8 j) H
  -> 10    % [3 _  C; Z' p0 Y* e0 O% N
1 A  s) f' s8 w5 U
minute(time)   
( a% T& R1 ]+ }- q  I返回time的分钟数(范围是0到59)    4 H- A  j! e4 Y9 E; k7 `0 s! m/ S# E
mysql> select minute('98-02-03 10:05:03');   
9 {" s/ l3 r  W  R4 D6 I3 C# E  -> 5    : A& o: r7 j: v6 S3 w+ [9 x- k

; K& s4 }/ A, n. Q+ Wsecond(time)    , ^; v; I* U; v) v. j1 b$ Z, S+ l
返回time的秒数(范围是0到59)   % b5 V' m' o, a6 F" u) p5 B
mysql> select second('10:05:03');    : |7 R7 f  K3 l8 C
  -> 3   
6 H# Z9 a; ~2 U: d3 D# K4 r0 I2 h* c. o/ h , y( @5 e7 Q6 `) `5 |8 r
period_add(p,n)   
8 D& P9 A2 d* ^增加n个月到时期p并返回(p的格式yymm或yyyymm)   
( s% @1 J% f8 e- Q1 ~) Y% R# Amysql> select period_add(9801,2);    / p# j) M4 l! C# G( i& o2 n- R
  -> 199803   
: m1 S/ {% f0 F  ` 8 R, w$ M+ p" N
period_diff(p1,p2)    ! y% w: V( s* \) t( q. i/ ^) w& N
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  : B2 @1 O+ H9 |
mysql> select period_diff(9802,199703);    9 O& u# ?6 M& I7 f0 ]
  -> 11    + D; n' Y% e4 Q2 u. B6 t
/ g5 q- k4 Z4 r8 @1 {7 ]0 L
date_add(date,interval expr type)  9 {2 K( b0 ~8 Z2 U5 S, x7 |) O2 }, Y
date_sub(date,interval expr type)    7 H2 c9 r: F; ^7 y
adddate(date,interval expr type)   
7 [* d) x5 h' F  B# zsubdate(date,interval expr type)  
( {" M" T4 Z7 d# q- n# o对日期时间进行加减法运算  ! G4 d* K4 y7 `
(adddate()和subdate()是date_add()和date_sub()的同义词,也; z+ H6 x: \+ G, \+ p9 x3 \
可以用运算符+和-而不是函数  
3 z$ k' ^# K! J, [# n# jdate是一个datetime或date值,expr对date进行加减法的一个表# z7 N0 ^% T, u/ Q4 q. {  Y1 Z
达式字符串type指明表达式expr应该如何被解释  5 H( F: b- W0 f1 A
 [type值 含义 期望的expr格式]:  
8 {" K! w3 S& ?4 L2 H. e second 秒 seconds    - ?6 Y- O  n: Z- P1 @  J
 minute 分钟 minutes    $ K" s- ?' [  t( J6 R% M
 hour 时间 hours    , ^& J; R6 b' G2 x4 F
 day 天 days    9 {; W5 ]2 q2 K; ^; E9 J  D0 ~2 U
 month 月 months    * H- k1 ^" R/ r9 X7 E* z4 d2 r
 year 年 years   
; t2 R+ O8 U5 @$ ?! d: r( i minute_second 分钟和秒 "minutes:seconds"   
0 ~$ c: G1 {0 g& I2 J3 E hour_minute 小时和分钟 "hours:minutes"   
/ E$ g) H: M# e/ w day_hour 天和小时 "days hours"   
/ }; N- ~5 S9 q# p6 i/ R year_month 年和月 "years-months"   
4 B* g: J1 w0 `( B& @ hour_second 小时, 分钟, "hours:minutes:seconds"   
$ ^0 y/ m) ]  w2 M, @+ Q, c- u day_minute 天, 小时, 分钟 "days hours:minutes"    + S6 d5 p- W5 i; D, n8 ?  Q
 day_second 天, 小时, 分钟, 秒 "days
/ q8 S" H/ Z! h6 q6 }hours:minutes:seconds"
& Q8 E! A( U4 u! t1 q1 m3 X expr中允许任何标点做分隔符,如果所有是date值时结果是一个, r3 T# S3 |( a4 }5 x0 |8 i6 c  A
date值,否则结果是一个datetime值)  
0 a8 I  ^% ^7 p  O. W 如果type关键词不完整,则mysql从右端取值,day_second因为缺' B. e( D) N" h+ n& p
少小时分钟等于minute_second)  
2 j$ N/ ?. H1 l 如果增加month、year_month或year,天数大于结果月份的最大天
4 m0 q2 l; J: r& Z9 y+ G数则使用最大天数)    $ @2 L' u  E4 N/ r; u
mysql> select "1997-12-31 23:59:59" + interval 1 second;  
' l* v, x8 {! ~% }0 f% w
2 d- {/ F8 r) T4 ]# t: {  -> 1998-01-01 00:00:00   
+ W% a% Y. H& i- N! q. S8 |) Omysql> select interval 1 day + "1997-12-31";   
9 a5 ^- d* R$ d: I' K7 [  -> 1998-01-01    6 U0 \. |8 Z' W5 z
mysql> select "1998-01-01" - interval 1 second;   
& @  o. a' Y( r8 s% X+ {* k  -> 1997-12-31 23:59:59   
' g5 `4 X% o, o8 I3 a' e6 J% I, Gmysql> select date_add("1997-12-31 23:59:59",interval 1
1 r5 ?5 H/ t8 M3 ssecond);   
1 L- N; B9 }$ m& C2 W+ K  -> 1998-01-01 00:00:00    % A/ H6 J2 X; y$ y) ^
mysql> select date_add("1997-12-31 23:59:59",interval 1& f7 Q) Q" A7 {8 Y
day);   
( s- B5 O1 ]& X2 b& R/ z) y  -> 1998-01-01 23:59:59   
0 e  [* {7 C% m% C2 Q4 c' Rmysql> select date_add("1997-12-31 23:59:59",interval
+ F$ g% t4 O; w"1:1" minute_second);   
0 o+ C# s/ F" X; `0 l( L8 s' O6 I  -> 1998-01-01 00:01:00   
6 e& w0 i! b; X9 R* ~% [3 O/ T. P; {1 N) xmysql> select date_sub("1998-01-01 00:00:00",interval "10 \) T$ [, r  p2 Y2 D2 {. d
1:1:1" day_second);    + r  V/ ^0 c" E7 i+ H
  -> 1997-12-30 22:58:59    9 M0 z6 @0 v6 x. s2 Z( M0 U' R
mysql> select date_add("1998-01-01 00:00:00", interval "-1
8 Y/ `' o) \" [: x5 s" {! x8 I# |10" day_hour);  ( w* r8 S5 D$ L2 m
  -> 1997-12-30 14:00:00   
) i  L5 e8 \. |7 I" c6 j2 L! kmysql> select date_sub("1998-01-02", interval 31 day);    - m4 k& b: Q& q9 `
  -> 1997-12-02    * v2 u$ P+ S) w0 U- b2 `
mysql> select extract(year from "1999-07-02");   
" M$ W( }+ R  Z) ~/ p2 y5 d  -> 1999   
4 r$ N, `- h; x# p+ rmysql> select extract(year_month from "1999-07-02
# c) t# l0 G; C  v/ R01:02:03");    8 q% r* e4 J6 \  G5 {
  -> 199907    # z" R4 n! W- O, B
mysql> select extract(day_minute from "1999-07-02
4 `' `0 k% U4 @/ J# @01:02:03");    7 k1 ~; S( t8 c  m6 K7 g: i0 n) Z
  -> 20102   
+ i' V# Y/ T6 x: z. B" n9 ~$ M
, x  o: o  K: p; _, ~3 ]$ @' Wto_days(date)    % O  e  c1 K6 A5 e# j
返回日期date是西元0年至今多少天(不计算1582年以前)  
" t# Z; t/ l/ ]* s% R: e# rmysql> select to_days(950501);   
+ g# k( V- p7 F9 ^9 s  i  k' a) k  -> 728779    : ?0 ]& o' X9 g5 Y
mysql> select to_days('1997-10-07');   
# ?( o1 [/ o/ O) C3 B% ]- v+ T/ @3 ^  -> 729669   
9 m, h) |, s6 [0 G
- S% p) R+ \- }  _8 |7 p, sfrom_days(n)   
  t1 a+ }2 Q2 r# J) X$ o8 T2 ` 给出西元0年至今多少天返回date值(不计算1582年以前)   / }, G! ?1 R! q
mysql> select from_days(729669);   
' B; g2 T" t7 _! E& o2 T  -> '1997-10-07'   
) P% g" ?6 j3 s: `4 z6 k; M( N
- C# I' s" Y! k6 I1 n0 H0 vdate_format(date,format)    8 o0 s& H  w/ a  n
 根据format字符串格式化date值  
3 D+ W3 x) a- S3 I (在format字符串中可用标志符:  / O, p( J! A! x  {- K' h( b& y
 %m 月名字(january……december)   
. B/ L: B/ a+ s/ x* w %w 星期名字(sunday……saturday)   
5 N& w8 z, P% Y" E7 [7 F0 t* M %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)   
. ?0 z0 U1 B4 y %y 年, 数字, 4 位    6 f4 j9 k0 A& V" q1 {$ w
 %y 年, 数字, 2 位    ' S7 c7 _0 }1 M
 %a 缩写的星期名字(sun……sat)    " I  q5 \/ r4 |$ F" a$ k# [
 %d 月份中的天数, 数字(00……31)   
5 B+ j1 d* R5 |0 | %e 月份中的天数, 数字(0……31)   
) Q8 c1 k) I7 W9 a% k %m 月, 数字(01……12)    ! t1 n. d$ M6 _. d% i8 t- M: u- t
 %c 月, 数字(1……12)    2 c# k! n/ Z5 ?7 n' b2 f6 `
 %b 缩写的月份名字(jan……dec)   
2 s  s* ^% m& e" P %j 一年中的天数(001……366)    1 m# ]( y; a( R3 t- I
 %h 小时(00……23)    # C3 {* t# n+ ?7 D3 @6 @
 %k 小时(0……23)   
& S; _+ }& p4 X, D6 }/ s %h 小时(01……12)    9 U1 W2 J3 g6 m; \& L) m6 I" V% c
 %i 小时(01……12)    1 X$ N( ~1 T. C
 %l 小时(1……12)   
- q6 q* K. l; h. [5 {0 v( K! p %i 分钟, 数字(00……59)    # k; i/ S6 L" I2 F7 m' c
 %r 时间,12 小时(hh:mm:ss [ap]m)   
" p- k4 a0 A/ i! i! Q% |5 b %t 时间,24 小时(hh:mm:ss)    , @+ y& B. A5 S
 %s 秒(00……59)    $ [) T. j  v( n% q. B1 D* e: W$ p
 %s 秒(00……59)    ) E  a7 b: ?1 u  o9 _* N# m$ i3 `
 %p am或pm   
8 P( w( |% p. X& |% `& f8 I %w 一个星期中的天数(0=sunday ……6=saturday )    & E3 T% ~* k3 v3 H- ?7 l
 %u 星期(0……52), 这里星期天是星期的第一天   
, y2 ^! D6 J  ~! ^& ]- R$ f %u 星期(0……52), 这里星期一是星期的第一天   
4 z7 A" s2 V+ K) E3 w! |4 a %% 字符% )  
) B- |7 d# h) T1 ymysql> select date_format('1997-10-04 22:23:00','%w %m %
1 Q5 ^0 @) p) H$ b0 g3 s$ jy');   
' r: v$ a* s. f  -> 'saturday october 1997'   
3 V+ S. }  n) Q9 Jmysql> select date_format('1997-10-04 22:23:00','%h:%i:%" g4 r! ]8 u* q6 a5 r/ P
s');    # [! v; q! {* \' O" O* c) }9 I
  -> '22:23:00'    / B! S9 t$ u  H8 E' ~
mysql> select date_format('1997-10-04 22:23:00','%d %y %a
3 u, m) D& R9 X  |9 N+ ?9 N9 U; K%d %m %b %j');   
" N+ o+ c3 a  ?) c7 V  l, O. K  -> '4th 97 sat 04 10 oct 277'   
+ b$ v6 L: d' k0 x; d( Tmysql> select date_format('1997-10-04 22:23:00','%h %k %i
( x" |- _  J3 S; a%r %t %s %w');    % E( z9 ~1 l$ g* v3 ^3 V% _
  -> '22 22 10 10:23:00 pm 22:23:00 00 6'   
+ d4 S  |+ \5 }7 ]; @# ~- I9 Q ( c! s" V' M; l- T, d3 Q. V
time_format(time,format)  
  K# @$ R" k2 P6 m1 I% {8 d$ ? 和date_format()类似,但time_format只处理小时、分钟和秒(其& v+ j0 C" [" I$ q* d9 ^" D
余符号产生一个null值或0)  ( Z7 b$ N6 w" b4 D3 {2 C
# [' d5 ~+ O! ~6 G3 |/ {! P
curdate()     
4 h' Y. ^3 y; F6 b; H* Fcurrent_date()  
& f" B. S3 s; S4 f6 w9 [ 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所! A; T( i6 {2 l
处上下文是字符串或数字)   
. _6 }/ {# |  V2 y! U9 Gmysql> select curdate();    ! \. a1 h6 Z. M% y  ~
  -> '1997-12-15'    + f  C" _- @& Z7 s9 F) ?3 @- p
mysql> select curdate() + 0;   
. N3 U0 ]) s, J! P6 W8 t  -> 19971215    2 c  H, _& q5 l4 w

- e4 O# S4 T8 _curtime()    * G6 y$ l1 @6 l* N5 J$ Y
current_time()  
$ i$ O' f9 S4 x 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上' A0 G3 W8 O. B- F, d; D6 I
下文是字符串或数字)      4 e! B7 G" y6 m' }
mysql> select curtime();    . Y. l  X+ d# H  [7 S# n
  -> '23:50:26'   
% S& I. }3 U2 C% ~2 [: L: pmysql> select curtime() + 0;    1 E; R1 N* F$ j5 c! J# |
  -> 235026   
1 c( z, C7 V2 U- o, r& _4 E# O
9 M* U* V" n6 N# Z9 `, B' }' `now()    2 _8 K) x) @0 B, _
sysdate()    4 `2 w1 e0 j* m* J' K# H
current_timestamp()  % }1 ~/ O$ ^+ X/ W
 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
! j' I* h# b( Z3 S; L# v5 e: K时间(根据返回值所处上下文是字符串或数字)     
- A/ Z9 k& s& r3 Z( Vmysql> select now();   
) V# i7 T" l% i4 J; n5 V* L6 C8 X  -> '1997-12-15 23:50:26'   
' m) L0 E! L( d0 I1 S* ]# Kmysql> select now() + 0;    * l+ g8 [5 ~4 ]# l  L& \7 h2 y+ w
  -> 19971215235026   
. J% J0 C) p. ]* l+ V7 O # d2 s# ?. M2 r1 I+ {6 t
unix_timestamp()    ; ~0 ?! i0 J( T! P& C
unix_timestamp(date)   
% z! ~) `, l/ i5 y2 j! _; G返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
! x1 Z/ ^, O/ m" g( f1 x+ e, K+ T% I$ O数,date默认值为当前时间)  
! \" F$ t' Z: x: r' o7 ^3 Lmysql> select unix_timestamp();   
: t& p7 }% _& _. N, N) |& s  -> 882226357    ' V% B1 p$ Q9 q& b7 x$ z0 f* V
mysql> select unix_timestamp('1997-10-04 22:23:00');   
6 r9 K8 B+ C) M, ?/ B) i: g& z4 g9 d  -> 875996580   
( G. F+ Y+ \8 g) k$ Y
9 y" e( J0 B; B9 ]% u( N. g, o$ _$ gfrom_unixtime(unix_timestamp)    ! e* C" }! f9 o8 N. Z- `- s
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的; {' m5 ~# q( t8 ^  G
值(根据返回值所处上下文是字符串或数字)     4 ~% u: N4 C, Z) U2 f
mysql> select from_unixtime(875996580);   
* u- T" t9 t& b$ V+ J  -> '1997-10-04 22:23:00'    4 Z' e; @$ G  B
mysql> select from_unixtime(875996580) + 0;   
4 n- o8 \* J8 u( M8 ?: U+ u  -> 19971004222300    # S( o- }7 c: k1 w% ?, F
* k1 J* P$ B8 K5 V' L$ J
from_unixtime(unix_timestamp,format)    
- N$ p) |! o4 Z/ q4 r: e+ @以format字符串格式返回时间戳的值  
9 U( M3 W6 `0 ^8 E) qmysql> select from_unixtime(unix_timestamp(),'%y %d %m %# K  V6 P- F1 f8 `
h:%i:%s %x');   
/ P1 U8 ?9 i" \  -> '1997 23rd december 03:43:30 x'   
# P, t( A$ O! ?8 O
) @2 @/ w! e3 `) H7 f6 h  S+ A( isec_to_time(seconds)    6 @8 t% B  n0 M  \6 z- b, M0 T
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     5 I" d9 N% m* G7 g
mysql> select sec_to_time(2378);    7 g! @; G  I1 ^8 G8 K1 m4 i
  -> '00:39:38'    2 K/ ?) X' B) F5 J* B" m
mysql> select sec_to_time(2378) + 0;   
5 ^6 L% j& |9 z6 O* j. x  -> 3938    2 ^+ x9 d8 @2 K' ?9 o' N9 o- A
( S) e: K7 t1 i  n. n5 Z7 l
time_to_sec(time)    * s' k% r' H5 S; n7 @+ |
返回time值有多少秒   
8 q( O* g. Q5 G. T6 u) w0 kmysql> select time_to_sec('22:23:00');   
* f0 p* S3 V  y# e+ m' d5 ^! P3 r  -> 80580   
0 f" f9 d# k- Hmysql> select time_to_sec('00:39:38');    $ d, Q; ]" v! }. b$ E, E
  -> 2378 , \& Q; P( s+ }1 y% `. p0 U
* f0 ~, R5 _6 k
转换函数
( f, k! D) u' V$ `6 C  Ncast0 ^4 U5 J9 f) {6 h5 K/ m: y, I
用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]
" r; Q7 Y  b& g! u' Q. e! q实例:select cast(a as unsigned) as b from cardserver where order by b desc;
* }) p) W! T5 X/ g; \convert:
, f" w& V2 M* p. ^' R) H0 }2 z  _用法:convert(字段,数据类型)
* Q" ^" q9 f  y; ~实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

  L' C7 ^4 O" ~: P  A0 [( o




欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/) Powered by Discuz! X3.2