中国网络渗透测试联盟

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

作者: admin    时间: 2018-3-21 16:07
标题: mysql常用函数大全
1、字符串函数: \: F/ @/ Z; b; t7 ]
ascii(str)   1 g9 p0 R, R2 S$ s$ ^4 n
返回字符串str的第一个字符的ascii值(str是空串时返回0)  2 }' ^# w! i, i& d6 k, F- _
mysql> select ascii('2');  
& ?1 l: a2 ~6 k$ M7 o* f! Y: i  -> 50  
' _3 o1 O) g" ]# U# f' Dmysql> select ascii(2);  . l) B) M5 L+ M9 Y  j, U
  -> 50  6 e* L* V! o3 C$ ^, Y+ k0 n: B, f
mysql> select ascii('dete');  7 k" D. f( H- E( g. T
  -> 100

1 d; H6 Z6 h$ B0 C" |. O* j0 D; G" ^ord(str)   
( U; A8 P( o0 R/ Q6 h9 R如果字符串str句首是单字节返回与ascii()函数返回的相同值。
) R  ?1 V) n7 f$ l9 d ) @/ \9 g1 \9 l' x6 D% _0 v
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  
' O9 e' |) r" `9 Q, ^' o( cmysql> select ord('2');  ; e" a6 c8 n; X. z* Z
  -> 50  
2 G3 D/ V9 s2 ~% b3 u) w" |   
) R' h4 H# T* I( F% h' y& k% y, ?" Xconv(n,from_base,to_base)   9 B+ t2 T3 F8 y
对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  - a  \0 U% f; X2 F5 e/ Y; w+ E
mysql> select conv("a",16,2);  6 m* Y( r$ G* S9 W- v2 {
  -> '1010' ( t: l1 r# o& B* y
mysql> select conv("6e",18,8);  
4 R+ l4 \" @  }- {& M0 n( p/ V* U  -> '172' / T$ k9 f& Z/ r9 D7 C
mysql> select conv(-17,10,-18);  
0 H9 f9 s; J0 |. a  -> '-h'
+ ~6 ?4 }0 @7 {! O4 Lmysql> select conv(10+"10"+'10'+0xa,10,10);  
7 o& U, m+ g: k6 R+ d  -> '40'
. d0 y+ T* s  w   
2 x! P% d- ?- ]bin(n)   
" K2 x  {2 v% k8 }- V把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
0 {: B' Q' d/ @9 T0 }0 W/ F% ymysql> select bin(12);  
, |! d# ]5 q* [: R+ a5 q  -> '1100'
" z, s' `  H: K1 _! h0 g . H$ e3 t9 x% F' ^" |! v
oct(n)   : ?& F6 E- k9 A4 L  m
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  & Z/ y. U2 a6 h  |" e" U# ]' m
mysql> select oct(12);  
2 J4 T' R( T# `! j/ v0 K/ a  -> '14' . y/ R8 h0 P' m% X* s" h
   - }/ ?7 X# g/ A7 i9 ?  q% F
hex(n)   
9 b$ ?4 w% O4 r" n( q# j把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  : P4 H$ @' I, n1 h/ N* C! t% W
mysql> select hex(255);  
' H" y1 Z7 b. `5 |, `7 a% j  -> 'ff' / R( n2 W& ~2 _- h9 S
   # u% V, I" i9 m5 c8 d
char(n,...)   
# _4 v3 w- r5 ?1 y' t返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   & k# z" |2 u/ m8 l1 t
mysql> select char(77,121,83,81,'76');    a9 u8 ^6 M8 W0 \
  -> 'mysql' / g# R' o8 ?9 ]% P- O: P* a/ Q
mysql> select char(77,77.3,'77.3');  2 h& s; y0 @1 u) f8 a
  -> 'mmm'
