中国网络渗透测试联盟

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

作者: admin    时间: 2018-3-21 16:07
标题: mysql常用函数大全
1、字符串函数, K% d& D0 j5 X
ascii(str)   . Q- t7 r+ o( n4 Q7 B9 Y
返回字符串str的第一个字符的ascii值(str是空串时返回0)  4 ^; x; n/ b' l1 G0 a
mysql> select ascii('2');  1 {8 K3 h. [7 {& H7 Y( ^9 h; \4 d
  -> 50  
) Y, N- V5 r: y6 h/ bmysql> select ascii(2);  
  H" x* K3 v% I  E9 ^/ N; o  -> 50  
* Q6 s( C7 `3 F9 rmysql> select ascii('dete');  2 r$ f$ P* z/ J/ X1 h
  -> 100
+ Y6 ^/ I: S1 @7 M
ord(str)   
7 x4 \5 B( {% Q6 C2 u; s3 x9 V! z! ]如果字符串str句首是单字节返回与ascii()函数返回的相同值。
8 L: F" B$ b/ f& ~& j& N. G 5 x# p  `8 E4 S' q/ X
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  * w+ q: ?! y( N
mysql> select ord('2');  
7 @+ f, x8 T- E" q$ X  -> 50  1 K0 o  t; L* n& X4 v
   
# `& a  h" d. Fconv(n,from_base,to_base)   - @7 C- y: z8 u6 x6 g$ _- F9 ^
对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  . Q0 w: u6 C4 a/ ], U, f0 y
mysql> select conv("a",16,2);  
) J6 o7 J7 G: j4 r  -> '1010' $ i# ^4 H3 F: X  B& A. E3 [7 I
mysql> select conv("6e",18,8);  5 I) t* N) R6 J: ^
  -> '172'
8 |: C' z6 c% ?; X& Gmysql> select conv(-17,10,-18);  
2 O( E0 }9 X# W; G  -> '-h'
2 |$ v8 a) d  [; imysql> select conv(10+"10"+'10'+0xa,10,10);  
# ^( F3 k* Y/ o' W9 C  -> '40'
4 M( J- N: g4 h0 |   
- s, _) [2 L1 {1 n" sbin(n)   5 u0 Z* G6 ~+ n, ]
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  ; D2 T" G8 E8 }
mysql> select bin(12);  & `" R/ V6 e' |* U9 J
  -> '1100' # `( V0 H; u: U
6 o& C" t$ P+ ~0 j
oct(n)   2 G* a4 \5 O: b1 j: |
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  ! f- h; h. |# f% V
mysql> select oct(12);  0 E6 a% u/ r: n" M4 e2 l, O3 n
  -> '14'
& c* K4 L7 K9 X5 o  Z9 q   
, P  K2 g( a$ _; zhex(n)   + q- ~/ e8 H2 E/ e: e3 J( Q
把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  % M: H& `$ X2 e' a# F  s
mysql> select hex(255);  
+ h( \$ G+ ^5 s: @: u  -> 'ff' : z  h! g7 x" j: C3 f& S) k( ~# d
   $ T* K0 w- ]8 r$ C  c8 O& C
char(n,...)   $ [' D/ T' n- n
返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   
! B) Z, |/ k( n3 M$ W( Y+ ?mysql> select char(77,121,83,81,'76');  
5 E7 V4 b: P9 J: p( a5 v4 _4 I; B  -> 'mysql'
- Z, b. k; H0 g+ o$ c. n* bmysql> select char(77,77.3,'77.3');  " W# M9 h' h; H. T: G
  -> 'mmm'
9 H6 |. t" o/ ~* e. H+ l   4 ?: ?; j4 ]" W" t3 n6 }
concat(str1,str2,...)   + Y7 U0 w  a3 K$ f* c
把参数连成一个长字符串并返回(任何参数是null时返回null)  
' D7 z( v) o) I" G3 A3 z1 Imysql> select concat('my', 's', 'ql');  6 F! g! e6 X5 W: H
  -> 'mysql' ' |# l' H2 l. u- B
mysql> select concat('my', null, 'ql');  
: _# W# R- W. T  -> null
; O4 }; A% ^- b* v# E: |+ v0 omysql> select concat(14.3);  
9 g  J  C9 L7 Z2 V% ]& L  -> '14.3'
8 l/ m0 f1 }6 A: \/ d
5 g, S! }& J. `: G( D0 Nlength(str)   
1 Q9 A5 s* P# q- l) D! noctet_length(str)  
2 {8 ~, a+ a# P+ A, `char_length(str)  
4 v; r6 O' H' {, k  N) U6 \8 Kcharacter_length(str)  
5 c7 I/ s! D: X( `返回字符串str的长度(对于多字节字符char_length仅计算一次)
% U$ q# T2 W" ~% Z; _% Qmysql> select length('text');  / U2 y! u# \7 Q% k" y
  -> 4  
4 s8 o% m6 t+ {0 Jmysql> select octet_length('text');  + j& }0 G/ }" ]8 Y4 V+ Q( d
  -> 4  8 K- F6 d8 p( I) ~/ |" ~
" j9 y( t2 g3 p
locate(substr,str)   
: u/ Q/ o/ X5 ?4 X6 Y1 m* pposition(substr in str)   
5 \- O2 E/ S* L7 `1 P返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  . Y$ D7 e3 Q0 M* j8 p' y" u- }
mysql> select locate('bar', 'foobarbar');  $ D) M- d8 p  n5 a1 a
  -> 4  
! B! H0 o! z9 z6 l# C/ dmysql> select locate('xbar', 'foobar');  $ B- `* Y' i% G. E1 J
  -> 0    ^3 G) L: {+ @. V' n5 @
   
, r( A# }  v" y" Y+ {locate(substr,str,pos)
: c% ?& i! [% T' }2 ]# `返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
4 B8 N: w& A2 w4 jmysql> select locate('bar', 'foobarbar',5);  
/ H! F4 I$ E' Z! L  -> 7  
6 \9 }3 \$ h- w
; l5 p, o' g: vinstr(str,substr)   0 h5 [; ^+ x: G0 w* i4 [" N' n7 U
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  3 F3 s/ g/ D- d
mysql> select instr('foobarbar', 'bar');  
" J( Q  v. W0 ^8 W4 ^6 R4 y  -> 4  
7 X2 u3 ?& y% Pmysql> select instr('xbar', 'foobar');  
2 K$ M& w! @& ?* c7 V  -> 0   ( G# K& i' Q" {* D

# }, m3 Z( t( ]9 q! b! @! Glpad(str,len,padstr)   
; d5 y' P) j5 h8 N用字符串padstr填补str左端直到字串长度为len并返回    W' i& O2 R8 N% k& K
mysql> select lpad('hi',4,'??');  
, A1 b) c( U) B1 b  -> '??hi'
8 R" O2 j/ T/ f: L) e2 C2 p. z0 ^   
  w9 i$ L  b8 K: h8 rrpad(str,len,padstr)   
  p. F5 R% p4 R( \- u* l用字符串padstr填补str右端直到字串长度为len并返回  
1 i) m0 h) _" {mysql> select rpad('hi',5,'?');  / m9 q4 v" t4 h9 M  v6 k
  -> 'hi???' ) K* K4 D2 R9 f+ o

/ \* q: }5 n% |. [; d& |left(str,len)   
1 M; u' U2 ^, E& e0 n* X4 Z. N返回字符串str的左端len个字符  % e+ p# Q* f- X. U0 Z7 I2 x
mysql> select left('foobarbar', 5);  9 b9 J$ n% j6 h2 G% G
  -> 'fooba'
/ v) J6 s4 L: h$ r0 f
; n+ h( p! z& qright(str,len)   4 c4 I$ ~# {* c6 s
返回字符串str的右端len个字符   
' B# O( ^9 s9 p, e% _# D! Lmysql> select right('foobarbar', 4);  , ^0 u4 i2 g7 B) y5 o' @+ {
  -> 'rbar'
4 X7 e/ i9 \: x9 o/ s
9 y* x; m, Z) u1 m) w8 fsubstring(str,pos,len)   
3 ?# U8 w3 @9 N0 }9 ysubstring(str from pos for len)   
! T7 P) ]! ~0 w* e7 b' [mid(str,pos,len)   
4 n1 y% t3 ?5 h8 z; v( h% L返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
& a) Z* y# I" Q7 q+ E& j+ }  -> 'ratica'
/ N: i1 R; Y0 E) l8 F8 j. x/ G/ P 9 W4 e* f0 ?, W9 v& \' L
substring(str,pos)   : t1 n% O) W% P/ k( q: y9 T# k
substring(str from pos)   
& O, `% j: @6 c# U! `% Z& ~返回字符串str的位置pos起的一个子串  0 n$ a% @5 p% _9 F4 K6 s; `; J4 Q
mysql> select substring('quadratically',5);  
' Y/ g  x+ C* F. @  -> 'ratically' # l; R' l* R% H8 p* o0 X- q4 |
mysql> select substring('foobarbar' from 4);  , k- @# B3 I  f4 l
  -> 'barbar'
/ v* s9 e& j5 h
2 C- F8 c, K9 l4 k  U' _substring_index(str,delim,count)   
8 C7 p% \) P7 L2 A1 v返回从字符串str的第count个出现的分隔符delim之后的子串& z4 r2 M* T9 P, |
(count为正数时返回左端,否则返回右端子串)  3 C& k- i' ]( R- _9 ]' ~: n
mysql> select substring_index('www.mysql.com', '.', 2);  
3 a( j7 b$ `. I$ D  -> 'www.mysql'
+ h# \) j) c8 Q* d% q/ \mysql> select substring_index('www.mysql.com', '.', -2);  
8 V6 @% R; A. O& `) G' ?. C$ S  -> 'mysql.com'
+ c! _9 s2 G) g& \6 Z
( D) X, d4 m& Sltrim(str)   9 Q; t1 \! x, N2 G) ~( J
返回删除了左空格的字符串str  . ^$ `2 i0 B9 F: R+ o% U- n
mysql> select ltrim('  barbar');  
# C& \& R" E( z4 P4 B  -> 'barbar' + Z8 p) `5 r! T7 D4 ]
0 l" I; Q3 b' `% X  j5 _% A
rtrim(str)   . ]$ E/ E/ _' `& I
返回删除了右空格的字符串str  ! J1 s+ O; z+ H: M# T1 B. O/ v! e
mysql> select rtrim('barbar   ');  + h% \* N! F1 d6 M2 V
  -> 'barbar' $ k; v$ u: a0 M1 n. C

& K- I% P$ R0 ^. O/ G: K  Itrim([[both | leading | trailing] [remstr] from] str)   # Z* O3 }2 {) @$ J" e
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  7 ~$ ?0 p5 g: L- @, Q8 S; N
mysql> select trim('  bar   ');  9 z7 }( z, F7 e7 p) e5 l1 R
  -> 'bar'
3 L. Z" y/ b* k+ I# N) Hmysql> select trim(leading 'x' from 'xxxbarxxx');  ; L4 P  a$ b$ H) ^, w- `4 N
  -> 'barxxx'
2 J9 }0 o/ n5 Smysql> select trim(both 'x' from 'xxxbarxxx');  1 s' I3 f# X2 O6 R# c6 F
  -> 'bar' % H7 \+ n6 m% j3 ~5 _+ f
mysql> select trim(trailing 'xyz' from 'barxxyz');  ) j% `( F8 J9 [# z; R$ p/ @
  -> 'barx'
$ K+ p! e4 x: F$ i' \# y
7 x0 R% ~: [0 X6 x! Lsoundex(str)   % `0 _9 e' S# O
返回str的一个同音字符串(听起来“大致相同”字符串有相同的
% c, @+ p. l) B2 _: u- y同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  
, b7 z9 z9 L: f6 k2 s% x/ d( pmysql> select soundex('hello');  & m9 w1 i" B9 j+ C
  -> 'h400'
, k* W3 ^- N- D* ]7 [+ q7 [2 dmysql> select soundex('quadratically');  ' E, Q! x' A1 R8 D/ F$ J
  -> 'q36324'
  W8 F5 L# j0 |+ M. L9 X. V) F8 I   
5 \, \) `2 Y2 |1 Uspace(n)   8 X6 l' w1 q( ?& J! X
返回由n个空格字符组成的一个字符串  / y* M8 j6 w/ F" T' _9 B1 i7 s3 o5 [
mysql> select space(6);  & `7 }1 x3 f; w
  -> '      '
