中国网络渗透测试联盟

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

作者: admin    时间: 2018-3-21 16:07
标题: mysql常用函数大全
1、字符串函数1 t" x8 ^4 J( q* _
ascii(str)   - i: V" H1 M4 e( k7 A% N
返回字符串str的第一个字符的ascii值(str是空串时返回0)  
3 d# o( v4 N# ^3 E/ Y4 v. cmysql> select ascii('2');  . ?3 h' g% p- ?, C' J4 f2 B$ Q
  -> 50  4 I: C* w7 z! B4 I0 Y
mysql> select ascii(2);  
1 e, o5 i0 I. H7 f0 n/ K2 x  -> 50  
1 J4 @- {' C5 N, @9 m) b  Rmysql> select ascii('dete');  
0 a" g; N- D$ k  -> 100
% E( x6 B4 S/ ~$ o
ord(str)   
% a$ R) ]) d1 z如果字符串str句首是单字节返回与ascii()函数返回的相同值。$ h/ O$ E, r8 l& g0 }! P

* k% c9 L/ |9 f7 a  T, ^- J如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  
: z% ?2 M% ^. Wmysql> select ord('2');  
( Z" B7 `9 Q. q, B7 r) H; n  -> 50  ; d0 B: n+ S% p  o
   8 d. N) M8 }( G  z( [1 w( V, w; ^
conv(n,from_base,to_base)   
  ~9 u9 F* J  |1 Z, f  `- e  O对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  2 F  g5 y+ t6 H8 G  z6 X
mysql> select conv("a",16,2);  
- u7 I2 |  E6 S6 I4 j- w  -> '1010'
- t. c" b& \3 Lmysql> select conv("6e",18,8);  
! N3 R  x" F  ?0 @7 {- q  -> '172' : R0 K6 {3 P5 a1 R1 r. Y1 U3 P/ R% V
mysql> select conv(-17,10,-18);  
3 t# F( b* l$ U# U  -> '-h'
+ |0 p& }0 P) O" G+ kmysql> select conv(10+"10"+'10'+0xa,10,10);  - }. A) @" U( J, k$ Q$ X
  -> '40'
( q! {0 {8 N5 c5 m  Q* ~+ Q: b   8 P' V* x% K; y
bin(n)   % Q2 a) @3 |. q2 Q0 x' Z3 ]4 s
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  ) h2 f- x! m1 O; S
mysql> select bin(12);  
6 f1 F0 O& i4 `2 {  -> '1100'
5 `  U" ^$ `  A7 E0 t1 s - x5 A$ S; l# B# R# K; J
oct(n)   ! X5 M2 Q+ d1 m9 `  }) }3 t- ~
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  9 k. @4 \- }+ }1 j! J
mysql> select oct(12);  
8 U5 [% v& v2 C/ \  -> '14' 1 G$ o6 `" X8 I  W, _" O& l
   0 G, K0 `3 K& r! e
hex(n)   
5 S8 w# h6 I6 e. m7 W! r" c把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  1 `. K& M8 p& z. C. ~  r+ v5 Z0 g
mysql> select hex(255);  & B, v: a! x* b6 v' W
  -> 'ff'
8 ]4 q8 [9 v7 j1 d6 b5 c, d6 p   - Z( G$ `. Q% [! F& o2 S+ g+ `4 |+ m
char(n,...)   6 u5 T% Q! \' P
返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   
, [* M' v7 m% W6 kmysql> select char(77,121,83,81,'76');  
+ V: N; o& z, P- ~: F3 E9 m  -> 'mysql' 9 O- ]2 k1 A1 u* e1 V
mysql> select char(77,77.3,'77.3');  * @$ S0 O' I8 L
  -> 'mmm' - ?6 d6 i0 R+ K" q" n# @
   6 y  K. ~( i1 r! ]
concat(str1,str2,...)  
# E3 C3 t5 G- b9 f; g- B把参数连成一个长字符串并返回(任何参数是null时返回null)  , u8 y$ F. A0 \! ]9 {* a
mysql> select concat('my', 's', 'ql');  ! M; K+ H4 q0 n* F; c
  -> 'mysql'
5 |& Q  k3 c) `7 H7 p3 e  pmysql> select concat('my', null, 'ql');  ( _" ]( e/ z% C9 T6 Y3 A" L2 W
  -> null 9 z) d1 L# ]+ N3 Y, m2 W0 ]
mysql> select concat(14.3);  , E1 C' R+ E% L# v: `+ z
  -> '14.3' ! O7 y) l0 Y3 w: Z9 q8 {3 h

2 e: I+ m# h: S9 g. klength(str)   7 P- K6 `% e8 o: S) j2 ^! s( h( K
octet_length(str)  
* X8 Q7 k  z; s% ?char_length(str)  
: G) |+ |  G4 s. n  E/ |character_length(str)  
8 y2 w" F- L) S0 o返回字符串str的长度(对于多字节字符char_length仅计算一次)7 C" e) V$ n1 |& u0 t
mysql> select length('text');  
. c' B8 L+ |7 z5 F  -> 4  8 a8 ?0 c+ \) R, A
mysql> select octet_length('text');  1 Y4 [# W7 e: v
  -> 4  
& _# V0 }3 Z4 G% c
8 I+ }, M' x# X% rlocate(substr,str)   
3 V* _* c, ~" bposition(substr in str)   
" C* N, X8 @; F返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  5 E: c+ c4 g# M. ?2 z2 b
mysql> select locate('bar', 'foobarbar');  
! W: y# x/ g, k7 E  -> 4  
% s7 z  [; X3 T6 p8 ]mysql> select locate('xbar', 'foobar');  - e8 I  [7 t4 T0 L) s
  -> 0  " i* a3 a% p5 Z: A; ~
   
* |% m, ^- V/ Blocate(substr,str,pos)
% P% ]/ {: Q2 ^# h+ t9 l* T/ S0 T4 h返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  : `' N: ~! d) N3 G
mysql> select locate('bar', 'foobarbar',5);  
9 g* v: `! F% d/ s! V& ]  -> 7  $ a" _& \0 l" _& c

5 X, a) ]* A9 R* E  u' d3 Y- k1 V. ?instr(str,substr)  
  |3 y. U4 b$ z1 H* ?返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
. a$ p0 Z) _2 K& B8 J' Xmysql> select instr('foobarbar', 'bar');  4 p+ t% G; E: W* d- J
  -> 4  . Z5 Z+ C% e% u- u, r* w
mysql> select instr('xbar', 'foobar');  
3 U' ~# v" f7 H2 t2 z9 i* G, |  -> 0   
8 n" l! A( X% o9 d 0 |( b& J4 N# q% r2 z/ M
lpad(str,len,padstr)   ' t. T+ W9 Z0 ]
用字符串padstr填补str左端直到字串长度为len并返回  ) `; X+ u. e4 T7 E- j
mysql> select lpad('hi',4,'??');  
+ i: H8 q% H( [7 e6 D# X0 L& m! A7 g" f  -> '??hi' + t* g: @2 G- r5 w4 t. m8 `
   * k- o3 y; i" F' U) Z: Z
rpad(str,len,padstr)   
; T; v/ T9 W6 c: Y* W/ Y/ C用字符串padstr填补str右端直到字串长度为len并返回  / `1 n( P9 U0 ~
mysql> select rpad('hi',5,'?');  
0 G" B# R# i9 x  -> 'hi???'
3 D! n3 r# @) C4 u2 j, l4 i. R5 ~6 e
( t0 y' U; w$ O- C$ ]0 D" \left(str,len)   3 X# z1 U. _0 H. ]
返回字符串str的左端len个字符  
, g$ o" H# \/ w% ^- Hmysql> select left('foobarbar', 5);  % C1 i& X  V+ }7 B
  -> 'fooba'
: ~3 |+ {9 A- }+ `" J$ S
) I* d7 _. Q! xright(str,len)   5 e# r) |  f: u$ t
返回字符串str的右端len个字符   
! L1 a8 n' z# }7 e/ S, y% C5 r1 ^8 Jmysql> select right('foobarbar', 4);  1 J. F3 t' z% Q* o8 P( J
  -> 'rbar' , S  B1 ?2 _3 r7 S, i: @
$ l6 {( Y0 U2 @: I: x; T
substring(str,pos,len)   7 C9 Z, W" |- |! v- S& B1 t
substring(str from pos for len)   
8 m- e* U1 X  dmid(str,pos,len)   
% |( I( W" X+ f+ v5 n返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  : \- L2 }; \+ t8 u. t
  -> 'ratica'
8 l3 T) f+ `, A . I6 ?# s% Y0 j6 J& M. N
substring(str,pos)   
2 u8 E1 {/ p( I; k, t1 R" Asubstring(str from pos)   
) \0 `  T0 \7 ?8 O6 {$ ?$ d: v返回字符串str的位置pos起的一个子串  
" n, C# C. L% _1 H2 p8 [mysql> select substring('quadratically',5);  
" N& _( C) ?: n7 @0 {  -> 'ratically'
+ A; }" Y* c8 L% y' smysql> select substring('foobarbar' from 4);  ( o+ m% r0 z  T0 Q
  -> 'barbar' & e0 g; l* |7 b* W
7 {$ W# A+ F. d9 L
substring_index(str,delim,count)   
! O8 x1 Y) S: D; Z- |9 E- l返回从字符串str的第count个出现的分隔符delim之后的子串" k  [; H" X' ?8 t9 O
(count为正数时返回左端,否则返回右端子串)  
4 d* E; U5 L3 y0 R0 e1 gmysql> select substring_index('www.mysql.com', '.', 2);  4 m( |" g/ P& p4 O  [1 _% H' B
  -> 'www.mysql' + s+ i. U* h( f
mysql> select substring_index('www.mysql.com', '.', -2);  . \0 t, Y9 C6 `* C& M$ r: P
  -> 'mysql.com' & p2 w: Q! B, y

& v- w  x& B  X5 v: hltrim(str)   
: T0 M! C; w( F返回删除了左空格的字符串str  & u7 J/ e1 o0 u9 \5 h/ d9 A
mysql> select ltrim('  barbar');  + g" ^( @7 Z( x. R
  -> 'barbar' ) m6 P4 h& g4 K- Q: x
, \# F$ T. x1 V! `: d$ T( S) O
rtrim(str)   
$ E' P3 ^0 X& X8 I6 v7 }2 U返回删除了右空格的字符串str  + J! d& y9 Z9 f/ b8 X" f& B
mysql> select rtrim('barbar   ');  
% \4 X, S' Z4 V1 [; j$ [  -> 'barbar' 8 h# k+ ^" j7 p: E1 R- h/ D* t

; a, T/ ~) F1 s7 ^+ F% Strim([[both | leading | trailing] [remstr] from] str)  
) i$ C2 G  f: I返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  5 G7 g6 D- T% l
mysql> select trim('  bar   ');  
2 _+ E) |2 z4 }% t  -> 'bar'
5 P! G" y$ l7 `mysql> select trim(leading 'x' from 'xxxbarxxx');  
6 b! Q2 l$ Y5 o  -> 'barxxx' 1 m- _1 \6 }& x8 F! K1 T5 u6 n9 l
mysql> select trim(both 'x' from 'xxxbarxxx');  
; P' Q+ M4 [7 o+ }. v  -> 'bar'
1 z. B/ s+ _1 g$ omysql> select trim(trailing 'xyz' from 'barxxyz');  
$ |% B$ a) d2 r$ p# l! b# T  -> 'barx'
# U+ U- _( V/ _9 c* l: n
% ~, f% i+ k% x; {) q3 Z' x# [soundex(str)   & `6 ~' K( }) t* h: Q- Z: ?3 \3 j0 F# I
返回str的一个同音字符串(听起来“大致相同”字符串有相同的; I0 w" H' U" u
同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  2 S1 X+ m5 `0 S$ u* c
mysql> select soundex('hello');  
0 z) X; z/ i& U& b6 [; Q  -> 'h400'
0 x1 L3 V. }1 `7 Qmysql> select soundex('quadratically');  
) ]% L' @- |" B% q  -> 'q36324' ! ]2 q) g/ o6 b
   
. i  u# K: Q. P& P/ J& {, g/ xspace(n)   
: N' x% `% V$ k+ s0 ?返回由n个空格字符组成的一个字符串  9 m5 G8 G+ ]% ?
mysql> select space(6);  0 m7 A- |6 N! S- y$ B# u/ O
  -> '      ' 8 W# @" p5 ?" s$ i' o3 e8 @, I7 T
   
, s8 |+ y! a8 b, nreplace(str,from_str,to_str)   
: S0 f% b6 Z+ _! {( h用字符串to_str替换字符串str中的子串from_str并返回  2 h1 _! P  Q" z: p9 j' Y& P
mysql> select replace('www.mysql.com', 'w', 'ww');  
0 T# [" o5 }4 _  I  -> 'wwwwww.mysql.com'
5 ?# w; h& D( q5 h' ~1 ?6 |: p ! Y5 n( M2 b% y; [- O
repeat(str,count)  
# `$ z# Q4 X4 `. O+ m* W& U; f返回由count个字符串str连成的一个字符串(任何参数为null时9 C8 O- v- }. K+ j+ i4 t) _5 y1 y
返回null,count<=0时返回一个空字符串)  9 |. Z' b# P  p: |5 S/ N/ v; [! U
mysql> select repeat('mysql', 3);  ( m5 T1 M! e2 R3 x9 r3 R
  -> 'mysqlmysqlmysql'
9 S' `1 D. c& K! u5 U# |/ L   $ Y! l4 g% s2 e9 X* ]% o
reverse(str)   
  _# \+ H2 M( @2 H( s- p2 B# B颠倒字符串str的字符顺序并返回  3 o" x. q- R" S, u' p
mysql> select reverse('abc');  " u- H* w' U0 T' b
  -> 'cba' , \6 X( _. C2 u0 ?) H6 L
( E9 v/ Y) W! M- `# }/ ]3 J( A- r* ]4 p
insert(str,pos,len,newstr)   9 F) z$ {, S& S* ]% [
把字符串str由位置pos起len个字符长的子串替换为字符串  J% _  U: G  |: i+ q
newstr并返回  
3 E9 R" A  H1 ~3 ymysql> select insert('quadratic', 3, 4, 'what');  
9 s9 R) }+ |* `$ z3 [  -> 'quwhattic' 0 j; P* i" |' O6 s* }, Q

3 g/ U+ j+ C' V* {elt(n,str1,str2,str3,...)   
' r6 d8 Z% N' w2 `$ \0 N  ?' b返回第n个字符串(n小于1或大于参数个数返回null)  
0 p3 {3 f& C! r# E$ i5 pmysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  
6 ^8 v. y/ P' k1 R* g! r# N  -> 'ej'
% l+ \) T5 V/ S" t+ wmysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  " u9 y* M- `( h0 Y
  -> 'foo' ; C  C/ c* k0 f( B) g
: T; X& A- ~1 n) x5 R
field(str,str1,str2,str3,...)   ' M+ N3 \- x% |( k4 _; B& ]
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  5 }  _4 f2 A$ g4 q7 f0 G
mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
! a5 L0 n  `/ X  y5 }'foo');  
% G' F( T/ d3 m8 V  -> 2  
" L& U8 ~$ J+ A- z' Z: f& ?mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
- {; J7 W% n) i7 q  p0 n% P4 e'foo');  
0 E1 L4 J5 v+ {0 n& n/ V4 h  -> 0  1 E, F0 e+ h+ l/ q

8 k9 S) ~( k* M; X; H: x2 |& t7 sfind_in_set(str,strlist)   
3 G- [' N4 E5 o. d返回str在字符串集strlist中的序号(任何参数是null则返回
4 l  J; U, w$ H9 \null,如果str没找到返回0,参数1包含","时工作异常)  ( G1 X1 w! u( I3 J) e
mysql> select find_in_set('b','a,b,c,d');  
. P0 p3 h! R' b  -> 2  ! R. ^, l% N7 T8 P, G5 w
   % j8 h3 V$ q4 K6 f: a4 N- n
make_set(bits,str1,str2,...)  
% t5 V( o( C7 U( t把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应- R( z/ `$ h9 Z- S6 p
位置的字串选入字串集并返回(null串不添加到结果中)  " N5 ^" s9 H! V: R. e5 y* w
mysql> select make_set(1,'a','b','c');  4 Z& O& K6 O1 J& a6 n2 K! V, Q* |
  -> 'a' 7 ~3 E. ?. U$ S) Z& E6 o8 C
mysql> select make_set(1 | 4,'hello','nice','world');  ) x- h7 ]: k) i# K: P
  -> 'hello,world' 2 }7 O  p, o3 c7 Q2 H; d
