中国网络渗透测试联盟

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

作者: admin    时间: 2018-3-21 16:07
标题: mysql常用函数大全
1、字符串函数! f) y; W6 ~+ G8 K9 o+ ^
ascii(str)   
( H5 _: i* _8 \# v2 I2 j返回字符串str的第一个字符的ascii值(str是空串时返回0)  1 [$ x# W0 B2 i
mysql> select ascii('2');  
7 [% ?) U, V9 A  E4 p  -> 50  
; }$ E8 ~+ ]) c; w* T- a  Nmysql> select ascii(2);  . d: N1 w' ]4 M. ]6 ^* A
  -> 50  
3 I3 ?: ?) X  d) K0 \; rmysql> select ascii('dete');  3 X# D" g: ?; d
  -> 100
; _4 t; [: ^3 W" W1 ]
ord(str)   
6 |' s$ R, Y/ D如果字符串str句首是单字节返回与ascii()函数返回的相同值。, ?! ~$ u- N. }+ k( q$ q" E
) W/ ]9 w8 H, o
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  
# ?( j( ]0 c. E' _mysql> select ord('2');  ( B0 i9 G' i/ j5 o
  -> 50  * u% z$ A) {% W
   ) [- x& y& t( P+ L) c, o3 J
conv(n,from_base,to_base)   : e; A3 L) |2 ~+ `# Q  H( e
对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
( H+ d( V0 K  O+ e% l* pmysql> select conv("a",16,2);  5 k0 ?, `4 Z/ x2 V  E+ |) R
  -> '1010' ( C/ T/ [! @8 b' }* P  D
mysql> select conv("6e",18,8);  
8 C" W" Y$ d( ?* y, C  -> '172'
* ~) i' \+ D# S0 A. P$ Wmysql> select conv(-17,10,-18);  
1 q5 i) l2 t' O  -> '-h' 1 E& q. L' B2 {" {2 b; B. D
mysql> select conv(10+"10"+'10'+0xa,10,10);  + y. g, S$ ~9 Q
  -> '40' $ G/ d5 V5 O4 ?  [- K
   . V# }7 x4 O6 M
bin(n)   
6 x9 i. M# q$ T; I( x8 m  I把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
0 y* f! u" F) U6 K5 {% Q5 amysql> select bin(12);  
8 I1 _" ?5 Y' |' W  -> '1100' / j3 H/ c2 `) C9 }: m4 @

! o. i+ V+ y5 f/ D* Yoct(n)   
# b' V2 X# }9 ~8 y0 j把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
# j8 F+ G2 o5 Vmysql> select oct(12);  . P% D* G" s3 z: c' u3 G$ `
  -> '14'
  H, e+ T+ a9 j$ U   / W- p  m  Q4 d8 t$ O* i, [3 v
hex(n)   5 y. c7 Y* C$ N4 \9 p! m
把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  9 o3 m) y* ]: K* @5 f
mysql> select hex(255);  
4 A; t3 ^) ^$ }4 r& U& [4 O3 W  -> 'ff'
8 e2 W; x$ X2 n8 i& E5 P   / Q3 D  }7 b5 b% T! m/ C& _
char(n,...)   
, q0 H1 g) s4 c  T) z: Y% {1 L3 M返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   4 y: J! c. q  z( B) E+ `
mysql> select char(77,121,83,81,'76');  
' I9 Y& z- s- C* Z5 I( ^  -> 'mysql'
3 ~* S0 }) `' W8 a2 Xmysql> select char(77,77.3,'77.3');  
8 g$ V: _( s; |& w2 [8 @8 g9 V9 P  -> 'mmm'   G, b4 p6 Q: ^- H+ S9 \. k2 i1 U
   
' U, Z. T5 g* y' l3 uconcat(str1,str2,...)   2 G1 H( O4 v6 x4 ~9 R
把参数连成一个长字符串并返回(任何参数是null时返回null)  6 n! p5 |  E: a' _8 S+ i5 U% s2 ?
mysql> select concat('my', 's', 'ql');  
* v& I0 a4 D: C) z  P& F  -> 'mysql'
9 F8 J9 X- S$ y" f# K$ Q$ a: pmysql> select concat('my', null, 'ql');  
) X) }! e5 I7 e  -> null
+ I' o* Q& |+ ?7 |mysql> select concat(14.3);  4 m* y4 I6 I- F  N; S4 a- y
  -> '14.3' 9 U4 z( @, f  s3 F
; x. ~7 }: |1 R2 v# O. O
length(str)   3 w' _/ w( r+ w1 S0 q
octet_length(str)  
9 L# e& Y2 J5 w# rchar_length(str)  
) A" ]) B! J  [" Tcharacter_length(str)  
- p: y9 O) p4 G6 Q8 C返回字符串str的长度(对于多字节字符char_length仅计算一次)
$ a7 @3 S) x: i3 X+ v5 D: H6 umysql> select length('text');  
! m; |- }5 J7 t" ?1 g& S0 ~  -> 4  % B* s) W, Q( ?- C, e* Q
mysql> select octet_length('text');  
! P$ h  j% ?2 n. [  -> 4  7 Q8 s. u* D4 K/ V
- S5 c, Q! d& e  K( l: P5 `
locate(substr,str)   
. f* L( z5 W: W8 mposition(substr in str)   $ |) b8 F8 X3 \: K# Q5 ]% s4 a
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  ; ~$ J$ Z9 N. F
mysql> select locate('bar', 'foobarbar');  9 W. d" r4 J! L) f. M$ e8 I& B% n
  -> 4  
$ t2 G, m1 y' L; ^& ~4 `mysql> select locate('xbar', 'foobar');  
2 }, |+ F$ f* g. T  k  -> 0  
" A8 \) s$ N% L    5 z% T3 i$ ]: k  r. f0 w9 P' Y
locate(substr,str,pos)
$ p( c- ^. P. H; d$ w& s! `返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  1 F, v$ |8 ?  [5 D( o# U
mysql> select locate('bar', 'foobarbar',5);  " c0 @- z" H3 _5 e- w
  -> 7  : t/ i- B) v6 V, ^$ X

. ?& |. a5 |& e! \/ t% Uinstr(str,substr)  
( N% g% U6 h/ g) P* B返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
2 ]7 ]( z* q+ J' t! ^3 Cmysql> select instr('foobarbar', 'bar');  2 h* t6 S. W  M$ d5 y* T3 i, H7 P
  -> 4  
& L! s2 Q: ^! J# W& a( J( dmysql> select instr('xbar', 'foobar');  ! Y8 o/ U4 X. ~+ |6 D
  -> 0   $ B$ P( Z3 A0 P  Y
8 P& O4 L+ i6 w! B
lpad(str,len,padstr)   
2 l4 W  h" x6 U8 h: E* q$ f) j/ w用字符串padstr填补str左端直到字串长度为len并返回  
& y% `* g; [; b% C7 ]' nmysql> select lpad('hi',4,'??');  
$ r: y: r  Z4 }! K6 Y# M7 D  -> '??hi'
4 t* W* O2 u) @- B# B& w8 G3 t8 Q& [   
5 |* ?" i/ ], @# `0 Trpad(str,len,padstr)   
0 g4 C. g$ U8 y+ y用字符串padstr填补str右端直到字串长度为len并返回  % n: h6 G- E+ E! I6 c
mysql> select rpad('hi',5,'?');  
' g0 S- ]9 g1 R- a  -> 'hi???'
- N: e, I0 i3 y" k, y3 P% B
+ s! X& {6 A8 M2 jleft(str,len)   9 l6 ?: k8 }3 j0 v
返回字符串str的左端len个字符  
+ E. d0 G# h, v. mmysql> select left('foobarbar', 5);  
( L, w: _7 L% S8 e  {9 `  m' Y  -> 'fooba'
, v" n- |- z+ z7 P7 y" k 1 r* m) w5 K7 y2 N
right(str,len)   ) m0 o8 V  G* G
返回字符串str的右端len个字符   ; l- p5 f9 `2 @/ n
mysql> select right('foobarbar', 4);  
1 @5 }4 Y. v) f- D  -> 'rbar'
0 }6 ?8 Y. ~6 x0 P- I
5 Y/ Y: p' O% i  a0 {2 d8 Q! nsubstring(str,pos,len)   : |3 g/ D# @4 s+ w
substring(str from pos for len)   . f# N; `7 B9 B/ t
mid(str,pos,len)   
# Z# U, {3 O0 c; b5 x返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  - v0 m2 V9 l+ S2 G& h1 N
  -> 'ratica' 6 p' u3 q$ K4 D