. s2 n/ |/ N+ X" T5 G. ?! _3 f6 Q2 _   0 Z' o  W! a# [
replace(str,from_str,to_str)   : g. n3 G. Y2 [' h4 A# E3 I
用字符串to_str替换字符串str中的子串from_str并返回  
4 S! G, d, `% ^0 X1 S# v# omysql> select replace('www.mysql.com', 'w', 'ww');  
. H7 g, H6 r5 A2 ~$ a2 R/ S  -> 'wwwwww.mysql.com' 3 P, l" ~, }2 w$ B* y1 r: j/ E

+ f: [* i7 j* Z& N; \' [) Lrepeat(str,count)  
0 M1 o( d/ v" F# Y返回由count个字符串str连成的一个字符串(任何参数为null时
% |: i4 g  ]3 P: J8 W6 T/ Q6 F8 Q返回null,count<=0时返回一个空字符串)  
% s& f) H5 E/ w, Hmysql> select repeat('mysql', 3);  : p/ ]2 x" @- u' K' ~" o
  -> 'mysqlmysqlmysql' # m. a. B0 x1 f% X) T8 m) f5 p
   
- D- Y2 v. K3 `5 Oreverse(str)   ! L0 M$ R/ t4 W$ `
颠倒字符串str的字符顺序并返回  6 {& z1 t7 r7 c4 e
mysql> select reverse('abc');  
, b% g3 D( i5 {, [9 _/ G# d5 b  -> 'cba' ( U/ d8 h' p. r% u/ ^* ~
7 F# Z0 }/ W, L" l* `: \
insert(str,pos,len,newstr)   
9 |4 a) H' [; X2 G. F6 O: u$ i, A把字符串str由位置pos起len个字符长的子串替换为字符串
  O% c0 C7 v9 ^/ lnewstr并返回  ) ]% W6 `6 ?0 x5 }* s: r
mysql> select insert('quadratic', 3, 4, 'what');  - L4 V% i8 p4 [7 |2 s  D% M
  -> 'quwhattic' 7 j% l$ z$ g5 W4 ^

& W# V& I/ [: p! E; x! Z- [elt(n,str1,str2,str3,...)   
' K9 u9 A- X) a1 }) Z返回第n个字符串(n小于1或大于参数个数返回null)  5 S- w/ M" O. a( b" T) b1 @
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  * c) u3 R& e$ z4 a7 E" ~+ j# Z
  -> 'ej'
& k' O2 W& h/ U/ r$ I. x/ @' G; umysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  
8 f" v7 s; _/ T! |0 g9 b  -> 'foo'
4 q; C( |, E/ E2 q! T' Y( \1 X 3 h! T3 E& o5 p2 p3 f* M7 }
field(str,str1,str2,str3,...)  
* q  p" q; R# |: d返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
5 [$ r( R: ]: E: t2 \* c% m6 vmysql> select field('ej', 'hej', 'ej', 'heja', 'hej',* Y% N+ r) r, n' E$ H  U
'foo');  7 D0 {  P, j0 p% t& w  }" G
  -> 2  
" ?" M  o2 u' ~: t% o9 e& n7 vmysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
* ]6 f$ [3 {2 s1 b'foo');  
2 c# r7 A/ _( i% P  -> 0  , k$ A1 f  v* z! p
& N' l9 \# y; E3 G8 M' q
find_in_set(str,strlist)   
# V! X8 x5 m% D9 S* C. ?返回str在字符串集strlist中的序号(任何参数是null则返回  O; m0 r2 G* y9 x. e+ @4 @
null,如果str没找到返回0,参数1包含","时工作异常)  
) P) R3 X: Z' v, `0 Amysql> select find_in_set('b','a,b,c,d');  ( }% }4 w% @! X' Q$ J5 ^4 n' e8 G
  -> 2  
