中国网络渗透测试联盟

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

作者: admin    时间: 2018-3-21 16:07
标题: mysql常用函数大全
1、字符串函数
3 O  r9 U" @0 P/ f* z4 S' [3 Qascii(str)   & s2 Y/ {% [, _7 X/ H
返回字符串str的第一个字符的ascii值(str是空串时返回0)  $ `; ]  w3 q" ?, D! y2 E3 K& s% m
mysql> select ascii('2');  
, Z; L4 F2 \' h( Q. X+ M  -> 50  
2 c8 M5 Q- o! V- z4 b5 G$ @5 Cmysql> select ascii(2);  & [6 j; G# ]0 v4 I- d" V  J. o
  -> 50  4 S( f, O$ e1 @% R3 ?$ ?3 g( l& e
mysql> select ascii('dete');  . M" e4 y$ L! e; ~0 t4 ^
  -> 100

9 s+ R+ a' W7 V5 B! z2 A4 ?ord(str)   
; ?7 ^6 J+ X* p. ^% r6 }6 S如果字符串str句首是单字节返回与ascii()函数返回的相同值。
0 a0 K" s2 t" k+ V . D: I+ }+ n- J  m4 f9 ]1 d
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  5 ~/ t" m1 [$ z- M# Z
mysql> select ord('2');  
: @0 X  w  d7 m( n1 K/ Q: ]  -> 50  
: K9 ~- x3 [; d; E. V* r5 v   . D* K2 b2 d) b6 p+ v& c; g+ G  q
conv(n,from_base,to_base)   
+ f  S+ N8 k3 L7 }* N对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)    e) D' n6 N/ D2 ]
mysql> select conv("a",16,2);  
3 T3 K: [  b2 q  -> '1010' & \) C& p" I& p* n
mysql> select conv("6e",18,8);  5 Y1 C3 l- i* z" M4 z2 ~+ W2 o
  -> '172' / \6 @" [& [+ Q# n" w
mysql> select conv(-17,10,-18);  
6 p+ y( s  `9 L  -> '-h'
/ Z! `7 E# z( S1 G* @mysql> select conv(10+"10"+'10'+0xa,10,10);  
; m# T9 R( d, ]& _4 H9 B1 M' J  -> '40'
3 E4 g  ?9 A: n8 q4 W   
8 l: m% Q$ m& Vbin(n)   
$ Q. Z1 H' I4 {0 Y把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
7 D/ R! D+ h3 _9 m( i2 xmysql> select bin(12);  0 ]0 u: l; k+ [- t! A, e/ p: T0 q
  -> '1100' 7 L3 [8 i$ c- f* `3 T( R

. @; c0 H- a& P  K; X1 A: qoct(n)   
' P# D4 Y* b& R4 D2 A- e把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
* t1 T8 C$ [$ Z8 }; B! Smysql> select oct(12);  
2 B2 A8 v4 _# B+ C  O% a- a5 B8 d  -> '14'
& ~8 o+ d- z" P   
& P$ a) @3 o: shex(n)   " T/ E. H  P4 Y
把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  
& }) q8 _# i- D& E3 emysql> select hex(255);  0 h3 [' h( n+ T1 T, C7 r2 d1 d
  -> 'ff' 8 Q/ m5 C9 t# c, ^( q
   
