中国网络渗透测试联盟

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

作者: admin    时间: 2018-3-21 16:07
标题: mysql常用函数大全
1、字符串函数
0 \1 Q: p: O. aascii(str)   7 ?6 g) o; M; K1 D: r8 w/ |8 @# d! W
返回字符串str的第一个字符的ascii值(str是空串时返回0)  
: ~! _# ?7 A8 pmysql> select ascii('2');  
% t: F6 o0 }# M: [6 P8 p  -> 50  
0 T, {, R! |- P/ Y7 C5 Z# v" Jmysql> select ascii(2);  & P# a! W6 a5 \3 f
  -> 50  8 }# f  l3 G/ }, K
mysql> select ascii('dete');  
0 J) c! ^/ a& E- C/ |  -> 100

, r6 t5 O( d- m, J& F- ^, Iord(str)   : s3 N' E. l  e. H
如果字符串str句首是单字节返回与ascii()函数返回的相同值。4 J1 ?" @6 T; R  i& f: k+ s6 p

- B# p) R- m8 `- g如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  * r9 L) y' d; P2 O# d) P* g0 h
mysql> select ord('2');  7 _$ L, j) U0 h; h0 @3 n$ Q* Q9 Q
  -> 50  " n7 R8 A6 @/ \1 a7 l; o- ?, s2 S
   5 p. a& J: `: i/ }& N! I# k! o
conv(n,from_base,to_base)   
+ R  r* S  [8 L: K: V! T对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  5 e1 p3 P$ e6 J- {4 R$ [' q/ n
mysql> select conv("a",16,2);  * I) h: X7 P, ~
  -> '1010'   t/ ~! n5 A( g1 Z4 b( z0 z
mysql> select conv("6e",18,8);  - |' f" v, ~2 ~& M1 C5 ?
  -> '172'   J: g3 s* j* J8 e1 i9 f% Y
mysql> select conv(-17,10,-18);  
( u: F/ K" U3 q! j( M' m* |  -> '-h'
& e# ]$ J) {0 _4 P$ s0 ^mysql> select conv(10+"10"+'10'+0xa,10,10);  
8 i1 b7 o* J* g* `- c5 j  -> '40' 8 z" U" V6 K5 U7 V* q
   , h% c: _6 B; M7 [! Z6 g" V# ]
bin(n)   
$ f: ~2 T; h; G$ N% i* K把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
2 q; u. u7 g. V, U) |mysql> select bin(12);  5 {+ C1 J% ~5 w1 L; o  s  j! }- b
  -> '1100' + Q3 ~& ^& L1 h4 T/ y) s, R

0 J8 }( S2 Z: Eoct(n)   
% C  m( |( d8 `1 N  k把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
7 V& c, E; z( `# c/ ~" Vmysql> select oct(12);  
/ M# D4 W; s6 r! l$ O) A/ K  -> '14' / t1 }/ ~% B5 |3 b2 z' I
   + t( T# i' l. i
hex(n)   
( z; z% [. w) |$ g2 Z- L1 ]把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  
3 O8 |* C% I, P) ?" ]3 ~mysql> select hex(255);  4 p1 n0 \! ]5 w, a, R
  -> 'ff' 2 E% J. W6 H! I5 ]
   
/ s3 O: |$ x: C+ rchar(n,...)   3 Y* `6 D  e; S# m* u; V, ]
返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   " o4 t' b' ?+ r: t9 b+ q2 l; H
mysql> select char(77,121,83,81,'76');  
1 g5 _6 Z9 o5 k/ B: L( s; A  -> 'mysql' ! d2 U- u5 b6 ~
mysql> select char(77,77.3,'77.3');  
1 q* Z) F$ G! ~8 S' O) x  -> 'mmm' ! }6 M% A; X  y8 h8 \
   
2 N! j! z0 i8 ^1 wconcat(str1,str2,...)  
  ~: u& n! W  e7 Y把参数连成一个长字符串并返回(任何参数是null时返回null)  . L5 M) A+ T7 C+ a" e
mysql> select concat('my', 's', 'ql');  - p2 [- O3 v( _. Q6 \
  -> 'mysql'
5 U. }" b6 S: y' Dmysql> select concat('my', null, 'ql');  ( E! W/ t! k0 o  c+ n# }" M( g
  -> null 6 r/ D3 `& |; V+ R
mysql> select concat(14.3);  
+ x+ [  S4 R8 b( i- F$ k8 \; f  -> '14.3' , o6 B+ W' a2 O8 y9 E
  P, b, Q" C- h( R* d
length(str)   % r# b+ a1 O( D2 `
octet_length(str)  
* o6 J4 I. w- L( |: T* tchar_length(str)  * p, k2 ~6 n4 E" F/ v0 m, R2 m
character_length(str)  
0 }. j6 I7 v" F0 A; C! n4 ^返回字符串str的长度(对于多字节字符char_length仅计算一次)# @/ b4 N8 n! M* D1 V
mysql> select length('text');  : h! `- F( O! ]" a  J! y
  -> 4  
+ c% c! |  X8 O( c1 i4 n: ?mysql> select octet_length('text');  % w2 ?% N/ S% H! m3 y: e$ {
  -> 4  ; j( B# ~. v) ^+ P6 D
. M  T3 y* r9 Q
locate(substr,str)   
7 G1 _6 S) N. _2 @- H9 J6 gposition(substr in str)   
* f+ \, B: ?" w3 ^- p- Z返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  & }: ]3 |% m  a1 l* B+ @( E
mysql> select locate('bar', 'foobarbar');  ' }3 _. ]5 [9 {( c* n% C7 K% x+ U
  -> 4  
8 E3 ?( c9 j% V, K% u! q7 }mysql> select locate('xbar', 'foobar');  
8 K% Q& M" P- s: V' O" R' T' R  -> 0  " `& ^7 x8 T2 s2 Y4 T' y" u
    ) t  s5 V7 `) k
locate(substr,str,pos)
( N. |' m) x0 S8 ^, U. A返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  9 ?7 K2 ?+ R8 \) v. t" j7 E4 P
mysql> select locate('bar', 'foobarbar',5);  9 `" \0 E5 F- K6 D% h
  -> 7  : Z6 e, Y! Z: K# s
9 [& i4 L' Y) j  y6 \
instr(str,substr)  
% V8 N  Y7 v, j返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  ! q- b( }7 j6 r: |3 b/ {
mysql> select instr('foobarbar', 'bar');  
3 K6 S2 J8 g4 v5 \3 [7 d& A  -> 4  + Y: K# u2 k6 S
mysql> select instr('xbar', 'foobar');  
/ e: K! `/ t* ~/ X, S  -> 0   , q+ P) ^1 [. ~8 }) S2 `

& C3 r4 E: U) H1 olpad(str,len,padstr)   
9 K( h) a+ M( Z6 R用字符串padstr填补str左端直到字串长度为len并返回  ) Y+ J5 Z- s9 f1 i+ O$ |
mysql> select lpad('hi',4,'??');  
& Y' [& E, f. G- t1 ?  -> '??hi'
. K( `, F3 l  M' j3 Y   & s/ Q4 J  o7 K4 E  x
rpad(str,len,padstr)   
. T' q: v) L2 p; E7 v- F用字符串padstr填补str右端直到字串长度为len并返回  
& B/ k" t& `' J2 K7 t5 gmysql> select rpad('hi',5,'?');  
5 Q4 e9 H4 d$ a% S& ]& t  -> 'hi???' , {; U0 p! x9 I- i
; q2 p; L% o1 k1 S5 M) d1 ]
left(str,len)   
7 p9 x- h1 t2 B5 W0 D$ S9 o返回字符串str的左端len个字符  
- J2 F5 N) \+ S& u( G5 gmysql> select left('foobarbar', 5);  
! ]2 s4 V2 Y- a  -> 'fooba' 7 I4 O% D, O" R1 C% O
7 c; ]/ m2 X+ A- T* r
right(str,len)   
- s; \5 O# u4 R9 f返回字符串str的右端len个字符   8 x1 |; H$ L4 g
mysql> select right('foobarbar', 4);  - U# o" a; {( s  |& I& d
  -> 'rbar' 2 k1 {( g' J9 A" s: P
; r; i7 M2 |7 e: ?+ b
substring(str,pos,len)   ) Y, Z+ Z3 D+ b
substring(str from pos for len)   * F) t& G$ I5 p1 i
mid(str,pos,len)   
$ e5 ?! q+ \6 T4 [/ U5 H返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  * J9 C, u- `3 S/ d- M) J$ r
  -> 'ratica'
% K3 R( s" p) u8 L! c # }& Q7 i- b3 o& |8 P9 ?' Q
substring(str,pos)   ! Y2 Y0 [/ u- k
substring(str from pos)   0 e) n2 V* u  j: Z( M, y& Z+ g3 W
返回字符串str的位置pos起的一个子串  % W9 I0 G+ o# i7 ]9 h+ k6 `
mysql> select substring('quadratically',5);  
+ N9 o2 @, [/ S& @  -> 'ratically'
, W% L# g9 f6 y+ e- g' umysql> select substring('foobarbar' from 4);  
2 C- \$ S" Q: r3 J) w. @+ M  -> 'barbar' 4 ~) Z& d* p/ o# h
# W# ]  r6 L; ~) ^. X
substring_index(str,delim,count)   
$ E4 a" N5 d! Q返回从字符串str的第count个出现的分隔符delim之后的子串! _! q7 w% m* f2 Q# b+ T
(count为正数时返回左端,否则返回右端子串)  ; H3 a" b/ b& d1 M* @# A. Y
mysql> select substring_index('www.mysql.com', '.', 2);  * n3 h; A/ ]) I/ Z& ?
  -> 'www.mysql'
' ]+ j* B' E% umysql> select substring_index('www.mysql.com', '.', -2);  
! \: z( s, d5 X  -> 'mysql.com'
' S3 j7 L1 Q( n+ I
. i# Q* V$ B2 N; @* eltrim(str)   
/ k$ B" M; q4 U6 m: e2 v! N返回删除了左空格的字符串str  6 {9 |8 A) S- ~7 U6 f
mysql> select ltrim('  barbar');  
1 b& z5 I+ J# ^- q  -> 'barbar' & k1 E- h2 z$ q) @8 h4 n

* ^. G4 g2 C* s4 D- xrtrim(str)   . ]9 ?, O0 V! u' U% ^
返回删除了右空格的字符串str  
. l$ G) f1 |8 @- c3 x# }2 V5 Jmysql> select rtrim('barbar   ');  6 o- B, u6 c8 \  [
  -> 'barbar' 2 {3 R6 b! E: B! b& Q
) w1 N2 y+ j" E4 U  q
trim([[both | leading | trailing] [remstr] from] str)   " T8 x; @! ~8 v6 H1 t* J
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
. Y! n3 T; k3 b4 }  r: X# vmysql> select trim('  bar   ');  3 o  {/ M! ^* l5 A; v+ a+ E6 A8 a* I
  -> 'bar' : E- i2 l' k) @/ t; o