9 _! t9 W. M+ J+ ], e2 x   2 S$ \, f: {2 P
concat(str1,str2,...)   ' |& g5 X. f& ]/ e: b' F/ w( F5 F
把参数连成一个长字符串并返回(任何参数是null时返回null)  
; h, n  S+ ?! f: H6 [2 kmysql> select concat('my', 's', 'ql');  2 V9 D0 A( S* H; V% {
  -> 'mysql' : O. J% a8 k' v' J' ]7 i8 M. W
mysql> select concat('my', null, 'ql');  
8 I+ U) q# r1 A  -> null
; B$ Q+ U( C# _2 w) e7 c6 Hmysql> select concat(14.3);  
0 F7 e5 I0 t+ T" h2 `" r0 L+ v6 l  -> '14.3'
8 w9 ~& y8 U- Y: N% g+ m7 J5 T/ p- W
7 Z! m' E1 m" X2 O4 F  ]length(str)   " j5 ^' v  Q# a7 F# r- o2 T
octet_length(str)  
+ O0 ~0 z* z( u/ v+ q# i, Gchar_length(str)  & n9 l" t# P+ l2 U! b* @
character_length(str)    `9 Q6 @, q# l& Z# s) d, g
返回字符串str的长度(对于多字节字符char_length仅计算一次). [6 F% L$ r" h7 I
mysql> select length('text');  
* k: M* |8 E$ u2 p( ^2 Z$ t; u) ^  -> 4  
8 ^+ e/ F  p% }/ d7 |mysql> select octet_length('text');  5 u/ L1 p$ g: L4 o- o5 O. \
  -> 4  2 Q  L$ J! i  I2 U- m. ^
) V( K5 b1 g1 H: W0 M
locate(substr,str)   5 `0 N* ]' h+ m
position(substr in str)   2 P# X0 C/ Z7 e2 U; A7 N( U
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  3 V5 O8 e/ o' h& r
mysql> select locate('bar', 'foobarbar');  
+ ^8 V2 o3 ]9 y9 l4 }  -> 4  5 @" e/ N% g/ q/ F. p
mysql> select locate('xbar', 'foobar');  ( L/ v1 P( U/ c( i' t. K1 b
  -> 0  
2 B& K9 a0 c9 m" D( g7 X4 U! f   
3 q: A9 d. J7 @  D& w$ o, r2 xlocate(substr,str,pos) 9 v: R  {/ `/ ^5 G$ T+ h! P5 [
返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
) h' S. e4 v" `9 Rmysql> select locate('bar', 'foobarbar',5);  - y: A: H# ]# n; D7 F
  -> 7  2 H" A5 s" ]  [" B+ j4 U6 _

- f1 D- z- }0 Z4 K+ linstr(str,substr)  
, `6 K/ N* x5 Y2 @: t: f返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
/ ~/ C9 \# ^% @+ F, P: Jmysql> select instr('foobarbar', 'bar');  / Y# G5 q! T9 H$ W0 P
  -> 4  
* W2 @$ M8 b2 P. w1 n& W/ Jmysql> select instr('xbar', 'foobar');  
+ ^+ ]6 P! z$ w  -> 0   
6 h- c1 u& S/ m# {6 z& J) E" a ( F' J( |" g1 L
lpad(str,len,padstr)   
$ [) j. \; P8 A/ o9 E8 T' M9 v用字符串padstr填补str左端直到字串长度为len并返回  7 q5 T3 k2 O% z1 }% {/ D
mysql> select lpad('hi',4,'??');  
/ ~) R  [, @& L! S. Y. \' ?; y  -> '??hi' 0 f. O3 I! o  M" C* A& f6 ~! `
   % z. z+ p6 h0 q  A
rpad(str,len,padstr)   ; q# n' l1 k& _) N1 T2 L) k
用字符串padstr填补str右端直到字串长度为len并返回  
, I* z- m- `, I3 ~# {1 rmysql> select rpad('hi',5,'?');  
" O, f9 V( w5 i) o& F5 z  -> 'hi???'
7 \  x% @, J2 J6 t 6 H( C; ?) T9 M( B
left(str,len)   
6 H( h6 W, a5 V返回字符串str的左端len个字符  
0 w5 C1 i. ?, u+ q; [  B. _0 hmysql> select left('foobarbar', 5);  ) O. [" W: f+ U) ?) |9 W* H& s
  -> 'fooba' 5 \) D2 Z9 d7 {) \; ?1 h; H

$ p" I" @# R# j' f8 Yright(str,len)   
7 \5 q7 P: i# M6 C返回字符串str的右端len个字符   
) t) r5 _2 Y. b/ X( {mysql> select right('foobarbar', 4);  / W7 k4 x* x0 \7 a$ j! y' u
  -> 'rbar' + E0 A% E! }, F% Y9 u! W2 F4 h
' p/ t% F/ m* h! c3 W/ g
substring(str,pos,len)   $ L$ `3 P" w$ c, t% B
substring(str from pos for len)   ' i4 ^- ?9 b$ N4 m
mid(str,pos,len)   
$ {* [% l0 D1 d" ]/ D( r' _3 q返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  * j) t$ h; ^, n( p- n6 K0 v
  -> 'ratica' " [$ s& `3 u3 I

; d- I/ E  j% p) o4 m* {! rsubstring(str,pos)   % Y7 g/ V  p' n/ R5 D; h
substring(str from pos)   
- y6 d; Y$ f3 x6 r5 S7 a% P返回字符串str的位置pos起的一个子串  : X; u0 m! Y( h/ O( R5 t
mysql> select substring('quadratically',5);  
! n. e, s8 E1 a7 V$ g! l0 r. H  -> 'ratically'
/ X. J6 w- M9 v3 G) Dmysql> select substring('foobarbar' from 4);  " m$ y: P" c: p( b
  -> 'barbar' 4 X" z, l/ x) a

  h! `5 g- V) t* c. q- usubstring_index(str,delim,count)   
/ p- n8 c! ]& @3 |1 s返回从字符串str的第count个出现的分隔符delim之后的子串9 C) h% K: }' P3 c+ ?
(count为正数时返回左端,否则返回右端子串)    m  K2 X3 I% _% @5 y
mysql> select substring_index('www.mysql.com', '.', 2);  
, o0 I1 ~# s* X6 l$ Y  -> 'www.mysql'
+ c* }! g. y7 n- Pmysql> select substring_index('www.mysql.com', '.', -2);  
) w. o0 \9 n: X. a: x  -> 'mysql.com' 2 U/ E0 n5 }8 T' v1 a: N

" u! L9 x& U7 f2 ?9 e6 A; \, }4 Wltrim(str)   # Y# q6 m9 _' f5 y% S6 Y
返回删除了左空格的字符串str  
% [9 Y  h; T, C6 p6 jmysql> select ltrim('  barbar');  5 ^. z. H: n* u1 }* p
  -> 'barbar' ) ?! i8 ], y2 P2 p
6 O! {9 B% C5 k/ \5 [) B7 J. D
rtrim(str)   
$ j0 D" \7 s  j% n; R9 n返回删除了右空格的字符串str  3 Q. e) j3 p& B0 J
mysql> select rtrim('barbar   ');  * u& t; h' G8 [8 \
  -> 'barbar'
1 q  F1 u8 Q% P+ ]% |7 m# p
  k6 C; W2 c9 R3 L0 E6 Ytrim([[both | leading | trailing] [remstr] from] str)   % Q# D5 {2 Q4 Y& s0 q% v% n
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
. M7 j) j: N. J# d. Z* H' t2 F$ Z4 j& ~' amysql> select trim('  bar   ');  
& Q# V& m8 C4 q+ H: ?  -> 'bar'
: l  n1 ?. ?" rmysql> select trim(leading 'x' from 'xxxbarxxx');  ( ]  z  Q) Y: y: {4 p7 S  A
  -> 'barxxx'   o2 Q0 a  q# a. ~$ P) ?
mysql> select trim(both 'x' from 'xxxbarxxx');  
: u( `, l, L. w( I. U9 f/ ~  -> 'bar'
' _3 \/ Y  @& N2 Hmysql> select trim(trailing 'xyz' from 'barxxyz');  
7 q% A4 [6 \7 l0 |$ [' a! M  -> 'barx'
) C7 ]9 D8 [" g* e+ W
  \7 P) d! W9 r6 m/ {" I+ lsoundex(str)   
1 @4 w3 Y. \* t1 X. B& D返回str的一个同音字符串(听起来“大致相同”字符串有相同的
6 O, w5 w* L' u4 k9 S3 o/ X7 R同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  
) V) ^* ^+ _3 {1 `$ H9 X3 H- a+ K$ I* R* Hmysql> select soundex('hello');  4 q+ W; K* l7 m& Q
  -> 'h400' ) ]3 l3 b5 h- H( J4 H# S
mysql> select soundex('quadratically');  
; B" m7 s7 \5 B7 p6 H  -> 'q36324' ' M; h# Z4 U% Q( {  C
   6 U3 F( F, r$ @/ [/ N7 y; U
space(n)   7 x8 i4 X# z2 {( {* u: U
返回由n个空格字符组成的一个字符串  + ~0 v) V" }$ u) d" D4 k: I
mysql> select space(6);  ! r8 I1 h0 p" P2 ^* p  Q# ~9 v
  -> '      '
# x8 g. {$ j* ?   
5 H# S6 P# z% W3 y9 o$ Jreplace(str,from_str,to_str)   
+ i  W6 J$ ]/ l% y* Y& W用字符串to_str替换字符串str中的子串from_str并返回  # u5 S" J, U2 ^* G/ Z. i0 N  F! m
mysql> select replace('www.mysql.com', 'w', 'ww');  
# o5 S! U$ c; n  -> 'wwwwww.mysql.com'
7 c1 E0 U! L& a/ M% Y$ d
1 E, F3 y7 ]! ^7 ^7 d+ ~repeat(str,count)  
$ y" T0 K* P- Y/ q+ \1 |' T% }, _返回由count个字符串str连成的一个字符串(任何参数为null时' m2 r$ h4 n- c4 T! w1 ~  k7 S
返回null,count<=0时返回一个空字符串)  * l% N. C0 U: ]/ O8 S
mysql> select repeat('mysql', 3);  
7 ]" ^6 D* Y# f' D8 F3 N1 z" ?: W  -> 'mysqlmysqlmysql'
# m) J- F4 F% d8 K% ~* S0 H2 \/ v   
2 o' D: a; A# N: U4 r, {$ j8 rreverse(str)   
0 l* p+ v3 G  N  n  G3 s4 c2 ?颠倒字符串str的字符顺序并返回  " q$ x$ \1 O% a  |7 T4 T4 B' |$ Y' V
mysql> select reverse('abc');  1 I2 j/ m( K: k$ `5 N0 h7 L
  -> 'cba'
/ {. ]& S  a9 |* m
- ^6 ~: D, t# R8 @- Cinsert(str,pos,len,newstr)   / l% n" N* Z8 D8 j( y/ Q7 r
把字符串str由位置pos起len个字符长的子串替换为字符串
5 i/ j! P4 R4 S1 Gnewstr并返回  ' O  `' N! g$ V& x3 K& x
mysql> select insert('quadratic', 3, 4, 'what');  
8 K2 m1 L1 Q) J; Y9 ]# |2 y  -> 'quwhattic'
- l; {5 R: _( C% U; }, A
4 A- h$ Z! L. U3 `  X) C( Pelt(n,str1,str2,str3,...)   
( C+ V* ?. @: d# K; _, F返回第n个字符串(n小于1或大于参数个数返回null)  
- N9 |1 j$ E  K; k: Mmysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  
" A% t/ d: X* ^5 g' k0 Z5 L  -> 'ej'
5 @% ~9 E1 p: t7 e# Gmysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  
' [" ]7 b! \4 t/ q3 f+ N  -> 'foo' " k6 j' |9 }" T$ I9 X5 n( g
4 n" m  Z( h# g
field(str,str1,str2,str3,...)  
+ ?& o+ Z! ^* m0 Y6 h: p; V返回str等于其后的第n个字符串的序号(如果str没找到返回0)  & S& Y4 X% S* ?1 J
mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
" _& ^! h& Y4 ^. ^* U'foo');  / H3 o: O" B" @/ F3 p1 Q
  -> 2  ) g, M/ m  u8 ]5 p9 C. O
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',8 F( g+ {; u3 Z4 m3 H0 l: @7 d
'foo');  8 i' c0 V1 ^7 R% D" [1 ~# m
  -> 0  
, r- Z& v4 g5 e7 H' j' q# K# ?' n! q
; r" s; T. N: x9 _; Y+ `# efind_in_set(str,strlist)   , u1 h& a  C0 _2 O7 H$ v7 z
返回str在字符串集strlist中的序号(任何参数是null则返回) Z" O- u4 T- e& R
null,如果str没找到返回0,参数1包含","时工作异常)  ' i9 C. E1 |; x, ?  F0 w( X" Y
mysql> select find_in_set('b','a,b,c,d');  
( T) M4 E* M8 z; c3 f  -> 2  
/ V$ s& b$ H2 a   
/ d0 J) m- d1 j. L, }' j9 Rmake_set(bits,str1,str2,...)  
9 B2 z) t" C: P+ U2 p( l把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应+ e: ~- v7 C, |+ Y2 R( e
位置的字串选入字串集并返回(null串不添加到结果中)  
/ _2 _  H4 H/ d: O( N& smysql> select make_set(1,'a','b','c');  
: v! U5 b2 B3 s) o9 ^8 D  -> 'a'
5 |4 e; l! B& ~: v$ ^" bmysql> select make_set(1 | 4,'hello','nice','world');  
" Y: X8 H8 W: G) e9 f  -> 'hello,world' , I  X) z# [1 }. O) r) c
mysql> select make_set(0,'a','b','c');  
+ \) {- n6 y* ~  -> ''
( g6 o7 `1 N% s0 R: j' Q 3 B+ w' [7 h' l/ s% {0 M" m' j' B
export_set(bits,on,off,[separator,[number_of_bits]])   
9 K5 F4 K, U0 h% Q按bits排列字符串集,只有当位等于1时插入字串on,否则插入
( K2 S; X" k$ R) R2 toff(separator默认值",",number_of_bits参数使用时长度不足补0) i8 b/ Z$ c" b. d& d  T
而过长截断)   . S. W6 A$ r1 d% }/ f+ T
mysql> select export_set(5,'y','n',',',4)  8 d3 [) R4 v' c+ {" Q
  -> y,n,y,n   
2 U# [* i0 b/ r7 Y1 D  Q
  \  c. w* s# A) x; wlcase(str)  - Y) `7 O1 }; e* T6 S9 _
lower(str)   * _/ |( E9 j4 ?% b2 l$ v' n7 Q" z
返回小写的字符串str  * A1 s* V  L1 A$ }3 d
mysql> select lcase('quadratically');  0 z/ q/ b1 |5 i& q# Y
  -> 'quadratically' 5 b& h2 D+ O* s! a
   $ s( x8 m# @0 `$ v0 r$ I
ucase(str)   
# }% J; X% C: x: M: C; P1 Gupper(str)   ! k1 f' r+ P" m( p. o4 T4 C
返回大写的字符串str  
1 T4 t. G- V1 S) ~# H/ ^mysql> select ucase('quadratically');  
1 W/ e5 ^* e1 v9 l% R" y  -> 'quadratically' * N' s. b! j" P" x
' r" U  s. z7 Y, ^' H! Y' R
load_file(file_name)   & `( D0 X0 K0 j  P. T
读入文件并且作为一个字符串返回文件内容(文件无法找到,路径
+ w' i8 \8 l4 D$ u* e! `  B不完整,没有权限,长度大于max_allowed_packet会返回null)  ! t" b! i4 ]3 x
mysql> update table_name set blob_column=load_file
1 _7 M* Q! o# x8 v4 N("/tmp/picture") where id=1;  , B( e+ m1 V( ]5 v/ R6 R& `( m' r

9 s) n8 \' ^1 {0 g2 J2、数学函数
! e. g  A( u5 G6 Jabs(n)
. e1 @, H+ w' K  @3 w( _9 D返回n的绝对值  
7 Q) }: Y8 \" s* d4 jmysql> select abs(2);    1 e, i" y  q8 V' h& F/ J; w1 i
  -> 2    1 e2 z; O3 C) n4 \$ Q, Y
mysql> select abs(-32);   
, i, ?2 G+ n1 \6 I8 ?9 X( Z  -> 32    ; V) t5 j5 ^- {/ C' @& u8 s
   
5 N+ O. D" t: w. Tsign(n)  
3 W6 C' B& w% a+ V返回参数的符号(为-1、0或1)  
% U7 H' b8 _0 [' p- rmysql> select sign(-32);   
! u/ Y/ e, P- w  -> -1    0 }4 Y# m! ]  F8 \4 @7 f
mysql> select sign(0);    1 ?* {+ e+ P! _! O! ]
  -> 0   
) w6 Q! \+ u, }, b, a% G7 Z0 K* Wmysql> select sign(234);    $ _/ g4 ?" t/ k
  -> 1   
0 {: U& O# h5 K/ v# N- b
8 K' ~2 o, Q  i- r. e9 C" U  p( {mod(n,m)    " P: E3 N* _% ~! T) c# y
取模运算,返回n被m除的余数(同%操作符)   
# a  b, ?5 G; @4 ?$ X8 Nmysql> select mod(234, 10);    - P* C4 w9 U3 A7 J. Y& Y1 n& C& p
  -> 4    8 |: y4 a+ M# Q; m  \4 ]
mysql> select 234 % 10;    ' [6 \) B% X6 \! g8 c( I7 [$ J
  -> 4   
; U" U8 Y* k# [/ R; n: w1 bmysql> select mod(29,9);   
# c7 [( ~" a* M+ W/ w  -> 2    4 _% R4 [( q# P, v# ]

, g9 W; d* ~2 D4 P' F7 p% v: afloor(n)  5 y) s: K1 K% q" Q1 ~! c6 b
返回不大于n的最大整数值  0 W1 a% N4 o: A3 m; o, l
mysql> select floor(1.23);   
/ A9 k; H0 q1 t$ W  -> 1    " Y, W& \% F5 l+ t0 |
mysql> select floor(-1.23);    4 {; \* q# F2 _8 o1 t
  -> -2   
0 L5 M8 a8 c. D1 A
9 @, G; R: E, W+ F( n4 j$ wceiling(n)  ' P1 Q$ p$ ?$ H; E  r7 W4 L
返回不小于n的最小整数值  
' G; ?) T  a, T$ s. \/ x: d; p7 nmysql> select ceiling(1.23);    0 x  N& @- [4 ~% q5 z
  -> 2    ( T8 n: m3 {, r, @; i, ~+ }5 B
mysql> select ceiling(-1.23);    2 ]6 C/ l4 I& C
  -> -1   
1 g* X5 k! i  k9 U& k
# ?9 K9 Z7 Z. ?' i8 ~1 hround(n,d)  
- u) l2 C' i& y返回n的四舍五入值,保留d位小数(d的默认值为0)  8 `0 i) D1 G% B: E. }
mysql> select round(-1.23);   
8 A$ t9 |' Q2 A2 o0 A! J' f  -> -1   
- y' F3 Q- B0 s) Dmysql> select round(-1.58);   
7 w' R$ G1 L! K  -> -2   
7 v, \! M. e( C: I9 Hmysql> select round(1.58);    : X8 M9 Y* ^4 i& `: b
  -> 2    " D8 F5 G6 m% M" n+ q/ F2 v* v' d8 O
mysql> select round(1.298, 1);    - W. W& }5 q& u% c4 L
  -> 1.3    1 D' p3 ~$ @8 d  ^
mysql> select round(1.298, 0);    ( z# W/ t3 a  t  C# `
  -> 1    * m6 d0 ?2 m- K: P% G
) d" G1 [6 b, p# e% _. |" M
exp(n)  , G- w' f: n* c2 A# V
返回值e的n次方(自然对数的底)  * m5 c) U& O6 L! s: P4 }
mysql> select exp(2);    3 A# P- s- w: L
  -> 7.389056   
4 Q# ]9 Z6 q! T, Amysql> select exp(-2);    7 T# [2 k7 ^+ H  J8 x1 E
  -> 0.135335   
9 I- [$ b  v7 }4 g0 S* D4 m% v5 ~$ ^ 9 K* F  E( G, P0 w3 l
log(n)  / E3 g  p# z0 [2 n$ s; ^# j: r2 m
返回n的自然对数  5 Q& B' s; P8 J8 o: L. S
mysql> select log(2);    . N# ~2 }  ?  X
  -> 0.693147    0 b) P' N" P& H
mysql> select log(-2);    8 P, s' t& {/ q0 W( e7 o  }
  -> null      k+ f# r/ v9 O) b0 N1 F
- R0 k, p3 _6 Y: O2 Q3 B6 X2 P
log10(n)  + B! R( C' r1 f. B: _) C! E
返回n以10为底的对数  : e5 A$ \% F0 Y4 w
mysql> select log10(2);   
8 K2 l9 e5 s# w2 s  -> 0.301030    ( q* |+ X- C( u9 C) ^8 |
mysql> select log10(100);   
3 X2 B* V  Z0 ~# \  -> 2.000000    : B5 S  R  p; [+ x
mysql> select log10(-100);    7 P/ |2 m# \, G8 [2 b" x6 f8 q
  -> null    4 O+ R, Q0 T+ V2 v3 r; }

# f! A* Z! L! r# O/ R8 \; ypow(x,y)   
. {% L* C) r( _0 o' o( X! apower(x,y)    , e. P; b( h% z. l+ S1 L
 返回值x的y次幂  
" L4 S. a' a$ J1 j; s+ @& Tmysql> select pow(2,2);    / i( I& ]: c1 f/ _
  -> 4.000000    : d" {+ _4 `% q( r
mysql> select pow(2,-2);   
9 ^" ?6 U7 o4 L# B, y  -> 0.250000  
9 s5 s4 ]+ \6 M7 Z! l$ e3 ~4 D$ m4 v9 ]. K
sqrt(n)  
. d$ O' D1 n# @+ D6 U0 M6 a8 r2 v8 T 返回非负数n的平方根  5 l1 j4 P' n' g4 f* u3 M
mysql> select sqrt(4);   
, |8 }7 K6 t, b7 Y( V  -> 2.000000    ' e' g4 G6 t/ L2 o; [, O# P$ W
mysql> select sqrt(20);   
- T& ^, p/ n1 c+ i0 _* V  -> 4.472136   
/ w: _0 N; n& z " W; Z! }* u5 x+ y% k0 g7 h! ?
pi()    - ~& Z+ o8 a" Z8 [
 返回圆周率   
- ?& ~( m' p. `: @mysql> select pi();    " l8 r/ \6 E9 \8 M. b7 N- l3 z3 v& @8 p
  -> 3.141593   
" N5 O1 E) \' f" G 1 S! O, [; r6 M* b
cos(n)  * s/ v7 G# A1 K' Y
 返回n的余弦值  
3 z/ h- c) P& N. pmysql> select cos(pi());  
% A. `( E3 P( d9 j  -> -1.000000    / i5 {4 Q9 S. K! X# C7 ]* A3 _
9 s" _9 w, P$ c. C  I* Z
sin(n)  : f2 O) p* }+ }8 ?  N
 返回n的正弦值   
# w. t4 N0 c4 xmysql> select sin(pi());   
/ @  b7 G; s( \! q: _/ N  -> 0.000000    ; v! K. T) c: p6 t) Q) r
' [+ n5 {  A5 [& [
tan(n)  
8 T" i; v/ r2 `" q9 i; ~0 R返回n的正切值  & h$ Z' C0 l2 C+ q
mysql> select tan(pi()+1);   
$ Z( z- j" q- x( F& m; }8 K: `  T' k  -> 1.557408   
5 s7 `/ h) _0 A8 T% X8 @
- R* e0 ?8 }" `9 f4 h9 Bacos(n)  
" V% v- ?; ^6 D$ Z 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  + G# P: Y  W5 C5 U' Z9 ?
mysql> select acos(1);   
9 F, }& L* R/ H) q  -> 0.000000    8 D6 f" l2 t6 l3 F0 b$ A: Z
mysql> select acos(1.0001);    & a0 I. W+ J$ }
  -> null   
2 I- ~. |; ]5 D* M) H) F/ c' n7 W! smysql> select acos(0);    * t- P2 D9 i! p
  -> 1.570796   