1 k! O- ^# g6 w& Q  _$ m4 O   / Q  t' v3 g9 E; z
make_set(bits,str1,str2,...)  
2 k4 E8 k7 f" k; \3 o把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
" [* E0 n% _9 k% q6 d) z+ [位置的字串选入字串集并返回(null串不添加到结果中)  
# h- w0 g) S! [& z0 y2 kmysql> select make_set(1,'a','b','c');  7 I) _8 r2 e: O6 ~! r
  -> 'a' 4 ~0 ^/ @5 t$ Y. H, [, w; X4 k4 b
mysql> select make_set(1 | 4,'hello','nice','world');  6 Q7 R+ {7 N3 |& L$ }8 }5 m
  -> 'hello,world' # N! a' c) b" I& `
mysql> select make_set(0,'a','b','c');  # y* G* H( F" J* y" q
  -> ''
$ W: q+ V/ p- J8 U+ C$ p6 M
( V7 x! w1 z: G  E8 H; Y. y  Uexport_set(bits,on,off,[separator,[number_of_bits]])   ) m6 a: k% a- p
按bits排列字符串集,只有当位等于1时插入字串on,否则插入
$ Z# `! z6 ~5 @' f1 _" ]% |4 o$ ^off(separator默认值",",number_of_bits参数使用时长度不足补0
3 G. R9 Z7 r( ?9 ]& @0 h+ E2 r而过长截断)   
8 ~( [, |' \/ T: u( S% Wmysql> select export_set(5,'y','n',',',4)  
5 ], a6 \+ P1 c7 ^% Z  V0 I  -> y,n,y,n   0 ?9 z" f. U& [
) v6 `3 K+ p; E+ [9 k- r3 \' `
lcase(str)  
, M# r9 P5 ]' mlower(str)   # G  b9 i# m1 m: T4 G
返回小写的字符串str  , k0 z5 z! g$ U
mysql> select lcase('quadratically');  
5 Q: y5 ^& k8 |+ k" g" ^+ \5 [  -> 'quadratically' : G- b1 q, @8 x, r# A
   ; `# F$ v( Y7 A% e7 s, q) K& ?
ucase(str)   4 o4 k5 w% D4 r1 [- l: T* r3 T
upper(str)  
5 F2 [$ m  k. G8 E9 C+ `6 l6 c返回大写的字符串str  - P* M. M* [' B
mysql> select ucase('quadratically');  3 z0 E* k4 p9 v. j4 L. U4 E$ e
  -> 'quadratically' ' Z5 E  ^: M, r4 V
3 P: s7 E! X' J# [% N, j  b# d$ F0 C
load_file(file_name)   
( V6 j$ M5 G- F$ M读入文件并且作为一个字符串返回文件内容(文件无法找到,路径$ J( x8 |8 b2 k8 A7 u' ~' t  }
不完整,没有权限,长度大于max_allowed_packet会返回null)  
0 ~, K  t! l* b3 Gmysql> update table_name set blob_column=load_file. M, {) d6 i- B- f* ~: V" j
("/tmp/picture") where id=1;  
# L) q( j- ?9 s5 D8 x& h
- F* J' x* m2 y$ C; I& Z, ]5 l2、数学函数) e! ^; B) ^6 J# V) n* a, X9 Y% n) k
abs(n)
- D+ S/ \6 f- n# S返回n的绝对值  
' u' R5 o) e, o1 Zmysql> select abs(2);   
0 W" G% ?4 z6 H  -> 2    ) M4 v  m) z* C' f: `
mysql> select abs(-32);    ' q) p. E5 @" x& q1 ^% D
  -> 32    1 I- e" Y: F$ I% Y; f) H2 o
   
# ^0 h' R" R0 G% n$ osign(n)  
$ a  C8 W, P- y+ |$ ?返回参数的符号(为-1、0或1)  
& w/ M7 |' [" ~  r6 V; o' jmysql> select sign(-32);   
4 C" m0 k& L  Z* a; s* i' b. W  -> -1   
1 k) m5 t+ [2 e* c6 m7 P$ [mysql> select sign(0);   
6 ~, B( a, Q; g, h' o  -> 0   
' s5 z. [$ x, W$ |mysql> select sign(234);   
# x" j9 P# s$ n  j, V  -> 1   
/ W6 e* m. o8 x' f 1 t$ v: s$ E2 f; d0 _+ d
mod(n,m)   
1 L# ~; k/ g* C: B# W取模运算,返回n被m除的余数(同%操作符)    8 F" m6 o( U8 C
mysql> select mod(234, 10);    7 @2 H9 j# E2 S, Y+ G# D5 O8 q- f; O
  -> 4    ) q0 y& Y8 d/ u. E" D  v# I5 \( n
mysql> select 234 % 10;    9 y+ j0 o9 N1 P  [0 G, }* E
  -> 4    2 v; c0 q% M9 _1 W2 v) }2 Y* {9 H# V  t
mysql> select mod(29,9);    + A9 x# @0 U. F/ t1 P
  -> 2   
$ V4 Y! \% U% u/ l
: A7 J! x' i0 j; ^( i: ifloor(n)  
" |' Y! v8 S, l2 U: r( v2 Q8 k2 L返回不大于n的最大整数值  
' p6 j8 L3 F0 `* t! }% |' U6 wmysql> select floor(1.23);    . W* |+ b& ^, T" Z3 q- E( |
  -> 1   
0 Q" C3 W/ H) ^; A9 ?& gmysql> select floor(-1.23);    ' e8 z  x" q  |! ?
  -> -2   
2 S% S# u2 _6 V 5 D0 w4 Z, b* j
ceiling(n)  ' f, d, y* _1 K: Z( E0 m
返回不小于n的最小整数值  0 s5 z# R! V+ w* b/ T. S  @; p
mysql> select ceiling(1.23);   
0 \5 m4 j+ G) k$ {  -> 2    7 b9 U/ a, ]) P& S4 q" f
mysql> select ceiling(-1.23);    1 y7 [$ f% T) w4 h, e) K
  -> -1   
  [8 d+ y3 |2 p 1 P9 _# T" \/ V
round(n,d)  % @3 B5 W8 k7 D% F7 J1 P7 P: c
返回n的四舍五入值,保留d位小数(d的默认值为0)  
  K$ N, O, ~1 b' P- I. {mysql> select round(-1.23);    5 Z9 K: ~6 ]* w* x) D6 t
  -> -1    " G/ M! H* W  {  F/ {2 ~
mysql> select round(-1.58);   
' ]& Q- i% q9 S+ O+ S  -> -2   
; \$ _' ~0 [- N* wmysql> select round(1.58);    / ^( G1 C8 n' c* I$ D2 X
  -> 2   
- M; U, T6 C8 I5 U2 L- X/ Vmysql> select round(1.298, 1);   
9 a( D- s3 y+ y3 g, {  -> 1.3   
! O$ f( n6 P3 x) a# tmysql> select round(1.298, 0);   
. `" d: B0 \' }4 `1 {  -> 1   
. V! I7 t+ Z+ c   e! J% M1 R. W, q0 @
exp(n)  
: R9 l  g' E& _9 O! l6 [+ d返回值e的n次方(自然对数的底)  & C# [7 \% V; y# v" p3 L
mysql> select exp(2);    1 _! @$ Y8 o- t& k
  -> 7.389056    2 Y, r4 m  R* r1 w0 L
mysql> select exp(-2);    , \: R7 P8 Z0 Z9 Z
  -> 0.135335   
% W  b( S4 X2 G- P, H ' ]7 ]  Y) \0 Y9 o% A4 o
log(n)  ' w& P4 d8 ]! G0 M0 \
返回n的自然对数  $ T! `$ ^( E7 a9 v& p
mysql> select log(2);      N# ?; ?% T% y6 Y# f2 T' ~
  -> 0.693147    ' \8 W! z5 ^/ @$ w/ b
mysql> select log(-2);    / }/ l1 a2 V7 q8 E# ^3 W, L
  -> null   
0 P- C  B+ C: u3 V6 Y9 n 6 s$ U' @. W/ ~, w" d
log10(n)  
! [: ~' g  d4 T返回n以10为底的对数  
7 k# p# r5 }9 xmysql> select log10(2);    6 H: h7 J( \! {, B/ ^1 i# w! H* X7 |
  -> 0.301030    " R/ I/ d& v/ l% \
mysql> select log10(100);    ( `5 @1 B; S5 z/ x
  -> 2.000000   
5 [6 n5 T1 C7 n/ amysql> select log10(-100);   
, n" P( S! P7 G  -> null   
1 g$ g0 r; q; g6 I , j: I) H+ I' b8 B& b
pow(x,y)    ) a' U2 ~' K, A3 w& n5 U" i
power(x,y)    # h2 Z8 i2 a) x1 v
 返回值x的y次幂  
! x1 U, v, H. _mysql> select pow(2,2);   
/ d. P; e  t' {2 @  -> 4.000000   
- A5 V) n" P2 [7 \' V+ Pmysql> select pow(2,-2);    ! f6 I! d7 V$ y: v6 ]2 w
  -> 0.250000  
3 c" n+ S( R2 r9 a4 o
! W5 l$ J& R4 M8 ~. z5 Qsqrt(n)  2 k% J0 M0 W/ B( z9 c+ p4 d
 返回非负数n的平方根    P+ {( E, }" [+ d8 P2 }
mysql> select sqrt(4);    % O5 ]8 w5 \! K, Z9 L+ n3 O
  -> 2.000000   
9 F! C( ~# z! ~; U: \, |/ z0 b7 Zmysql> select sqrt(20);   
% }2 E6 w7 {' X/ @4 v1 A* `# m  -> 4.472136    - D, h" g9 ]) L* D  c

/ U0 J8 G, I4 k1 v! \. d" Vpi()   
0 Q' u  U+ Z9 t0 G2 R. }" P6 E9 X 返回圆周率   8 Z, _% L- {& c9 B# w& P5 v3 Y$ {
mysql> select pi();    7 M+ L  q3 w9 j/ ~
  -> 3.141593    $ q5 t7 f$ g  o. b7 |1 _

5 R- _' k6 n! J6 a% }' x) F" jcos(n)  7 q4 B7 |+ A( h8 `* [! G0 ~
 返回n的余弦值  
" X: W+ W  }  fmysql> select cos(pi());  * L+ Z/ I/ E. ?. e: m$ x1 k1 y+ @
  -> -1.000000   
( T2 @: `5 d  I; M 9 W5 G( k, O% G3 E
sin(n)  
7 o) B8 O" ^+ ~2 z& i5 n+ D 返回n的正弦值   
5 m  e: z6 s# L& F- tmysql> select sin(pi());    , M8 A- H, V" t7 [* G
  -> 0.000000    + E! u6 h, x% V/ W4 j; ~: M% l& v

% v; {+ R7 p8 g" [  p$ m( [& s" c. G% |tan(n)  
" T0 i4 p' s( p) ^3 n8 ]返回n的正切值  
2 p. G& @$ }" f/ p+ Zmysql> select tan(pi()+1);    . \6 }$ Y2 m& q0 E; S
  -> 1.557408   
3 t2 e" l4 p4 q. u
8 ~( U, Y# H5 e0 B; Jacos(n)  ' B5 T: k/ F  [
 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  6 w; y. B, f2 i& q& a% U5 s
mysql> select acos(1);    % A2 |0 W, i$ U1 s9 }( I% _+ W+ F2 F
  -> 0.000000   
0 |3 }/ c5 [  |8 B( V, \3 tmysql> select acos(1.0001);   
7 p7 Y. c0 r% @* g* S  -> null   
1 p- D6 s- e' I( @4 Mmysql> select acos(0);   
' j7 o) P1 \1 p& \  t4 V0 V  -> 1.570796    % b3 L; |. s1 _: M" [8 P. s

/ J* Z" K3 d* ^; U9 ?7 rasin(n)  , t4 k% U% L2 h4 e8 ]+ L
返回n反正弦值  
1 g; l( }9 e' k3 a5 [: Fmysql> select asin(0.2);   
( X8 x  W4 d" ~7 B6 _4 i; z  -> 0.201358   
& |. ?: G& V; J8 A/ `mysql> select asin('foo');    # i0 j& y- V* a( B) T& r8 c" B
  -> 0.000000   
6 d/ Z2 X" \6 f3 f- | 8 w4 o, W& H( r
atan(n)  " F6 o3 L) ^1 h
返回n的反正切值  
3 G' ]2 e3 D* R+ ^0 g1 E7 fmysql> select atan(2);    $ M# v7 t1 g: t  }6 R& Y
  -> 1.107149    7 I2 c) d+ \% t* H# M, {( T- x! v
mysql> select atan(-2);    & m# }" Z- k, I7 B+ V$ _! P, ~
  -> -1.107149    0 u2 I9 F6 v3 {, I" C/ b
atan2(x,y)   
: ~% r  A3 `) a$ l; T) N: V: D 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  0 t$ E2 z) D- L0 I, r) X
mysql> select atan(-2,2);    ( ~) n8 ?+ m8 o2 I
  -> -0.785398   
/ a7 k! Q0 o, W; @- Qmysql> select atan(pi(),0);   
6 O2 S8 F/ [$ `; V+ O  -> 1.570796   
/ i6 w1 E+ O9 d9 t
5 [) P' m8 X) o' L0 Tcot(n)  ! p/ w& Z4 c7 m) E
返回x的余切  
* n& L+ |  x8 tmysql> select cot(12);    8 E" V! i$ ?5 N
  -> -1.57267341   
% d/ b. z) f$ fmysql> select cot(0);   
5 y2 F$ p& W( @( T" g' n) Y* t  -> null    7 J5 l2 j) D9 }' d1 \

+ F$ N: o2 D+ J& Drand()  8 H7 W8 a0 V3 E" ^& [
rand(n)      u$ G9 n& q* v0 V2 [1 A" [
返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值) 8 N+ N/ ?: v. K$ J! r7 T% Q
: u5 K/ E$ ~/ g) o
mysql> select rand();   
" J9 z1 d8 K$ I  q  -> 0.5925    : P6 A9 f( t& I
mysql> select rand(20);   
1 _% O6 \5 F  T& ?7 d% r; X, t  -> 0.1811   
/ S/ ~4 i0 ~4 k  x1 v! |mysql> select rand(20);    % b! A+ p4 R4 _6 Q$ G0 K
  -> 0.1811   
. U2 ]3 @3 w0 Z$ t$ Xmysql> select rand();   
, y+ [8 w; d2 V) A" T  -> 0.2079   
5 b+ l& e' k& Fmysql> select rand();      N4 Y, T3 D" c5 ~9 M
  -> 0.7888   
& P0 @* }, g! u! V8 B6 [
# y8 c; H6 {4 Z* w" Ydegrees(n)    M8 F$ ?) p2 M' h! s. s" ^. b
把n从弧度变换为角度并返回  
2 B% ?# l5 m; F9 f/ Ymysql> select degrees(pi());    5 k4 |  z' O& G' c( V' s
  -> 180.000000   
/ L0 F$ s" r" S' Y9 N" ~5 F* }
, A2 z4 k2 {/ F6 _) V/ ^( L0 j. i0 a6 Vradians(n)
1 N3 z( R2 A* P* F  U: R$ W" @" P把n从角度变换为弧度并返回   / o. _/ M; ^; y) K) O
mysql> select radians(90);    ' z# e! m; n" W. R2 u5 A' k, }
  -> 1.570796   
" [' z/ s  H: T7 k! S5 L3 F, K* T1 o
truncate(n,d)   
& l, c5 a4 v9 o9 u% y8 M保留数字n的d位小数并返回  
8 ?: ]( {$ W1 a) j8 `mysql> select truncate(1.223,1);    ! C3 {* ~) P. c8 [
  -> 1.2    " L" }5 {1 @4 {0 a' L4 Q& l* i6 _) A
mysql> select truncate(1.999,1);    6 S2 c- j/ s+ D$ e
  -> 1.9    4 H) r! P- K4 e! `9 v
mysql> select truncate(1.999,0);    ) h9 g/ l- D0 E' K6 |+ D4 j4 Q
  -> 1    * p7 p' ]1 R, |3 j* u, w4 B
8 l2 ^/ Q* P" @$ ~" k/ f/ d
least(x,y,...)   
4 A) h: r6 u& v6 Q返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
" C$ D4 H+ _# P9 n0 ^  Rmysql> select least(2,0);    * X8 Y# i: h7 `5 V+ V: _
  -> 0   