mysql> select trim(leading 'x' from 'xxxbarxxx');  - Q6 t% F! `% Q, }- ^
  -> 'barxxx' : u( T! K2 W, t' o9 }
mysql> select trim(both 'x' from 'xxxbarxxx');  9 R: d# L) q1 B2 F6 W$ u
  -> 'bar'
0 x% z  Y2 {, \# vmysql> select trim(trailing 'xyz' from 'barxxyz');  ( u. F% k  R' l; ?5 c2 t: L
  -> 'barx'
$ m0 o2 U: c) G) M$ j4 a
% b) {# Y: I4 M9 f4 Q4 f5 b$ |soundex(str)   
8 |" w* J1 c6 A) K: \) r返回str的一个同音字符串(听起来“大致相同”字符串有相同的
2 O% t+ R: U- O) A- y同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  7 N1 H, I: f, M1 p
mysql> select soundex('hello');  
, C- c- `8 [/ d/ Y% C5 ?  -> 'h400'
1 d8 w& g) i, N- l% K. tmysql> select soundex('quadratically');  4 k* c! f- [2 c* G) h
  -> 'q36324'
* k* v8 U  T; G4 W1 g1 R   
5 D3 h1 X# Z4 s8 U* ?5 M; [$ nspace(n)   
; y& Q. M# r1 z9 b返回由n个空格字符组成的一个字符串  
# @' R& z9 h# X& Mmysql> select space(6);  
( o- P  f1 J* g# {% S$ u  -> '      '
% a5 E" S, c9 P7 o4 ^/ R" P/ _! g   1 c  u2 H, `2 f7 M7 \6 ^8 Q9 k( V
replace(str,from_str,to_str)   1 E. L$ G( J6 I! z
用字符串to_str替换字符串str中的子串from_str并返回  
0 k1 e; `0 U: a9 L; zmysql> select replace('www.mysql.com', 'w', 'ww');  $ {0 ^7 G, p; [6 Y0 O
  -> 'wwwwww.mysql.com' / M, l2 E! c3 Q4 |) J8 l

# c/ M7 u& I$ G3 N; Z) ^& Nrepeat(str,count)  
4 v- t2 }% x  O, i' c7 v% y返回由count个字符串str连成的一个字符串(任何参数为null时
  j6 |: o4 `2 G( s9 \返回null,count<=0时返回一个空字符串)  * H7 O% U! k9 t* Y
mysql> select repeat('mysql', 3);  ( b( W; C+ X5 p6 ?0 p
  -> 'mysqlmysqlmysql' 2 L1 M3 G* J, U; C1 x9 [) ~
   1 R- V: a: B1 I( y" d+ |
reverse(str)   
" W3 I' s! Y' u6 \- n  d颠倒字符串str的字符顺序并返回  
* R5 s9 o9 {3 O7 j/ v4 E1 xmysql> select reverse('abc');  " ^% B: L. \7 H5 ~7 c& O! F$ m
  -> 'cba'
! V1 W/ \. d9 C' V0 o7 A * ^) ^( P7 B* T! o! `
insert(str,pos,len,newstr)   
  ]) X) D+ R; C. C+ d' _% ~& ]把字符串str由位置pos起len个字符长的子串替换为字符串& i9 }1 y' a1 Q" ^# B