mysql> select make_set(0,'a','b','c');  . C, {* J1 `/ P9 o
  -> '' " g$ ]1 Z4 W0 v5 b7 e8 j
$ W5 |( T: |+ O1 J$ V: d/ T6 c
export_set(bits,on,off,[separator,[number_of_bits]])   : i. z2 L# N( f. W4 Q* B; c6 V: h
按bits排列字符串集,只有当位等于1时插入字串on,否则插入+ I; p7 Y  G. G3 g$ t
off(separator默认值",",number_of_bits参数使用时长度不足补05 y2 |3 |8 q, ^4 U, `/ d" ~6 D
而过长截断)   & G+ V! n/ f0 l! r4 U" u2 r! L
mysql> select export_set(5,'y','n',',',4)  
' {& G7 u% V- ?! j  I  -> y,n,y,n   & L- [; {5 w9 d# \, B  i* Y

  x1 L9 j- F( F4 C5 Q" olcase(str)  
4 Q/ I# l* g: `. X+ A1 Clower(str)   . u& G5 _% `- X/ J- a
返回小写的字符串str  ( Q' _% |; M* m4 c# X2 m/ }3 H3 N
mysql> select lcase('quadratically');  ! N, A. R  F+ m* T8 _; W
  -> 'quadratically'
; H* @! h  X3 D- k   0 e( y2 L! l+ S8 I- ?5 |( V
ucase(str)   / a+ O& s* n" n+ x6 P4 u
upper(str)  
. g8 f& c0 \" c- t8 G返回大写的字符串str  0 E( o7 h& |# S( V# _: h+ R' k' m
mysql> select ucase('quadratically');  
8 S. L' t1 q$ @! B  -> 'quadratically' , c+ A8 e/ g7 Q" P0 u4 c

% a2 V5 Y+ ^0 tload_file(file_name)   
: r7 X; R2 G, d% I' u! v- ?. \读入文件并且作为一个字符串返回文件内容(文件无法找到,路径* |# I3 z4 M  Z% S
不完整,没有权限,长度大于max_allowed_packet会返回null)  
& P  }0 M" p6 u; r* Gmysql> update table_name set blob_column=load_file
$ h( W# ]2 R% m0 N, d("/tmp/picture") where id=1;  
, g! D: d  f: p' A( N
, v+ m2 f: ]7 [1 }2、数学函数1 t4 ^/ i2 P' I% r! r  V
abs(n)
: @7 Z" {2 n% k$ w返回n的绝对值  
# H6 n( t$ x/ a- D) ]5 [4 Jmysql> select abs(2);   
/ t! g. v; z% c6 {' F: q/ k  -> 2    * j' V: R9 w3 b
mysql> select abs(-32);   
/ D3 z3 h, F) j* r0 C/ H  -> 32    $ l$ o" Y) h. m
   
0 X2 R& M# s: S! k$ h2 esign(n)  ( B$ f  d3 y4 {: O" D
返回参数的符号(为-1、0或1)  
" X# W9 w3 L7 I- s3 I" d9 Vmysql> select sign(-32);    ( `! ]5 o6 C2 ]
  -> -1    & I$ H) A  j4 S' I1 @  Z- ]6 Q
mysql> select sign(0);   
. W. X4 [( V8 }: T1 c( R  -> 0   
6 Z7 D9 B% `: u8 ~, e; x# W, umysql> select sign(234);    / J& [9 D3 M$ @, R2 l4 Q9 m5 k8 O
  -> 1   
' S$ ?  v# U& l ( _! p) _" e, W8 G& z2 D( e
mod(n,m)   
/ V+ M) @6 x$ l7 [" h取模运算,返回n被m除的余数(同%操作符)   
* [6 Q% ~/ a- l& m5 rmysql> select mod(234, 10);    # w- _: s+ t: U' T& r( K
  -> 4    7 b  b9 J8 X' s" W' ~4 S1 u
mysql> select 234 % 10;   
; v6 {0 {8 }; C6 P, P  S5 b  -> 4   
' n6 r3 {% l% z/ E3 K( V, G( q1 p" Jmysql> select mod(29,9);   
- U; H* i- Q* w# N' L, O3 R  -> 2   
5 }5 ]; k  c( U& F& u% H 5 F! E9 [5 C5 Z# p
floor(n)  
' S4 E# T% X/ P返回不大于n的最大整数值  
$ ]- M9 ^  `3 \mysql> select floor(1.23);    , k" K! r& o# t7 H6 F; }" _
  -> 1    1 [  x5 r) _6 N/ }& n. U# i2 H
mysql> select floor(-1.23);    3 v- t# Y  Q# m2 A5 a
  -> -2   
: O# D" o0 C' T& _/ ]3 X
8 s. N' B/ I8 p2 T- n. f/ iceiling(n)  ' ?& N' f" T$ c; P- ^
返回不小于n的最小整数值  # o& ?. j6 ^/ k3 Z
mysql> select ceiling(1.23);   
) b. B1 f9 I! u' d% Y; `  -> 2    8 a1 B, a1 }3 v$ h, q9 U* s+ ]9 h
mysql> select ceiling(-1.23);   
' h, L3 F" _, t4 Y& D2 x  -> -1   
3 l1 G/ {2 s4 f# u( d
" ]9 I' N8 Y5 a! Iround(n,d)  
6 q% F0 t! ]0 c5 s: C返回n的四舍五入值,保留d位小数(d的默认值为0)    B+ X) @9 r3 }* ~, P! P. ~* x
mysql> select round(-1.23);   
3 o) |. B& X' A$ K  -> -1    7 U6 Z# c1 d7 l
mysql> select round(-1.58);   
3 ?4 K( s# W( N" n* D  -> -2   
! ~& h; W8 D% x% k4 omysql> select round(1.58);    & I5 @9 R% K/ y% m) R5 J2 F& S
  -> 2   