. ^% W: u3 `  Jmysql> select least(34.0,3.0,5.0,767.0);    8 X8 @; X: w7 _; n& Z* [' }
  -> 3.0    $ A1 w9 T$ I" n, h2 B$ |
mysql> select least("b","a","c");   
- s( x/ g% Z# q) d& p  -> "a"    ) E1 W9 w9 b: V+ O
, d1 e) x5 Y7 E% B! m5 v
greatest(x,y,...)    * i' l& b! l( ^% }8 E
返回最大值(其余同least())  
$ [' f' h; R& `mysql> select greatest(2,0);   
( t" @! o8 }* [' {! D$ p  -> 2   
. `  V. L$ Y: q& Smysql> select greatest(34.0,3.0,5.0,767.0);    # ]# t3 A7 }* W* X" u
  -> 767.0   
! p2 H$ t4 w- K) b  ^+ k0 D2 smysql> select greatest("b","a","c");   
9 k. u7 y3 T2 Y  -> "c"     
+ l, x2 q; D0 Y' |5 v  z9 W- Z
3、时期时间函数 * C( i& u, _1 H7 l
dayofweek(date)    % w+ q- c) w/ K6 ~4 J
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  ' v7 P. j2 _2 e
mysql> select dayofweek('1998-02-03');    5 b7 Z' Y0 U7 p  e. s; v
  -> 3    ! u, t8 b, {1 n- a- e4 @
" \* ~0 M+ g" e! `& ]
weekday(date)    5 K" ~, F1 l1 M
返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
% R3 }2 k* [. k  * h3 D- ]; q( F( {  u. }  i
mysql> select weekday('1997-10-04 22:23:00');   
7 a4 n* P: A! z0 f' [8 p  -> 5   
5 }8 |0 K; z6 U+ s* l  Dmysql> select weekday('1997-11-05');    + O2 f& e$ ^( }1 s2 A0 Y# h3 s. u
  -> 2    9 a6 y7 j) }3 z. V* p# V6 ~+ d, m* _