newstr并返回  
# E" j0 X. L0 A6 O- G; D. o2 q/ |# ?- ymysql> select insert('quadratic', 3, 4, 'what');  
8 Q( M: k( S- ^  -> 'quwhattic' 2 ]5 x+ ?& p# }* O2 G* e" |
3 W7 e; E- H. R  F) r3 u
elt(n,str1,str2,str3,...)   / F. j6 m. Z( f/ t9 D
返回第n个字符串(n小于1或大于参数个数返回null)  - L( |. b& ]: e( i: K" g2 F5 }0 H
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  " n4 W) f3 \8 G! `
  -> 'ej' ! }- S; `9 m: [. B' e: \& H* P8 |
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  
) n: h4 W) o0 v  -> 'foo' 4 r1 D" j6 r+ a* c7 o8 r
  t# O) C& B8 `5 B: J2 [
field(str,str1,str2,str3,...)  
/ }& J  c1 p2 A. x4 s/ S返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
+ p1 j8 p" _6 c3 G$ ?  z' N5 ~( emysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
" i/ n: u/ G1 e6 Q5 X. p'foo');  
' z% _: ]& Z/ B8 M  -> 2  ' u4 P4 h; T5 C; c
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
0 P& x0 v8 r" u+ `'foo');  . F3 o- `! T- E# g( R% d4 f1 t3 u
  -> 0  
. ~5 m( N& C1 Q: w  u6 z" X6 Q " V; R' p6 _1 Q5 d  n( h3 `" ~
find_in_set(str,strlist)   2 @/ @2 G  H. A! W/ U5 p+ L
返回str在字符串集strlist中的序号(任何参数是null则返回+ r) f& r2 i( k
null,如果str没找到返回0,参数1包含","时工作异常)  
% _, `9 p8 {9 W  {9 X3 m6 w5 Emysql> select find_in_set('b','a,b,c,d');  
. X$ U% y6 V' M7 \9 i' n  -> 2  / P8 Y+ _, e' u  ^. T
   
2 C" G8 M( k- d' T4 zmake_set(bits,str1,str2,...)  
5 n6 S7 Z2 Y4 W) Q% Y把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
( w4 |( F" U/ ~, }. _5 O位置的字串选入字串集并返回(null串不添加到结果中)  
9 R; M; `4 c. O# L; q8 E( X2 o* T( Pmysql> select make_set(1,'a','b','c');  / e1 b, S) l6 d0 d' e- S
  -> 'a'
8 }) \# ]3 d0 p1 M7 B; nmysql> select make_set(1 | 4,'hello','nice','world');  1 A. }% Z, ?6 E" g
  -> 'hello,world' " U& R4 m- d9 g8 a6 I