, P- [1 C* x- x+ L+ q$ k 5 c$ \, @- I8 B7 Q7 r" L! U
asin(n)  ' N2 W4 K+ X' @, w' L
返回n反正弦值  
# _: d0 a, T0 n* Q7 i( rmysql> select asin(0.2);    - h( ^' f8 G8 M0 u4 u
  -> 0.201358   
; x/ B8 j) L* P9 H& ~/ smysql> select asin('foo');    8 ^# U/ U. H  [& m5 e
  -> 0.000000   
3 L; `$ I! z$ J9 J! V8 q9 G 8 X8 H- N- V: K
atan(n)  3 |8 v  j9 Z" ~* C9 p4 U* ~
返回n的反正切值  
. u8 Y8 ~' O* Wmysql> select atan(2);   
% Y6 M) K5 [1 p! ]  -> 1.107149   
6 F( _' D$ A6 l5 W0 P: B% nmysql> select atan(-2);   
5 f, m; C- `$ v5 V3 S% A9 ^  -> -1.107149   
, F: Z! [4 ]3 ]5 E' `5 ^atan2(x,y)    , @; M' m, K4 \
 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  0 u* p+ }' @$ K- T6 [
mysql> select atan(-2,2);   
  q& I6 \, V; U1 x# }% V; C  -> -0.785398   