2 b! Q- e/ P0 a# v+ D$ N
substring(str,pos)   ) o0 e% Z$ e9 P1 v
substring(str from pos)   2 D& A0 s/ b0 _( i) Q) t) m
返回字符串str的位置pos起的一个子串  7 \4 I: N" _) N3 F- o
mysql> select substring('quadratically',5);  
5 `; q5 z8 U' F% q, V5 _3 T5 `  -> 'ratically'
# i4 }$ U( I4 \! K( Cmysql> select substring('foobarbar' from 4);  
- P+ `/ |& j! X0 ^: F9 B# S& T+ I  -> 'barbar'
/ \& x* k8 Y3 q" M
! W4 R2 v. a$ n# D$ L/ l9 D" _- qsubstring_index(str,delim,count)   6 e; D! {) ~8 w1 R2 @
返回从字符串str的第count个出现的分隔符delim之后的子串
' g2 V0 y& H! c: D6 f(count为正数时返回左端,否则返回右端子串)  * }+ U! z. i! t, k, N! T" }2 j3 S
mysql> select substring_index('www.mysql.com', '.', 2);  ! S% [! c; }* w& u8 i' d9 s
  -> 'www.mysql'
/ d# S  h# j9 }+ a6 L1 u- Rmysql> select substring_index('www.mysql.com', '.', -2);  % V8 L" Q9 c9 l* b/ t
  -> 'mysql.com'   J7 P6 w# r% u% c

2 v& ?9 L3 H, n% fltrim(str)   
9 B: Y, z# A5 Q3 r* [返回删除了左空格的字符串str  
& }( g3 Z, }' G7 tmysql> select ltrim('  barbar');  3 g2 c( \9 [& l5 Z1 K
  -> 'barbar'
+ y. A$ d7 l( V7 z
& q5 p4 S, D8 Trtrim(str)   
% Z: {0 s! ]. T/ W' h! g+ \0 F返回删除了右空格的字符串str  * i2 B; V* `8 [
mysql> select rtrim('barbar   ');  
# F4 a2 j! j" z4 {# I1 E  -> 'barbar'
9 s5 A) F( n3 V$ r0 `$ }; ]3 R7 n& r ) l6 G/ U' t/ l: J& v/ `
trim([[both | leading | trailing] [remstr] from] str)   9 K, G& ]' R9 e
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
/ B6 W( T# b( Umysql> select trim('  bar   ');  & O6 D% i# K3 B. _) g5 H6 s- c  r
  -> 'bar'
' o- Y8 S* k% Dmysql> select trim(leading 'x' from 'xxxbarxxx');  ' f  b- Z; `. C
  -> 'barxxx' 1 X: w: _" Y' P$ a' d  X  ?4 m/ N( i
mysql> select trim(both 'x' from 'xxxbarxxx');  
3 D, _7 _$ T! ~0 x' N  -> 'bar' % n; g( X+ i8 X" j7 T
mysql> select trim(trailing 'xyz' from 'barxxyz');  
3 f1 P" c9 l8 E, m; g" e* g! O  -> 'barx'
. I- o7 E" j8 i, n! I1 _
# U  g3 Q% H2 |5 ysoundex(str)   ' n4 {/ j/ ~2 a* e: Z
返回str的一个同音字符串(听起来“大致相同”字符串有相同的
$ l: o- P- D! P同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  
6 A% o8 x# |( y3 K5 ]+ i4 Y* ]mysql> select soundex('hello');  
3 S6 Y! ]9 H8 J- ~* U' Y4 H  -> 'h400' ! M6 u) w- g4 d+ N- _2 B8 L& ^( ^
mysql> select soundex('quadratically');  
! j* U+ B( d' t3 f$ @, f  -> 'q36324' ! G+ d( ~2 X$ x1 S0 C( y" f# ~
   
8 b' \' Z1 O% t, x" d& s& D) r, wspace(n)   * I8 n2 |/ a+ h& }
返回由n个空格字符组成的一个字符串  * {: X% d/ O6 ^; f  D
mysql> select space(6);  
7 k( N0 ~3 s1 p5 @4 l: @2 L3 y0 ]  -> '      '
9 U/ \1 U0 x( c: \6 |( N   ' ]: k7 A/ h. k1 T8 m' K
replace(str,from_str,to_str)   1 X) N" ]' K* i3 X
用字符串to_str替换字符串str中的子串from_str并返回  
; L; u9 y% A: {- ?mysql> select replace('www.mysql.com', 'w', 'ww');  " w$ @/ ~  O/ `) C" u, H5 u
  -> 'wwwwww.mysql.com' ' Q1 C( f* P& Z0 L; x$ ?
2 b2 ?, ?) e: E4 T2 y0 D' `
repeat(str,count)     L9 v! [/ m0 E4 z+ N
返回由count个字符串str连成的一个字符串(任何参数为null时
& }5 p2 p: |4 ^# A& z" F; i" l( K返回null,count<=0时返回一个空字符串)  
9 N- }3 c8 K  V. rmysql> select repeat('mysql', 3);  
4 j8 T- R' b& r( ]5 d- H# F  -> 'mysqlmysqlmysql' 1 r5 I2 _* j& V/ I5 b1 a
   