( b3 g( H3 V3 n6 N8 Q7 c3 T  Y. d: \dayofmonth(date)    
3 x4 U7 W) w2 `- x3 t返回date是一月中的第几日(在1到31范围内)   
7 N6 m" W  [/ ~6 `& B8 ]' Mmysql> select dayofmonth('1998-02-03');    - k" ?+ h2 }3 H+ U* H
  -> 3   
  ?: Z% \0 h2 C3 H/ s
+ b0 `* A% A1 R0 |2 y0 Udayofyear(date)   
5 q6 {7 X; k9 T% x; w返回date是一年中的第几日(在1到366范围内)   
( C! t8 O" N( K1 i* m* ~2 Gmysql> select dayofyear('1998-02-03');   
9 K6 C+ `2 |2 Q$ v3 L  -> 34   
3 J/ [7 q+ i: h- G2 R- R : c* q7 s7 A! y& H+ J
month(date)    1 O5 T7 s4 I) d% u
返回date中的月份数值      N6 O. h& P7 m. I! ]
mysql> select month('1998-02-03');   
' C3 V; L; s0 @' n; ]  -> 2   
) y1 ~9 }2 M5 v$ `
8 N3 g* n) X5 N1 Tdayname(date)    9 Q3 ~3 q+ W0 Z& W; n
返回date是星期几(按英文名返回)  ( U" `  X9 s4 w& ^; G) o4 w* y
mysql> select dayname("1998-02-05");    8 {  c0 w& J4 ]. q* Q8 k( w
  -> 'thursday'    ) F( n+ L/ N& L" F0 {5 f7 R6 a

* p  L0 }5 z) G; Q* {+ @! Rmonthname(date)    
5 y" F2 j4 F6 W1 M& J4 @; {返回date是几月(按英文名返回)  
$ W+ r# R6 t+ t. I5 hmysql> select monthname("1998-02-05");    % @( p" j- e& u6 T; m% j
  -> 'february'   
. }+ X* ?. U5 Q2 d! {) N( M
; U! t/ w' x+ F9 f  Q( n3 z. lquarter(date)    + O- n  U; G( y+ ]5 p  q1 C3 J2 v8 l
返回date是一年的第几个季度   
) T, V) P) j* |* l! {% R# Rmysql> select quarter('98-04-01');    + b8 e- F8 ]: i
  -> 2    5 y0 [" U3 k2 O1 }
" O' ?4 }" p- h  C+ H/ g
week(date,first)   - l5 O% x% J+ x) L7 d
返回date是一年的第几周(first默认值0,first取值1表示周一是
  Y  u5 w' m1 _8 y' N周的开始,0从周日开始)  
+ k$ P/ g) V$ ?0 Y: n1 omysql> select week('1998-02-20');    5 B* {+ y$ w/ S3 c2 ^/ j+ N
  -> 7   
5 f3 M2 |$ z5 K7 Kmysql> select week('1998-02-20',0);   
$ c) }1 x% X8 Y. Y) l* j) T  -> 7    1 x/ {2 w/ @5 \: `9 a1 I# v
mysql> select week('1998-02-20',1);    ' Z' \% \. ~- L  U, m& g
  -> 8    ! C3 ]  L, V" A% i" f

1 n" {" G. Q" K+ P- }& byear(date)    # z4 U& \" k8 [3 h: w0 G& f$ I
返回date的年份(范围在1000到9999)   
, R" L( ?; u" I" o$ n7 M( s5 bmysql> select year('98-02-03');   
* y# q( |- M5 W- n% P  -> 1998    4 q3 y3 f/ k7 ~6 Z" D& @2 p

$ c, w7 c0 M# d0 O9 ^hour(time)    
' ?$ m( J1 J1 N7 f/ U" X返回time的小时数(范围是0到23)   2 o4 t+ e& `0 z
mysql> select hour('10:05:03');      i. W/ @. m& o$ I+ Z
  -> 10    ; f3 _1 C, [7 J+ _( s1 B" m

) e) Z0 d9 u9 ]- ~+ Kminute(time)      O* D/ |$ N" z+ e; a
返回time的分钟数(范围是0到59)    : U# M7 G3 d& Q  _
mysql> select minute('98-02-03 10:05:03');    3 `' j9 z4 N+ {9 A. F5 t$ m  D2 i
  -> 5   
7 E: s: L- Y  M2 p   J3 o5 |  D4 H
second(time)    : J0 w) Y- C4 t1 |  @5 K2 l8 I
返回time的秒数(范围是0到59)   ' d( @% Q. B* R( R! E5 D1 q  b
mysql> select second('10:05:03');   
7 k0 g5 W2 u0 a5 X7 p  o% z  -> 3    9 U& o: F  E4 _; Q
+ V  n5 X" D/ g  r2 w0 O; u
period_add(p,n)   
- r0 j: {$ N! `- M6 `' `% ~$ {增加n个月到时期p并返回(p的格式yymm或yyyymm)    * d6 m6 f9 A; g' }! D
mysql> select period_add(9801,2);   
+ v1 a, @. {6 J2 h/ ~( v  -> 199803    % K, M# p+ w7 b0 C' x

, S& Y% v( j) {# p. d" Eperiod_diff(p1,p2)    9 m; j: i- b; q0 ]- ~
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  ( m# x- K, ~( d; D" V- S% Z
mysql> select period_diff(9802,199703);   
3 \( v# c, \3 q/ A  -> 11      s& D! {' E/ w
2 {2 f. Y, n, z5 V' I9 D% ~4 _% X
date_add(date,interval expr type)  
7 n* i; @' N( d" M1 X9 U, e# fdate_sub(date,interval expr type)   
' N  g' W/ w9 o$ `0 o6 S7 Gadddate(date,interval expr type)   
* }" j% D6 F! H* }subdate(date,interval expr type)  
: E. B4 d/ S  P/ m3 ?. F3 R对日期时间进行加减法运算  $ y' h+ E$ v' T8 i9 z; P/ I* ]
(adddate()和subdate()是date_add()和date_sub()的同义词,也
8 J( E+ `7 p( e' y可以用运算符+和-而不是函数  
% N+ S# T- G1 G4 Z, `date是一个datetime或date值,expr对date进行加减法的一个表
$ K9 U6 [* v) {) _达式字符串type指明表达式expr应该如何被解释  
& X# ~5 Q- i5 G1 } [type值 含义 期望的expr格式]:  % \8 k) q7 _1 t. N
 second 秒 seconds   
8 j" F6 P: \* t' J, x minute 分钟 minutes    7 o3 g( N, [3 ~* C/ C, \7 d
 hour 时间 hours   
7 }% f4 V4 g# R( o  T day 天 days   
9 n4 a& Z# Q( L* ^% v month 月 months   
; ^4 `; u- X  z& u year 年 years   
$ m. z+ z4 Y0 b* T- M0 s/ J) s minute_second 分钟和秒 "minutes:seconds"    ' Z7 L1 U) `' c& o, j2 q9 g
 hour_minute 小时和分钟 "hours:minutes"    ' B( {- d! s1 U6 G! U% b9 S
 day_hour 天和小时 "days hours"    2 T* q# d, P/ J- m9 ~
 year_month 年和月 "years-months"    % G" F* X, F- Y3 F
 hour_second 小时, 分钟, "hours:minutes:seconds"    ) F2 W9 m% l8 Z5 s
 day_minute 天, 小时, 分钟 "days hours:minutes"    0 j$ Q& f& w# ]- p
 day_second 天, 小时, 分钟, 秒 "days
* p, D9 o% H  |, ~hours:minutes:seconds" $ t# f  \# G0 b
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个
7 H; [9 W8 d6 T$ i5 v0 R$ ydate值,否则结果是一个datetime值)  
7 w3 x7 |0 z( w: {1 b7 A/ T5 f4 T 如果type关键词不完整,则mysql从右端取值,day_second因为缺
' }& U1 u2 D& K& g少小时分钟等于minute_second)  : S4 E: H, p. d6 h7 p
 如果增加month、year_month或year,天数大于结果月份的最大天
, _7 R4 ^3 c5 T数则使用最大天数)   
3 G- ^) `" X7 L8 [6 i$ Mmysql> select "1997-12-31 23:59:59" + interval 1 second;  4 c7 r, ~& }  Q
% P) x7 [0 u/ D* r
  -> 1998-01-01 00:00:00    . C: j! l' n7 C. n8 `
mysql> select interval 1 day + "1997-12-31";   
( T3 Q6 ?9 x6 v" V; U1 T  -> 1998-01-01   
  S* c1 e+ i4 X" x' s; _+ Z9 K4 I. gmysql> select "1998-01-01" - interval 1 second;    ' }4 O4 T; }; _: G! G; O; J2 u
  -> 1997-12-31 23:59:59    & r& H( ?1 N- d0 q0 U9 L: t
mysql> select date_add("1997-12-31 23:59:59",interval 1( I8 U5 g  i# D- N3 S, {+ u
second);   
/ E3 h& i5 m  ?' G  -> 1998-01-01 00:00:00   
! l; a0 \) o7 N3 _" L- e8 K& H& ymysql> select date_add("1997-12-31 23:59:59",interval 1
% W, x/ g2 c4 X0 Xday);   
+ h3 f$ i, p. b- L3 ]  -> 1998-01-01 23:59:59   
  t5 R) b3 t# amysql> select date_add("1997-12-31 23:59:59",interval$ z% i  D7 B8 f* ^* E! w
"1:1" minute_second);   
. H$ g2 @: s; s; T; }4 D  -> 1998-01-01 00:01:00    4 T7 t( Y0 ^$ {4 ^: z
mysql> select date_sub("1998-01-01 00:00:00",interval "13 ?0 {  a$ _  t; c
1:1:1" day_second);   
: ^3 A4 \+ x4 i. y  -> 1997-12-30 22:58:59   
& T* k# W4 R- M# M  r% Cmysql> select date_add("1998-01-01 00:00:00", interval "-18 t: S) K' _$ U! K
10" day_hour);  $ j$ l% N) p9 W) b
  -> 1997-12-30 14:00:00   
! j# k1 T- T4 Z) `mysql> select date_sub("1998-01-02", interval 31 day);    2 J- ]4 T) s* k! l5 C8 l9 f  A
  -> 1997-12-02    8 [0 i2 x8 G7 N3 G" ?1 A% V& C! u0 _8 J
mysql> select extract(year from "1999-07-02");    " ^; V/ [; ^& S! e& u" E
  -> 1999      p  U2 ~  e! i: N0 ]5 ]- D
mysql> select extract(year_month from "1999-07-026 q$ n- l+ J* y/ W
01:02:03");    " d! F, I/ a- r% H( q
  -> 199907   
- w, v5 p4 E& G$ U3 T; M* Q6 Pmysql> select extract(day_minute from "1999-07-029 C! q6 }# Y- w% X; ~3 _
01:02:03");   
) T  L' @% S+ ^2 }3 z  -> 20102   
& D) |  E: R3 P7 e, Q. C' H# ?$ A
% y: |" ?5 w2 ?3 _( ^/ Vto_days(date)    : o3 d6 K8 z; Q; P$ z
返回日期date是西元0年至今多少天(不计算1582年以前)  # _1 |$ ]* {" W; E0 q4 v. ~
mysql> select to_days(950501);    & d9 U, n5 w, a  a4 M) H
  -> 728779    + l: l; u- l4 m7 e" S3 r7 c
mysql> select to_days('1997-10-07');   
' i/ \1 D+ m$ e8 a$ y  -> 729669   
& M$ G1 {& `; `% m 5 Z) v) ]8 e7 u* }( e% F# _5 b
from_days(n)    - ~$ I8 y) x" `  j- l: E: ^" W
 给出西元0年至今多少天返回date值(不计算1582年以前)   
9 F. }, d4 c; Y- hmysql> select from_days(729669);    $ U* n+ y7 v4 Z% S
  -> '1997-10-07'    % a  ^3 k7 @$ X$ [' D" O

. s7 b' T' b; z6 o# fdate_format(date,format)   
# s' @5 F% _( }+ Z 根据format字符串格式化date值  1 U1 i- j  T* q# J$ ^3 N/ z
 (在format字符串中可用标志符:  - l6 W2 U) x- s, r
 %m 月名字(january……december)   
* M) Q9 u$ b5 } %w 星期名字(sunday……saturday)    2 X& P, g0 J2 D' S
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)   
/ s" j; W3 [# e% }/ a- \ %y 年, 数字, 4 位    0 {2 _+ m7 m# y( }- N$ ]" \: Y
 %y 年, 数字, 2 位   