+ \7 l0 _; H) ~# n. {  |mysql> select round(1.298, 1);   
$ Y2 I) d' L2 T# Q# m  -> 1.3   
" g& \& H$ V" o2 P; u4 [- \mysql> select round(1.298, 0);   
* y2 u0 P4 k* D4 u  -> 1    ) W" F9 l( }$ E2 w) |$ t) ?0 R7 [3 K
5 ?8 o9 ?! ?# k9 z  n' ]/ c
exp(n)  ( _6 K% L) N! _1 n- t1 U
返回值e的n次方(自然对数的底)  0 x2 \, e" T' e7 h+ I% {
mysql> select exp(2);    0 }. d8 g9 N* F$ g3 w$ O3 g
  -> 7.389056    - z8 a" [& _( H
mysql> select exp(-2);   
9 n( Z+ \; d. J' Q4 K- H: Y  -> 0.135335   
* G. V; z/ v; F! y
  o  I" o) k9 j. O0 N& {1 W& b  e$ Alog(n)  
% T# V6 Y# \9 s1 O. E- Z返回n的自然对数  
9 x1 _3 V" F& `% x$ Wmysql> select log(2);    2 _$ A4 _* k1 B6 R. N) r9 C$ _1 O
  -> 0.693147   
8 [* f" `8 G; X4 C3 Y6 I. \mysql> select log(-2);   
& [; e, f8 d4 h! O: {: ^  -> null    5 L: @' r8 [: Y8 U- N
/ s4 K. i4 w$ G: W1 K
log10(n)  
6 @# I. H- Z' a5 [返回n以10为底的对数  & x4 Y/ `1 }: E, x( Z! F3 p
mysql> select log10(2);   
5 B  A  x" b; J, _  -> 0.301030    + ]/ `: ^( w4 B% Y9 J
mysql> select log10(100);    : S5 L/ g* x6 i  b
  -> 2.000000    ) [5 A& t5 v6 H4 d6 G
mysql> select log10(-100);    ( h7 K% _, S) U0 E* P8 Z! o
  -> null   
/ V, Z% `! K: ^5 C
4 z  x8 E3 S2 n6 Cpow(x,y)   
' d) h- u( k) |$ H- o; gpower(x,y)   
3 p2 b5 n; S+ m* y# B4 f 返回值x的y次幂  " p4 h4 u7 G$ W9 d( X9 o8 l7 B/ u
mysql> select pow(2,2);   
: o8 L% i* @. e- i  a  -> 4.000000   
3 h2 a* h9 a0 ^4 k3 ~% q# p  Mmysql> select pow(2,-2);   
' U! v! a1 M% z4 ^3 J9 P  -> 0.250000  
9 g0 o& g7 F( A6 M0 @$ x) p$ p  j7 U9 s
sqrt(n)  
& k' Y. l! \+ g4 {3 w 返回非负数n的平方根  
4 p0 W" L) _6 m. e  U5 fmysql> select sqrt(4);   
8 r5 A7 a, l5 u  Z4 y( ~  -> 2.000000    3 u1 v0 q( P" a8 F
mysql> select sqrt(20);   
0 J4 u* I: }; H. K, ]( `. Z% Q  -> 4.472136    ! `- x2 j  X8 \  Q: R# m4 P0 K" P& ~
) J) j3 J8 N7 Z+ L; E
pi()    + g: N2 S' M$ r9 v4 _
 返回圆周率   5 q5 X, C8 |8 x# x
mysql> select pi();   
$ l8 e2 S6 B# i( f4 |  -> 3.141593    & Q# S4 f  ?1 l$ H, o
* y2 L# \$ N: [
cos(n)  ; a8 i' L+ A) }) q+ D) b
 返回n的余弦值  
# q+ b/ L8 Q: b6 s, r& d' S8 n/ Vmysql> select cos(pi());  
" i; r( H% W' Q/ i( [* e5 V  -> -1.000000    : W8 a$ @2 t+ a( e

5 A4 U- D+ ~% v) X+ G& d/ dsin(n)  ( x: [! u2 C8 r! C" B
 返回n的正弦值   
. I" h, O$ M2 A) j6 ]+ y4 Qmysql> select sin(pi());    " y% O6 ]& ]7 n: c3 y0 R! u
  -> 0.000000   
" F' w2 L8 J7 E% M4 M8 N6 S 8 R- a; V. [1 G: Q1 D# o: _
tan(n)  
$ h8 `" W, N0 R5 C. E返回n的正切值  * ]( C6 {1 N2 _" I$ A
mysql> select tan(pi()+1);    ! y* A( F/ w. H6 G# D4 S% w3 K
  -> 1.557408      o7 f9 e0 r3 G+ x+ A
! F* u& N/ {. R  a: U
acos(n)  
/ b" @# n& y# r& d, B 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  8 N' D% V$ e7 y, E' p+ h* [7 e
mysql> select acos(1);    & X  L7 c$ t; a- ^4 G' z
  -> 0.000000    ! V' K# g$ F; L6 m, j9 O
mysql> select acos(1.0001);   
$ B& R% E' d5 x6 a  -> null   
4 u  P0 h* p% cmysql> select acos(0);   
" P6 v1 k7 P" o. f* V4 }  -> 1.570796    / G( {0 `5 Y1 ]4 x
0 `8 ]3 x1 A/ M4 h) z$ i
asin(n)  % h: `) T" R6 \9 ]5 g4 W3 C
返回n反正弦值    S1 T* |5 H% K& z
mysql> select asin(0.2);    0 r' E) ?; T) a/ F" l# _0 R% j
  -> 0.201358   
% ~* E& R* i$ l( p0 @$ kmysql> select asin('foo');    ! ^$ e- F' @0 t0 t& T0 I6 h
  -> 0.000000    . r. ^  A. D8 \! X8 U

% k4 Y/ C+ l- G1 J* i& u1 jatan(n)  
2 @9 R! B( Z" ?, ]9 B1 J返回n的反正切值  
$ B7 P% L: P0 t  U$ rmysql> select atan(2);   
! t" r( N$ O! O, T" I* ?  -> 1.107149   
+ `3 Z7 |$ `8 E" U6 {mysql> select atan(-2);    + K$ b9 t0 Y" Y2 f0 h5 x
  -> -1.107149   
8 c. M) S, m) r. S7 M8 ?atan2(x,y)    6 D: Y% l+ F0 o! s0 f
 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  # b' p2 d0 g9 m: d. m8 c
mysql> select atan(-2,2);    8 J  \* ~& F2 S: I7 j( I
  -> -0.785398   
+ S" R4 Z2 e6 z1 K5 f4 l$ x# Fmysql> select atan(pi(),0);    2 ]$ D+ G8 D  W) @9 @
  -> 1.570796   
  T5 ?/ m+ M  N) Q  H3 W6 F! P
7 l4 y8 k9 w) Q# r0 p  j' fcot(n)  3 p& q8 \4 ]  V0 e- f/ G# ?6 x6 ]
返回x的余切  ! I6 E- k! `  @1 I- l/ p0 Z
mysql> select cot(12);   
2 ^# ^( M2 W, W  -> -1.57267341    1 J. e1 m; ~: v, B2 g
mysql> select cot(0);   
$ c! U. [3 f* A$ P- ~2 v$ {$ b. V  -> null    % R4 p% y/ Q/ w' Z6 d9 t0 S( y

! a: `/ \% j6 W9 c7 qrand()  
( W# T8 P5 v( i  |& `( Wrand(n)    
5 C% R4 u" v6 p/ r返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值) ' X, `- r* S& {: {
* e- c. T) g. I6 C0 |+ W
mysql> select rand();    : t( s2 @" }  a8 C6 |
  -> 0.5925    0 ]% l) [: o- {: J; j4 A
mysql> select rand(20);    " C9 g0 V  I! S2 z9 E1 ~' }" o( {0 p
  -> 0.1811    9 G. f; B% T/ w/ z
mysql> select rand(20);   
7 [: Y: t. s1 A  -> 0.1811    6 H+ {* q: `% D3 F
mysql> select rand();   
  I# G& v1 q  v$ n( b; T# V8 m  -> 0.2079    0 N2 J; U8 J, ]) q
mysql> select rand();   
" D8 o) Z& d! S& P" l: I0 e  -> 0.7888    + D3 z9 C! r) E
: g! Q; Z# _: j+ a
degrees(n)  
, z* }6 z0 W4 `* Q) a" ^7 z7 V& ]9 Q把n从弧度变换为角度并返回  
7 m- L5 E0 t, W' M, s  X8 Fmysql> select degrees(pi());   
; J; @! z/ @' t% Q$ e: F& r  G% `  -> 180.000000    2 d0 t/ `! j: P7 h
. ^$ S5 B5 y* t8 j0 Z
radians(n)
5 r: e% m5 o: S把n从角度变换为弧度并返回   8 p; X' v1 b# A
mysql> select radians(90);   
- k& x  z1 ~+ d  -> 1.570796   
. r+ i! A! |$ j5 Q1 c/ k8 w4 U9 O7 u1 o' v$ {
truncate(n,d)    * _% `) L: V$ H7 U. p& Z
保留数字n的d位小数并返回  4 G! ]6 A8 T% p; I/ |
mysql> select truncate(1.223,1);   
5 Y0 R: k7 K, L9 i  S  -> 1.2   
3 h6 X" F- ?- `5 e7 g$ c/ l4 Tmysql> select truncate(1.999,1);   
: e* M  F$ g6 G  -> 1.9   
! E/ T( W9 Z. c( Zmysql> select truncate(1.999,0);    % H1 |0 R5 y0 @. [
  -> 1    8 S) z& @& H0 S) U- K

2 V) v2 T7 n( S6 @least(x,y,...)   
' c2 B4 X5 d# M  T: Q4 b返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
: y( A  U' v/ O) P; F: b9 qmysql> select least(2,0);    % k# k' `' R7 [' q! \
  -> 0   
* n. p1 K' v0 @2 Wmysql> select least(34.0,3.0,5.0,767.0);    8 J) m4 N4 _9 V0 [8 w  R% _  V
  -> 3.0    5 D5 C$ X4 `; r6 Y7 j2 x
mysql> select least("b","a","c");    $ X4 y9 b8 V$ H1 q
  -> "a"    3 g6 Z( B  P) z5 M# m( N

% J; a# q$ y5 |, ogreatest(x,y,...)   
3 `. t% N, M+ L, ~. V* H0 Y返回最大值(其余同least())  2 X* X8 c+ F6 o
mysql> select greatest(2,0);    % W+ i6 u2 z. y7 I4 @% ]; D
  -> 2    . J. k$ q  a' P
mysql> select greatest(34.0,3.0,5.0,767.0);    9 k2 m. @% Q5 d* A7 j
  -> 767.0    & u$ A  P' |9 b% H* H! w' l
mysql> select greatest("b","a","c");   
/ m& g3 O' u& y( J9 e; f  -> "c"     1 l# ^  ]! J& J6 B( R+ w
- M2 k& Z5 t+ r8 o# _
3、时期时间函数
* j. G2 A+ f$ {$ ^. ]dayofweek(date)   
# ^( A- M* @/ @) n返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
/ \; ]& U1 ?4 {& S, }* z' i  Fmysql> select dayofweek('1998-02-03');    8 }& d1 ^# g# U, R; g2 D
  -> 3    % @( i: J( V: z2 ~4 `& d
7 X. E% S  A; }) `# N8 r9 p" V) _: s
weekday(date)   
: P, R0 o- ~! N- r0 ?返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
: v4 _1 M: M" Q% ?; ^& {! l) [  
+ h/ }0 z2 {2 _- Y( {: N7 kmysql> select weekday('1997-10-04 22:23:00');   
% g; H3 Y/ O' t2 Y% R. t  -> 5   
# J0 k& Q- W# k  v" tmysql> select weekday('1997-11-05');   
- P3 {( e, C- K  ~  -> 2   
( r1 v+ P) b& v% U! W1 g 9 W$ ^2 N- \5 g1 z* O9 }
dayofmonth(date)    
% E! ?3 Z' E# c) M! s6 X返回date是一月中的第几日(在1到31范围内)   
( ?5 n/ `7 d2 G/ Y, ]7 I. C  vmysql> select dayofmonth('1998-02-03');    1 m/ j9 o. `' m7 |1 ^+ [8 |
  -> 3    ! F  G, s% G2 W: g7 c6 V. C) E

: c1 e2 a8 T0 U) j  Ddayofyear(date)   
, l5 k0 Z. c! h6 `7 \- o返回date是一年中的第几日(在1到366范围内)    2 E" S; l. I4 V. ~" b
mysql> select dayofyear('1998-02-03');    6 ~0 p  A- A) o
  -> 34    + k+ W' n7 y: W3 s

: W: J$ q' f6 Z" a* @* d" bmonth(date)   
6 J3 q& S. q* L5 o* J返回date中的月份数值    : B$ E# d: W3 C7 |! g+ v2 ^
mysql> select month('1998-02-03');   
- `& ^: w& M# K6 m* G# N8 l  -> 2   
4 r4 m5 g, C& ]& p" ^
. b- [6 I; \; l$ Odayname(date)    : o. P, D8 v6 u* r! E/ B7 O
返回date是星期几(按英文名返回)  7 F# A6 J4 U  i$ R8 _0 g
mysql> select dayname("1998-02-05");    6 ?( c/ f7 w2 q2 e
  -> 'thursday'    7 _' u/ ]$ d+ s7 V" R/ X

% p% s8 e/ t) H  Z# o. ^- jmonthname(date)    ' ^9 `' ^/ E1 b: z2 D
返回date是几月(按英文名返回)  
, O$ z: h' y# e" S& m& c  Fmysql> select monthname("1998-02-05");    ' k4 j" H* n; {! C; H' w$ V" W
  -> 'february'    & y2 X% a1 O6 e% ~4 X1 g2 k

  M" ~# }5 |7 d6 H8 N6 zquarter(date)    8 H% L. V4 `6 ^! e' j7 \' I. V6 }
返回date是一年的第几个季度   
7 m2 v" Q: m7 K% y: V9 M/ fmysql> select quarter('98-04-01');   
. O) g. H, t1 y% Y1 W* U, U  -> 2    5 S* ~  p! [( r0 P0 V

) f  q/ D' O, `6 z' `5 K) O$ @7 {/ Mweek(date,first)   1 J7 V: H7 C" v. O9 x3 }: m
返回date是一年的第几周(first默认值0,first取值1表示周一是
. N" Z" q$ S3 h! K周的开始,0从周日开始)  3 X" |* D4 Y, s6 I) U
mysql> select week('1998-02-20');    9 ^" ^' q, O; s0 Q% ]0 q$ i
  -> 7    ; w8 p5 s2 ~5 I! c' W) i2 |
mysql> select week('1998-02-20',0);   
$ J9 Y$ ]5 s  |  -> 7   
0 l) [9 t' N/ Q+ P  rmysql> select week('1998-02-20',1);    ' n! C: [. T9 I. a5 X6 J0 p
  -> 8   
: x3 E  m2 h( I
1 l  D$ |8 S0 C! t- |" E; ^! a& hyear(date)    + k2 t% L) g( K* ~6 i. u+ W
返回date的年份(范围在1000到9999)    2 U/ w- p2 P/ B& C. p- ^8 d
mysql> select year('98-02-03');   
% G) J! W5 F5 X) i7 |0 q" o$ t- y  -> 1998   
, {' `6 s" Q' Y
6 O* B3 c3 q# ?0 a$ ?3 |: Xhour(time)    
0 Y& v7 j3 G& }2 w; Z0 T1 e返回time的小时数(范围是0到23)   , A$ z* ^! F/ R) z+ @. n" K
mysql> select hour('10:05:03');    : K' j# F& H/ i/ J, d# W7 ^7 q. J
  -> 10      Z6 I9 }5 g) ]' D
/ X7 Q) v* I6 |# {  q
minute(time)   
, \$ _, R" s% S9 n$ C返回time的分钟数(范围是0到59)    $ D4 }2 Q2 E  B' u' b: G7 @5 T3 U
mysql> select minute('98-02-03 10:05:03');   
! t/ @3 }# \" ?/ i0 Z# l  -> 5   
( J3 m' ^$ g+ ^7 z  n ' I! K  ?0 B5 y, }4 l: k7 F. w
second(time)    , g+ M9 t/ H2 i) _  C$ i
返回time的秒数(范围是0到59)   
( \9 e# ]4 Q4 P' i, wmysql> select second('10:05:03');      y, d$ G/ r7 X* c
  -> 3   
8 W) d! I. T. ]/ F2 [+ L5 G 1 i1 S! z' V4 ]- r6 I+ p4 l+ W6 X
period_add(p,n)    , ]) Y8 ^1 w! R$ l; U' ]: S: Q
增加n个月到时期p并返回(p的格式yymm或yyyymm)   
9 A& O$ \3 H' v; ~8 |( o. ]! imysql> select period_add(9801,2);    ! B3 O' N/ ~5 N) a' V
  -> 199803   