- y$ F7 f' X- Q" \0 G3 t) Lreverse(str)   , \, I: ]( E7 W
颠倒字符串str的字符顺序并返回  9 z  j% q9 g" x& J, C
mysql> select reverse('abc');  
/ I6 O7 `9 X! N4 O# x, z  -> 'cba'
5 {2 `- Y7 z6 G3 b 9 p# b* G) G3 f7 B* @6 C
insert(str,pos,len,newstr)   ! t1 X5 S5 u$ H+ e; \
把字符串str由位置pos起len个字符长的子串替换为字符串
( i$ Y+ X/ {. R7 I1 u" _: Bnewstr并返回  
- D0 C) K" x0 `7 gmysql> select insert('quadratic', 3, 4, 'what');    h, V0 i8 ]  J& Q
  -> 'quwhattic'
5 a, y1 x& N7 p* _6 @% H
: m' G- n5 J1 {% u% g, m# belt(n,str1,str2,str3,...)   2 b- G$ d# _4 d" @
返回第n个字符串(n小于1或大于参数个数返回null)  
$ D- b/ d% E$ S/ d- Mmysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  
$ O: l( {* d7 Q: j& u4 `  -> 'ej' * J$ @% S) H* l
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  
1 r/ F/ v- S. d  n  -> 'foo'
1 G$ U) O. f( g, W 8 F3 e4 R# M0 K' @
field(str,str1,str2,str3,...)  
5 H5 m- c$ @5 t$ I4 {返回str等于其后的第n个字符串的序号(如果str没找到返回0)  - K4 F, h! F# Y, N' \6 a
mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
- ?- f+ A! I- i/ R5 ^'foo');  # ~; \8 \3 x, c% h& i9 X1 ^) o1 M
  -> 2  
; a( M( O1 s  \1 w) r5 m. P/ {mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
' T# E" N* b2 B" p7 _5 ~'foo');  ) B, v+ c3 H8 I6 }+ g
  -> 0  8 b8 s" K+ Q7 d

9 d5 F6 @$ `& C$ q: P$ x9 W7 a" efind_in_set(str,strlist)   
- v- J4 E$ S# Z, ?" ^; ~4 y: E9 C返回str在字符串集strlist中的序号(任何参数是null则返回4 G" Q3 u! c0 x5 b; U5 ]
null,如果str没找到返回0,参数1包含","时工作异常)  $ X6 S" C2 P) G. G) A+ c
mysql> select find_in_set('b','a,b,c,d');  # v* B) M5 `) l1 Y: h: _- p% ~, G
  -> 2  , p. d' E7 d; ]) ~6 b; M
   + r+ R4 A2 S. n
make_set(bits,str1,str2,...)  ( C+ y0 e( a9 H2 W  ]" E( R( B
把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应; j( U4 T0 [7 ?( [0 r
位置的字串选入字串集并返回(null串不添加到结果中)  ! w1 R% U- e5 r3 B; P+ ?
mysql> select make_set(1,'a','b','c');  % @* o% t; T+ S7 G" k) J1 m+ k
  -> 'a'
' v5 L$ W, {! w8 F* Z- Dmysql> select make_set(1 | 4,'hello','nice','world');  % X8 G8 p, h& d7 n
  -> 'hello,world'
) V, h6 S! m; ^+ n- H' y  @0 x$ imysql> select make_set(0,'a','b','c');  
+ M6 ]( Z( u6 n# k# q/ {  -> ''
% t# t" z, U+ q7 m* W9 k
) V6 _, L% P$ o2 a* Lexport_set(bits,on,off,[separator,[number_of_bits]])   # A4 w: l* J' B  B6 D' X
按bits排列字符串集,只有当位等于1时插入字串on,否则插入$ H/ Z- n, C0 \- X* _7 m
off(separator默认值",",number_of_bits参数使用时长度不足补0
, [3 r1 o) G% b6 g7 U3 q: d! B$ n而过长截断)   
; b. w  }" p9 q4 }) |mysql> select export_set(5,'y','n',',',4)  
4 e# u3 G0 t+ z4 D  -> y,n,y,n   + e3 V$ x* I& I* S& `
4 O2 w8 M9 n' K( i4 K  ]1 f2 c
lcase(str)  9 G' N  j" M# p4 K! h2 t) _; C
lower(str)   
3 R5 V; u' p+ }' _返回小写的字符串str  3 _% B. D, h+ a
mysql> select lcase('quadratically');  
9 ~  j- k$ E( z9 w. Y; q  -> 'quadratically' 4 Y8 }7 M" ^! k$ e6 R( |) ~! D
   8 |/ V2 E5 j" I; J  X6 E) A7 r4 u
ucase(str)   
( A9 U* W! ~! E2 K& R0 lupper(str)   ! {4 ~- k' J3 l; s+ l1 b# {
返回大写的字符串str  1 \' H6 }2 R0 ^5 ?( l
mysql> select ucase('quadratically');  
# o8 H9 C+ r* b  -> 'quadratically'
. o; X3 R( F+ l$ B6 C$ v
4 P2 `9 w% N/ s- f: }1 c; p& s& uload_file(file_name)   ; j3 V$ o+ z% V) C1 t8 ^- ?) m) P0 {
读入文件并且作为一个字符串返回文件内容(文件无法找到,路径  U7 }# T( V$ }: r/ y& \
不完整,没有权限,长度大于max_allowed_packet会返回null)  ( z* g) n7 D( ], n  P- B
mysql> update table_name set blob_column=load_file
6 ~/ q; H  e. {* f6 g("/tmp/picture") where id=1;  
8 }: R# X4 J' ?; x6 f& G 5 k2 J. D8 O$ K3 B6 J
2、数学函数
0 J4 a- _3 }2 x  y! jabs(n) $ A" u' \9 t* k1 [: s
返回n的绝对值  7 T, N7 d( e; J/ O+ J- P& P
mysql> select abs(2);   
. t, A1 P2 l# T6 {$ L) u  -> 2    # R! T' ^; _- V* A
mysql> select abs(-32);   
  q7 G9 }8 U7 U  -> 32   
& ~5 c" p7 i" f1 L2 J% \   # y/ f$ ]& a* T9 F
sign(n)  * _+ X) Q" Q2 I1 K1 B' g! o
返回参数的符号(为-1、0或1)    Q4 e1 o& m7 J; C. f
mysql> select sign(-32);    , w( a+ W0 a6 z: P. H) f
  -> -1    ! F2 [( [' x! X  v& s
mysql> select sign(0);    * |' n0 _4 n# ~( [
  -> 0   
3 j% h# a( q% M  a+ |$ d9 Z6 _9 Kmysql> select sign(234);    & b& J$ h6 x, u+ a+ }) G7 {
  -> 1    6 ~2 Q8 |; N* t) M# a1 m
$ Q( {7 D2 u5 W* i
mod(n,m)   
" c3 n" Y* V9 }. l取模运算,返回n被m除的余数(同%操作符)   
& g9 ?. R/ f/ Vmysql> select mod(234, 10);   
' W! ]/ Q; A+ d) C3 Z0 r0 }  -> 4   
- O1 H) |) M( r+ a7 F8 X) Imysql> select 234 % 10;    8 u8 A/ X- G6 f/ c6 O* k
  -> 4    6 V* Z3 F  J  S
mysql> select mod(29,9);    3 b- ?' W( L8 m
  -> 2    ! h9 u8 U  p0 d- B0 k

+ d! |7 Y5 p" p# m+ zfloor(n)  
) F( l) b" p  f, f& ]6 n返回不大于n的最大整数值  % j2 O( u  [0 w) P/ n
mysql> select floor(1.23);    " x6 W. |' ]1 k. X6 e4 F9 ]
  -> 1      o2 L8 m2 x1 h$ ]2 Y
mysql> select floor(-1.23);    ; q, {" R% C; I
  -> -2    2 i" Y( z  b9 ]( ~) _

4 G% _. K9 ?; q2 P; Jceiling(n)  3 h. x" ]8 D) W# C' M6 `+ G0 J; X
返回不小于n的最小整数值  
, W- O( J1 z: Pmysql> select ceiling(1.23);   
, `9 K1 Q) y) }. i. V6 F  -> 2   
6 ~( j: u, x. \' q8 f$ G9 m# _  m; xmysql> select ceiling(-1.23);   
& i7 b' c0 F3 w& |/ q4 i" g  -> -1    9 f& {+ v. J) O, y" I# d5 k- e: R

& e" w" E! C3 c; dround(n,d)  
6 m. Q' i/ l1 _返回n的四舍五入值,保留d位小数(d的默认值为0)  " `7 c& T) q8 }6 W
mysql> select round(-1.23);   
" W7 g! N7 R- b: z- E  -> -1   
' g5 G: r# M* U5 {- O) J9 r9 o3 Ymysql> select round(-1.58);   
' o4 M# `; |4 l+ S  -> -2    4 z. S& X% f( r6 ?, u
mysql> select round(1.58);    6 M: b. n1 D, V; H" N) {8 S
  -> 2    3 }- k; w1 X$ V. Y) O
mysql> select round(1.298, 1);   
" B5 a  V* g2 d+ }7 _  -> 1.3    0 x( P; {: F' `! a5 u" U
mysql> select round(1.298, 0);    4 f+ l6 f( l, O) c$ q4 x6 n* }
  -> 1    8 ^( [# a& ~! Q. f- @

( x% T# y7 Y% F' `$ @7 h4 b: nexp(n)  & h; a: D3 z8 f
返回值e的n次方(自然对数的底)  % l& Q1 ]2 R+ r- d* C. U
mysql> select exp(2);   
+ b$ v8 w; @/ X  -> 7.389056    ( `7 z9 g: ?) U% k1 S* N
mysql> select exp(-2);   
1 s/ g1 `& B4 t8 u9 O: @0 }' r  -> 0.135335    9 w) i, g3 s, z9 [+ K5 |

( [( T' Q( N3 Q9 ]0 R5 flog(n)  5 z  @* \% l: U- N) T' M+ ]
返回n的自然对数  
3 p+ |  a& R/ E; qmysql> select log(2);   
: g9 W: c9 L: Y7 d6 L9 K3 P/ B  -> 0.693147   
) l9 _$ c5 O$ n! {3 zmysql> select log(-2);    3 N0 e1 x) d0 R' `) h1 u& i
  -> null   
+ V' W( x0 k7 V) N$ H% h3 l 7 X, @" q! e3 M! X2 _8 `
log10(n)  
# `, n) k  e$ w8 Q0 S6 K返回n以10为底的对数  9 j6 U& l7 o# U( [
mysql> select log10(2);   
9 i' [- O0 A, ~( s0 t) U2 m  -> 0.301030   
0 z" P8 ?; W" @6 ?) [$ q( U9 Wmysql> select log10(100);    2 y( |. R; L* @5 y2 E
  -> 2.000000    + o: ~1 {2 R" X" t
mysql> select log10(-100);   
( j* U' g* x- }6 x# z6 m  -> null    . s9 f' C6 N) W6 R0 P

) b, q- q0 C* `) W$ F* ^' t' g- fpow(x,y)   
. M3 p! R& z$ _% Spower(x,y)   
6 j# @9 j+ e5 v% ~ 返回值x的y次幂  ' @* C+ @. M2 B6 a9 P3 t6 W
mysql> select pow(2,2);    / W2 |. Q/ @! G7 r0 m
  -> 4.000000   
8 B: k8 V' K- G; ^* x/ `mysql> select pow(2,-2);    0 V* q* B& t$ s3 Z
  -> 0.250000  ; j/ u; C/ f; {6 P8 z+ f
7 c3 e. }- g; J6 k, d/ Y' R
sqrt(n)    u. D2 P2 t' f1 w4 W
 返回非负数n的平方根  3 n! H1 M3 i, g& a
mysql> select sqrt(4);    $ F! e9 r0 C8 Q
  -> 2.000000    2 |: t/ M: k6 C, o2 j/ O
mysql> select sqrt(20);    - y( @8 L( m6 I) ]7 h8 w5 a4 d1 p
  -> 4.472136    % C( ~9 o3 e& s4 ^6 A

0 a& E2 @3 M3 h! e( k) c/ mpi()   
8 h1 E+ l& d. ~2 ]2 a# b" B; i, b 返回圆周率   # Z! G9 ]- `, _. v0 ]
mysql> select pi();    8 |; t$ b% v8 I; G' [6 X& ]
  -> 3.141593   
8 W! {+ ~5 j! R1 j# P ( f$ P: Q# l  _0 H3 ]# w9 i& U: y( U- [
cos(n)  : `! ]2 j; L/ u0 C
 返回n的余弦值  # q$ h+ k" _; h% [% H8 V: f$ X
mysql> select cos(pi());  , L: f) y4 [! _. @5 I5 G
  -> -1.000000   
' y& ?* R+ y- B# S# ]8 q, E( i
" g" `% R  s8 x1 ~, wsin(n)  
# l3 t! k2 @% N 返回n的正弦值   
$ p( @6 \3 u' ~2 C( i8 [) Lmysql> select sin(pi());    ( q- U. d# R0 J9 F- k* ~. c
  -> 0.000000    + \  ~/ ^9 X% v2 o% G& P" T3 l
# |% m9 f1 n: [9 j$ h
tan(n)  
+ ]* A; W& P* f1 V( V8 p6 r返回n的正切值  
& C) b$ p- m5 l% _: x& ~, O8 vmysql> select tan(pi()+1);   
: u( W+ v* v) p7 }! y9 @) V  -> 1.557408   
  B& o8 I& L! O0 A& K " x$ d2 x, q. d5 W' h" i2 f9 {+ ]8 ^
acos(n)  , t" x; k7 p# S/ f7 Y
 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  - R/ k# h- ~  w- {& ~. P
mysql> select acos(1);   
* J) }' H: X3 b  -> 0.000000    1 q  f( Z& O4 h
mysql> select acos(1.0001);    : w8 n; |, g, ^6 X$ W" D4 U
  -> null   
8 v, {  X( s6 n1 ]7 H. I5 Xmysql> select acos(0);   
; C; i) {, Z2 _3 S3 q& C  -> 1.570796   
9 ]/ a5 T; g& |+ v5 U5 z3 f# q
/ X! I% o/ {& ?4 F- Z8 Nasin(n)  
! \! U* C9 s; p  }6 w6 ]  ?) t* u( ~返回n反正弦值  : I# s  I* {1 {- ^* ]" \
mysql> select asin(0.2);   
( L6 S2 t! b3 Z% i, y/ ^" @  -> 0.201358    6 i" k/ n' J8 H: o
mysql> select asin('foo');    ) w' S+ [' n, J7 n
  -> 0.000000   
5 h+ i4 w# v9 ?( \  b $ G0 v1 ]5 Y; h; L4 q& @
atan(n)  
: b/ C3 R& K: G9 M返回n的反正切值  
1 f$ k" R' b, d" {9 `8 g4 dmysql> select atan(2);    % c/ \$ c* R. }. h) b  _1 s/ k+ ], ?5 g
  -> 1.107149    " D, @9 G; z* N7 h7 c( Q" Y7 \7 J1 d
mysql> select atan(-2);    2 t) d$ {1 |) b
  -> -1.107149   
5 ^2 ?; u  S1 g) @' [8 U' h; Vatan2(x,y)   
7 ~& F3 ~0 g+ ^8 o9 F 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  9 O9 V( g2 v2 e, J7 ^
mysql> select atan(-2,2);   
" ]  y7 a& K# H1 d  -> -0.785398   
6 S9 e' ?( w: Vmysql> select atan(pi(),0);   
! S9 p/ i1 x. S' J0 l  -> 1.570796   
( I& f2 W$ k0 F/ u ( S+ \$ S6 w5 v, [  O$ W
cot(n)  1 M( I9 ]% k, C- O' S8 o
返回x的余切  - i- b% {8 }) _
mysql> select cot(12);   
( o* C0 y3 O2 B$ q( h* j7 |  -> -1.57267341   
$ R# J9 v4 `' O7 \" W  }mysql> select cot(0);    7 u  O+ H* S7 m2 D! j& u
  -> null    , r! h! u7 F* Y$ U

3 j( I: M+ I0 a4 K; j5 D; Drand()  
5 \% N" ]$ u9 s+ d$ o" brand(n)    
0 u+ r2 ^: Q' u4 [2 v/ p返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
# c2 B* w2 \4 B* f. } ; N$ o! D. F. d2 l( L& B
mysql> select rand();    # m  O( Z9 g1 s; W2 `: ^; H
  -> 0.5925    9 Z# D" C: ^. v2 V$ ^5 U# P- [' L
mysql> select rand(20);   
$ g2 u: x, o8 R' }' V1 [  -> 0.1811    6 x4 n8 t* O% H0 Z
mysql> select rand(20);    : o( b& v- }( t8 `, u1 x2 P' |/ @
  -> 0.1811    . ]) [5 E6 N2 h3 D5 i% e
mysql> select rand();    0 ]+ h# }1 a  A# }' |: ^/ S
  -> 0.2079    * B! E6 Q0 ^& `- M
mysql> select rand();   
' v/ @# `" }; k  -> 0.7888    / M- W8 V; S1 h* f: y5 A. _# g( N6 E
8 ]" G, ]7 ~" |  W
degrees(n)  - _% J7 t2 C) \4 \4 N
把n从弧度变换为角度并返回  
2 i+ k9 Z: w8 Umysql> select degrees(pi());   
; `) n: ?  I* R' M2 T( b0 j  -> 180.000000    6 ~/ E. o9 v' i6 F
6 {# J. Y" }# f9 I% `- w4 H
radians(n) + q3 Q+ B: U; a2 q' l3 y
把n从角度变换为弧度并返回   
1 F& c) \, G" u+ k- Z2 w- T& jmysql> select radians(90);   
2 W3 B' J; X. {  -> 1.570796    4 K6 l+ }3 [, |9 E

+ P/ f: F0 P' [2 f/ Ntruncate(n,d)   
: k. B) W0 H9 R( U0 o( x' R1 X保留数字n的d位小数并返回  1 s4 L) I* b, V
mysql> select truncate(1.223,1);    ) D+ v/ x" k" ^# u/ Z
  -> 1.2      W2 D3 O0 |$ O# u6 |' d
mysql> select truncate(1.999,1);   
* r6 U, I& t/ j1 F  -> 1.9    6 g" _) f2 H0 x1 {2 m. r
mysql> select truncate(1.999,0);   
8 A2 y) e  o- H  -> 1    ( m! s! }) E: p9 G# z5 ]* u+ `# u+ T# R
' h8 s0 k* c: a7 R
least(x,y,...)   
! l. l4 g6 ~1 L  Q9 Y# z返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  4 m- @( H& Y' W9 f: I* M
mysql> select least(2,0);    6 q/ v7 w% M/ R/ [6 `
  -> 0   
: C" k$ v9 p* x, rmysql> select least(34.0,3.0,5.0,767.0);    ( r) J' `/ O) m" k; _2 h
  -> 3.0   
1 c" o* O, X( x% N% C. Q1 U$ Ymysql> select least("b","a","c");   
  d$ a2 l' s/ p1 d2 z  -> "a"   
# k" h2 D2 W8 t  L) i- I
4 u) a7 f9 ?2 n. D# P6 C. u* Zgreatest(x,y,...)   
2 c. ]6 j) A  ~返回最大值(其余同least())  , G2 I* |" y6 g* w- u, r# T$ n1 ]
mysql> select greatest(2,0);   
& `' X7 Y/ a  z8 u) S  -> 2   
( e4 C6 T2 E1 ?/ Vmysql> select greatest(34.0,3.0,5.0,767.0);   
9 T9 K- t; `7 P6 L0 \8 o- K% X  -> 767.0   
9 P+ f) O3 {/ Q" X! \: nmysql> select greatest("b","a","c");   
- w6 V5 ?% N# ]' W. x; Y  -> "c"     
: Q+ U! c- v9 Q4 [6 `6 ~
; f% U3 Z: I! w$ K0 Q# @3、时期时间函数
9 q! k, C: W- \5 s+ Ndayofweek(date)   
+ ~4 g' h2 W: f( d5 ~6 P返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
+ Y% p+ D  \% }. n; K" T' v4 S  Qmysql> select dayofweek('1998-02-03');    . [8 ~& U, b* N! Q+ H# L
  -> 3   
( i/ p# u+ H/ F3 Y$ s$ P
: L. {2 Y7 |5 R  w) J# \3 m3 M& Sweekday(date)    5 Q# Z( v3 r8 J* |7 n
返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
- V7 ~2 o5 K, X3 }  
7 k% A! s7 h- Jmysql> select weekday('1997-10-04 22:23:00');    4 x7 }& C' n4 {2 V
  -> 5   
2 i8 r8 h- H7 Z% n* omysql> select weekday('1997-11-05');    + H4 X: p( P5 K+ y: T
  -> 2   
8 j' e$ ?+ u  M% H/ ?% d; L4 I + x! |+ R- Z6 B  Z$ t, `* p
dayofmonth(date)    " \* z4 j* T. V) @: n
返回date是一月中的第几日(在1到31范围内)    2 t  V& O4 m+ D; u
mysql> select dayofmonth('1998-02-03');    * ?8 k9 a4 _6 q$ u' N
  -> 3    6 L% W" p7 V/ x, B2 c7 h6 A

3 b+ Q+ ?" D( W; j5 D. m2 Ndayofyear(date)   
" h$ L3 V( b& C8 M5 o返回date是一年中的第几日(在1到366范围内)    $ H2 L- K. g) `- _
mysql> select dayofyear('1998-02-03');    ! C, V! h" M1 M7 T7 @
  -> 34    ! h3 ~" p# L% Z3 k- z  S, A) i- }

! E( Y. Z) `5 nmonth(date)    ( i0 \# y9 p/ R0 e
返回date中的月份数值   
# k2 C( H3 o5 a& Q  t+ @mysql> select month('1998-02-03');    8 A7 \1 Z) @/ Y: T
  -> 2    ' J5 y- |9 }2 H/ K5 ?

, H; u$ m7 p& [dayname(date)   
4 [3 V( s9 p* z# R! l9 m4 k7 f! y返回date是星期几(按英文名返回)  
9 _( M* Y: o2 K- ?* g! ]mysql> select dayname("1998-02-05");   
* v+ _9 Z1 ^: K8 a  -> 'thursday'   
1 f+ Z% X8 p5 _6 }+ c" C
2 d2 g% {0 l2 r# [- C5 _3 l& l- Smonthname(date)    
7 w1 I- w/ V# f; Q3 a5 @$ f$ X返回date是几月(按英文名返回)  ! l& U" k% D, M3 S. [
mysql> select monthname("1998-02-05");   
: v; S0 Z  s4 u+ T  K' t  -> 'february'   
# U9 X- p, z: t5 b3 X
$ s9 s- w7 k4 C8 r, y, A' Zquarter(date)    / Z8 R+ L2 U! |8 m% d' b
返回date是一年的第几个季度   
, r& e% p; E7 o! j6 U* I8 cmysql> select quarter('98-04-01');   
8 o" q) g1 r) J3 \: F  -> 2    * o! I2 R/ E, E0 o% F, Q# t

3 j4 ^3 u- D) C6 W/ e$ b4 nweek(date,first)   , T7 e6 F! M; J4 o% y% D5 v& d
返回date是一年的第几周(first默认值0,first取值1表示周一是
8 i' `1 m( c0 h, x7 {9 {* r1 e* u( l% M周的开始,0从周日开始)  
1 G3 M" P3 o7 m3 V0 }mysql> select week('1998-02-20');    + |3 v: Y3 j! M8 x
  -> 7    7 \1 `9 l3 A  H) P
mysql> select week('1998-02-20',0);    ( l( x9 Q2 T$ t" L, H% n" _
  -> 7    & T# p% @4 p5 g( `4 }# c
mysql> select week('1998-02-20',1);    6 m; U: I3 {; K, I( _/ V! Q
  -> 8    + t1 i, z2 x$ x3 h- [
3 p3 K/ j" u. N2 U$ z0 b* B
year(date)   
6 Z6 R2 I4 y. N返回date的年份(范围在1000到9999)   
8 N! m& Q; v, ]; T' F0 vmysql> select year('98-02-03');   
1 q; G  T: k9 p( }7 G  -> 1998   
# k7 D1 V# `8 Q# s1 S $ f4 d# C' A% q& t# V2 O9 c& E) a
hour(time)    
4 V2 B; F2 ?4 e5 p返回time的小时数(范围是0到23)   
3 c, M. G/ {  ~8 q& Smysql> select hour('10:05:03');    0 c  R9 ^4 M* E, I2 U* t
  -> 10    0 l) k' F# o9 I9 z" O" v

2 Z0 T9 O# S3 {6 a# Xminute(time)   
; _! J9 k$ s+ \1 A  @' `返回time的分钟数(范围是0到59)    " a8 k% A2 O7 R7 D& A% F. v
mysql> select minute('98-02-03 10:05:03');    . l% n7 C" g+ i
  -> 5    ( f) D7 a! N: h

/ Q+ f- [1 v0 r* ^' Rsecond(time)    9 S, {1 x* h: ^" |
返回time的秒数(范围是0到59)   . x; |+ L$ O# Q* F5 `
mysql> select second('10:05:03');   
0 V7 L, ]# X" d: G4 p  -> 3    / }- Q4 o! d* F( E( e* {

/ c4 c1 y2 v" u- N% hperiod_add(p,n)    9 s; s9 {0 L7 r! w! d1 Q! O
增加n个月到时期p并返回(p的格式yymm或yyyymm)    3 `  L1 d" l* x! T- `4 R% O6 X7 w
mysql> select period_add(9801,2);    . z% D. K' v; O# e+ w: s
  -> 199803   
/ d* G4 G! i4 t
! U& C7 b5 ~& B0 i( ]1 H: Dperiod_diff(p1,p2)    + Z+ h9 [$ `% D! Y6 }
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  
5 b# W1 Y, i! e; s1 Y# Omysql> select period_diff(9802,199703);    7 C% I- b  j: J5 d9 r) }/ F
  -> 11   
5 d7 v" b3 \! ]# F) C- Q
1 x* J/ e1 D' e- |date_add(date,interval expr type)  $ @5 U# ]0 A8 q; C8 c& d
date_sub(date,interval expr type)    7 J& K! G% W/ w0 S" `' I- B
adddate(date,interval expr type)    5 j6 ?  a& S. r4 g
subdate(date,interval expr type)    |% z, |! N) |% r* V7 z
对日期时间进行加减法运算  
/ D' e' A7 X* y( E% `3 d(adddate()和subdate()是date_add()和date_sub()的同义词,也% s. v. t. S- F4 y0 o
可以用运算符+和-而不是函数  
% O( z0 d/ N& \/ [. I4 \% v& p: ydate是一个datetime或date值,expr对date进行加减法的一个表
/ C' B: F7 ?: H+ I  D4 y" D( z" u达式字符串type指明表达式expr应该如何被解释  
& a( |* c  n/ K% J7 E [type值 含义 期望的expr格式]:  
8 _. I. U0 A) b5 [/ [* o$ S+ a: f8 G second 秒 seconds    - ]+ @1 `# H9 f+ a7 v
 minute 分钟 minutes    + i& i0 ?2 L6 q) Z: C  T5 l# E" H& i
 hour 时间 hours    8 F9 g- w/ _# o/ e# _/ ~% ~
 day 天 days    : N4 t( L* C1 @1 z" _0 s; x" q
 month 月 months    : @; o) U8 j, S) P4 s
 year 年 years      ]9 S+ M$ o# m* ~: i8 W
 minute_second 分钟和秒 "minutes:seconds"   
% b6 V9 K1 ?, X# @ hour_minute 小时和分钟 "hours:minutes"   
8 c- m5 z/ X& A! Q0 \ day_hour 天和小时 "days hours"   
3 b8 M! j5 c5 s% L! z4 Y% b" p9 ^! B year_month 年和月 "years-months"    * U: f: _5 Z8 c) u
 hour_second 小时, 分钟, "hours:minutes:seconds"   
: p% j* X  l( d day_minute 天, 小时, 分钟 "days hours:minutes"   
5 \5 T, r$ |9 S day_second 天, 小时, 分钟, 秒 "days
' {6 [. u7 d4 L& F/ X- i+ b0 Rhours:minutes:seconds" 0 p$ N8 P$ t0 l& B
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个
- \9 C0 w3 m7 m; s, S0 }& Gdate值,否则结果是一个datetime值)  
, m: A3 D3 ~1 J( K) u0 N3 M 如果type关键词不完整,则mysql从右端取值,day_second因为缺2 r. ^  D; M3 r+ B
少小时分钟等于minute_second)  
( W( z! t4 W4 Y9 Y' r  l" z 如果增加month、year_month或year,天数大于结果月份的最大天
! O" E6 G8 _' Z- q, W0 c数则使用最大天数)    . j* }- f, I- M) C
mysql> select "1997-12-31 23:59:59" + interval 1 second;  
% b) o) z& ~3 G
; }# \/ N. ], d4 M  -> 1998-01-01 00:00:00    - A; [  X1 c' m8 x- c3 ~' ^
mysql> select interval 1 day + "1997-12-31";    3 q( i: X* J8 [7 ?$ g
  -> 1998-01-01    9 d0 C5 N0 {( a1 u0 R+ T1 P! g/ V' u
mysql> select "1998-01-01" - interval 1 second;   
1 g1 s: @4 u& r% z  -> 1997-12-31 23:59:59    1 }/ y, B6 o2 m) Y
mysql> select date_add("1997-12-31 23:59:59",interval 1
9 L) f* Z1 |* K; Ksecond);   
+ D9 [+ `  ^: J: m* O& w  -> 1998-01-01 00:00:00    6 r: ]5 j& ^% m4 D9 k) m( `+ L$ R
mysql> select date_add("1997-12-31 23:59:59",interval 18 `' O5 O7 h; L# R
day);    $ c  ]+ u# P5 [5 W* r' [1 p
  -> 1998-01-01 23:59:59    9 m: c- B+ d' K$ X7 ?% f/ K4 l
mysql> select date_add("1997-12-31 23:59:59",interval
. J' v& Q5 Y6 o: u4 j- H"1:1" minute_second);   
# D# Q. h" y( W/ u' y4 o  -> 1998-01-01 00:01:00   
. \6 D/ V' s" z0 f# ~mysql> select date_sub("1998-01-01 00:00:00",interval "1
" }7 a9 C# S8 H; a1:1:1" day_second);   
7 M8 z6 Q/ K1 {! g/ {  -> 1997-12-30 22:58:59   
- T: ~: g6 T! X& ?6 B- w' i( k2 {mysql> select date_add("1998-01-01 00:00:00", interval "-1  T+ Q, r' n% G- Z! @7 Q4 L
10" day_hour);  ' ?2 \, |- @4 E3 I2 l( r- ~, s0 W8 m  T
  -> 1997-12-30 14:00:00    / Y1 a' k5 W1 @
mysql> select date_sub("1998-01-02", interval 31 day);   
' L) x" A* H7 C% e" @! t0 `" I  -> 1997-12-02   
  A" F  S3 S3 t) M- }mysql> select extract(year from "1999-07-02");    2 F/ \3 U) y) C; h  m
  -> 1999    3 L! r9 g. I2 A1 L/ F
mysql> select extract(year_month from "1999-07-02
0 i6 T% Y1 E: ?* R2 d" U5 a01:02:03");    4 b6 K5 ~% u3 u% K8 j
  -> 199907    5 `4 R5 N+ D' Z0 U
mysql> select extract(day_minute from "1999-07-02' O4 Z! B) @7 Q  `: |! a
01:02:03");   
4 R* Z* ^$ k- l2 E  -> 20102    ! B) O  N" r( o+ ^& x3 {& U
5 n7 Q) w( X6 i0 X' h  x
to_days(date)   
4 I' |0 h" R* F: t5 ~返回日期date是西元0年至今多少天(不计算1582年以前)  ; s9 L; o/ ]* {% Y9 L
mysql> select to_days(950501);    & Y. o9 Z3 V* R  H$ x
  -> 728779   
- ~8 Q% ^  Z8 q6 a3 d$ a( [$ vmysql> select to_days('1997-10-07');   
1 d+ v& R; T1 T! \) A( d- g! r8 g/ R  -> 729669   
$ @2 y+ ^7 A% J1 l2 N
% @/ k7 [0 u2 }5 Ifrom_days(n)   
8 @& k! T3 R0 x" w5 v 给出西元0年至今多少天返回date值(不计算1582年以前)   
/ n% s) Z; ?" p: }9 [2 Gmysql> select from_days(729669);    3 n$ r( ~$ ?- H
  -> '1997-10-07'   
- Z" {! W8 K* N9 M , Z# ^  e) d9 c4 I% ], F
date_format(date,format)   
$ u5 b: i( V6 v8 @ 根据format字符串格式化date值  - N: t3 C+ ]' c2 k5 A
 (在format字符串中可用标志符:  & u, \) T- B9 w, x! f2 |
 %m 月名字(january……december)    + n; A) d: I* q5 S. _8 D
 %w 星期名字(sunday……saturday)   
  o8 N7 V: u& P9 N5 R! X# j/ v, E %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)   
+ M# U  ]- J6 U" [7 D* L6 K; c" I3 z# g; r %y 年, 数字, 4 位    + }* y& j/ e% p+ b' _! O/ W% Y
 %y 年, 数字, 2 位    5 B, L$ h7 i6 e3 r( y& O
 %a 缩写的星期名字(sun……sat)    1 j7 d4 `( {: M& c7 E5 ~0 V
 %d 月份中的天数, 数字(00……31)   
( H+ z/ J! |9 @1 S2 @ %e 月份中的天数, 数字(0……31)   
) f6 p3 D2 u+ I0 x! E- a %m 月, 数字(01……12)    " |, O% B# M, P' W6 p- L* B
 %c 月, 数字(1……12)   
" o" Z, t7 R) H% K6 ^) O  y %b 缩写的月份名字(jan……dec)    3 t* {5 L  x  W. L. H6 ^4 z7 D7 [
 %j 一年中的天数(001……366)   
. D6 I+ J7 E) e8 f9 x% D8 z %h 小时(00……23)    3 F# M. A% `! v' m0 s" n
 %k 小时(0……23)   
, J( ]' X* K% P3 P: } %h 小时(01……12)   
7 T  K* _& A/ U %i 小时(01……12)    5 s) i8 [3 D) [# L" p
 %l 小时(1……12)    8 Z  s" T0 x( i7 [  ]  E  n6 T
 %i 分钟, 数字(00……59)    $ a9 [7 w9 P! N9 n& ^
 %r 时间,12 小时(hh:mm:ss [ap]m)    3 y& c4 H/ c& l' v- I
 %t 时间,24 小时(hh:mm:ss)   
2 C9 @5 F$ M+ T %s 秒(00……59)    2 h4 h% f! ^% ]$ [/ q% D
 %s 秒(00……59)    : G# }+ k% }$ S2 C
 %p am或pm   
* k+ s2 Z8 }( T %w 一个星期中的天数(0=sunday ……6=saturday )    5 C) N& F( y- _! }  n5 T
 %u 星期(0……52), 这里星期天是星期的第一天   
6 M* @' U) F7 L  h %u 星期(0……52), 这里星期一是星期的第一天   
8 X6 _% s- k% X1 ^ %% 字符% )  ( L  m! Y" }6 K3 i5 l7 y. G3 F' p
mysql> select date_format('1997-10-04 22:23:00','%w %m %" v. [( V3 L, y
y');    - [9 ]3 N/ [+ y3 b  i' ], Q7 P, I
  -> 'saturday october 1997'    * N4 v6 J) t) L( r$ p
mysql> select date_format('1997-10-04 22:23:00','%h:%i:%
* B, L+ W1 ~8 ^6 R) Ss');   
6 H& N9 O9 p$ ?. s- B" s; I, |/ b  -> '22:23:00'   
; f9 K" F) k2 `$ |" u+ cmysql> select date_format('1997-10-04 22:23:00','%d %y %a# w5 O) Z3 i' q& y# {# z6 f
%d %m %b %j');    # ~# A3 a3 {, b/ d4 d8 z% ^' e
  -> '4th 97 sat 04 10 oct 277'   
4 ?  u. B& T6 k( r9 zmysql> select date_format('1997-10-04 22:23:00','%h %k %i
8 {7 B. b6 Y$ n& H% U%r %t %s %w');   
2 P( H+ L1 Y; P" ?) @  -> '22 22 10 10:23:00 pm 22:23:00 00 6'   
+ c, @& o$ j; e5 q2 l' z # u* G/ p7 U* E+ c- F
time_format(time,format)  ( Q( H- Z; M6 o3 e
 和date_format()类似,但time_format只处理小时、分钟和秒(其$ {2 G# L9 |8 [3 b+ @4 G/ Z
余符号产生一个null值或0)  3 X' [" i0 E9 s3 y% ^. H

3 i( w" s, _. m4 A7 U$ P2 O( icurdate()     8 t0 g( _$ j2 P. f: s; a
current_date()  * o6 u9 S( w- m) \% i* e
 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所$ L' H8 n5 y% G1 C' Q& D, S8 d7 p* U
处上下文是字符串或数字)   
$ r' i2 W$ D- d! h/ ?mysql> select curdate();   
+ n# x" q- B! w0 w$ k  -> '1997-12-15'   
  x5 }9 Z( Z1 M! M2 Rmysql> select curdate() + 0;      Y2 t" c5 {8 J8 |( R
  -> 19971215   
5 ^, t: k8 z" l. b, U& u0 Q
) C8 S7 ^( B* G+ a" W( B8 \) C# Zcurtime()    ; f# P' H! o* P" g0 Z
current_time()  
6 u/ g$ |# ]7 k7 Y  h8 L6 E; A 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
/ L" ~' i3 H. n" D2 X5 r下文是字符串或数字)      , Q) j! ~8 i5 |0 {
mysql> select curtime();    ( C$ @8 V( U% U  o! @; f
  -> '23:50:26'    & i6 d! y5 F9 k
mysql> select curtime() + 0;    0 _0 `/ g8 w! P1 t4 Q, z+ I) p
  -> 235026    ) Y$ i, i" x5 q, Y
% [3 j$ T( |$ b
now()    
! t/ C2 Y0 y$ r. j5 m, Hsysdate()    
# Z& j1 ?9 i0 ?- mcurrent_timestamp()  
, ~4 Y9 ^+ f& m5 H/ Q 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期/ @2 [4 A9 t' [, n4 x5 J2 D
时间(根据返回值所处上下文是字符串或数字)     / Y+ t; H' ~# i* G
mysql> select now();    4 a& W- B4 ?/ T$ o- u6 m
  -> '1997-12-15 23:50:26'    ; i; a- e) P' n; {9 [
mysql> select now() + 0;   
+ j1 r' y) q% L* F+ ]: j! t  -> 19971215235026   
, w" ^/ i+ a/ m, }2 O
$ d0 W  }* ?: }+ T2 cunix_timestamp()   
" v3 L, \: L2 F2 v/ Eunix_timestamp(date)    / [- G, y! q* t
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒" w2 z: d1 d- |8 w
数,date默认值为当前时间)  
) \+ G( I- u5 Hmysql> select unix_timestamp();   
6 M" }% w& q  v8 l. }  -> 882226357   
/ k; M6 U6 P7 Imysql> select unix_timestamp('1997-10-04 22:23:00');   
; Q: m- @" P' g* d0 J  -> 875996580   
' h5 M' c* D4 P" e1 s5 ]( w   N' R% t( F8 d6 q7 n. i5 c4 a
from_unixtime(unix_timestamp)   
5 H9 Y5 h6 q% Q: i) B3 }以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的2 {! d' \7 U4 m% n
值(根据返回值所处上下文是字符串或数字)     & h5 v% w* }- _( C
mysql> select from_unixtime(875996580);    2 v- a4 I5 G' i) y9 d
  -> '1997-10-04 22:23:00'   
9 S3 E0 G& s  p" n3 ?mysql> select from_unixtime(875996580) + 0;    % C7 d* U: x0 `! P" Z& z2 ~
  -> 19971004222300    + H8 f8 r' ~9 j9 a  `

3 ~$ a6 B3 a* q; F: X) vfrom_unixtime(unix_timestamp,format)    
& ~/ W( @- R6 ]- m8 }) U) R% f以format字符串格式返回时间戳的值    N; U# b4 M! B' n  V
mysql> select from_unixtime(unix_timestamp(),'%y %d %m %
$ }! K3 |/ N" V0 w7 G: D& H8 U3 rh:%i:%s %x');   
0 K3 }7 Q$ n! Q2 {( q  -> '1997 23rd december 03:43:30 x'   
$ n; H$ u$ [2 _2 B5 |! T1 r3 p* R4 m
9 U! l3 {8 x: ?; o; Osec_to_time(seconds)    5 R4 e% [3 h  I, K0 R# k
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     & z3 x5 q# k: Z( F  Q
mysql> select sec_to_time(2378);   
$ q+ b& K- @/ Q5 X  -> '00:39:38'    / m- \+ x8 P) c% i4 o+ O7 q5 g
mysql> select sec_to_time(2378) + 0;   
" y& v4 U& w* ~3 K  S  -> 3938    # V" O* n8 R% {  l  {8 l; h$ w4 U: K

( `: ?( l! S% b7 N! N; jtime_to_sec(time)   
$ c5 f( @  {) k6 ?/ z2 x返回time值有多少秒   
; \& J/ n- A9 I1 _mysql> select time_to_sec('22:23:00');    $ X  A; \1 s6 l' A1 A
  -> 80580    * [1 D5 S# K& x5 W8 }0 p4 c
mysql> select time_to_sec('00:39:38');   
7 a6 H- M2 A7 E6 A  -> 2378
, @$ L' X/ f( u
9 J+ X5 [0 T7 P0 j( @5 E2 R# V转换函数
" h4 v* e' t  }% Ycast
# ]! L4 [5 q+ A2 ]用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]3 ]; [1 s5 [2 E, O% ]( q' m5 q
实例:select cast(a as unsigned) as b from cardserver where order by b desc;
% k$ l6 I4 k' G6 L& ~* }4 Jconvert:3 U, ?( N$ c+ ]( K+ q
用法:convert(字段,数据类型)
+ K4 S/ {9 ?9 c- s1 G" W实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
  d" v# w4 a! E. t3 X# X





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