# L1 g& g# D5 e8 d %a 缩写的星期名字(sun……sat)    ' n3 B* A) ]$ i
 %d 月份中的天数, 数字(00……31)    3 v, k! J" L# A  ^. E' h( Z8 S
 %e 月份中的天数, 数字(0……31)    " P7 a( U% f' ~5 q$ A0 ~- W7 M' j
 %m 月, 数字(01……12)   
! f$ f2 S9 g9 P4 V# E* E0 @: ?; n %c 月, 数字(1……12)   
" q7 y1 p7 E+ y3 H) g/ O %b 缩写的月份名字(jan……dec)   
! H3 y+ I6 |. q %j 一年中的天数(001……366)    & V' w/ K) O7 k- g; ^
 %h 小时(00……23)   
' q6 m9 k4 `6 X* { %k 小时(0……23)   
8 e9 G7 F! @7 x. d2 M %h 小时(01……12)    / O& {( u5 B5 W" o7 U2 H' B
 %i 小时(01……12)    6 n# h  N$ l$ d0 a# P: x( b
 %l 小时(1……12)   
( s+ ?2 N6 [3 O8 a9 y %i 分钟, 数字(00……59)    1 m/ m5 X% p) ^1 Y0 E  ~/ t
 %r 时间,12 小时(hh:mm:ss [ap]m)    / R* \+ [0 @# M3 _# F
 %t 时间,24 小时(hh:mm:ss)    8 Q# O+ A& D  X# C; v% f. |
 %s 秒(00……59)    ; Z+ `9 k! O& P, E
 %s 秒(00……59)   
1 Y- y8 K9 d/ Q" K2 u %p am或pm    1 f* B- f- _( R$ ~0 J
 %w 一个星期中的天数(0=sunday ……6=saturday )   
3 h2 S% k% L! S/ c6 ~ %u 星期(0……52), 这里星期天是星期的第一天    & t) z9 g- S* N4 C7 f
 %u 星期(0……52), 这里星期一是星期的第一天    8 o6 D4 h8 q" L  r# V
 %% 字符% )  + t+ H$ v; m) m7 G$ n. x9 y2 |
mysql> select date_format('1997-10-04 22:23:00','%w %m %/ r) s* k, ~' t5 ?
y');    8 x5 p* h6 x8 `) ]
  -> 'saturday october 1997'   
; \$ n. f; o. ?3 P+ w0 zmysql> select date_format('1997-10-04 22:23:00','%h:%i:%
$ c8 I( t, ^* I1 `( D1 Rs');   
1 j* {% ^+ `5 N  -> '22:23:00'   
$ v0 J# Q6 F1 u- k& f. Gmysql> select date_format('1997-10-04 22:23:00','%d %y %a2 z: T- v3 S$ @9 l6 a
%d %m %b %j');   
3 k2 ^( [2 Y1 m$ T, D3 Z  -> '4th 97 sat 04 10 oct 277'    ; R) ?7 P2 D5 V  P0 y
mysql> select date_format('1997-10-04 22:23:00','%h %k %i( Q- \- ?+ K  @( T0 g; Z5 x
%r %t %s %w');    , x% [% b8 t) A9 U5 h% o( H" N3 X% @
  -> '22 22 10 10:23:00 pm 22:23:00 00 6'    % ]5 s+ v3 Q$ u4 R

7 t/ s* ?  T4 B# _  h1 x  r6 [time_format(time,format)  2 m) F: K& j3 j  q  x- e; E# d' r. X
 和date_format()类似,但time_format只处理小时、分钟和秒(其' m6 S7 d( C/ Y( B' O! s+ B
余符号产生一个null值或0)    [- d% _! p$ @
* D  i# |2 l* N+ G8 }+ i: E7 k7 J
curdate()     , i% I$ [6 N8 ~  w
current_date()  ! ^- z% S$ }3 N; m
 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
5 k: O+ F! c2 U& Y- L处上下文是字符串或数字)    5 r5 g/ y' s) L
mysql> select curdate();   
& u0 B! D' ]+ x! E  s" ?5 _4 u  -> '1997-12-15'    $ O; O' |& v* Z0 {% S
mysql> select curdate() + 0;    * E$ u+ v* l6 C& N, B
  -> 19971215    ! s" K  e: O/ e0 e

1 e  F- R6 I0 m- e; F! r" X( Ocurtime()    / I; g) q2 Y% a" T/ h
current_time()  
. b; S* c3 y8 N4 c# Y& l, l 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上/ m! D* i( p# w
下文是字符串或数字)      , `% Q$ d! B6 |5 X  r7 y: u
mysql> select curtime();   
' a2 y% w7 h/ a; m  d2 B9 i( \  -> '23:50:26'    2 x" D  \  W1 V- }1 Q
mysql> select curtime() + 0;    ' _& j. A( x4 V) S# s! x1 N+ G* s
  -> 235026   
) y/ v. J7 ~; q & R1 X! _$ t; k2 X  ?3 s/ F
now()    
/ @" ]& _% ]! h$ ssysdate()    
9 G* S" }" d2 y; ]current_timestamp()  & B" r/ i2 d6 _; h; Y' l
 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期, D) u' S- d6 n, ^8 i4 y
时间(根据返回值所处上下文是字符串或数字)     
- X2 L. D; q! l# v  wmysql> select now();    * p2 f1 t7 J4 p$ a" J) H
  -> '1997-12-15 23:50:26'    1 Q# J9 \, C7 E+ V  }/ K" O
mysql> select now() + 0;      S1 {7 P. D: P7 I8 r" l8 M; y5 b0 L
  -> 19971215235026   
0 n6 k; F# i# g9 ]. C9 |6 p
3 ], u# p0 S! c, f5 A  O# S2 Bunix_timestamp()    # T( L: U7 D* F) o
unix_timestamp(date)   
3 @# W1 [3 `! S4 Q. O返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
, D( K- Z# C4 h8 I数,date默认值为当前时间)  
4 V0 Z+ s/ ?1 B2 y$ pmysql> select unix_timestamp();   
% `6 f- S1 |- ^. u- J, F& e3 c  -> 882226357    $ W2 k- r+ v' ^) V9 B" f
mysql> select unix_timestamp('1997-10-04 22:23:00');   
) k8 y" i- z3 r; R% l  -> 875996580    4 j: c& b9 {) `) h( Z

! a: J( e  w+ U* c) L* qfrom_unixtime(unix_timestamp)    3 U: Q$ M9 S3 y
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的
, Z9 o0 ^7 ?$ U$ H0 V值(根据返回值所处上下文是字符串或数字)     
8 n* ]" V( v" {# ^1 c4 Y" [mysql> select from_unixtime(875996580);    6 a3 F+ b! t& p1 \' d2 p, L
  -> '1997-10-04 22:23:00'   
( {; w* W6 [2 K; F$ \4 ]- w* X! [mysql> select from_unixtime(875996580) + 0;    * {5 w9 O$ R" \
  -> 19971004222300    ( N) K5 V, r/ Q1 ~/ T5 m! J! q) J8 u
! ]/ w8 c5 ~% h
from_unixtime(unix_timestamp,format)    , M4 O& S* C3 z- G
以format字符串格式返回时间戳的值  6 W$ Z" y+ ~9 F- R7 E+ s
mysql> select from_unixtime(unix_timestamp(),'%y %d %m %: e% W  G" a7 b; B8 w9 @/ h
h:%i:%s %x');    1 a4 H6 e8 ^" v% W' ^2 z
  -> '1997 23rd december 03:43:30 x'    9 p* Q3 r9 L3 W) Y

7 V9 D! W/ Q/ W1 b$ n. Isec_to_time(seconds)    + x7 V& @9 \& ]0 d' L" [
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     9 d. ?2 l3 D, b) L3 C* v. f
mysql> select sec_to_time(2378);    " `8 m5 ?( b5 C: I' @& Z
  -> '00:39:38'    ) h/ r! O( b( `
mysql> select sec_to_time(2378) + 0;    - C! n5 F. ~, w2 A# ^4 O2 K) y
  -> 3938    " P% n* V4 U" L. V& @8 m

% _' t0 `' q2 g" ~1 P; n3 \/ O! P) otime_to_sec(time)   
. |) c1 Z6 u5 ?: {9 j3 {/ U, Y返回time值有多少秒    # e) g6 w8 S* m6 j; r
mysql> select time_to_sec('22:23:00');    " ]/ D: ~, h9 w& z
  -> 80580   
$ _* E; Y5 k! _1 P$ i5 Tmysql> select time_to_sec('00:39:38');   
' m8 r2 G3 A) R$ ?5 N  -> 2378 % G8 S; @9 Z/ C  p1 F: F& s- p/ o' |

. K. e3 I0 Y; _3 W' R" x1 v转换函数
4 O' m# c4 W; L7 w" Gcast
0 ?# m1 E7 u" y用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]& v" J! n* x( D" S" y
实例:select cast(a as unsigned) as b from cardserver where order by b desc;
3 Y/ p1 x. e4 ~& D2 Xconvert:
. K$ N5 R$ X( d, I用法:convert(字段,数据类型)
' }% ^2 E! L0 K' Q  o, L7 j实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
# O; o; {) Z. T& b+ u" F8 ~& H





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