" m$ f  _: w8 i8 `( J$ i
2 ]- T7 t* E' z' t1 j7 dperiod_diff(p1,p2)   
+ z6 e/ J. O6 y, [& X, u返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  . o. M5 o5 t; i* V
mysql> select period_diff(9802,199703);   
  S3 J6 \# @. h* s  -> 11   
/ _  p8 g% [& T2 u- t# g/ V % t) {' o9 [  c) H& s
date_add(date,interval expr type)  
7 T& u/ s& d! odate_sub(date,interval expr type)   
' [4 O, R5 M5 C+ M# d- J, wadddate(date,interval expr type)   
' w/ Z) n' i  q0 C8 @subdate(date,interval expr type)  
4 a. f' p/ l2 B对日期时间进行加减法运算  : a1 |& p1 N; w- W% x! l
(adddate()和subdate()是date_add()和date_sub()的同义词,也
- f$ i" T" V' W" `/ x* j1 i( o/ b可以用运算符+和-而不是函数  2 v1 ]! V8 A7 e  R& Z) H
date是一个datetime或date值,expr对date进行加减法的一个表
; U+ p. m+ d* ]' m  Z5 t! ~  N达式字符串type指明表达式expr应该如何被解释  
) |! Z' ~/ z0 T; l1 ~6 H [type值 含义 期望的expr格式]:  
( D* q; [. n2 w1 s second 秒 seconds   
6 G) d& T3 c+ v: M4 p  c minute 分钟 minutes    7 @& i$ O9 m- o5 N0 N/ C, U- v
 hour 时间 hours   
1 h# u) n6 n- m2 x$ a+ R. k day 天 days   
5 D& q3 A8 u0 c% |4 K# \ month 月 months   
3 f" l& U1 G3 }& G7 m/ { year 年 years   
/ v( j; l3 n$ H2 p( C* E minute_second 分钟和秒 "minutes:seconds"   
: h  Y: y( B6 R2 H; M+ e0 u hour_minute 小时和分钟 "hours:minutes"   
& B; |) p7 }: L: {' {4 ] day_hour 天和小时 "days hours"   
# D$ B: W9 _* ^* A. I2 |# ? year_month 年和月 "years-months"    7 B% z" k# n3 `: ^: b
 hour_second 小时, 分钟, "hours:minutes:seconds"    ! A7 H6 e" l! S+ b
 day_minute 天, 小时, 分钟 "days hours:minutes"   
$ G/ ^# ?8 I# X/ i) z! l day_second 天, 小时, 分钟, 秒 "days
  r& Y! }1 g" w' x, W# i7 ]hours:minutes:seconds"
; g$ Z. Z, n  S# z) V2 G8 W/ a expr中允许任何标点做分隔符,如果所有是date值时结果是一个
) n1 z  ~8 ~, M1 k, a. P9 [: n3 {5 Qdate值,否则结果是一个datetime值)  
" X" u" b9 Z& h/ G( Z' x 如果type关键词不完整,则mysql从右端取值,day_second因为缺% h! l4 t8 u/ n  m5 f+ y
少小时分钟等于minute_second)  
: D$ o. d% p2 e  v9 S: Y 如果增加month、year_month或year,天数大于结果月份的最大天  ~+ v" F, o2 G  e7 t& h
数则使用最大天数)   
1 }2 Q7 y  r  p. p' o0 Jmysql> select "1997-12-31 23:59:59" + interval 1 second;  : J" @3 \* o/ `* M6 f, f
! U. l- l# y/ n; R3 l6 C+ G
  -> 1998-01-01 00:00:00   