% B7 f/ h: l0 `; H; y$ Umysql> select atan(pi(),0);    4 L* [  U% s! d# i
  -> 1.570796    & k/ m9 O9 l. }

+ o, _1 b6 `0 Xcot(n)  
+ Z. Z& A6 P1 x( v返回x的余切  / v, B# j- i* F
mysql> select cot(12);    * y* G! P- D( Q+ c7 }$ ^
  -> -1.57267341    4 u) n2 [1 L1 `8 B
mysql> select cot(0);    4 n! t# t# s) z; S
  -> null   
+ t" o. ~" @2 s8 e
' I* _; i# J- X1 I$ R' f% R: Drand()  
" B" |/ O/ F/ }' \3 d+ \rand(n)    
9 ]" {+ R0 I8 f% ]返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
& a# v; s( V4 ?/ F# S' D 7 c( c" p0 J+ ~  j
mysql> select rand();   
+ F8 N$ T) e, B  -> 0.5925    5 n3 D8 H5 T" I+ W. C# j9 n. N
mysql> select rand(20);    * B' y/ m' f- J  C
  -> 0.1811   
6 E% K9 a8 k% [0 ?mysql> select rand(20);    " {3 d: \5 P7 r
  -> 0.1811    1 z# u0 a2 p  B; }
mysql> select rand();    ( [2 h: k1 t6 u: U/ W7 s) T7 U/ _
  -> 0.2079   
( I6 {$ X/ j, E1 vmysql> select rand();   
' a) B/ Q3 O8 T* V, O/ A( `  -> 0.7888    * W( E" M5 j; T' T0 r

; m. W" n. f$ ?) r- _8 P0 A, Cdegrees(n)  ; [( P5 O) m% {
把n从弧度变换为角度并返回  
, S) U6 }" U3 A' W4 B* j# gmysql> select degrees(pi());    * W* X. M- T6 p* A# L- |5 ^
  -> 180.000000   