mysql> select make_set(0,'a','b','c');  
7 v# S" ^: K$ C) m  -> ''
2 L) W, ]; R* ^' M6 W. v  u " M2 P& J+ @, q1 r! B( ]  Z" R
export_set(bits,on,off,[separator,[number_of_bits]])   
& N- B2 w6 r" }/ j( q) s按bits排列字符串集,只有当位等于1时插入字串on,否则插入
0 S0 K$ i6 Z: Loff(separator默认值",",number_of_bits参数使用时长度不足补0
/ |" I# Y3 P+ n而过长截断)   4 D- \0 M9 w: x  r
mysql> select export_set(5,'y','n',',',4)  / O- `/ H- N$ R% Y) L) x5 h# f" n9 f
  -> y,n,y,n   
) m0 c: u2 z7 D1 g: L' K% |: ~ ( |) X. S* b6 `2 F+ D% E
lcase(str)  
- p/ C5 e8 z0 y4 S3 A8 mlower(str)   7 t7 i4 \" _1 Z  |8 l- \
返回小写的字符串str  
/ h# h* n, k. D/ m: \/ Z5 K% A, Rmysql> select lcase('quadratically');    f% {1 R7 P/ ?; I
  -> 'quadratically' 0 g$ \+ m. B! e3 V' z
   : y) f+ W( m: m& p6 b9 c
ucase(str)   
/ n5 u8 d- {( d/ rupper(str)  
& ], Q( @" d/ k1 N0 \8 r返回大写的字符串str  
" D3 ]" d6 Q. a7 j7 X, Mmysql> select ucase('quadratically');  * H4 s1 {0 }' k
  -> 'quadratically' , p4 A, s3 G, L: k

$ P! O( I) B9 J* c5 s3 Hload_file(file_name)   * g# P" |5 Y) ]  x
读入文件并且作为一个字符串返回文件内容(文件无法找到,路径
" h) u1 m$ l' H, l不完整,没有权限,长度大于max_allowed_packet会返回null)  & K1 l6 H# N9 D7 y" S: R3 W- g5 A
mysql> update table_name set blob_column=load_file; {  @( J5 _+ s: h1 A( W
("/tmp/picture") where id=1;  / A* q: I  G$ @) I5 E

" D8 f% N, U" ~2、数学函数
. R* R& b! {) J' p7 p+ ]abs(n) , N2 r3 D$ P% ~: ?; v
返回n的绝对值  - Y2 B2 N  N! \3 Q  q" ~
mysql> select abs(2);   
' N( q$ ~2 J3 m6 N% Y  -> 2   
- b. U- ?0 [% Smysql> select abs(-32);    5 `' Y; p$ Q- g- H
  -> 32   
% I5 t3 I5 k  T   . h+ r$ J: J- y. m
sign(n)  1 \& \2 G4 t& N- `+ Y1 W
返回参数的符号(为-1、0或1)  0 v5 G% D, v8 i5 F* a9 t# g
mysql> select sign(-32);   
: K0 P& t: h8 _$ J+ b' r/ n' M  -> -1   
- J$ ~8 M* Y6 u4 c/ X; ]' pmysql> select sign(0);    , o4 H* V$ a' u0 U
  -> 0   
$ s$ y  ^* h- ?mysql> select sign(234);   
% L& w+ {3 E7 V  -> 1   
* V8 M7 [7 m! x ( C9 }) J5 `* M: Z! C8 p
mod(n,m)    ; x' o: t' v. f+ q( l3 U
取模运算,返回n被m除的余数(同%操作符)    , o+ E3 {* V$ Z7 U) J3 G8 Z# P
mysql> select mod(234, 10);    : L) z. u5 l' K& e
  -> 4    ( k8 v" o+ J8 }* T( X9 v7 P# F1 x9 u
mysql> select 234 % 10;   
5 b% h1 _1 [- w! g( T  -> 4   
* |8 T9 R* v* Y' _mysql> select mod(29,9);   
& f+ l# d& ~' i' J  -> 2   
  J6 {/ U: f, P( l1 T + D* H$ }" W  B! R& d& w7 G
floor(n)  9 D3 a1 W1 u0 F' ~! a1 G
返回不大于n的最大整数值  6 S' a  Z( [* ?1 `
mysql> select floor(1.23);    $ p; S3 m: w8 U( C$ ^. @# D
  -> 1    * g- I8 C' Y" H$ h
mysql> select floor(-1.23);    * M% h2 l& V) Y5 p+ S
  -> -2    $ d4 b3 O4 I7 [# b" K. g* O

- S: N) P7 k( r8 I: Q! ?$ g6 ]ceiling(n)  
6 d0 E+ F8 C! e! A" L返回不小于n的最小整数值  2 q6 e% S0 @+ f
mysql> select ceiling(1.23);   
: B8 [. S9 X8 q, _  Z  -> 2   
" I0 l5 v4 T. Q' G9 `; r6 Xmysql> select ceiling(-1.23);   
, _0 @' y- C2 E3 X  -> -1   
, P% a( j) [" z8 P1 K: D* f
; @3 g3 ^# X$ R, jround(n,d)  
; K1 y5 o! J6 Q* Z( ~3 y3 N返回n的四舍五入值,保留d位小数(d的默认值为0)  
# `( Y( {& R8 \/ tmysql> select round(-1.23);    . t+ }: e% ^; ]1 b  r9 l0 \7 m
  -> -1   
* k) q2 i% f4 B  _  ?mysql> select round(-1.58);    + i" B" B& D/ e7 l  ^
  -> -2   
9 u  F9 F: ^' `& ~3 [- vmysql> select round(1.58);   
, V* U& e8 i/ K( g" _! r% _! g3 `  -> 2    * s) [$ k& L3 R2 q" t, V
mysql> select round(1.298, 1);    $ g$ T& t! y4 x3 F- W: H
  -> 1.3   
% B' u8 R6 [2 P6 I8 ^4 B) wmysql> select round(1.298, 0);   
6 p3 H' P+ s3 ^8 d9 g" `& ~9 V  -> 1    % Y% a$ g8 {, Z$ D; G
, e# S$ A7 S+ q. C* F/ A
exp(n)  8 u" P! A. e$ Q; C
返回值e的n次方(自然对数的底)  , M* N* |' a9 G+ [4 G
mysql> select exp(2);   
/ y" V, F# @- L' u  -> 7.389056   
' L# L4 B% k- G/ _mysql> select exp(-2);    ( ]/ v: P0 A' R0 H7 l8 e- P
  -> 0.135335    + U2 T# d) c: Z) ?1 C+ t" R# N
9 E* J3 ^8 H6 r( k" V; V
log(n)  ! [2 p% m  E8 l& V( S0 p
返回n的自然对数  9 I9 z8 q4 z3 M! _
mysql> select log(2);    ; v- x0 }' h" s( G; \2 G
  -> 0.693147    7 V* Y" B& C% Z
mysql> select log(-2);    ; r+ p) n8 }1 a$ f# I# b
  -> null   
3 S: l$ }( l0 o' e. @ 3 J: w; Y/ \' x% n
log10(n)  
/ c! A$ O- Z* |7 `: E5 [. `/ v  A返回n以10为底的对数  2 s' K) ?3 u. s. o
mysql> select log10(2);   
" M1 y$ T) n, U% S  -> 0.301030   
& Y) Q" i+ W, @: ~8 l, Tmysql> select log10(100);    # X0 M1 h; p# u( l1 K" M
  -> 2.000000    2 }* f% t% P& Q$ d$ z+ [8 m# `  s% ?# [
mysql> select log10(-100);   
% B# d  w* b& H2 w: M) U0 R  -> null   
' C1 i6 ]2 b) B6 O1 ` & n! `0 f) ]! a6 u1 }
pow(x,y)    1 \: l* H8 n, J9 J- k0 G" A
power(x,y)   
" z2 A5 L3 @4 G- z 返回值x的y次幂  / F2 g' f% C+ v- a! [
mysql> select pow(2,2);   
% `8 w2 O7 }8 [/ ?% |3 P8 [1 I  -> 4.000000    ) D, j5 n8 e; B& B
mysql> select pow(2,-2);   
; I. [2 Y: ?0 _  -> 0.250000  2 l: G  w7 w4 }3 X+ Z0 H

! w; y7 d. Z% R! \/ v% Psqrt(n)  & j+ ?2 i, P2 g: F) o) v
 返回非负数n的平方根  
! g1 G- \$ D) g) {4 f; l; {mysql> select sqrt(4);   
6 a; H! J5 p9 K$ V+ P9 Q2 {  -> 2.000000   
! P) F' n, e8 H4 f3 lmysql> select sqrt(20);   
* l+ D; R$ G$ O; E+ ~5 D& F  -> 4.472136    ' U2 E! {6 C! C, G2 r: v. ?- V" d% R

2 p& \# N  A; e* P( \# Cpi()   
7 j& D, S4 V; Z. ?0 Y( Y 返回圆周率   
0 B- u9 i; g  q$ @1 `mysql> select pi();   
$ y* h) I( }. J  -> 3.141593    8 \" n5 [2 s: ~2 |; P; k8 T

# w3 d9 Y% A' m6 q" Vcos(n)  ( j7 {; s& N+ u) F. _" P
 返回n的余弦值  ( L, m% N; k6 Y% C. n8 k
mysql> select cos(pi());  
5 r; w! R1 k# E6 W  -> -1.000000   
+ E% v; J9 N$ o- d6 | 5 g3 N! q, j# f# e1 M/ `' u
sin(n)  
  M. X; U, e* M8 z8 V 返回n的正弦值   ) z8 r, z/ c* ?! e
mysql> select sin(pi());   
$ D, U# R& X7 W6 @- O, ^) a3 S  -> 0.000000    5 I4 P( u3 g- H; ^: a

) m( Z3 ?% t1 P* m7 atan(n)  3 w5 z( I7 G- l+ r$ G
返回n的正切值  
( H$ k" I* `6 c4 I6 @* _mysql> select tan(pi()+1);    * `, i8 U; o7 w& C; V+ h% A' u; h2 [
  -> 1.557408   
4 b; H3 H( K- j, \/ r7 u
$ `- u9 {+ `+ m1 gacos(n)  / S: J$ S# o+ X* E' `
 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  ( [, v/ Q% l5 \8 k# |' _
mysql> select acos(1);   
' R/ c% {5 N* a( O" g5 _7 c  -> 0.000000    5 I5 l. I: q3 R. |
mysql> select acos(1.0001);    9 i6 j& i, K1 @% t0 W2 ~1 n, c
  -> null    6 M! k& C) U  v2 o, E3 j
mysql> select acos(0);    # E! ]1 X# O: Z# `3 X( Q  k0 t5 [% z
  -> 1.570796    4 ~$ K7 f7 {2 D" Y

0 \+ i9 P% L% N2 Y% G7 wasin(n)  ! W0 y0 m3 o% \7 L* G9 F, p) }" g
返回n反正弦值  $ T, r* [" `- G/ a: Y
mysql> select asin(0.2);    1 i+ q5 |' K% U
  -> 0.201358   
8 u8 Q" d" v# n1 a0 \, tmysql> select asin('foo');    % e! B4 F4 F) b( |
  -> 0.000000   
2 n8 D* e, \& s3 P! R6 X
& K' m7 x/ a. x) y/ K$ [; g( Vatan(n)  ; ~1 v0 }" R# k4 ^3 l+ p
返回n的反正切值  
- G7 Q& T) ^3 D% I7 n; O0 Rmysql> select atan(2);    - N& i0 k5 y% ^) _( k9 [
  -> 1.107149   
- w1 i& [# ^. ]+ ]* bmysql> select atan(-2);    5 h' l; C* m7 L% s4 |& U
  -> -1.107149      [8 i0 L& B1 ?& @0 H
atan2(x,y)   
% p! ]  o2 S7 t6 X 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  % N- q! U: R: Y9 G. C) Q
mysql> select atan(-2,2);   
; _6 b; g) }4 U+ ~0 j  -> -0.785398   
% A1 u9 P. m! }( q0 v. r# omysql> select atan(pi(),0);   
3 y5 L( |% b4 }- X2 ?8 r  a. j& X  -> 1.570796   
. x7 P) O% q, Z9 K. q 2 ~: y' s' n  Z1 A
cot(n)  % ~+ {. B5 f9 M( [
返回x的余切  
9 H& d) z2 w) S# H" Jmysql> select cot(12);   
* @% d* U/ d; P" |6 G$ P  -> -1.57267341    : N$ b0 u. z" e7 N0 ^
mysql> select cot(0);    ) e9 Q; i2 B& l; F& o8 C
  -> null    0 o1 p. F. q" J* E2 U
* O4 ^( `) |1 K6 F3 }
rand()  
3 `% m4 w" f, h9 K2 c$ I. F) Krand(n)    $ E9 C- O& h/ @* j5 r* q
返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值) * A* b9 Z# i+ D/ ~% V" F
$ N. L- I/ H7 l* {9 N# D
mysql> select rand();    - @& Y' g% q" ]
  -> 0.5925   
! a7 V$ G, D8 u) @! M: }' B3 B  ~mysql> select rand(20);   
+ l" t( s2 W' G# v* \  -> 0.1811   
) Y2 U6 `- g! S6 F( }! }" imysql> select rand(20);    3 [4 q  y0 c9 F9 R, g; T6 k
  -> 0.1811    / {4 I7 B' |+ G. S& n  @0 m
mysql> select rand();    * Q; b0 \- B$ N" I
  -> 0.2079    # i4 j2 o' @/ _9 {: M" {/ N9 F  \
mysql> select rand();    5 v- o5 j8 ~& A' F: u
  -> 0.7888   
' F1 P  M( w0 p, C, y* ^* K
3 k. ^+ m! y6 Q3 Wdegrees(n)  
: j: \5 q1 K( l' Y/ a8 [  e把n从弧度变换为角度并返回  # H: X) X% h  }) M
mysql> select degrees(pi());   
0 ~( D. L$ S, N  -> 180.000000   
) ]4 N$ j3 J& C$ H: O; p; H, J: E
) ?0 z* \5 X  hradians(n)
" o1 H- ~) W1 p" f( R把n从角度变换为弧度并返回   0 V$ ^* G  b) K4 ?0 v' p- D; t
mysql> select radians(90);   
5 }9 Y5 O) x' d5 Q& u7 T6 P: _  -> 1.570796    / l4 N9 m" x5 {  G# }( G

7 F% f  f" l4 s+ G5 jtruncate(n,d)    - B; X$ V8 `: D* i
保留数字n的d位小数并返回  
( D9 N' B, {$ Gmysql> select truncate(1.223,1);    ) z3 Y/ A0 h& S0 Y! [
  -> 1.2   
. a" u8 A, @" m0 X7 a" z% c% Bmysql> select truncate(1.999,1);   
5 {4 l$ l1 V; a$ j3 w3 M# x5 o  -> 1.9    # A, R1 {2 I7 [$ f! u% R9 z
mysql> select truncate(1.999,0);    6 \1 N: f: B  K  D, f3 {
  -> 1    : `8 [1 j, N1 R
/ S- b' r, W( r. d
least(x,y,...)   
3 z0 F* P+ E2 ]( j- }, _" {返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
$ q. E) X& w# _) s: n* _7 M5 g  {$ Vmysql> select least(2,0);    7 x* G* b- M4 s: S8 E/ |% I  @
  -> 0    . p6 V3 k5 A7 i2 f
mysql> select least(34.0,3.0,5.0,767.0);   
* _7 Y# P2 Y3 \8 ?  C) C7 n% w  -> 3.0   
! I# ^7 A" z( N$ U* tmysql> select least("b","a","c");   
2 R8 Q1 d! x; G1 v  -> "a"    8 X6 d4 ^' F3 X8 D4 V

! x6 S7 ?" O' x! c0 P) z; O: Ggreatest(x,y,...)    5 V3 b. Z3 @& e  d  h; c1 x
返回最大值(其余同least())  + m" |5 ?& s' [7 Z
mysql> select greatest(2,0);    2 d  ~1 y. K; s. D3 O
  -> 2   
1 w; G% \. s) o6 i0 x+ V7 u& Hmysql> select greatest(34.0,3.0,5.0,767.0);    ; F# v3 u. n2 q, I$ T6 Y
  -> 767.0   
  s! g. i* z5 t! }. r6 B; Nmysql> select greatest("b","a","c");   
- D. M8 |+ _5 i% H6 P# o5 {. C  -> "c"     
3 Y5 t, l, H" `* |3 D5 v* u" {! d8 f# A1 O( v! W$ u9 e3 D
3、时期时间函数
# u3 s: a9 I$ Fdayofweek(date)    $ X& E/ l' t6 Y* \/ V6 K
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  1 s) K0 ~. S# v* n
mysql> select dayofweek('1998-02-03');   
+ e7 u$ O! d0 m; c7 b  -> 3   
8 V$ E8 U0 Q' w& J9 M! D* h0 r
; q: i2 e) `0 _; t( A* \" @. cweekday(date)   
/ b* P1 m$ t3 m7 ]# P  `+ Q返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
; i  R. y3 p3 K+ D* o  @: n+ G6 v  
: t( r( L+ X7 B- `mysql> select weekday('1997-10-04 22:23:00');    " g& a3 c$ b  Z. M! C3 A1 {
  -> 5    5 V1 k0 I2 y, Q: H) N, d4 Z
mysql> select weekday('1997-11-05');    5 ~- d( k  }5 t2 |$ q
  -> 2   
" O5 X; W" d" e* C" ]) j
" y, Y- [$ R4 T# x9 b. p5 @; ldayofmonth(date)    7 v0 e% c! w0 @! ?* ?
返回date是一月中的第几日(在1到31范围内)   
  E! P7 m, m  P, l* }mysql> select dayofmonth('1998-02-03');    ( l& C6 j% q" d  j; T/ O! K
  -> 3    " q- C3 l: ]3 O! H' `+ L7 B, p/ i

* T+ ^. m3 K; ~dayofyear(date)    9 a. J7 t& @% f- w0 r; Q& ~. T
返回date是一年中的第几日(在1到366范围内)    9 `9 i6 `: f  q) z% C' u
mysql> select dayofyear('1998-02-03');    0 N) `: [- ?5 k1 w. ~
  -> 34   
8 I7 |1 v% l$ I% I, ~$ S  U7 C : P; T" g+ [$ s+ @
month(date)   
% U* T  r: C! d; H) O返回date中的月份数值   
( L$ p, g6 m6 g9 t. kmysql> select month('1998-02-03');    9 O. s. h+ v0 n' J
  -> 2    8 T  H, |9 V6 J* i9 T5 h
0 @7 i6 l! O1 k3 n) \! P, t% p
dayname(date)   
5 D0 s/ a- K* d5 I4 m" R返回date是星期几(按英文名返回)  2 ]' F( Z# P/ I7 X; R5 s; k' q
mysql> select dayname("1998-02-05");    ' i" s3 F! Y/ u  u5 Y4 p: H6 Z
  -> 'thursday'    % T) p7 P) Z- P+ s

4 H0 ~& d2 b5 ?5 }6 K% S) w# ymonthname(date)    ' |$ V9 k* h) h' }
返回date是几月(按英文名返回)  ( O2 K* S# Y! q0 C% k8 C
mysql> select monthname("1998-02-05");    1 M) T; r/ v- N
  -> 'february'    ( a6 g% V7 _4 L' W% e+ E! H

5 _' j( M2 P) G+ N* _quarter(date)    # Y0 n2 d. @) c; \: h" o
返回date是一年的第几个季度    4 e4 v! I  z# V3 V; [
mysql> select quarter('98-04-01');    ' Z( }+ h9 f# V
  -> 2   
  Z( D1 H. t8 N  t8 i: z% A1 Z1 V
7 n! O+ W/ U" Y% c  Y1 M" Jweek(date,first)   
2 ?) z- d, V* M, S返回date是一年的第几周(first默认值0,first取值1表示周一是
" j1 z- p6 A: |周的开始,0从周日开始)  
1 B$ ^2 [' Q7 {' Amysql> select week('1998-02-20');   
2 k4 I" w8 x5 ^% Z8 @  -> 7   
  O' x7 F. {: @, ^mysql> select week('1998-02-20',0);    " ~" m9 Y' u. D! u2 U
  -> 7   
6 `/ a% q  N- N/ @/ y: T/ @mysql> select week('1998-02-20',1);    ! z' F: O/ A+ e( h0 i  j
  -> 8    ! H4 o, Q# H5 \9 |

9 Z0 @1 J& k0 A) O4 d9 V/ ^' Vyear(date)    % u* O8 }- U1 P1 K7 z5 K6 l2 o( T
返回date的年份(范围在1000到9999)    ( {* j/ r& N7 v$ r
mysql> select year('98-02-03');    5 s2 T& p& A* b
  -> 1998   
9 l. [& [% M0 e" v% f% `% R+ P) `
/ t9 `. _* W% _: o$ \0 thour(time)    $ C. T' u! R# b! @! \" ]
返回time的小时数(范围是0到23)   / p( R* R+ A6 W2 g6 y
mysql> select hour('10:05:03');    5 m. a, ^7 D4 ]2 o
  -> 10   
3 t6 n5 M( |# j' x0 F $ c# o7 w+ w: u! p$ a
minute(time)   
* E0 n( m- ]4 S! u5 V( M1 [; d返回time的分钟数(范围是0到59)   
( \0 x; t! O7 F- K5 b2 j& fmysql> select minute('98-02-03 10:05:03');    4 r) Q! B- K4 [/ ]3 @2 y  R0 V
  -> 5    4 B! l! K, \3 F) p& X- \9 _- s& B

1 p1 W: L- [: `% C! zsecond(time)    
% c6 @/ n% i- K: I6 F6 \% |返回time的秒数(范围是0到59)   " t0 h0 s- q+ ]+ @8 L. S3 j
mysql> select second('10:05:03');   
4 A1 D+ \1 N- I  -> 3    * _5 ]+ u1 H" S" V
, a$ q; P! P3 e! j+ [, [1 H
period_add(p,n)   
! q$ i1 w5 V+ D+ f* l% {增加n个月到时期p并返回(p的格式yymm或yyyymm)    & a5 g7 r: w1 T
mysql> select period_add(9801,2);    ! t* n; a$ t. B5 C5 ]9 {3 l& D0 u
  -> 199803    ' ~2 R5 w: n/ c

" _: J# d7 O6 Q' Q/ e2 k0 Xperiod_diff(p1,p2)    : R; M. b; R( H; o& W
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  
: G1 y; ~4 h) m2 C( h: ]; @. Cmysql> select period_diff(9802,199703);    6 [/ s# B  j) Y; J4 t1 g
  -> 11   
' h5 |; E2 @* P, V4 P0 H
' `' g' K; ]6 E+ g7 P5 gdate_add(date,interval expr type)  ! p+ T/ ]  W" W# A% P
date_sub(date,interval expr type)   
5 Q' D4 v- _1 @( Gadddate(date,interval expr type)    , P% F3 c$ J: y
subdate(date,interval expr type)  
9 _' s& S  b2 [: D. C, I; C对日期时间进行加减法运算  " `7 v  {) f& S1 S* M4 \) _: h
(adddate()和subdate()是date_add()和date_sub()的同义词,也
! z2 Z: _/ q, Q2 r可以用运算符+和-而不是函数  8 I. X3 M$ B/ Z
date是一个datetime或date值,expr对date进行加减法的一个表
+ @: v8 w9 k: m: k/ a& T( T" x: O2 j达式字符串type指明表达式expr应该如何被解释  
$ }7 r7 |* ~' O# _" o [type值 含义 期望的expr格式]:  
, X2 e& J" O( s% M. |/ ~, L second 秒 seconds   
1 Q9 ^" B% y/ {0 c1 h% N; P minute 分钟 minutes    / m% H: X. R% d/ |6 n6 a6 L
 hour 时间 hours    & d. Y- `: k; f
 day 天 days   
. W9 }: W, Z8 Q$ n month 月 months    7 t6 s$ o$ d* \- y' b1 T2 l7 I6 |) W
 year 年 years   
) V7 F+ p+ {/ w! M. e* b minute_second 分钟和秒 "minutes:seconds"    ( Q3 `% E7 W$ K" o0 ^- @
 hour_minute 小时和分钟 "hours:minutes"    1 D$ T! m- |3 D1 u8 e+ e% A8 I4 E
 day_hour 天和小时 "days hours"    ; R) j3 t: {& e% c
 year_month 年和月 "years-months"   
  ?4 b% }1 B+ N, I$ }- b5 v. S: h hour_second 小时, 分钟, "hours:minutes:seconds"    3 ?- _6 v3 D$ ~  h# w3 x# q8 w+ p5 Q" r
 day_minute 天, 小时, 分钟 "days hours:minutes"    1 B$ w( Q+ W) I  ^
 day_second 天, 小时, 分钟, 秒 "days
( d0 X/ p- P3 {2 yhours:minutes:seconds"
- [9 K, ?" t- T, s! \ expr中允许任何标点做分隔符,如果所有是date值时结果是一个* q9 D) V, ?* v5 X$ X
date值,否则结果是一个datetime值)  
' B- D# z5 m8 D+ D: ? 如果type关键词不完整,则mysql从右端取值,day_second因为缺
6 F. e, ~7 \7 X( s2 i& C' p' g' F# Y少小时分钟等于minute_second)  
* E$ I) }' l7 b. ]5 e1 G3 X 如果增加month、year_month或year,天数大于结果月份的最大天9 W; D) C& F( i! h9 v
数则使用最大天数)   
- W5 n) n" p- ~6 L) e+ emysql> select "1997-12-31 23:59:59" + interval 1 second;  
$ V; `3 x- h! Q0 i- c8 d 9 C7 B8 A: D8 f& A$ Q6 p& \
  -> 1998-01-01 00:00:00   
5 S# u' k+ T: Umysql> select interval 1 day + "1997-12-31";    - v" `7 t1 |) Y/ j, [  Q* R
  -> 1998-01-01    # G9 X; I2 y. g$ |) M# K
mysql> select "1998-01-01" - interval 1 second;   
$ R: e. _% y+ k3 v  l( ~  -> 1997-12-31 23:59:59    + |) O4 s8 m* t# v
mysql> select date_add("1997-12-31 23:59:59",interval 10 v% {! E3 d  s  x
second);   
/ C" u; ]! H% w4 B1 b$ ~9 ~0 S  -> 1998-01-01 00:00:00    ) t3 q8 b' l8 W* N
mysql> select date_add("1997-12-31 23:59:59",interval 1) N9 a  j' l1 v3 o
day);    ; [- U0 C# d$ A% \
  -> 1998-01-01 23:59:59   
' n/ I5 L% z. j8 c8 E. S& Y& Xmysql> select date_add("1997-12-31 23:59:59",interval
+ `9 y5 H# v6 `0 P"1:1" minute_second);   
. H: B( H& k: L/ A1 V" `- ]3 g& w/ W  -> 1998-01-01 00:01:00   
/ z: i' }# z1 h7 p& X2 m# _, `9 }% ?mysql> select date_sub("1998-01-01 00:00:00",interval "1' e$ g6 T3 k6 Q- n2 T, c
1:1:1" day_second);   
2 z$ n5 R- O$ A  u9 M+ h  -> 1997-12-30 22:58:59    % i8 \) M6 g  E* J
mysql> select date_add("1998-01-01 00:00:00", interval "-1  J( q3 q1 [4 \/ r0 U
10" day_hour);  + ^6 t7 i/ O) Y  ^
  -> 1997-12-30 14:00:00    # E0 c2 U* ]2 V" g7 |* p
mysql> select date_sub("1998-01-02", interval 31 day);   
6 |) j. C! y& g- n8 ~7 F  -> 1997-12-02   
  F3 r7 _! H0 B$ e$ d3 x+ zmysql> select extract(year from "1999-07-02");    / ^4 H# E; J8 _2 E
  -> 1999   
# q* C  n  u  C0 r. F8 ]mysql> select extract(year_month from "1999-07-021 r+ s) s) o) u! j$ t  B5 L
01:02:03");    , V' k8 i5 Y8 |& N& N
  -> 199907   
$ S, {! j+ L& u3 ^2 Ymysql> select extract(day_minute from "1999-07-027 L" l* [* B9 r/ D! z$ ?: f
01:02:03");   
* S5 [+ o' ?5 ~0 f0 c  -> 20102    3 u, R) h0 e$ l5 _: T! }5 ?( T
; p/ z& P) O0 Q/ p/ M. f
to_days(date)   
5 F, [  p. @8 b* z. B8 m返回日期date是西元0年至今多少天(不计算1582年以前)  , M# a( o2 {' e/ z: Y2 V  n: W
mysql> select to_days(950501);    2 X: {1 S) R" T2 H6 d& [: s
  -> 728779    0 K  ^( e' H& ?, y  ?- T
mysql> select to_days('1997-10-07');   
6 e8 o$ p6 ^  g/ H  -> 729669   
& c! t' y/ N% {; `( p' ] # y# X1 i2 E/ X/ e1 c4 I
from_days(n)    + o  i* [( }6 B4 M: S  |+ n4 ^
 给出西元0年至今多少天返回date值(不计算1582年以前)   ) n/ I+ d, W7 R
mysql> select from_days(729669);    + }( n4 R# a6 d8 v0 o
  -> '1997-10-07'   
: W4 _2 Y1 [4 ?0 B9 _: V$ R
) R- v9 Z+ q( A9 cdate_format(date,format)    2 w" `- U( @2 N, Y! F% n- x- U
 根据format字符串格式化date值    }* l% q! D3 q; M% }; y
 (在format字符串中可用标志符:  ! s) k1 K+ c7 E, U9 t7 Q
 %m 月名字(january……december)    / t- U9 j& }7 p6 A8 z0 _5 @
 %w 星期名字(sunday……saturday)   
) ^8 o' H4 N* i6 K %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)   
: l* B% {; J0 v: p! E0 y5 y %y 年, 数字, 4 位    : l9 l: X$ K# C7 h
 %y 年, 数字, 2 位      z! W& K( ?( L9 T# B& ]
 %a 缩写的星期名字(sun……sat)   
+ @; R3 E3 Z0 F9 `; J# j; \ %d 月份中的天数, 数字(00……31)    ; r+ ~4 `5 h1 N; f
 %e 月份中的天数, 数字(0……31)   
$ k4 _  R5 \1 z9 N' L" b %m 月, 数字(01……12)    0 n' \3 m# O' T) J3 I
 %c 月, 数字(1……12)   
( G, H/ c4 ~4 I0 t' X% { %b 缩写的月份名字(jan……dec)   
- K: C9 l1 S2 I1 L  k %j 一年中的天数(001……366)   
0 [0 |5 e9 S& p' N' h0 z %h 小时(00……23)   
% b; D; @# N6 N0 {: Z7 F0 j/ p9 o0 N  T %k 小时(0……23)   
) v( {. @( Q4 c: C. ?3 ~/ x %h 小时(01……12)   
* u; n7 z7 Z8 O: q5 M7 R %i 小时(01……12)    . D8 O& k2 T/ a! E& y2 B
 %l 小时(1……12)   
# p0 \5 h7 {4 N %i 分钟, 数字(00……59)    " U$ t% T) v: X6 Q4 S3 }! Q
 %r 时间,12 小时(hh:mm:ss [ap]m)   
# E% Q; _2 m2 {/ k %t 时间,24 小时(hh:mm:ss)   
0 a# Q) Z: ~) S$ z* Z  x %s 秒(00……59)   
5 w3 d6 l6 W0 s( N. F %s 秒(00……59)   
- O7 Q# T' e7 l %p am或pm    % O( y: r  g1 a$ ^% X8 t
 %w 一个星期中的天数(0=sunday ……6=saturday )    $ B' u2 K5 v1 U( E) }, ]+ x
 %u 星期(0……52), 这里星期天是星期的第一天    / D# E  \2 ~  d8 v
 %u 星期(0……52), 这里星期一是星期的第一天   
1 e; i; I# `: @5 n( f %% 字符% )    j6 X) `8 H# Z3 v# [
mysql> select date_format('1997-10-04 22:23:00','%w %m %
3 j- o+ z2 u6 _0 ~y');    " g" i" k$ J6 N! C/ f8 x: X
  -> 'saturday october 1997'    ' i3 C* Q- e: y6 L
mysql> select date_format('1997-10-04 22:23:00','%h:%i:%6 t1 _! E, d& }
s');   
! s& S  @8 m( d7 `: A  -> '22:23:00'   
; Y$ ^5 R, P4 d1 N8 m& x/ Umysql> select date_format('1997-10-04 22:23:00','%d %y %a' d+ T) P" h- w; a+ B1 O- @
%d %m %b %j');   
3 c8 s( y: ?  r  -> '4th 97 sat 04 10 oct 277'   
% G: r% O* x. e% B. m8 q0 G' Ymysql> select date_format('1997-10-04 22:23:00','%h %k %i5 R5 o$ T- v4 Q# A& j# n+ ]. y
%r %t %s %w');   
: T5 X) ^' [7 [/ A5 F( l  -> '22 22 10 10:23:00 pm 22:23:00 00 6'    ! W# O8 K3 `( s0 [# |
' Z) X) K, ^2 f( ~( s1 p* K3 \% s
time_format(time,format)  4 {( q7 a9 k7 y. c, g1 p, M1 J+ p
 和date_format()类似,但time_format只处理小时、分钟和秒(其
' ?% a  J( o! L: R余符号产生一个null值或0)  
' j- K) s+ Y8 ?6 m1 L
8 X& L9 @4 A5 h) h7 m: l1 D7 ?$ Ucurdate()       w# r- d' {; h4 H( Z
current_date()  ; Z9 w& [' I) Q
 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所/ d  U, q& a3 \) z) C# ]# R5 p) |
处上下文是字符串或数字)    + F4 R# r7 i5 ?7 ~
mysql> select curdate();    2 ]7 }+ g6 l0 k% r% r
  -> '1997-12-15'    % I  s  D* R" ^! P" [' H
mysql> select curdate() + 0;    . w8 E# I& J/ n: `
  -> 19971215   
7 }/ D/ G: p5 f) y  s0 J
; k$ r3 ^3 `$ d, s# t9 Z& f4 vcurtime()    % w: A8 z4 D9 ]6 P' {. G/ ]
current_time()  
% i0 T& n. K9 @" J8 B9 a% ^ 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
2 X1 e& q& o; ~/ g* z7 l下文是字符串或数字)      : t* W5 r4 q& Q
mysql> select curtime();    " S+ D: |( F# w0 W2 d
  -> '23:50:26'   
) Q7 O6 ?3 N- V, k. h+ \" k$ `mysql> select curtime() + 0;    6 k' p4 L1 z: c2 |! V$ F+ n
  -> 235026    % a' ], v: `$ _9 g" v
. A& P5 N# s7 z. `4 d
now()    1 {" I& J! Q* n3 V
sysdate()    % H, `( c  Y) J$ l, {3 C: m- @9 I
current_timestamp()  ( L- l- Z( p% q2 E0 i0 Q
 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期- X0 X* X3 y1 ]7 q) B9 b
时间(根据返回值所处上下文是字符串或数字)     
! Z* K$ p" k' Y: I+ S9 Ymysql> select now();    3 N9 n2 [* x6 [; r+ u; V' c- _
  -> '1997-12-15 23:50:26'    $ k: H- j5 D, @* R% ]
mysql> select now() + 0;    * n$ k: v. v, i
  -> 19971215235026   
8 y& L; _+ y& U4 |! _5 _ - G" ^+ E7 X% X/ p9 w/ Y
unix_timestamp()    0 N) ^7 p* I0 s. W6 I1 t2 d; k
unix_timestamp(date)    2 f. h' A. M( g# }. V
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒! o2 [6 u3 _7 H3 A' u
数,date默认值为当前时间)  
" G3 T. d/ I+ P: Y3 N! U( C  U. Hmysql> select unix_timestamp();    ( B$ {: g' I, l+ w% K' _1 K  H
  -> 882226357   
5 o( V3 }" K1 a+ l7 I$ E( H/ F  i% p" `mysql> select unix_timestamp('1997-10-04 22:23:00');    1 P/ n5 ]4 O  J
  -> 875996580   
" w9 H& \5 j* ^, s" } $ p6 `8 V  L+ d% z1 a4 X$ }
from_unixtime(unix_timestamp)   
% N. c( N0 Y# S6 H9 e7 S2 ^; a6 A& R以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的4 O0 J3 ^7 Z2 A+ C1 G4 f
值(根据返回值所处上下文是字符串或数字)     
( v9 a: Y  M0 ~mysql> select from_unixtime(875996580);   
2 u& M% P- n  T. |% |' [  -> '1997-10-04 22:23:00'    % x! Q+ y/ A8 E$ N- c
mysql> select from_unixtime(875996580) + 0;   
: k# F/ W$ o& X0 H  -> 19971004222300   
# I) [5 N& L2 e$ W7 \5 [& W
1 W0 d2 u6 R9 g) p! m' wfrom_unixtime(unix_timestamp,format)    5 d5 t) p  Y4 }( ^3 m5 F# |$ {3 R
以format字符串格式返回时间戳的值  
8 ~9 A: r7 a( J% y$ t6 h7 wmysql> select from_unixtime(unix_timestamp(),'%y %d %m %  |8 ^9 U1 m# y. y: C) Y
h:%i:%s %x');    + Y6 Z4 K- \# k  ?3 G& H* ?
  -> '1997 23rd december 03:43:30 x'    % P: Z3 H: B. _: P

% S( @" x5 f5 Fsec_to_time(seconds)    - q8 T! u: z- o
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
( F4 U3 n3 Q6 A% s5 ^* Dmysql> select sec_to_time(2378);    1 K% c( m: S1 Q3 R; e! p
  -> '00:39:38'    : ~* _% k( l5 |8 B( z  u
mysql> select sec_to_time(2378) + 0;   
/ e  Z9 ^4 [# `1 B: X  -> 3938    4 ~4 b! k  e4 z# K7 M5 R) v8 W

. u  A1 b( @. J. s, S6 P4 \time_to_sec(time)   
% B4 u$ v6 a; O" z) T, q, Y返回time值有多少秒   
) d4 ]  r/ ~! z2 i6 Tmysql> select time_to_sec('22:23:00');   
& \" J1 y% x/ |! T  E9 K0 E+ P  -> 80580   
; |2 a2 ]0 j) G- U$ e: Q3 Wmysql> select time_to_sec('00:39:38');    2 Y; Z  G& s7 p
  -> 2378 : U' q3 ]) ], Q
/ A) J# J& L1 A* V5 r/ L
转换函数; b7 k4 l# k6 o* c
cast
& i$ R! Q9 i" I* X. ~% n2 Q用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]
6 n- |  [4 j( z. g: C- F; @实例:select cast(a as unsigned) as b from cardserver where order by b desc;
& P/ E! D# @- p  V! aconvert:
, F4 \- F+ o* J8 ^0 C6 B用法:convert(字段,数据类型)2 }  N7 E* `; r# |8 e, V
实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
& R  d: Y& Y1 C3 ~9 `) Y, f





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