( f6 z( b% g5 p! ychar(n,...)   
, [, A$ ~2 D$ c. ~6 E1 W! V返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   7 X; L3 U9 X6 R4 [2 P
mysql> select char(77,121,83,81,'76');  
/ o  h4 s6 ]5 u9 l  -> 'mysql' # E% y/ E2 A: b$ F& [5 \8 t+ u
mysql> select char(77,77.3,'77.3');  
+ x  ]) v( z! v, q8 I$ o- E  -> 'mmm' ; e1 Y2 d* e5 `  L: J
   7 r) w0 y1 Q' W
concat(str1,str2,...)   3 ]4 d" e7 |' q4 `  n
把参数连成一个长字符串并返回(任何参数是null时返回null)  3 S! o5 G3 S' V
mysql> select concat('my', 's', 'ql');  / |: M' x/ M2 A1 Y5 P" X: _: {
  -> 'mysql'
! e! f  u/ V, [' W3 lmysql> select concat('my', null, 'ql');  1 T) G# K5 P; w& o! |
  -> null # W& I* ?) T8 {$ j! j! @
mysql> select concat(14.3);  7 L# A+ h5 h; ~! J" X% v2 j, h
  -> '14.3'
3 s* t& }) K+ y9 T8 _ ( g: {4 N/ l$ }" U. m) F* K1 C2 f
length(str)   / d6 E$ D; q! X# u
octet_length(str)  2 P; F  N" b2 ?  ?0 Q- n
char_length(str)  % U' i( r+ [! p: U# O
character_length(str)  
5 Y5 Z, Q+ a. B4 S# s  g返回字符串str的长度(对于多字节字符char_length仅计算一次)
( h( _( s1 M, X1 cmysql> select length('text');  , O4 c3 Z+ y4 I( Z9 H
  -> 4  
7 R& W/ \8 u0 u5 h0 ~1 S" Fmysql> select octet_length('text');  3 Q1 j5 p" H2 `/ u: H
  -> 4  6 c3 s+ f' X" P7 f/ Z6 a
$ I. w( `. h( d% L6 a! j
locate(substr,str)   $ x' O* n* v! ~3 p6 P) B
position(substr in str)   
6 [$ C1 o+ u1 l! X; b# n0 V返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
3 q' D( g& X8 K0 g# [) k2 e$ Vmysql> select locate('bar', 'foobarbar');  ; Y" O( J3 {. M7 V
  -> 4  
  H* o$ c: }# kmysql> select locate('xbar', 'foobar');  
$ [) o) s' h- a! K# q/ a! S  -> 0  0 u, u& g& x; F. k' `' W9 V
   
8 i# f0 E( _) |) K, _9 m: v- A3 E8 vlocate(substr,str,pos)
1 ~( g; `' S. c  I! i$ x返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
3 A2 p% p3 y. amysql> select locate('bar', 'foobarbar',5);  ; c$ e$ z' D1 V8 W: y& i$ ]3 o
  -> 7  / Z  F3 c& q, @

. {* Z& E/ C0 w* ?4 X, X9 @instr(str,substr)  
$ Q. y* o, t  V, H! k& N8 p8 X: ~返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  * U, C1 }" W4 |- W) @
mysql> select instr('foobarbar', 'bar');  ! e  l, k$ C- l
  -> 4  2 e; n, \0 D1 _( t, d  {2 M* T
mysql> select instr('xbar', 'foobar');  
% ^; F& t* B* I  ~  -> 0   
0 Y8 S( c3 Z* }1 ]: o, q7 Q ( ]! u+ }2 N9 v4 m7 M9 [+ H8 v% b
lpad(str,len,padstr)   ! Y0 |+ ~; O* ?" {7 `* d2 n6 U
用字符串padstr填补str左端直到字串长度为len并返回  
" q2 X& q* i2 Hmysql> select lpad('hi',4,'??');  7 ]# d4 {3 V8 [6 y
  -> '??hi' , ^5 {2 T  Y4 x0 E
   6 m1 Z& v( D4 E! O0 p: S
rpad(str,len,padstr)   
" O0 N7 i2 T& r. Z2 J用字符串padstr填补str右端直到字串长度为len并返回  # k3 `; P% a' z  T2 r4 R
mysql> select rpad('hi',5,'?');  
( k& @' r; L5 \% D  -> 'hi???'
- W3 _' W" s6 K( t1 \) S ! C. }, q% K. s2 W. b
left(str,len)   
, P0 x6 \. I( V返回字符串str的左端len个字符  % e5 ^8 M" w. {& z+ L
mysql> select left('foobarbar', 5);  
% Z1 o3 @0 p* ~/ S! H/ R  -> 'fooba'
1 c% o2 u* e2 G' z' @1 Q' o 9 O; K/ a! f. D% I1 A6 q
right(str,len)   ; y4 l. P- H0 H1 @( {
返回字符串str的右端len个字符   
% {1 w0 H' L5 W' Qmysql> select right('foobarbar', 4);  
9 n! B# X! |( |# F* X1 {& A9 A  -> 'rbar' % P1 d9 a2 J1 S" x: }

$ d0 z; Z# M, ^0 Lsubstring(str,pos,len)   
2 i/ G' k7 D3 M8 y% f9 Z% I+ O0 [substring(str from pos for len)   , V; L5 _: c4 e7 {  W
mid(str,pos,len)   . q& ]( K( U6 O8 b. b3 @  l8 o
返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
9 J) ~  A# i- Q5 W3 [  -> 'ratica' 9 Y" [7 \# L: P; }$ v" O

# X3 O3 w3 D# l% Z1 Vsubstring(str,pos)   
3 C3 f% ^, g) Y6 |+ {1 psubstring(str from pos)   + h& K$ ^0 Q7 r- B) @* E! s
返回字符串str的位置pos起的一个子串  
7 J( r' m4 o$ n. c- A' bmysql> select substring('quadratically',5);  
0 u! ~& P5 l( M0 G( O) b- O  -> 'ratically' ( |% @8 j" a  w7 Z# H4 |
mysql> select substring('foobarbar' from 4);  
2 ^) T& Q1 j5 e. J0 Y  -> 'barbar' ; X% ~9 [; [7 H; {# y( `, W% N; Y, E

( H+ Q" G1 q/ L% y9 |4 a$ J: Xsubstring_index(str,delim,count)   # y$ v% ]1 s" t( d7 V
返回从字符串str的第count个出现的分隔符delim之后的子串
  U  N! m8 r6 `% V0 V% ?3 j(count为正数时返回左端,否则返回右端子串)  
9 {! p7 N5 e" Z; p* e) mmysql> select substring_index('www.mysql.com', '.', 2);  
9 H: N0 R5 |& f" m% ~0 ?8 g% k  -> 'www.mysql'
2 J! v! H6 `7 L6 _% cmysql> select substring_index('www.mysql.com', '.', -2);  6 r1 g' q* O, _" x/ p( K+ X7 ]$ Q
  -> 'mysql.com'
6 S8 L' w, W' Y' N; i % Y' M" I% _3 N
ltrim(str)   % d! z. f: ^0 d  P5 T3 f
返回删除了左空格的字符串str  % w3 P: J, D7 x" j, @
mysql> select ltrim('  barbar');  
  R! h: V) c, _( h9 @. i  -> 'barbar' ' ]0 J8 v7 H! b4 T
+ m1 O2 e! j. z9 i% A$ X
rtrim(str)   
" x% a1 w+ i0 j  ~返回删除了右空格的字符串str  
' F" e7 e, e9 Vmysql> select rtrim('barbar   ');  + i: g# p5 B5 a5 M
  -> 'barbar'
" p: d2 i" b8 j
+ h8 h/ F1 {" q$ u3 ntrim([[both | leading | trailing] [remstr] from] str)  
! X/ w4 D4 f6 ^返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
: j- a5 P) `( n$ |/ C3 Mmysql> select trim('  bar   ');  
: T$ B+ w) y/ V: X+ D8 n% Z  -> 'bar'
- X2 n/ ]+ ]( ]; Ymysql> select trim(leading 'x' from 'xxxbarxxx');  
8 z4 y1 @) E) A+ {. P  -> 'barxxx' 6 }) K. T. N: F% a, T3 r% t
mysql> select trim(both 'x' from 'xxxbarxxx');  / G- v3 F- M5 |# L8 c- Z: g4 ?6 {, y
  -> 'bar'
! y) v/ ]" W5 R( D4 _. j; d& rmysql> select trim(trailing 'xyz' from 'barxxyz');  
. Z& w, h$ Y, B& R7 Y2 i, b$ |6 d/ y- g  -> 'barx' & t0 `7 ?9 d+ x$ Z, u. w

5 y- g- [& w$ ?! Jsoundex(str)   
: ~" O/ f) Y0 x返回str的一个同音字符串(听起来“大致相同”字符串有相同的
: B8 o9 n( F9 A4 {% E; O  m同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  ) P* q4 O  S7 B2 t; [
mysql> select soundex('hello');  
- k( Y) h* t7 y9 h1 K9 m; P; C) e  -> 'h400'
6 m- ?/ G% L6 u! ?8 cmysql> select soundex('quadratically');  
2 i6 u0 Z4 l) t3 p  -> 'q36324'
. q% w5 T3 w3 q. q: B" _( V9 h   
' J( q/ a( a( I! ]) X( ?$ Nspace(n)   
* T8 B* a4 @7 a+ F* s" L8 U- r$ ?返回由n个空格字符组成的一个字符串  
! i. |) E& O; |mysql> select space(6);  
* }/ L" k* V- \' [7 Y* ?$ z  -> '      ' " j: f/ @$ h7 W! C1 Q% O
   
+ A; K. X' [' i, U. Xreplace(str,from_str,to_str)   % n# T* z2 H, t3 X+ B
用字符串to_str替换字符串str中的子串from_str并返回  
3 @" |% b4 G* omysql> select replace('www.mysql.com', 'w', 'ww');  
. c: z" q8 u( K9 k7 k6 a  -> 'wwwwww.mysql.com'
0 a8 h. J8 F; t' ^
/ W5 V$ n/ I# z, Brepeat(str,count)  
, J$ [3 r3 Y8 J; w  T返回由count个字符串str连成的一个字符串(任何参数为null时# N3 }5 ^/ B  s0 x) J
返回null,count<=0时返回一个空字符串)  2 H$ d" z7 a1 y; D2 b4 G8 |
mysql> select repeat('mysql', 3);  4 }5 N0 U5 j5 {# }- G& U: U9 [2 b0 p4 r
  -> 'mysqlmysqlmysql' , x  {0 d  }/ H% }4 x8 z8 z+ i
   
- L  s1 \7 d1 ~; m% i  wreverse(str)   
9 h5 E. F  Z, I& Q8 z6 B颠倒字符串str的字符顺序并返回  
0 Y/ X3 V- ?- G: `: n  Nmysql> select reverse('abc');  2 X( Z" T9 J3 t; @% g
  -> 'cba' 8 j7 t: C, Z/ \# P5 J. K
$ F1 O- K3 k4 @
insert(str,pos,len,newstr)   1 {7 O5 A+ z2 ?; v5 ?" w
把字符串str由位置pos起len个字符长的子串替换为字符串9 ~# m5 l' K5 I. [- g
newstr并返回  
. C+ `3 ^' \# b( `- zmysql> select insert('quadratic', 3, 4, 'what');  
; f7 m, W( i7 H3 e6 I  -> 'quwhattic'
! ~; G( M$ [# A; A4 G% I
" G) n5 H9 s$ k  W' G) t; ^: ^elt(n,str1,str2,str3,...)   
7 {8 F2 R! W. Y' u1 S$ R- x- F5 a返回第n个字符串(n小于1或大于参数个数返回null)  9 b1 ]- q; j! E# q+ i* e. e. i
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  
( K- h$ H: G  G3 s' Y9 r/ @- c; O  -> 'ej'
  ?: v8 h7 Q: N' E+ Rmysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  ) B8 N* A( l; i7 J& i; a' u
  -> 'foo' . v. e, |- [6 A! z/ v
7 k1 s' b, }; J+ d; t* z
field(str,str1,str2,str3,...)   ! ^& p/ N# J; J3 w% g% m
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  2 e6 i. s, f" m! Z& |
mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',) K! b; n( O, k7 Y) Z9 [* r+ ^6 e4 J
'foo');  ! k$ Q  q" b3 C9 Y, B2 v/ P! L
  -> 2  ! N9 }& r% D7 ?3 H5 ^/ Q! {/ D- [) y" D
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
# v% |! O& J2 U1 [7 z6 T'foo');  # [7 v8 C% b/ u* `
  -> 0  
: F# {. U+ L' C! _/ b ! h7 |: U3 n; }# }
find_in_set(str,strlist)   
9 g* B5 r3 E2 L返回str在字符串集strlist中的序号(任何参数是null则返回
; ?8 ]) U% x2 b* d$ J1 |null,如果str没找到返回0,参数1包含","时工作异常)  5 j- D& R" I/ {/ X; c7 r
mysql> select find_in_set('b','a,b,c,d');  
( f+ ]$ P6 Q! |  -> 2  + ~+ M- m5 F% J4 n
     O; A# t6 |7 e& Q6 I8 W$ C, j* z
make_set(bits,str1,str2,...)  
1 g4 R4 ~, I2 B$ j+ R3 I把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
8 D& k0 N0 {, D% o0 [位置的字串选入字串集并返回(null串不添加到结果中)  : K" G) O( K3 X. K  V6 O- b
mysql> select make_set(1,'a','b','c');  
2 o: F0 \4 {9 t  -> 'a' & |( p3 K) ?$ d  u( ^
mysql> select make_set(1 | 4,'hello','nice','world');  5 U) m" f8 t! s( K: W
  -> 'hello,world' 1 l% V$ O! j6 m
mysql> select make_set(0,'a','b','c');  : l. z: i- h- S$ E6 X5 X4 a# L* J3 W
  -> ''
& R: S- U8 w2 g+ o4 X' c1 c" ? 2 ~* J2 A; m: M  m. z
export_set(bits,on,off,[separator,[number_of_bits]])   ; L3 _- |% Z9 T& {0 ~
按bits排列字符串集,只有当位等于1时插入字串on,否则插入( t" r1 ~, p+ w! L
off(separator默认值",",number_of_bits参数使用时长度不足补0* j: O( }9 V- x( K% A- z5 j
而过长截断)   ' W. h/ F4 R# Y
mysql> select export_set(5,'y','n',',',4)  
- f) M; N4 |/ l. B' R  -> y,n,y,n   3 g! c4 {8 B$ F9 q! N$ P4 a; V+ Y: b
$ r- Q5 f: K3 ~  o4 b
lcase(str)  
; x% h4 ^9 i+ ]+ vlower(str)   5 f9 d( F- Q* u. H- w% u( @- I3 ]# G
返回小写的字符串str  4 r4 e% z- I. K+ X' k3 X
mysql> select lcase('quadratically');  
0 Q/ ~; G, [7 r  -> 'quadratically'
% e0 {. R; t2 R4 W$ ]   1 w3 I( R# }9 y9 ]' y; w& D! `
ucase(str)   
& g# s2 ?8 [3 o1 L) Zupper(str)   ( Q3 b* ~+ J& s. `( c5 J1 p9 E+ I0 C
返回大写的字符串str  4 F* W, w+ m& x+ h* k7 l3 k
mysql> select ucase('quadratically');  * q1 Y) t* E9 O9 d1 p8 J
  -> 'quadratically'
8 h0 B' {& b9 ` 4 R5 p- p5 u* d( v! K
load_file(file_name)   
4 n: a, [2 J3 }读入文件并且作为一个字符串返回文件内容(文件无法找到,路径7 f7 s  p$ P. S. k
不完整,没有权限,长度大于max_allowed_packet会返回null)  
0 i1 K) D. p* vmysql> update table_name set blob_column=load_file; G) }8 g$ D( b" R
("/tmp/picture") where id=1;  
3 O! w/ z; k3 D% O4 N0 n 0 {0 O9 G; C* r. W
2、数学函数
; ]8 W8 d& e! \$ B* w# q6 s5 |# \abs(n) . f1 ^8 R* }7 A& O% J2 H. g
返回n的绝对值  
& T1 w0 y" q' \- A6 N( f: P( G( zmysql> select abs(2);   
0 m* S  N' t4 d# q9 \) W  -> 2   
8 K  m/ }  d8 y! ]+ S* @mysql> select abs(-32);    : H& Y% b- V/ _- e8 t& e% C# p$ c
  -> 32   
- h6 ^) `7 `! g' d3 M# ]0 J   ) ?/ R( Y' ]. Y6 H
sign(n)  4 D1 E% A: ^% u' S+ }
返回参数的符号(为-1、0或1)  
: r/ T; S) j9 b0 Z( X- F& Amysql> select sign(-32);    1 Q/ V8 P+ A' X: M' M; B9 g8 E, B
  -> -1   
: m  \) N, e* I/ k( O1 q7 wmysql> select sign(0);    6 Q7 u( D" _2 u: f) Y
  -> 0    ; j) ^3 f7 J1 k  J
mysql> select sign(234);   
3 E) e( a- y5 ]  -> 1    ! G) A* ^. \5 E. B

, Y- Z: M0 Y& G' H  G: m- A" _% fmod(n,m)      C9 g( c0 V# z% b! j* V! Y
取模运算,返回n被m除的余数(同%操作符)    " R: i( \- G7 N, `" u' a
mysql> select mod(234, 10);   
) ~' a* h3 o7 r6 d  -> 4    3 P5 B4 ]7 Y1 H* @2 A& u+ R4 o
mysql> select 234 % 10;    : T2 y% m& c2 Q: q
  -> 4    6 R; @9 G6 r  |
mysql> select mod(29,9);    1 ]/ }6 X- }  q; a( I9 N# n$ ]
  -> 2    " I9 C4 W( k( Q- Z0 r
( g' E% G3 h  }/ G% _& M7 H
floor(n)  3 A! \. E  o4 h
返回不大于n的最大整数值    n( u4 A, k, l, r' i* l  R; \+ i
mysql> select floor(1.23);   
  \# ]# z7 j- t" J  b  -> 1    / r3 g' c- ?* ]1 ]! o  \+ X
mysql> select floor(-1.23);    , T  _, N& g" t8 g8 B4 }- @0 J. K
  -> -2    0 y. O  _: x; Z

! \6 x! F, Q/ T/ M) C- B! }) Hceiling(n)  
  L; o% y8 @# i1 f# t返回不小于n的最小整数值  % ~. F; P& E' H. E( q. Z' G
mysql> select ceiling(1.23);    % U1 Z! \: [7 B0 |5 Q
  -> 2    0 a6 x0 ^) }5 ]& u! f( t$ ]
mysql> select ceiling(-1.23);    ) D( [; I/ R, }' J4 n
  -> -1   
, \' R- T) A5 A
' x  T+ B0 C' w6 ~5 p3 |$ y6 g) W# R( G& yround(n,d)  
7 ]( J. D9 r2 u# I$ g返回n的四舍五入值,保留d位小数(d的默认值为0)  
# `. c5 O4 t/ ?, |, L/ i- xmysql> select round(-1.23);    % m5 [! \5 `5 n7 q. P! n3 E' l9 P
  -> -1   
' |% J/ j$ J2 Vmysql> select round(-1.58);    6 _4 {& C! v* M7 p  D
  -> -2    $ ^* ?- d3 }  f1 y+ O. }; ~  Z
mysql> select round(1.58);    9 j" |: w! [4 y/ \, O% p; ]
  -> 2    / ~) T$ e) E7 t
mysql> select round(1.298, 1);    9 ^* l; E8 O( y) K' H: q
  -> 1.3   
! x" C! v& P& x2 imysql> select round(1.298, 0);   
' {0 b% E7 I) h7 j  -> 1    & i, c; u1 c6 ?5 Q; }2 z  c4 \6 j
' F, @$ k0 h+ W( s
exp(n)  4 Y. a( a5 J# ^7 z5 b8 f9 {
返回值e的n次方(自然对数的底)  9 Y+ t8 n! H1 ?+ I1 F3 O% ^
mysql> select exp(2);   
  `  T8 J0 ]7 e3 t" c1 ?" a  -> 7.389056   
/ d! I" V4 t' Q' |5 L# W4 e! Wmysql> select exp(-2);    3 a2 D* O8 K+ O9 [6 E
  -> 0.135335    3 s# r4 N3 l$ H1 J! ^6 F6 n. _. l
: w3 f& Z/ ~/ K" z" W- I
log(n)  
# }2 {$ m5 H9 H2 N: B6 [2 Y返回n的自然对数  ! Q* K- O3 s/ l3 q6 j4 B
mysql> select log(2);   
! c/ y9 O9 J+ C9 w$ c  -> 0.693147   
# z$ B4 b( u* c- pmysql> select log(-2);    % L3 s: g: j* g/ i5 n0 @( H, Z6 ~
  -> null   
8 @) z9 E8 h, Z/ p- S6 J+ H 8 R; x/ M* B/ U2 ~
log10(n)  
. J3 C' G; P( A0 O返回n以10为底的对数  
7 x+ v: ~% ^4 T8 N, Y( Wmysql> select log10(2);    , M9 T2 |* c% `; ]3 y! ~8 B
  -> 0.301030    5 z: X6 \' j2 [& w
mysql> select log10(100);    : [0 j& I3 S3 J' ?8 Q
  -> 2.000000   
9 L; V0 r- l3 r" U, V7 Emysql> select log10(-100);   
4 W- n7 f1 ~, w, E. g& `% a  -> null    " S$ G1 a6 n3 {2 S* b
6 r& n) r; g' `% E# }9 q
pow(x,y)   
0 y3 X& S: y* t% @/ p5 epower(x,y)   
+ [, C) T& [2 ?( \1 c) A5 Q 返回值x的y次幂  - K( ?5 D5 G5 v, Y8 e
mysql> select pow(2,2);    $ s* d1 p1 o: |9 f) t0 O* z
  -> 4.000000   
5 Q: U( T  A* k/ g& C' Zmysql> select pow(2,-2);    9 u) Q6 f: E. g* r9 y, m' f
  -> 0.250000  - A; d* Y# v% X& C8 t+ U! f
8 H6 V& [+ X$ {- F' i- A$ d0 H
sqrt(n)  ' o- u- G6 D/ I0 D/ M1 L0 ?
 返回非负数n的平方根  
) O- s) K5 `& }6 o, e* R% I; Rmysql> select sqrt(4);    * C4 L" n. o; i$ t
  -> 2.000000   
9 e1 a& ~6 E5 Smysql> select sqrt(20);    ) o0 y' x, a% d! i+ t
  -> 4.472136   
9 R; E8 f0 o4 D% U( G. {# B 4 Q8 c4 R2 r: {7 V, g4 @
pi()    0 g! g# b/ o- W+ ~
 返回圆周率   - d7 Y& G; `  u7 x. t
mysql> select pi();   
- T. e: Q3 \, h/ J2 P, G9 A  n  -> 3.141593   
6 u# i: W4 I6 E ! ~- U/ A4 t; \6 h
cos(n)  + p) Z* J3 @5 J6 G; R
 返回n的余弦值  " x4 ^8 I9 T# r0 ^
mysql> select cos(pi());  ( H0 r0 w& f( D* o6 a5 a
  -> -1.000000   
6 _0 g: }/ A# Y3 P4 X& j; x: G! f . b' F( ]1 @0 E3 w6 J5 c
sin(n)  7 N0 N3 S1 s2 v1 m2 C/ D- b
 返回n的正弦值   
+ q/ N8 E6 u; e8 n& K/ {# j# umysql> select sin(pi());   
  h/ f+ g  z2 e# C9 D  -> 0.000000   
" c* K- y3 |# q+ a
  t: [. ^- W/ p7 Htan(n)  
. C6 X+ t" M! T8 S返回n的正切值  
9 _" C: O) S* h4 Cmysql> select tan(pi()+1);    8 {: J. k( a' D* _6 F
  -> 1.557408    + r3 Y; a* [7 \3 k3 [/ k! q
. b5 q8 D: `% q/ m
acos(n)  . |' y+ [; Y& X5 C7 `
 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  
, F; U/ L# F% o5 Pmysql> select acos(1);    " N0 Q' B  f. ^, z+ g$ u$ [% r
  -> 0.000000    2 `: S% |" V/ H9 ^
mysql> select acos(1.0001);    ) e  p. y5 d( L8 k
  -> null    2 \2 u) \; m* d0 ^
mysql> select acos(0);   
* f2 B; f% [+ P! ]9 f4 b  -> 1.570796    7 u! H) v6 _4 W5 X0 n0 P' o1 b

1 N( \" O' F* N. B3 dasin(n)  
5 Q+ E2 L$ Y) a4 q  s返回n反正弦值  * m3 ~2 u4 a* @$ J9 ?9 e7 ~, {
mysql> select asin(0.2);   
% f6 Q- h% j, k1 h" k+ ~9 A  -> 0.201358   
4 G6 [( b& T& x! f" O5 J+ omysql> select asin('foo');   
) [* h  w3 ^% u/ v( G4 ~8 A  -> 0.000000    : D* d( k& t; r, Y
- M3 C9 x8 @+ ?+ ]
atan(n)  
9 _0 n5 @1 F6 }7 A5 |6 V. t返回n的反正切值  # q2 r; ?- ?) X2 M; W; v' I5 k1 i& e
mysql> select atan(2);   
6 |$ O# L. i% E# _" p  -> 1.107149    0 C1 @0 `" K$ q/ i- {: r
mysql> select atan(-2);    + I; n3 d( V! k# W* f7 _
  -> -1.107149   
  d! ~) M; q5 p2 F* F4 [4 s: I. B2 Fatan2(x,y)    2 W( K; r4 L  {4 o" e( F
 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  
" C9 N  W* ~! Zmysql> select atan(-2,2);   
- `0 u: P/ f" {9 K" O( `  -> -0.785398   
7 ?- [1 m$ s# i! Mmysql> select atan(pi(),0);   
) u+ G% u' p7 `6 v. Y  -> 1.570796   
- P1 n6 T  d3 N8 z0 Q- Q
/ x' {  r. _% J. G6 icot(n)  
$ n0 H) j% a# g% p( S& m5 a- x7 Q) x返回x的余切  " y6 e) d7 ~+ m7 \
mysql> select cot(12);    / `1 _3 n8 F' w1 D" {5 K
  -> -1.57267341    6 |/ B& a, T5 a0 m2 ^
mysql> select cot(0);    # f% A* {; q8 `9 T  t/ m+ O% Q
  -> null   
7 K7 |3 i# n9 W+ x
$ L/ \1 n8 v2 q& frand()  
, ]8 u' f7 }$ {* ^3 w* vrand(n)    
! D' F( l8 @. D" W% O1 |返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
: g2 k6 o+ u! Y. x/ _( m7 Z3 T1 R0 |, v
9 R3 U) b* N7 z* N. j  B2 R3 smysql> select rand();   
( j' P" T2 F. E$ V' L8 @  -> 0.5925    ' r9 q0 }) P! |# W$ c+ U1 J
mysql> select rand(20);   
7 Y/ m. T" I$ B  -> 0.1811    # j- o$ I, n$ S: |6 T
mysql> select rand(20);    ; R1 h& Z; Y! N& l
  -> 0.1811   
7 D8 r2 @6 _( x% Q* i& jmysql> select rand();    + s  S3 `1 k$ g# D( i; F- h' A
  -> 0.2079   
1 P/ T- n! Y+ c) m, o$ lmysql> select rand();   
6 ^4 e. a( j% N9 ]& s2 b+ w. @  -> 0.7888    ' B- ~0 S% t+ Y, n# k

+ E9 i3 Y  b, U+ s% P5 Vdegrees(n)  & P+ J5 p# H0 j, z/ X% I3 b
把n从弧度变换为角度并返回  8 ?4 ]; H! C* J$ O0 d" a2 A1 M7 a1 M
mysql> select degrees(pi());   
- _4 X) _( Y+ e  Z8 [/ f4 G1 R  -> 180.000000   
, ~3 J% C$ p4 \" `+ Y1 ` 4 H- [' E% E1 H- s
radians(n)
: z' O3 R/ G# \1 z把n从角度变换为弧度并返回   
" F1 b! M7 l/ G% ]% \' j$ C, Z3 cmysql> select radians(90);    0 W; I) i+ }7 M; q
  -> 1.570796    4 R8 N4 {, ?* x% [! S( [$ L* `
, x+ V% p6 U' r% g
truncate(n,d)    " q  @: f) o4 i2 C# y% J
保留数字n的d位小数并返回  0 s6 }- j8 n3 L8 J* B. {
mysql> select truncate(1.223,1);   
' w, o: j" Z8 _( S; J' H) t  -> 1.2    4 @8 D# n' x. O
mysql> select truncate(1.999,1);    , x1 B  i7 c7 s
  -> 1.9    + Q' R) p2 H# L4 C! G" r! W7 R
mysql> select truncate(1.999,0);    - T/ E% a6 `, W; u  @
  -> 1    ; W$ z- V- ~0 q" G6 o' w

3 x+ @) K7 _+ |( ]least(x,y,...)   
" A- ]2 f0 ]4 k返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  : g5 n4 ~( O& m. \. l' F% b% \2 b, F
mysql> select least(2,0);    2 ^. h% C. L! t  r/ x" O0 @
  -> 0    # B. d9 S0 s: ^
mysql> select least(34.0,3.0,5.0,767.0);   
/ b5 B$ M( D1 T9 u4 o+ y: M6 l- @# G  -> 3.0   
8 a) U5 @9 \2 c5 F: ymysql> select least("b","a","c");   
/ K) ^& m* W5 B2 y  -> "a"   
( u* v6 i5 f& J) ?# N) g 2 C7 v8 l2 w7 j+ F/ ?
greatest(x,y,...)    ( q. G8 t) W5 M" W
返回最大值(其余同least())  
5 M+ [- V2 H! b- ?9 |' e6 h! umysql> select greatest(2,0);    & @1 }/ j' M: A  J8 F9 ?$ i) Y
  -> 2   
5 ^9 ], I. t( b, \mysql> select greatest(34.0,3.0,5.0,767.0);   
' |& _" M, s7 y1 s$ \- c  -> 767.0    ! `3 c2 U* H% R$ ~
mysql> select greatest("b","a","c");    6 h+ e+ @+ u. {- G; ?" B. J2 W8 W+ d3 H
  -> "c"     0 G' c% ]: w6 F) s$ W( W

; W$ ^( f2 U( i7 }3、时期时间函数
7 Q, r- o6 L( i1 W/ K! s7 v* K* vdayofweek(date)   
" ~0 G* }) ^* |; i2 K返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
4 W8 G; ~( E! q+ R$ c: G7 Omysql> select dayofweek('1998-02-03');    9 M8 v9 P2 ?$ B$ q
  -> 3   
& L. f0 P* q3 u, z! D ! I$ G/ l: Y2 W- e1 K. m
weekday(date)    ) p" L6 T; K; ?/ b
返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 4 p' i. |8 h. i5 |) i* z
  
5 a# a/ {8 w  b, J5 \mysql> select weekday('1997-10-04 22:23:00');   
1 K! Z/ J3 Q5 h) I  -> 5    , `% [  n: Q$ a7 D5 `
mysql> select weekday('1997-11-05');    $ u$ g, `# }+ }5 X
  -> 2   
$ J, Z  A% f) j9 N: f 9 C  ]; i4 F' r& \
dayofmonth(date)    
: z9 `) X- s4 t. p7 e7 D返回date是一月中的第几日(在1到31范围内)   
$ n" x, I3 C% ]7 b, mmysql> select dayofmonth('1998-02-03');   
7 S. r% k6 f: b' X( S2 C  -> 3    7 k$ y* U9 o* I

* B: |1 d4 A& b0 f  e( `dayofyear(date)    4 @9 Z: o; A4 \! Y. W
返回date是一年中的第几日(在1到366范围内)   
* r% \- o' F# Z  \% M) r3 \mysql> select dayofyear('1998-02-03');    " K" Q- v0 A8 }. k( ]/ h
  -> 34    . |7 h4 V; O9 L0 d9 B
, N/ A5 Q) v8 m. [4 @) P
month(date)   
7 A1 E4 n, h  y  T返回date中的月份数值   
( z) z! M3 Z" |/ V' nmysql> select month('1998-02-03');    & D$ g( z6 A7 [. J! {! }5 J
  -> 2    - S. V# E% m* Q8 N* E
/ |& |/ u3 W/ C: H: T
dayname(date)    ! g& Y  k" M& \9 \9 w  r. E  M0 C: ]
返回date是星期几(按英文名返回)  3 t1 _' w' t; {
mysql> select dayname("1998-02-05");   
6 N% v0 B" v  S. j5 v  -> 'thursday'   
+ ~# L& J2 v" @! g
- ^! o+ Q7 G5 h9 W  _) ?8 Umonthname(date)    
1 h; s% l! q8 }0 T返回date是几月(按英文名返回)  ' H$ D# C3 `  y2 G. ]. T; J" o
mysql> select monthname("1998-02-05");   
6 A% \+ {) O0 L; p/ l! T0 x# X  -> 'february'   
; }* w# C5 B+ h7 d ; I3 d7 z+ h6 L* x6 c. Q' ]
quarter(date)   
8 N) F& O! c5 D4 E& f2 F# c返回date是一年的第几个季度   
1 i. B+ s+ s% Q, |( I3 V. bmysql> select quarter('98-04-01');   
8 m. V7 U8 y2 F; ^6 {  -> 2    ' `; y% Q0 N; |, \
$ s1 D! b+ B. v) ^7 `
week(date,first)   
: Q5 J' z' R! E9 S; ?# D& I返回date是一年的第几周(first默认值0,first取值1表示周一是
" `  f1 |+ g' u' Y1 p; ?周的开始,0从周日开始)  
, H9 R( ^' `# I+ Gmysql> select week('1998-02-20');   
: G# S7 `+ B9 B' U% [2 B  -> 7      L7 C9 A" o" b# y) T6 l- I
mysql> select week('1998-02-20',0);   
/ c9 P. Y( {8 d- w0 _1 }  -> 7   
/ S+ s# V+ r# r: G7 fmysql> select week('1998-02-20',1);   
; x( i* e& R  Q1 J0 v) h  -> 8   
- _; G& C% ^9 ] , {  K+ [8 s  I( F/ Q& _( C
year(date)   
) z8 s( v8 g3 ?+ Y( P返回date的年份(范围在1000到9999)    ( ]4 f% J( s( N3 ?8 c1 W
mysql> select year('98-02-03');    , d. ~9 h1 E$ L" u4 X! p1 T
  -> 1998   
! s+ P/ Y) f, A7 w- L1 ~+ k
$ [# s# h. B6 h1 |2 Mhour(time)    
  m" E+ v$ @" p/ C$ J% h# a返回time的小时数(范围是0到23)   4 K- k3 q$ @7 k4 S
mysql> select hour('10:05:03');   
$ h$ |0 {2 M' ]! \: E3 ^7 ~1 w, I+ U  -> 10   
' E$ z9 w$ O: f " w9 S% `  s2 L, N  w: Y* |
minute(time)   
; J  F7 L1 V2 c7 t4 ~5 _$ I返回time的分钟数(范围是0到59)   
2 m1 A. u3 t8 o$ g+ Hmysql> select minute('98-02-03 10:05:03');   
$ |0 i+ f( w9 Q$ J  -> 5   
( T6 P- G; q2 G6 l% N& P3 t# `
' K0 C) k: p7 L  K7 y- Fsecond(time)    
) F7 f* n" d2 N4 A9 {9 H" q; \返回time的秒数(范围是0到59)   
+ i1 R5 @- s, amysql> select second('10:05:03');    6 n6 U0 f9 H/ k$ O# m% @* A+ z
  -> 3   
1 I5 p0 n$ q8 `7 r* t. m. d 1 o( L5 ~' ~8 c9 G* V) r
period_add(p,n)    * \: q. G1 j) s1 [) w5 y
增加n个月到时期p并返回(p的格式yymm或yyyymm)   
; a) ]5 H/ Q" a: ?& ^mysql> select period_add(9801,2);   
% q& p) v6 z  W2 L& ~  -> 199803    ( d" p# q3 K* {- D
9 n3 o0 J# K& ~: ?4 v* }6 p
period_diff(p1,p2)    1 M$ X) j+ @8 l) q9 E
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  2 r# C# v& t& A, R' U# Z1 G& Q
mysql> select period_diff(9802,199703);    , _" `+ |# ]" i4 Z" d. {# Z
  -> 11   
  F3 [$ r. a' b& d . b: ?* M9 J! D% @4 F' t
date_add(date,interval expr type)  
. s$ L* Q5 z/ j! w& y5 W% i0 udate_sub(date,interval expr type)   
- _4 {# ~+ y9 O1 G! A/ B9 }adddate(date,interval expr type)   
$ E" c# t% l- H& Y" isubdate(date,interval expr type)  
# A' u3 Y; k6 W对日期时间进行加减法运算  + E% t: ^2 M5 D* O7 n# x
(adddate()和subdate()是date_add()和date_sub()的同义词,也
+ J9 z5 M+ l' x' D* @可以用运算符+和-而不是函数    N, h- ^# G7 c
date是一个datetime或date值,expr对date进行加减法的一个表
/ j# I' c; c+ g达式字符串type指明表达式expr应该如何被解释  " n! a- g3 X% ^6 }, M, \' w
 [type值 含义 期望的expr格式]:  7 \1 q! s' `; @& ]; q# A
 second 秒 seconds   
' z/ L$ M: z1 @1 t& @1 J1 o minute 分钟 minutes   
) L9 Z8 y. M" p4 H& i hour 时间 hours    % N4 H3 k2 \' s
 day 天 days   
) w2 D% {3 x  Q- P# S month 月 months   
3 A, n5 q+ o1 ]. P5 o+ ? year 年 years    * s% T; Q% M- A+ k2 `4 V$ U" t
 minute_second 分钟和秒 "minutes:seconds"   
0 y, a! e- \6 k9 D- T hour_minute 小时和分钟 "hours:minutes"   
! p8 |9 @  f5 }. U, C day_hour 天和小时 "days hours"    ) A) _! I9 F3 u
 year_month 年和月 "years-months"   
& w# |, u& H/ P, J, G1 w* b; _ hour_second 小时, 分钟, "hours:minutes:seconds"   
! g  ?6 S" d  v. ]' }/ F) z" A day_minute 天, 小时, 分钟 "days hours:minutes"   
; N8 p8 \9 a7 F# _ day_second 天, 小时, 分钟, 秒 "days
$ ~- @1 [( Z: t+ zhours:minutes:seconds"
+ j$ m$ C+ v1 \' }3 y expr中允许任何标点做分隔符,如果所有是date值时结果是一个
5 ?1 c6 _7 h7 Vdate值,否则结果是一个datetime值)  ' A$ \# ^/ n" |/ j$ r
 如果type关键词不完整,则mysql从右端取值,day_second因为缺
( h" A8 \& E4 C- n$ W6 ?8 O  C0 F: @8 O少小时分钟等于minute_second)  . o$ T- c5 @& q6 E5 o- G5 J
 如果增加month、year_month或year,天数大于结果月份的最大天( m' u" z3 T  f/ W3 A
数则使用最大天数)   
; g: a* A" {$ j7 k& vmysql> select "1997-12-31 23:59:59" + interval 1 second;  
8 [! @% r9 D9 L
+ J, W/ `9 F6 k) U. q: H  -> 1998-01-01 00:00:00   
6 g8 z8 P. f3 G. e5 Y4 pmysql> select interval 1 day + "1997-12-31";   
1 R6 b) C5 U) J8 U4 k  -> 1998-01-01    ( x2 B3 M, h; N$ J
mysql> select "1998-01-01" - interval 1 second;   
' f# b4 e. }3 B5 v) q* e6 ]5 F  -> 1997-12-31 23:59:59    1 F+ |5 F+ x) N, G& P% b; |
mysql> select date_add("1997-12-31 23:59:59",interval 10 ]3 v/ s- U2 Z) Y5 e
second);   
4 o$ o, T" T; c6 P* g; M  -> 1998-01-01 00:00:00   
( ~- S$ B6 x( S3 T$ L) p; o9 ?0 Smysql> select date_add("1997-12-31 23:59:59",interval 1
: x- G# V' Q, Y2 p/ W$ L7 U) K* eday);    4 a5 z+ a6 G' Q# k& D! W
  -> 1998-01-01 23:59:59   
2 V, n' C+ @% }3 Smysql> select date_add("1997-12-31 23:59:59",interval3 w: v2 r5 `. R8 u9 c0 r
"1:1" minute_second);   
. E4 l9 C/ e$ j. C9 C  -> 1998-01-01 00:01:00   
) \+ S1 S4 k9 c) w9 L" b1 Wmysql> select date_sub("1998-01-01 00:00:00",interval "15 d: o, L3 `1 e) y: b  g4 I
1:1:1" day_second);    ! q/ v9 R; t9 x+ g3 {& M
  -> 1997-12-30 22:58:59   
+ F, k: v3 k! J: emysql> select date_add("1998-01-01 00:00:00", interval "-1
" f' K, s1 V- L" H10" day_hour);  
* H% F, i% D+ ]* d  -> 1997-12-30 14:00:00    4 L2 x3 j) S% X, E! X
mysql> select date_sub("1998-01-02", interval 31 day);    ) w1 X) X0 t0 b+ E( S2 c
  -> 1997-12-02    ! R9 I4 B; ?/ E9 Y
mysql> select extract(year from "1999-07-02");   
! Y7 i8 x9 H- R  d- _. N6 b" [" \  -> 1999   
9 u  d. v7 t# A6 C$ e. B$ gmysql> select extract(year_month from "1999-07-02
9 A/ b2 I8 E' F' ~4 W) X8 |" A01:02:03");   
  j( L$ N0 E5 K" u9 S  -> 199907    2 I+ b$ K; f: u) R" W- L- K" U
mysql> select extract(day_minute from "1999-07-02
8 g- `& ~+ H( M- U+ b# v, m01:02:03");    # a' ]* b# ?1 w6 P5 D
  -> 20102   
4 _$ V" ~2 x/ f4 r# m " E/ o: D# F3 j; |; k  Z0 E
to_days(date)    ) b. y( v3 {4 \$ k
返回日期date是西元0年至今多少天(不计算1582年以前)  # Z; c9 V4 e9 h+ P! {4 j8 D
mysql> select to_days(950501);   
) B" _1 A- N4 L- d  -> 728779      x) W& m5 C9 m8 c
mysql> select to_days('1997-10-07');    ( w& p: d: ~, J. N( B7 i# K
  -> 729669   
" P: z0 H7 Q& G) D8 n" Z( @ + j5 e7 Y+ @3 p# d
from_days(n)   
0 a; W9 w1 j/ k. f6 | 给出西元0年至今多少天返回date值(不计算1582年以前)   
4 K9 H/ l' e- X! q) X) Imysql> select from_days(729669);    3 A8 m9 z  h& G0 s
  -> '1997-10-07'   
' ~: C- y* J+ W& ^/ e0 c2 o - @: o$ `+ X3 I$ i/ g8 }
date_format(date,format)   
) ]8 P2 K7 \  v$ `2 V. b 根据format字符串格式化date值  
, x* T8 d; f! ?  o0 F (在format字符串中可用标志符:  
- s2 t; X4 u, }  m* ~ %m 月名字(january……december)   
! D' I% d, M( b- Q %w 星期名字(sunday……saturday)    7 s4 W9 L+ ?& V1 V4 g. B# E
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    & o5 V. p$ r( _
 %y 年, 数字, 4 位    9 I" a# R+ M& F
 %y 年, 数字, 2 位   
' w6 ^, W+ C; X5 B" `5 g6 v %a 缩写的星期名字(sun……sat)   
8 v% L0 ?/ j' [9 r0 _+ Z$ s %d 月份中的天数, 数字(00……31)   
- T# w* b- ?4 q& y, N" @" s %e 月份中的天数, 数字(0……31)   
$ T  K( P0 J/ ^, w %m 月, 数字(01……12)    ! W) o, x0 J" s2 {
 %c 月, 数字(1……12)   
# N1 i/ ~# Q4 E! K; M1 i8 D; D %b 缩写的月份名字(jan……dec)   
! q/ f2 D+ L! {2 q" M% p %j 一年中的天数(001……366)    * z( i7 o, q% p: V8 d9 A6 |. A" A$ q
 %h 小时(00……23)    1 r  m, |7 z1 n0 \
 %k 小时(0……23)    8 f# k  K6 [* l( H1 E! S. g
 %h 小时(01……12)   
7 ?& q) Z, V# Q. V %i 小时(01……12)   
9 d9 q8 m/ k' T7 ^+ H, Q3 d %l 小时(1……12)   
/ L# H/ h' H, t1 o, D %i 分钟, 数字(00……59)   
$ T( Y7 f* d$ T, n1 y %r 时间,12 小时(hh:mm:ss [ap]m)   
6 L" a1 K' H: u3 |& Y %t 时间,24 小时(hh:mm:ss)   
7 [" z% z, f# { %s 秒(00……59)   
" \8 J/ o$ d1 c# R" c# g %s 秒(00……59)   
0 Y3 a' c' B4 `' P4 u %p am或pm    0 l7 p6 c% y6 n4 ?& W" Q
 %w 一个星期中的天数(0=sunday ……6=saturday )   
1 I) C/ j% s2 D2 r2 X1 V& r %u 星期(0……52), 这里星期天是星期的第一天   
" N4 b1 D5 \- e" _4 ` %u 星期(0……52), 这里星期一是星期的第一天    - X. s( {3 k- d0 t/ d
 %% 字符% )  0 I( L8 [; @% O3 U" _/ m
mysql> select date_format('1997-10-04 22:23:00','%w %m %
) T& F, L5 E. {% ?& E! y) Py');   
  k, a+ R4 ~4 F  -> 'saturday october 1997'   
: m: Q# C* ~: }+ |0 {mysql> select date_format('1997-10-04 22:23:00','%h:%i:%! ]8 \# L+ X# {4 s+ k" w, G
s');   
5 T! n* G4 M* S" i  -> '22:23:00'    + H; H2 U% g: W5 g& U: ^8 W
mysql> select date_format('1997-10-04 22:23:00','%d %y %a
3 k0 a5 c( b- o* f( Q6 t%d %m %b %j');    2 E( I$ M# A  }$ o& O7 |4 n! j
  -> '4th 97 sat 04 10 oct 277'    , V3 X- C. ~6 n2 e8 H- z
mysql> select date_format('1997-10-04 22:23:00','%h %k %i
0 `, j; j& A5 e5 K- K%r %t %s %w');    & b& J) `! O/ H2 r5 K, v6 S0 Y) \
  -> '22 22 10 10:23:00 pm 22:23:00 00 6'   
2 T  a) d9 @% {% U& l( | 9 u' [1 C2 }7 D6 N/ i# Q
time_format(time,format)  7 s5 g4 o1 s1 ]! A
 和date_format()类似,但time_format只处理小时、分钟和秒(其& n- S0 K8 u! i  L
余符号产生一个null值或0)  
. }6 J1 r* F9 C& [" e, M
; A* s1 J; O% V# Ncurdate()     
# A! u* l& ~; ]  k" l. g' T; hcurrent_date()  
* J# d4 D( y) K5 ] 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所( N' {! X2 S" X9 ]. Y
处上下文是字符串或数字)   
6 I( _+ o$ u# l6 P: umysql> select curdate();   
: c) Z4 @" Z/ M( s1 g  -> '1997-12-15'   
# ~" L! Y5 x' L- o6 a, J: kmysql> select curdate() + 0;    ' M) f' l, [9 L
  -> 19971215    # U! p; a% O$ d& i( J
7 Q4 ]/ O( ?$ H' P' u4 n# x: U
curtime()    % ^" J9 s- v4 _" `. N! v% P
current_time()  
* M* m9 t- J, Y7 h 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
) E1 N% S4 ?0 c4 d0 ]2 [下文是字符串或数字)      & T( R* L; f9 Q3 \: f; ?
mysql> select curtime();   
4 S  H9 l, ~& C- N0 i5 X( D, w  -> '23:50:26'    8 \  b" x1 |! R) r
mysql> select curtime() + 0;    1 ]: q" z! ]2 k7 S9 W
  -> 235026   
% l* e5 e, C, k# k$ @$ I # P- w! d1 U9 Q! s6 ~
now()    
; R, J  F: h2 ?, h2 J2 O9 q2 Zsysdate()    2 K5 n3 q3 P+ |2 u3 b! H' \
current_timestamp()  . `, Y* C8 U) n3 G9 H! F% o) ?9 ]
 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
. u8 d$ p4 F% m# I' n1 W时间(根据返回值所处上下文是字符串或数字)     
2 x* M  I" A9 ?) N' A7 ^. R0 Lmysql> select now();    & I1 b& ~5 v' z1 O
  -> '1997-12-15 23:50:26'   
6 V' ?1 j4 x5 Z0 y4 K  @2 q" Omysql> select now() + 0;   
" R: g3 B& f- {% a) x  -> 19971215235026    4 r5 b+ |. ?2 R8 [$ H+ T! }% \
1 @4 Q6 G7 x4 m4 N, Z* P
unix_timestamp()   
( k4 |- j' C4 D. C2 g" U2 yunix_timestamp(date)    & K% s( C, L% R4 Q, Z2 P
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒' h2 H1 O- _: O( R
数,date默认值为当前时间)  $ k; v* q: x: \0 Y
mysql> select unix_timestamp();   
: _3 {7 {4 R4 Y5 F5 ]. o  -> 882226357   
5 }: a) e8 b, n. O& c( O0 j0 ]mysql> select unix_timestamp('1997-10-04 22:23:00');    " B: j. ]9 m8 g; k) p
  -> 875996580   
5 d9 d( M/ U: e8 A
( p- T7 e( q% [" _. tfrom_unixtime(unix_timestamp)    : H' b. [0 a. [8 e
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的3 G8 M! z1 Z/ Q" l, R; D
值(根据返回值所处上下文是字符串或数字)     / ]8 v) A1 C0 D3 p; u
mysql> select from_unixtime(875996580);    / p6 j4 b: p) x# q
  -> '1997-10-04 22:23:00'    % e# l' l* S" t# E8 ?
mysql> select from_unixtime(875996580) + 0;   
4 K. L4 c6 {7 N! Q  -> 19971004222300    6 a/ _. R) Z8 M0 N
! k" Q  m+ c; I, e. l9 d
from_unixtime(unix_timestamp,format)    
7 @/ _0 H  P( B以format字符串格式返回时间戳的值  
( D- |6 Q3 Z$ n! Z8 j7 kmysql> select from_unixtime(unix_timestamp(),'%y %d %m %
: H1 j$ e- f) i; Zh:%i:%s %x');    1 q- r) u2 E; ^5 Q  K7 S& S
  -> '1997 23rd december 03:43:30 x'    5 b' C4 M# {: `
! d2 ^; {9 k( Q8 R+ b9 k* L, k
sec_to_time(seconds)    . r4 y* j$ m3 w. i$ x0 x9 ?5 |+ C
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     : x. D  w+ i, j
mysql> select sec_to_time(2378);   
; K! I' a0 W1 {0 r$ {7 a  -> '00:39:38'    8 ]1 J8 ?- {) b$ E" T9 M/ N/ p5 F
mysql> select sec_to_time(2378) + 0;    & ?% h' m# y: w9 N
  -> 3938   
% T& ]# o% j2 U) f% p" f 5 r+ ?4 y, k; F! y. V( O  ~
time_to_sec(time)      ^2 x, d+ b. d: d0 g3 `# ?
返回time值有多少秒    4 G3 B' V6 C8 g, i+ z" Q9 i
mysql> select time_to_sec('22:23:00');    5 T( @! f! G1 L9 B# k9 s1 b( j
  -> 80580    ' E, M  H0 e8 s3 f/ p- X3 E; P
mysql> select time_to_sec('00:39:38');    9 C) U5 E) J" Y' i* t5 q  h
  -> 2378 : S( P# H2 M: p, A2 M

+ P, l+ q& a3 a+ p0 P转换函数
& d. t: J; K. r, K2 {$ scast
: }. P1 e- H$ C# M, M用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]
: R. Z' n* q2 F, m( c实例:select cast(a as unsigned) as b from cardserver where order by b desc;. c7 H  ~* K2 Y& u/ Z: j6 x
convert:
7 ]- n( b# G" I用法:convert(字段,数据类型)
# d; X" N% p7 x2 e# L* s7 A* e实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

/ F6 [6 r* h+ B# S% s3 ^




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