$ G+ C# p  o1 D9 z
2 M7 W9 B1 M8 m1 Bradians(n)
. K; W4 v8 D2 B* i* h: d把n从角度变换为弧度并返回   
4 v$ J2 M  s  x0 K, Y9 K$ C7 f0 Wmysql> select radians(90);   
: u8 K/ M! @# k& y  -> 1.570796    - {1 \5 A' C) K) X# K% }' j- b

% k- d- U- L! |! {" R8 J3 \+ z) vtruncate(n,d)    0 w6 E: d2 F. B7 F4 a0 h
保留数字n的d位小数并返回  ) O6 |, t  y* l! b, g
mysql> select truncate(1.223,1);    8 n" V2 @- p. a2 h$ U3 l4 A. V7 [
  -> 1.2    : [# g, `; {4 F, v1 J
mysql> select truncate(1.999,1);   
8 c2 Q$ F2 `! n$ E  -> 1.9   
1 p  j( J0 M2 u2 T7 B7 O- Fmysql> select truncate(1.999,0);   
/ W( b# \( w7 M  y  -> 1    2 B' t4 W$ Q# [: O7 g

+ `6 V) F5 c$ G1 hleast(x,y,...)    - R9 i+ \: E3 W! Y2 B$ z; x
返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  , A' w: g  l4 }" G: {2 M% o
mysql> select least(2,0);   
% S4 m6 Y3 v9 V" o, J  -> 0    ' j6 j3 i* Z) P7 f2 ]
mysql> select least(34.0,3.0,5.0,767.0);    / h: R4 Z. b; j# O9 [
  -> 3.0   
0 T- d4 |1 Y. l6 o, g$ I0 `" |mysql> select least("b","a","c");   
9 Y+ i" l% A7 t+ m4 d  -> "a"   
  j- n8 S$ X4 N% g4 R3 N! ~
( f# X; o3 Z# q) S) ngreatest(x,y,...)   
# t8 M7 w2 _$ r  U0 I返回最大值(其余同least())  
' |7 r9 R1 ~. V9 ^' m& x: U4 xmysql> select greatest(2,0);    % A& q$ K/ r; O2 k
  -> 2   
; y4 ^4 H5 v- x# O1 ^mysql> select greatest(34.0,3.0,5.0,767.0);    0 F6 |1 ^8 i' h1 t4 L$ j" a
  -> 767.0      x" O/ \% S: Y# A8 I8 _5 Q* t8 g3 x
mysql> select greatest("b","a","c");   
5 {6 ~- u5 H. a& p  -> "c"     
. E$ s5 Z+ e1 a% ]9 }8 ?+ B
/ f, l/ D) s+ x# o( v/ L, @4 \  }3、时期时间函数 . S' ^7 ?% u1 i7 z6 ]
dayofweek(date)   
5 k# b7 V: Z9 Y返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
7 r& P/ n+ O! p8 `2 k+ \3 O7 Tmysql> select dayofweek('1998-02-03');   
7 m' D0 N9 X1 {  m/ g$ U9 u9 J+ _  -> 3   
% ~* b: q* Z$ M0 ]# s
6 l- l+ e2 y$ u$ ~/ }0 A0 yweekday(date)   
: f' z  n2 x  `3 m返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
5 B- o' Q. W3 {9 h  , D8 G; U$ M1 ^( _2 ~
mysql> select weekday('1997-10-04 22:23:00');    - l% s& d, q$ C0 O9 f- f
  -> 5   
9 {" h; U! o% m, I& Z# Smysql> select weekday('1997-11-05');   
) V- S" @8 b3 t6 Z) B( A* y) U  {  -> 2    & o- ?0 i% K3 T: y! j

& t6 x9 j( @5 }: pdayofmonth(date)    
8 f2 Z/ H- B, j返回date是一月中的第几日(在1到31范围内)    , u. g" t$ e, m& c
mysql> select dayofmonth('1998-02-03');   
9 _; k9 U0 s6 f# ]- S( u  -> 3    # y& u8 k' ~1 S; H