; e/ [- A6 }( F0 g% Tmysql> select interval 1 day + "1997-12-31";   
  x# }5 V+ ^) F' q" N' @7 ~+ L  e; s  -> 1998-01-01   
. Z* @, T0 E/ fmysql> select "1998-01-01" - interval 1 second;    ; E6 i( @1 a6 W
  -> 1997-12-31 23:59:59   
! G; \2 h9 a" I8 _5 c9 o. ~mysql> select date_add("1997-12-31 23:59:59",interval 1! h1 j6 p0 @. }- ]3 F
second);    1 w* K2 k3 b% {4 b6 p
  -> 1998-01-01 00:00:00    - W0 B3 K6 l/ r5 |: U
mysql> select date_add("1997-12-31 23:59:59",interval 13 T/ ]( ?5 W! q3 h+ D
day);   
  t& {6 }3 z* ?, K  -> 1998-01-01 23:59:59   
* P$ l. K$ R7 F1 }mysql> select date_add("1997-12-31 23:59:59",interval- a+ m9 u7 r( L
"1:1" minute_second);   
! u$ {3 O# z+ b! C) V1 i! g  h  -> 1998-01-01 00:01:00   
5 z4 x7 o! [5 o6 C( Q9 Rmysql> select date_sub("1998-01-01 00:00:00",interval "1$ Q% h* ^# a- F5 u# }
1:1:1" day_second);    ' r8 |6 F$ V) A& a# n) q) g" L& b
  -> 1997-12-30 22:58:59    / D" e- M+ e5 i' s
mysql> select date_add("1998-01-01 00:00:00", interval "-1% F3 y) \# V, ]  @( @
10" day_hour);  
, @! G' ~2 ?6 M# J' a6 \9 R  -> 1997-12-30 14:00:00    # Z" a* r- \6 g* \$ ?( x
mysql> select date_sub("1998-01-02", interval 31 day);    3 u+ j  S1 }  N$ g
  -> 1997-12-02   
3 h: O/ L6 v) Y4 `mysql> select extract(year from "1999-07-02");    % t( @" V9 G& h
  -> 1999    6 b* h' @. t; ]6 B/ i; Q
mysql> select extract(year_month from "1999-07-02
0 l6 O$ K2 u6 c6 W3 h+ k01:02:03");   
5 \, F. X7 Z9 t7 X8 m  -> 199907    # K+ s- m2 O( n' f7 ~
mysql> select extract(day_minute from "1999-07-023 h4 p, J' h. v9 U6 K" g
01:02:03");   
6 n( Y5 j$ |/ M# p' d8 a$ B  -> 20102   
2 b) T& T% v& Y5 }2 d6 q
: Q" ~5 _1 E# w7 N& pto_days(date)    8 G  i6 Y, R/ L0 P$ U
返回日期date是西元0年至今多少天(不计算1582年以前)  
9 K* {1 u- Q$ i- P8 j; Nmysql> select to_days(950501);   
$ I: A& _8 u' V) k9 {8 h  -> 728779    8 Z0 f# [4 @1 U
mysql> select to_days('1997-10-07');   
! c. k, b% \8 k5 [9 h4 M  -> 729669    - W6 T, y7 C# R! s! w' P
3 h* V, `7 U. R' q+ z& N8 t
from_days(n)   
! O# Z+ c3 T+ r9 d0 b: S 给出西元0年至今多少天返回date值(不计算1582年以前)   
0 z5 o' E& f$ t2 \4 Wmysql> select from_days(729669);   
- \( v" c' }5 p  -> '1997-10-07'   
8 h" d* G) B$ v. d6 j( x 2 L( W/ ^( U; b' P( R$ u
date_format(date,format)   
: `; i7 ]) \: ^, ?, Q 根据format字符串格式化date值  
% S. G6 |% l) ~3 C (在format字符串中可用标志符:  
  M7 B2 {5 q, P %m 月名字(january……december)    + b* c$ u+ S4 e6 ~5 M
 %w 星期名字(sunday……saturday)    1 q8 ?/ M0 L5 C- t8 R" R: |$ H. n' e
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    % \6 U" W6 D1 J$ l4 c' d+ _: E
 %y 年, 数字, 4 位   
& |1 _. u( S7 v5 Z- }6 J %y 年, 数字, 2 位    3 N7 g1 \. [: C
 %a 缩写的星期名字(sun……sat)   
3 E' l. B0 h# J6 r& B+ h  s# O %d 月份中的天数, 数字(00……31)   
; R+ R9 M: H5 i1 Q %e 月份中的天数, 数字(0……31)   
0 W' T1 g6 A; b0 V) _; i4 ] %m 月, 数字(01……12)   
" X. @( C! Q4 J+ f! L9 ], A %c 月, 数字(1……12)   
& k3 l* S  f$ j9 j; t- v8 P4 @ %b 缩写的月份名字(jan……dec)   
# ?! S' k' ~- A) H9 U- j %j 一年中的天数(001……366)   
1 X5 k. u1 a, n9 M" c %h 小时(00……23)    ; G# }" \- F' w2 k. E5 E
 %k 小时(0……23)    2 M0 L% @) Y* X6 t; N8 O
 %h 小时(01……12)    1 l- f; E; v8 M% n/ _
 %i 小时(01……12)   
# Z' B# R. A9 `5 n  i %l 小时(1……12)   
3 K2 t+ f* \) {8 w- Z: o %i 分钟, 数字(00……59)   
; q1 {+ c) Y$ n4 I% i %r 时间,12 小时(hh:mm:ss [ap]m)   
; v/ B0 ~0 E4 y# X+ h* g %t 时间,24 小时(hh:mm:ss)    # c; t! `9 G  r8 Y' m0 Z% ^& t
 %s 秒(00……59)   
/ R% q6 e7 [" v3 Z; \ %s 秒(00……59)    ) S$ s3 S/ \1 L3 q+ p* o$ v% _; W
 %p am或pm    , [' ~0 @/ y) J7 v! u
 %w 一个星期中的天数(0=sunday ……6=saturday )    8 s$ @/ ?) {& Z" R! Y, k3 G; c
 %u 星期(0……52), 这里星期天是星期的第一天   
) Y2 Z( k/ S' U" p8 H %u 星期(0……52), 这里星期一是星期的第一天    3 V% o4 q3 C: P1 I
 %% 字符% )  
; U3 y8 v! y$ }9 ymysql> select date_format('1997-10-04 22:23:00','%w %m %( I2 j$ y7 ^% e8 u7 @
y');    8 k" k7 P/ E" o4 d. p0 w8 ]
  -> 'saturday october 1997'    " p* P! @3 D+ }5 ]; w! D6 J9 N
mysql> select date_format('1997-10-04 22:23:00','%h:%i:%- P/ R. X  ]' x4 _  t; z
s');    & F; X. r1 F: W7 I# a! T
  -> '22:23:00'   
. @4 K7 t. i2 E; T4 o+ Vmysql> select date_format('1997-10-04 22:23:00','%d %y %a0 Y; W7 K$ e" Q$ @. j
%d %m %b %j');    ; k  l1 ?/ a' U( a* H" \
  -> '4th 97 sat 04 10 oct 277'   
+ k9 e( U8 }/ C/ W/ }  amysql> select date_format('1997-10-04 22:23:00','%h %k %i7 E! V, P* H0 g7 u
%r %t %s %w');   
, a) W# l) R6 k% F4 D' [- }5 ^5 U  -> '22 22 10 10:23:00 pm 22:23:00 00 6'    ( z% t8 d1 x, r% r
8 A. j$ n& b# x" o
time_format(time,format)  ) u% p6 X1 B' O1 J9 k
 和date_format()类似,但time_format只处理小时、分钟和秒(其6 Q- W0 T3 F9 H( q7 H2 @
余符号产生一个null值或0)  2 [% E6 y9 y4 @7 l' [% q

- W2 j. f! M* I. Bcurdate()     
; e2 X# w. m! p) {9 h# Kcurrent_date()  5 b) W0 D) ^9 @2 I3 Y& h8 B9 J
 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
" P- [" P) l& |5 X$ [* l处上下文是字符串或数字)    * G/ `, ?1 g1 V5 h
mysql> select curdate();   
. ?! M, D) ?. j+ @( T6 V- b  -> '1997-12-15'   
4 u4 N+ Z- h9 {, [8 N! g+ L" xmysql> select curdate() + 0;   
) K5 S) {) i; s  -> 19971215   
' J' Z7 w* k, h0 L# I ! J3 Q8 b) |2 B% S( o/ f& O
curtime()    % H# B. p0 j5 v5 V0 y: N
current_time()  / ~; V9 O- ~* U
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上+ ?  Q. v; y: W6 x! N
下文是字符串或数字)      
( ^/ H3 L% ]2 o" }. Omysql> select curtime();   
2 m0 Y( x- ~! N5 i/ `1 `+ F. b# ^  -> '23:50:26'    $ l, H0 ~9 B6 C( Z( M" p
mysql> select curtime() + 0;    2 s8 N4 h( ~0 H' j" ]
  -> 235026   
* \  P  `) _& s 8 {8 n' d- B& s; c. j% s$ M
now()    ; ?2 `- E7 t9 C6 [' e5 ]* ^$ O
sysdate()    1 F7 w; t# m) O9 P) u8 l7 p$ B
current_timestamp()  
- M) k7 ~% k( B4 }6 t 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
; u; }$ b( z! F" {2 m/ t时间(根据返回值所处上下文是字符串或数字)     
. i0 V5 b; T' }5 Hmysql> select now();    5 e' Z% B' S6 t9 K2 o! g
  -> '1997-12-15 23:50:26'   
5 G, e2 c! g1 M) dmysql> select now() + 0;   
; @, d3 H% m' U8 O% G; b  -> 19971215235026   
- j1 a, ?# A( Q
! ^' l% s7 X! Z) Z* x# n2 [# wunix_timestamp()    & V$ K! P( W) h5 a3 b7 M
unix_timestamp(date)   
. B& K: Z4 r! m1 h9 L返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
" j- N- r  g6 ]' f数,date默认值为当前时间)  " Z$ l- ?7 h7 d8 S1 f
mysql> select unix_timestamp();    : [7 `7 n" n& e& q+ P' U; \
  -> 882226357    ' p1 \9 k* m$ ~7 L& T
mysql> select unix_timestamp('1997-10-04 22:23:00');    - ^$ I. g6 q3 e
  -> 875996580   
" P- {& }: i3 \  E7 K: s 0 r; ?8 {* h3 k3 T
from_unixtime(unix_timestamp)   
5 _  h+ g7 K7 Y/ U$ j# R以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的
, f; l( Z  R; c; m8 `. p' Z% z值(根据返回值所处上下文是字符串或数字)     * I5 k, m9 x! P% W" n2 i4 V' S
mysql> select from_unixtime(875996580);    ' U# w+ R# S0 @- z
  -> '1997-10-04 22:23:00'    9 c3 a% O8 g5 r- w
mysql> select from_unixtime(875996580) + 0;   
( g5 x  w0 Q8 M& A3 C  -> 19971004222300    " Z3 g' {- W+ e; U& Z" g. L$ g

; ]! j3 h3 H1 L6 Afrom_unixtime(unix_timestamp,format)      N: q+ o/ d9 u( l/ a; ~
以format字符串格式返回时间戳的值  
- M2 k/ C9 a6 x/ E5 gmysql> select from_unixtime(unix_timestamp(),'%y %d %m %& S# L4 f5 m& E8 P; V" z
h:%i:%s %x');    1 Z1 i% V' o$ A7 E, t6 r
  -> '1997 23rd december 03:43:30 x'   
( V4 P8 P- v: J3 y7 X. f3 w 5 a5 e& B7 l$ V7 K3 i" x. F8 `3 {( O
sec_to_time(seconds)    ) Y( Z6 f1 s# j" {6 c1 h6 y8 k
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     ! _7 g  q' r/ V4 r5 ?
mysql> select sec_to_time(2378);   
. t# k  t1 L0 X+ t& Y  -> '00:39:38'   
7 l. S' D& q' b$ n" M; a+ Ymysql> select sec_to_time(2378) + 0;    + y( j% x: V% R# m1 S1 s
  -> 3938    ( b& h0 B/ S/ E* E9 M

! j) n: F. o" T& `5 `) ktime_to_sec(time)    # o$ @* G* j0 ^0 n
返回time值有多少秒   
" j. g% ^% g7 X( Y7 Vmysql> select time_to_sec('22:23:00');   
+ ]" r; @: i$ ?3 u, C  -> 80580   
7 g9 X7 L4 }4 {  Emysql> select time_to_sec('00:39:38');   
& s) }' v! D4 n$ K- |  -> 2378 / t2 Z( F- X: a. ^) Z0 T) c
7 G- x! J) x- x
转换函数
6 r1 z' f5 |" M, dcast
  z+ K% u6 b6 d; a$ ?/ ?7 k6 p用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]( G4 X5 y7 D& {, B& k/ s8 D
实例:select cast(a as unsigned) as b from cardserver where order by b desc;  X- U. u+ Z3 M. ]
convert:
6 x7 u7 T" }$ S' r5 p9 C5 D4 R3 V用法:convert(字段,数据类型)* U. ?8 S, z' N, K
实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
" D6 j8 Q) w+ q, X2 A# j





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