- X( @! {# c1 t; Pdayofyear(date)   
3 x: A5 y+ G) v& W返回date是一年中的第几日(在1到366范围内)    / ^7 G1 O8 N& n! o
mysql> select dayofyear('1998-02-03');   
, `6 g8 T6 w* @" C  -> 34   
4 o/ B7 ~* Q8 S0 u$ R. X : t% u/ y8 q. a+ V' s
month(date)   
. b* ^0 G8 d4 O返回date中的月份数值    2 @( G% w0 f% c
mysql> select month('1998-02-03');   
. `+ j& E4 \% E$ @  -> 2    ! ~( r2 R$ q0 B7 d: }
' v- ]$ \# _7 n( ~, k
dayname(date)    ; j$ ~1 g+ {& Z
返回date是星期几(按英文名返回)  ( k& y( r2 j0 F8 [& V' V* y
mysql> select dayname("1998-02-05");      o* f) l% W# |0 N. a/ L# f0 @) C: I6 \
  -> 'thursday'   
4 |% L0 F- ~( a% K. {; r % o- ^9 m' y! c4 t  I
monthname(date)    
' e* N% o6 u$ J5 I5 _返回date是几月(按英文名返回)  
- |' L- C( Z0 h& vmysql> select monthname("1998-02-05");   
& t3 S" H1 J! ^  -> 'february'   
- K4 |$ E4 E8 S
/ N7 c2 J5 }) ?) `quarter(date)   
, C0 Q, _% \' x返回date是一年的第几个季度    , P; M3 Z! R! `2 C9 e1 }! A
mysql> select quarter('98-04-01');   
+ Q' G! a; `( ?  -> 2   
( y7 r& }) B9 G9 W4 C6 }3 d6 ^5 W
# p8 o3 H3 X1 }1 X4 @3 m- [week(date,first)   0 f" X1 @, v, Y
返回date是一年的第几周(first默认值0,first取值1表示周一是
3 _! W% B; B! g% }! @周的开始,0从周日开始)  
; t3 `7 A5 I1 e. i% smysql> select week('1998-02-20');    5 u0 d/ H. e& @* C
  -> 7   
, m: L* F- Y# l- cmysql> select week('1998-02-20',0);   
. z% {9 K- f( c9 {' K# v( t8 m& q  -> 7    ( a1 W, ^, u& ]# u/ [& q2 O7 s
mysql> select week('1998-02-20',1);   
$ N5 D! L4 L3 b8 Y2 ^% [. k5 u4 |3 C) o  -> 8   
* [/ m; R, s# f. s# f  D 2 I# Y+ V" X7 H* o! G# o0 I, h. I
year(date)    % k  w4 z# R; D9 U
返回date的年份(范围在1000到9999)   
( T9 e# U' @2 l7 e: }mysql> select year('98-02-03');    - Z" r3 M5 U( j2 A  b: f+ X2 C
  -> 1998    5 t. ?4 B" f: _1 g$ ^% k
! P8 G8 Z( ^( U3 v4 u: f. b
hour(time)    
- d+ T* d7 }; e9 v7 L6 C/ u+ `返回time的小时数(范围是0到23)   6 a# u$ |( B) h! J$ [# Q/ b
mysql> select hour('10:05:03');   
3 j: X+ M" a: J3 N4 @  -> 10   
: N$ x9 N# m: f+ g% Y
. \5 W% |* X0 H" ominute(time)    - k8 n- ?% b2 I, e
返回time的分钟数(范围是0到59)    * ^: r& t/ a1 b6 S6 G+ X, Z9 y7 t5 C
mysql> select minute('98-02-03 10:05:03');   
" `& t. M4 _& ^3 ]1 _$ @  -> 5    " I: D" ]% T6 P3 z: v: f
& b; O' r/ {  ?: `4 P
second(time)    ! H8 }! [1 ^5 I& m. d! N" L6 q
返回time的秒数(范围是0到59)   : ]8 ]! C& ?: r! q  I# m
mysql> select second('10:05:03');   
9 t$ `5 ^* q0 }+ L1 C; q  -> 3   
( G1 S4 W* I- X5 L- a$ ^
, P7 m+ C/ W! M! n# Y7 ~# W! Bperiod_add(p,n)   
( H+ @" I) A5 u3 F. G/ L* l增加n个月到时期p并返回(p的格式yymm或yyyymm)   
1 a: v, \/ l6 s9 y* B. t5 }* ymysql> select period_add(9801,2);   
9 @6 x9 W9 w& Z/ d( |  -> 199803    , E8 ~! u  y1 \6 [  ?, A$ T$ W% X
/ W: K' [! q' ]0 n' U
period_diff(p1,p2)    8 I% {( m$ n! M' f! p
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  
+ j) u3 i) k. W$ X( k- G( Pmysql> select period_diff(9802,199703);    : V1 V  l- S2 J' N! }6 E( r
  -> 11    0 p. |3 V' g. W6 f: A! F

* a  _. K9 T6 `5 m6 J, Kdate_add(date,interval expr type)  ( e! \  t, O# B& w' `' G
date_sub(date,interval expr type)    3 R- S+ }2 s! r
adddate(date,interval expr type)    2 L" ^: \0 |  W8 x4 b
subdate(date,interval expr type)  
. y+ h5 @4 N! x# m& u+ Z对日期时间进行加减法运算  4 V! U& j* d* W# I
(adddate()和subdate()是date_add()和date_sub()的同义词,也
# y' I/ T; j- |- q2 H可以用运算符+和-而不是函数  $ T8 J. J  M& A# Y/ \- w
date是一个datetime或date值,expr对date进行加减法的一个表) m6 R. ]4 |3 \! Z# [8 t
达式字符串type指明表达式expr应该如何被解释  
; r0 {3 s: r$ X. A" F( } [type值 含义 期望的expr格式]:  
5 L$ o8 ~, p" L& f& p5 n second 秒 seconds    ) |" [' a5 z- K3 |( q
 minute 分钟 minutes    7 C- Y$ M/ u5 O  B, K
 hour 时间 hours   
) E0 C. D, d! h# @$ v day 天 days    * _) k* e0 J8 Z, h8 |. X5 J2 {
 month 月 months   
- B& N  G5 h6 Y, G& j! U) _! w year 年 years   
5 C( [4 G; z. h' ]) y minute_second 分钟和秒 "minutes:seconds"      T9 ?# k6 ^4 c# N; X
 hour_minute 小时和分钟 "hours:minutes"   
0 s( _. k: s5 |1 h; C7 p% g. t day_hour 天和小时 "days hours"   
1 ^0 g+ [: K# M& `- V6 w year_month 年和月 "years-months"    + y1 _& u# r1 {  ~
 hour_second 小时, 分钟, "hours:minutes:seconds"   
( ^' ^  Q, e, L- R! b- j day_minute 天, 小时, 分钟 "days hours:minutes"    ! G# U: b. x) f6 N/ x2 W
 day_second 天, 小时, 分钟, 秒 "days- [4 V/ J# ?0 J
hours:minutes:seconds"
' C% f6 U, R* d+ B expr中允许任何标点做分隔符,如果所有是date值时结果是一个5 I) ]( X. \- J' G1 ^
date值,否则结果是一个datetime值)  
. r7 G: @4 e* M4 k. E  W 如果type关键词不完整,则mysql从右端取值,day_second因为缺; ^7 W. A$ \7 ]5 @$ K; z" M! f
少小时分钟等于minute_second)  ! F2 v- ^/ H5 D4 a$ u" v2 X: @% h
 如果增加month、year_month或year,天数大于结果月份的最大天
- e2 x& c5 [, P) T8 W: Q, z, g5 _数则使用最大天数)   
. f% Z5 _/ g- C, x) A9 mmysql> select "1997-12-31 23:59:59" + interval 1 second;  5 [6 ]  M( c. H

6 R! A/ E( h4 s  Z& J  -> 1998-01-01 00:00:00   
, {& i- X$ v4 h7 wmysql> select interval 1 day + "1997-12-31";    / H9 R9 @. O, B7 f& a
  -> 1998-01-01    / [3 \$ U% b7 D0 z! y/ j
mysql> select "1998-01-01" - interval 1 second;   
( M  x/ K0 v# n8 c# W: a' Y2 n  -> 1997-12-31 23:59:59   
  t# L+ ?( I! r6 n- E4 \2 Nmysql> select date_add("1997-12-31 23:59:59",interval 1
2 }) e, R" x3 K' h- S* usecond);   
- J! Y  q. p1 [  -> 1998-01-01 00:00:00   
  y* v0 N# T- ~mysql> select date_add("1997-12-31 23:59:59",interval 1
9 b0 T+ }) A: M9 Q% ~" t/ K* L8 oday);   
; o7 y6 y5 t7 N& W  -> 1998-01-01 23:59:59      S/ @) m9 C1 b  C8 }
mysql> select date_add("1997-12-31 23:59:59",interval! J4 z8 O  {6 h% k$ ~3 V* ?8 `- Y
"1:1" minute_second);   
  S( z9 a( Y/ h$ G+ B1 A2 S  -> 1998-01-01 00:01:00   
: J' C) @" m  {mysql> select date_sub("1998-01-01 00:00:00",interval "1
8 C# V* e" Y+ O, M1:1:1" day_second);    + O  D5 y: `. p3 b8 }9 S
  -> 1997-12-30 22:58:59    " J( j: Q5 Q- t* x* i5 S2 M' _
mysql> select date_add("1998-01-01 00:00:00", interval "-1
% E# {* N$ J& }6 l6 w1 _10" day_hour);  
/ Q/ ~/ v  ~$ x0 ]. ?- i* ^, Q) V6 e  -> 1997-12-30 14:00:00    * @/ I  z9 C$ ~9 Z: v7 m/ S
mysql> select date_sub("1998-01-02", interval 31 day);   
  w4 o$ @, _5 R1 z: @5 h- A  -> 1997-12-02   
( S5 I% o) B9 Cmysql> select extract(year from "1999-07-02");   
* i& f& n. V$ O: V$ e" p8 s  x) `  -> 1999    0 R0 m) q; r5 U' `* I' a
mysql> select extract(year_month from "1999-07-02% i& ?2 \/ M' ^! X  T( y' j/ p0 ~
01:02:03");   
# W- ?: X" q5 \, D7 k) j, W  -> 199907    + t! t5 u) R) w4 f, Z9 L, O
mysql> select extract(day_minute from "1999-07-02
) e2 d3 g7 a! a# c: N$ ~' t9 S8 Y- |01:02:03");   
( F4 t! F5 D4 E' S* n  -> 20102   
( y8 d/ c; N3 S2 ^- k( {& l8 }( E + w% u4 T  H# ?: {$ x
to_days(date)   
7 B0 H% k5 X" B/ l  K+ |- x0 |返回日期date是西元0年至今多少天(不计算1582年以前)  
6 t6 h+ t5 L5 c1 z% f# ?0 w! Umysql> select to_days(950501);   
1 j, t/ @2 L) {% Z* C  -> 728779    3 V1 ]* ^9 T' g$ |3 m0 d0 t
mysql> select to_days('1997-10-07');   
' H) P0 U/ @4 n/ m  -> 729669    9 ^# [" P/ o% W1 N" ^% L$ P9 |
5 D0 m) C) @( K1 e- Z8 f9 F' s6 m, @
from_days(n)   
. ]# D  {4 [* o9 A8 R! f3 Z, ] 给出西元0年至今多少天返回date值(不计算1582年以前)   1 ^, j5 b% W" x0 Z/ Y) K
mysql> select from_days(729669);   
; q4 u( d+ v, t  -> '1997-10-07'   
% ]9 U; |7 i0 Y8 R1 S4 F+ x+ C 7 D$ j) w$ J( A7 Z
date_format(date,format)   
2 x2 Y; v. _( ~ 根据format字符串格式化date值  
4 u2 `1 g& a# L# f" K/ n (在format字符串中可用标志符:  
! O) e+ {* E4 s* }( [ %m 月名字(january……december)   
- H* A. [' l" W7 ^0 ?7 |" ^ %w 星期名字(sunday……saturday)    ' S1 P, u# M0 C5 a- a7 e, l$ m" G
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    + H" u# w- v' q; b2 G+ @
 %y 年, 数字, 4 位    & ?  o9 a& T4 T2 e& @/ [
 %y 年, 数字, 2 位    9 ^" P( n; o+ k  K6 e7 g* w
 %a 缩写的星期名字(sun……sat)    % }8 |( {1 ]1 E, b2 D$ {
 %d 月份中的天数, 数字(00……31)   
6 s6 t4 d  t3 w* o3 N %e 月份中的天数, 数字(0……31)   
: b7 S) O4 l5 y5 C %m 月, 数字(01……12)   
' y1 j# ^$ P) H2 }2 x6 k: j2 A %c 月, 数字(1……12)   
8 J, \5 c; s& M8 m+ L8 B+ O1 U %b 缩写的月份名字(jan……dec)   
8 [/ w0 h" @, s1 H& A %j 一年中的天数(001……366)   
; p; w) s6 A( l %h 小时(00……23)    : M. x( K: B0 f' z* {5 x
 %k 小时(0……23)   
, P% J3 ?% E& u0 _7 b2 r* h7 c %h 小时(01……12)    $ B1 g/ I8 M0 o9 O$ x
 %i 小时(01……12)   
) m4 q' E- Z2 R/ _ %l 小时(1……12)   
4 s0 m1 {: d5 ]- m8 I %i 分钟, 数字(00……59)    - P5 @' `# ~3 B, L: \
 %r 时间,12 小时(hh:mm:ss [ap]m)    9 m; _! K  B" i9 ?* l2 V( I1 b
 %t 时间,24 小时(hh:mm:ss)    0 @' D7 z5 G% Y9 T# @
 %s 秒(00……59)   
* K" l: P& B3 w; A5 j7 ` %s 秒(00……59)   
' @# d7 ~/ y8 k# F %p am或pm   
" J. b* b7 b1 O# L" i %w 一个星期中的天数(0=sunday ……6=saturday )   
' O, U) L. H$ r6 @. y1 ` %u 星期(0……52), 这里星期天是星期的第一天   
+ L: [) _! w( {3 y# _ %u 星期(0……52), 这里星期一是星期的第一天    3 n5 u! _! t- E6 a  q8 n) D8 o
 %% 字符% )  
. E' j  q  t% p1 w& {1 X- o8 @mysql> select date_format('1997-10-04 22:23:00','%w %m %
8 V8 a  r) x- Y6 Xy');   
  g/ ?8 e8 n/ `7 u8 m. S6 a" U0 Q" C  -> 'saturday october 1997'   
+ L; |; x4 Y5 s/ ~& ]9 {' Dmysql> select date_format('1997-10-04 22:23:00','%h:%i:%1 C6 \. e+ q, e7 E( r1 ^$ T
s');    " E7 `% t5 s4 [- F
  -> '22:23:00'    1 @3 q' c( ?, V# b( L
mysql> select date_format('1997-10-04 22:23:00','%d %y %a
- Y4 s4 y2 `; J- m%d %m %b %j');    $ _  g3 }6 Z2 T" C
  -> '4th 97 sat 04 10 oct 277'   
' _3 F5 s# k+ Q4 b2 Lmysql> select date_format('1997-10-04 22:23:00','%h %k %i( q, X" I( a% x$ r+ p+ V6 {
%r %t %s %w');    ( s; D6 G7 p* W1 E& y  m3 I
  -> '22 22 10 10:23:00 pm 22:23:00 00 6'    ' y" t9 K, c9 k* {% D

/ Q2 r3 p7 q* D) vtime_format(time,format)  , b) I1 H: G2 R0 G3 B0 C
 和date_format()类似,但time_format只处理小时、分钟和秒(其
% H4 c6 {' Q! i& k0 f7 T余符号产生一个null值或0)  
$ ~, Y  p$ L+ L8 d& j& v3 V$ R
( a) z- p! w7 Z/ m) H7 M8 Scurdate()     
0 A% A1 g4 t% @/ o, _0 `current_date()  
0 E! {# y7 x& R) S% s% K3 q+ I 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所: p, C& S1 p- n. U2 }
处上下文是字符串或数字)    , v3 ^# J4 P/ m7 _# o+ E6 \7 {% l
mysql> select curdate();    # X$ y. n$ Q6 A8 ^* F9 u4 |
  -> '1997-12-15'   
6 Y# Y9 _! \9 y. a0 C9 p: ]mysql> select curdate() + 0;    , A) c. q/ W3 J4 R  l& I& `, q
  -> 19971215    , n; X* D& A. o- k

# V- ^/ Q& ^2 Q3 h8 _' Ncurtime()   
: f* k1 H3 U( L* J! ccurrent_time()  
3 P6 \* a8 ~) z1 o) r/ ~: Z 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上* y3 {- @0 i: E- F* Q& B
下文是字符串或数字)      9 E8 Z! \2 E4 I9 H% h( N
mysql> select curtime();    7 X& B- F6 k4 A0 F" x
  -> '23:50:26'   
) t6 F" l' p, g( R+ u9 xmysql> select curtime() + 0;    , p& I, o4 }$ J& S
  -> 235026   
% [5 N& _1 j% v5 K, R# x* V- } 5 h, k. `7 o6 t) k4 o
now()    ( ~7 c0 p+ z- i) B' C
sysdate()    
3 H0 ^) X4 z, Tcurrent_timestamp()  7 E, Z, O& h8 Y( e
 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
, T4 `  R) Y; B  P7 d0 x8 Z; p时间(根据返回值所处上下文是字符串或数字)     
4 u' t+ A$ y) y$ t4 E, vmysql> select now();    $ V" n, W$ X# }  C
  -> '1997-12-15 23:50:26'   
3 v" K4 B) g) \9 [( z3 R: Jmysql> select now() + 0;    ' V0 |, F* @' P4 P9 I3 E
  -> 19971215235026    ' @2 }! f# a6 u+ q

6 E5 y: r2 }+ R* w3 Junix_timestamp()    * v, ~& Y' i: S, t. Z4 h/ {
unix_timestamp(date)      c; O0 N9 D& t7 C+ i! e
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒8 y! H9 k( p! x7 ?$ q
数,date默认值为当前时间)  
3 s( n) F4 d" o! p' ^4 ymysql> select unix_timestamp();   
5 d% a8 i8 _+ c4 b% _6 Y  -> 882226357    8 K, m! d* n% q& K
mysql> select unix_timestamp('1997-10-04 22:23:00');   
4 K( [3 k+ c: P2 U; Q6 u1 T6 D  -> 875996580   
) Y. J/ b$ K3 M) c% |5 D+ M
- p3 P" a/ G6 m1 Vfrom_unixtime(unix_timestamp)   
- [% `/ q3 s( m+ D7 t! T以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的
6 K/ {7 `& W& k' w: u  C值(根据返回值所处上下文是字符串或数字)     
  u1 k5 T; l2 z8 ?6 Cmysql> select from_unixtime(875996580);   
+ {( `! I3 }. l  B  -> '1997-10-04 22:23:00'   
( W. b. V" x9 ^1 _7 _mysql> select from_unixtime(875996580) + 0;    & _9 i% O& Z  B9 e
  -> 19971004222300    ; h% r6 |7 J0 |+ U6 b

6 R: [1 f6 m$ y/ R: ^from_unixtime(unix_timestamp,format)    
7 G8 G; M& |2 ~$ u+ V- b以format字符串格式返回时间戳的值  
% T% I3 E4 y: E2 t* h( Umysql> select from_unixtime(unix_timestamp(),'%y %d %m %: W  |' H* k; q" Y7 D
h:%i:%s %x');   
3 t7 K# p& g& Z: ?3 p" ^' u# Q  d  -> '1997 23rd december 03:43:30 x'   
* Z) x; q) L: e+ O- F
: b. \$ v- C* \  ^0 Zsec_to_time(seconds)      |5 k$ E' Z( C' J( E
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
7 g" p- ]5 j" P$ mmysql> select sec_to_time(2378);    , b3 s/ \4 l! B5 b( I
  -> '00:39:38'    / k/ o7 ^) |6 T: t( t! T
mysql> select sec_to_time(2378) + 0;    " V+ s* V& e: I! O& l( A
  -> 3938    . _& a" f  P7 F; }/ s7 P
1 W2 G. r2 ?2 _& x. P
time_to_sec(time)   
+ R  \, I: F9 p4 [返回time值有多少秒    2 t: _( U: v! O! W) x7 F
mysql> select time_to_sec('22:23:00');   
1 g9 b9 X8 R, E  f  -> 80580   
9 ^3 K3 i7 K+ S1 M& M& w( pmysql> select time_to_sec('00:39:38');   
/ O: v/ r+ E1 t! k. O0 I  -> 2378
; a& B; i. k0 W: L# m1 Y * O3 J: U: d& Z! G
转换函数
2 _9 Z" ]* [) }- `: X# f; S8 J( A+ ucast
& }- }, @) ^8 g6 u用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]9 u/ b' l& s) ]/ U
实例:select cast(a as unsigned) as b from cardserver where order by b desc;
; x( I, @& x0 u8 ^convert:: z* z! [" J2 t! P) `. X4 r5 {$ L
用法:convert(字段,数据类型)
) R9 K  Q$ T/ I  x: ~+ Q5 T6 Z4 U实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
+ {. j, |/ a; `& ~) e% ^% Q





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