找回密码
 立即注册
查看: 2517|回复: 0
打印 上一主题 下一主题

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
1、字符串函数
  ~/ w: e9 v9 wascii(str)   
8 F# ~5 i" }& s  q- Y' L2 k( ]返回字符串str的第一个字符的ascii值(str是空串时返回0)  & S7 H4 x- X. Q5 e7 k2 ]4 U& n% M
mysql> select ascii('2');  
* M: I  |3 \+ u  -> 50  
/ _4 t8 R! U; G2 K( e- k7 A! H: Pmysql> select ascii(2);  
! L! U6 a- |) n1 g. Y+ I  -> 50  8 B  \% _  u) q1 x) f! O
mysql> select ascii('dete');  
- [. u4 H2 K1 B8 }% L2 V  -> 100

# G! |* B, B) t8 C! Dord(str)   . n! L# \8 @! F  f0 S( f4 P) m
如果字符串str句首是单字节返回与ascii()函数返回的相同值。
7 Z( [/ P& J: U
& M2 |% o4 V' {' Y9 v$ C0 j如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  6 ^2 k  W" r) b8 k4 o) ^/ @2 k
mysql> select ord('2');  
% M/ S2 }2 r: U; e( f/ {1 x  -> 50  6 r( i6 \2 [* z* x1 N$ }
   
0 W6 ]3 h9 p7 ]: H" o# U) @4 @: {. kconv(n,from_base,to_base)   - a6 @0 e2 f; n
对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
6 k# k5 E* R; B! L1 jmysql> select conv("a",16,2);  
) b) n, |7 l2 M  -> '1010' % M+ B( v6 h1 r
mysql> select conv("6e",18,8);  
* q; X7 T# I5 l% k+ N  -> '172'
4 T$ u8 w- q+ U+ p& t1 d5 ymysql> select conv(-17,10,-18);  
% w" `; h5 s( ^2 T" T& u  -> '-h'
( w2 t) p. ]$ g4 Z& t) @/ hmysql> select conv(10+"10"+'10'+0xa,10,10);  & \. g. l$ c9 p* _6 ~; K9 {9 s) E
  -> '40'
3 g9 s+ e3 J2 {& y% g% |* M   , N8 l; s$ H  o, _# d$ Y
bin(n)   4 X6 {" f0 q! a9 y4 s
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  : z7 ?& X1 g" N$ S
mysql> select bin(12);  
1 n3 _" ?* C( N  K  -> '1100'
+ E, ?4 s" N, Q% K: D5 c
( Y* m3 H# T" n! woct(n)   
# u1 F6 t# n5 X: L3 d) w把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  / a# w; \+ l" t) R7 `, p
mysql> select oct(12);  9 z5 ^' X) U8 k; L& k! B
  -> '14' 4 l4 \7 \% B, W2 p% x. q+ X
   # _9 Y1 g% O; W- _
hex(n)   
3 T2 ?3 g" p9 X6 t  u% y把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  
$ W0 e, ^, z% e( \7 U/ Nmysql> select hex(255);  ) H, y% d2 }$ F& X) K7 q* V
  -> 'ff'
- ?# j: T8 p  {' y   
) c  X" K# c, q; |2 H& d% Jchar(n,...)   ) o2 S9 P1 m7 T
返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)     I* E: G* \$ O6 u3 g! s8 ?
mysql> select char(77,121,83,81,'76');  ) ]# o3 e5 r4 s8 b' \  |) I
  -> 'mysql'
4 P& i2 H- B" t' ^8 J( i' rmysql> select char(77,77.3,'77.3');  8 D) x* e5 E/ d0 |1 U7 F3 Q
  -> 'mmm'
' S3 w5 {) F6 t. Z% T3 V   $ P$ h# ]0 w3 t# C2 \
concat(str1,str2,...)   $ Y% X2 `) a" `0 y$ i, j
把参数连成一个长字符串并返回(任何参数是null时返回null)  
- `' m- k0 y* Y! M! Y6 d( |mysql> select concat('my', 's', 'ql');  
* s% n+ K$ {5 V3 A1 P% m$ z- Z  -> 'mysql'
' t+ J2 Y' E2 C' V4 S' I# ^7 umysql> select concat('my', null, 'ql');  
2 [- e  B( y4 J3 d! Z4 G- \  -> null
( X. D$ l, I- |. G5 g. E0 tmysql> select concat(14.3);  
, }9 z# D7 y3 k( s4 W  -> '14.3'
, c9 d7 o' j7 p% { / j9 W# E$ r' t9 N0 K0 w# M/ Y; d- O
length(str)   ; r2 F2 M. s# e% |# R. A* S
octet_length(str)  # M9 C# X: e" P/ x' Q1 s" X; i
char_length(str)  ) W3 D5 T2 T4 w6 W; R
character_length(str)  
8 a- m8 H5 V3 N8 n返回字符串str的长度(对于多字节字符char_length仅计算一次)" T6 c7 |" i8 x) l/ M1 |) u
mysql> select length('text');  
. x/ D7 o% D+ O: p* Q  -> 4  6 D8 `& b# V% w, s
mysql> select octet_length('text');  
& _9 S# F2 X+ j. t  -> 4  
4 O$ z5 K7 f# g7 P  A
8 ?% l! y7 ~7 M6 x/ Klocate(substr,str)   $ |8 S( Y+ E& D0 \, n8 P# E5 D
position(substr in str)   3 w9 ~+ z0 }5 c  U7 e( B
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  5 L. u7 o7 x6 d" o0 I5 B
mysql> select locate('bar', 'foobarbar');  
8 w7 D1 F. }9 [: `5 X) E1 K  -> 4  
1 `% {* f/ Q1 A# u! V" D* ymysql> select locate('xbar', 'foobar');  
+ _7 v( {# O6 a  -> 0  , A2 g; j& d8 {
   
- }" Y9 U& M9 |0 Q) xlocate(substr,str,pos) 4 C( G' r: T% i* E9 l
返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
, c: N. m* f5 a+ |  J# N; o, J0 Tmysql> select locate('bar', 'foobarbar',5);  
) B- p5 E1 Q, |  -> 7  $ W$ Z& f* I( {
" g) X9 Z' u5 ~: o8 r: b4 G; @) H
instr(str,substr)  
) I& ?: O0 Y* J3 l4 Q返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  ; M: ]/ O9 k" E8 ?2 k8 R
mysql> select instr('foobarbar', 'bar');  . ~! |' H% E4 O0 a# F2 P5 O" C& ]
  -> 4  
, e- ^; s) I7 Smysql> select instr('xbar', 'foobar');  ! n, V/ F! B& i4 F9 l' J8 \
  -> 0   . d1 G3 j. K1 w9 D9 M4 y

1 z! l4 D0 Q% f9 ]) T9 ~4 glpad(str,len,padstr)   * ?3 W+ b6 t( L! x$ T( d, K# n/ B6 @0 O
用字符串padstr填补str左端直到字串长度为len并返回  
4 {! h0 S: S6 \/ H8 G1 n2 }mysql> select lpad('hi',4,'??');  ' r% a2 R- C; F* ?) L) f0 h  I3 ?
  -> '??hi'
  J. }. H( W% T* \- j# M" M   
9 [: Z! @) G" O% \2 Srpad(str,len,padstr)   % p0 n1 K9 Y" L2 [; `2 r! ~
用字符串padstr填补str右端直到字串长度为len并返回  
0 c7 O) J' j* C; A6 H: Ymysql> select rpad('hi',5,'?');  - L0 t& U+ n; M5 k( ~$ p9 n; y
  -> 'hi???'
- K% P) x- r$ P$ X
8 Y' v/ r8 u- \/ G' U7 u3 o& @left(str,len)   ( Q, s& t- h- i+ r+ \8 E: o5 _3 L2 S2 a6 S. `
返回字符串str的左端len个字符  + |) d; Y* v( O5 N
mysql> select left('foobarbar', 5);  - T/ ^) u7 [0 g8 w4 P
  -> 'fooba' 1 K  e1 q" k$ l9 z

6 x, d7 {( h1 e+ G7 o% \% Rright(str,len)   , z3 z, o8 m/ l; G/ b# j, f5 S) {
返回字符串str的右端len个字符   
6 E! o6 T4 t7 X8 z: v# s. A. f) V/ }( fmysql> select right('foobarbar', 4);  
9 l1 g+ g4 A$ _& Q$ w  -> 'rbar' * ]; S! [% t! W% ^. A0 S$ P
$ V* m$ N  C+ O, Z! O% g/ \8 O# a
substring(str,pos,len)   " |( b, i+ G/ l( x' @; Y- O
substring(str from pos for len)   
7 u! T1 `+ V' ]) P! K' N( Rmid(str,pos,len)   + R6 d) r7 ]' v3 X
返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
& N/ z4 |3 n5 Y  -> 'ratica'
% M$ e8 ]0 l8 |" t, t5 S . f$ ?6 e9 m3 B" G# h* A+ [! P0 n/ M* w
substring(str,pos)   
' @" Q7 G' g" \; r, c  W9 ], tsubstring(str from pos)   - A- X: s# ?1 o$ [# t# V
返回字符串str的位置pos起的一个子串  
' L. s& X7 V" v  t/ Ymysql> select substring('quadratically',5);  9 y& E: w# ]' T6 u0 i& n
  -> 'ratically'
* l& F/ P9 Q1 \% M- |5 Tmysql> select substring('foobarbar' from 4);  
( q9 t0 {( z* c+ w+ u/ ^  -> 'barbar'
6 L. \3 a+ f2 x  \: D: a9 _ 3 D1 x* D2 w/ |' U; R& d
substring_index(str,delim,count)   3 u9 P+ l6 ]: N# E% Q
返回从字符串str的第count个出现的分隔符delim之后的子串
0 [( n8 V2 |; q  N& a4 y- I(count为正数时返回左端,否则返回右端子串)  
6 I6 o: p0 e* J, dmysql> select substring_index('www.mysql.com', '.', 2);  0 `, [3 z' O  X' D5 I/ \( h: L" v, {
  -> 'www.mysql' " q& F* F' x" p. w) J. U  `
mysql> select substring_index('www.mysql.com', '.', -2);  / N6 s' W# z0 @
  -> 'mysql.com'
3 ^# i6 Y8 U- }5 O- q
* f0 M* k' _& F$ F/ ]1 rltrim(str)   
! w$ M6 N1 s- C# I) l" z1 m返回删除了左空格的字符串str  2 M+ @( h: Z+ b2 u; |9 M- p1 }
mysql> select ltrim('  barbar');  ! f) D. t2 Y- K
  -> 'barbar' $ e. v4 l% A: K7 F2 L3 C, M
+ a/ z, c* z2 B- @
rtrim(str)   
8 y7 {0 v% M5 u+ B; {, M返回删除了右空格的字符串str  
3 {: d- s1 ]8 M) Imysql> select rtrim('barbar   ');  
. ]. }6 P: k5 d& K' t  -> 'barbar'
: |0 d' f; H+ _8 z5 b, K% E * L; Y+ y+ q! U! u
trim([[both | leading | trailing] [remstr] from] str)  
+ _  K/ F" i; i+ d( Z$ z% ?4 T返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
7 O# [5 R! T6 ^" v% d) Mmysql> select trim('  bar   ');  
. B4 m- x5 _) }+ Z  -> 'bar' $ ]6 M) O3 m; c9 `8 \9 A
mysql> select trim(leading 'x' from 'xxxbarxxx');  
6 ]( c0 Q$ D. s4 Q  -> 'barxxx' 7 X7 ?( z1 C" f+ h. U/ Q* ^( h
mysql> select trim(both 'x' from 'xxxbarxxx');  
/ @* v+ U6 e- ]: Y! q+ a' m  -> 'bar' 8 U8 ~& X# \! v, @/ U* V3 K
mysql> select trim(trailing 'xyz' from 'barxxyz');  
$ d; a# n1 D5 V2 E: ?5 C6 R- o* v  -> 'barx'
0 i& E4 F! t; K) Z : W. ?+ z; G: O9 e- Y
soundex(str)   
& L; r1 R; Q. B, n返回str的一个同音字符串(听起来“大致相同”字符串有相同的
& w# @4 ^9 R* P: x" r1 }同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  
  b; h& N. P3 \- j2 O8 [mysql> select soundex('hello');  1 {% J4 y  R5 [* P( X/ O
  -> 'h400'   A8 R7 C  c. ~+ }1 L
mysql> select soundex('quadratically');  ) H2 H% w& p- T% _
  -> 'q36324'
9 m/ T3 N" L. S; D& O& J6 U  F. z; Q   - B; J( B( K/ o( K& h
space(n)     @4 V: B4 ~& U. X& i. E
返回由n个空格字符组成的一个字符串  2 t: E( ^4 {: v' }
mysql> select space(6);  
& ?: r/ \5 F  w  -> '      ' 3 I0 |. a2 j# s1 i/ w0 A$ u
   
8 T4 K' r: M- u) ^& Kreplace(str,from_str,to_str)   - B- D/ q) c6 @- `; h7 F
用字符串to_str替换字符串str中的子串from_str并返回  : D' Q4 F. D& n! ]  D
mysql> select replace('www.mysql.com', 'w', 'ww');  
2 x8 Y6 R, W& n# J7 V  -> 'wwwwww.mysql.com'
+ P; l" M) Q1 h* S" e# y; z 9 x7 e/ O" P) d: o7 s! D5 k. Z
repeat(str,count)   / ?! u4 p1 P1 l2 R; k% n8 M
返回由count个字符串str连成的一个字符串(任何参数为null时
* i- K. w# q# N" q返回null,count<=0时返回一个空字符串)  % e  r. |  R( x+ q' I
mysql> select repeat('mysql', 3);  * \8 Q! S. K1 }. P& z7 L, B
  -> 'mysqlmysqlmysql'   k# b: W, V3 W0 {% S' t* Q
   # k; Q) @: ]0 e2 [
reverse(str)   
, \( e0 k* }4 j/ E" G' x颠倒字符串str的字符顺序并返回  
6 [6 z$ T/ b0 Tmysql> select reverse('abc');    k' Y6 g% F/ B; k
  -> 'cba'
. h4 j; {0 I7 w0 u# d! X
, }) J5 f+ S% v! S% linsert(str,pos,len,newstr)   7 A9 ~6 s( \9 k
把字符串str由位置pos起len个字符长的子串替换为字符串' Y/ |) |. n) L8 p7 y
newstr并返回  2 j6 Q  H  R% ?( j: t2 x, S
mysql> select insert('quadratic', 3, 4, 'what');  / K9 }- I( G) v3 z$ {( r/ Y7 Z) f
  -> 'quwhattic' 9 o, Z  f. u) y7 s! U( ?3 Z( k

6 M% ]4 @9 J3 `elt(n,str1,str2,str3,...)   ' O) J: e) E* I8 m, F( f8 K
返回第n个字符串(n小于1或大于参数个数返回null)  0 N" Q' `7 A/ K* E0 Z* x  l4 k
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  - j8 L) L$ ^! I3 h' _
  -> 'ej'
" K7 j/ @8 M& u* Z1 j1 o$ vmysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  
; p; l  V! U3 O2 ]& w  -> 'foo'
9 @: y( @; X( V3 J
5 S; s/ L. F8 M7 pfield(str,str1,str2,str3,...)  
/ T1 d4 Q& M% D! J& x返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
5 j6 U+ K4 l8 C- C. e( pmysql> select field('ej', 'hej', 'ej', 'heja', 'hej',. b7 ~6 J6 L3 o
'foo');  
  w& q7 F' E2 W8 ]  -> 2  
% G) T# n# b3 R: Y0 Imysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
/ L$ U. T; q1 B5 D% {4 `, S4 E; j3 d'foo');  " T0 J/ M2 {: s$ `1 `* s3 d
  -> 0  % E- l: v$ D6 }) v0 B: J

9 Z% a5 j7 |, vfind_in_set(str,strlist)   
' M* o- S+ a* [3 t+ T返回str在字符串集strlist中的序号(任何参数是null则返回
- w; [8 A+ P, W& w6 Pnull,如果str没找到返回0,参数1包含","时工作异常)  
8 c% R2 T; n5 O% i/ K% x4 O3 ?, L8 cmysql> select find_in_set('b','a,b,c,d');  
2 ^" k' ?' _! S* {1 s  -> 2  
' D: ]6 A! d, ?$ `* K   
+ r8 S& d4 X* k/ Xmake_set(bits,str1,str2,...)  
0 o! E; e8 z6 H8 {% N1 T  j& G把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应5 \5 P! j9 R/ D( D! S5 w
位置的字串选入字串集并返回(null串不添加到结果中)  4 a# F3 ?) F& _; `
mysql> select make_set(1,'a','b','c');  0 B/ \% U3 }' h9 [8 \, Y' _7 J3 q
  -> 'a'
4 r9 X3 {1 x- I* ^4 ]' emysql> select make_set(1 | 4,'hello','nice','world');  
: H! D2 B# u" r( K/ Q8 O" P1 s: {  -> 'hello,world'
- T$ g; [; ]0 c) Q# Qmysql> select make_set(0,'a','b','c');  9 k" s, }1 L) G4 Y$ P$ Q. b3 ?
  -> ''
3 u. p6 }, K7 v) p$ I8 r   U* i' I# {9 N6 g* s
export_set(bits,on,off,[separator,[number_of_bits]])   ' i) ^: @/ ^. T/ `, l; @
按bits排列字符串集,只有当位等于1时插入字串on,否则插入
( w% |  r' T6 o* N" boff(separator默认值",",number_of_bits参数使用时长度不足补0" F6 B: l7 V2 c1 T$ E: c
而过长截断)   # I* p8 M: d7 \# H4 O
mysql> select export_set(5,'y','n',',',4)  , T- Y# m/ j/ S+ S4 H) v$ R$ v+ [
  -> y,n,y,n   
, N8 e! x  T& l$ h2 k 7 ]) [' \+ ?4 z5 L- q; e
lcase(str)  
7 ]  ?* a7 Q5 g9 ylower(str)   5 I/ \4 N1 E+ Q& d( b9 V
返回小写的字符串str  
7 w. ?) B9 s6 J" R& ?( wmysql> select lcase('quadratically');  ; n+ i7 P) y: i
  -> 'quadratically' & }/ q5 E6 P* X' U
   
2 e( _8 K2 F# n% M, Q( Nucase(str)   3 A6 ?9 e$ N1 w5 `; Y! a+ u
upper(str)  
/ V' T1 n9 r7 w1 N/ B* o返回大写的字符串str  $ h4 |3 R! a$ C
mysql> select ucase('quadratically');  5 {% K. |) W3 L2 g( ~
  -> 'quadratically'
$ o- T5 L1 R/ i: q& s' ]- g% d # Y' G# C9 Y5 J) {  h, O1 U
load_file(file_name)   7 z. W. O7 H. y4 \+ {
读入文件并且作为一个字符串返回文件内容(文件无法找到,路径% o6 U9 I! Y2 {' C
不完整,没有权限,长度大于max_allowed_packet会返回null)  
# y/ {7 K8 |, y' d" x. p1 J2 t5 Wmysql> update table_name set blob_column=load_file
4 i1 d4 u* p! n, P3 B; u; ]("/tmp/picture") where id=1;  
* @+ @4 Q& f6 G# k  l
  d3 X' s% H$ B8 U, A2、数学函数
* G% Q% U8 L7 e# b: Uabs(n)
. D/ }2 K3 v7 e: o) w7 g' A/ h+ s返回n的绝对值  6 ]# V3 ^7 f: M; k9 Z
mysql> select abs(2);    . ~" O4 N" K0 U* I! ~* I8 I2 H
  -> 2    ( O; @' h' l7 N: }0 w+ T
mysql> select abs(-32);   
' t: d& @( L2 t) @  -> 32    ; T+ g& |* {* S" ~: h2 }0 F( }$ U- F
   3 ~. Z; S6 _  V( k- I# O8 F3 ?
sign(n)  
, s1 C, r6 g1 t# y" D返回参数的符号(为-1、0或1)  
$ p6 m: L' _# h# Ymysql> select sign(-32);   
  N! ?' w) [0 q7 a) T$ _5 J$ x  -> -1    + S3 {1 _% y# R1 z
mysql> select sign(0);   
  K5 s: K' W; o6 }; e  @9 T  -> 0   
/ C- Y/ n% f4 Z1 t9 emysql> select sign(234);    ! F0 ?, ~- T& R" W
  -> 1   
; K. o; ^% @: E* q% _( Z' U7 H/ G 4 s. R  X3 N+ M3 C7 ?  g
mod(n,m)   
& @0 c! ], \$ N) u% N- H( L4 q取模运算,返回n被m除的余数(同%操作符)    9 V9 a$ p* y" Z  G9 x3 \! c
mysql> select mod(234, 10);    ! p% {1 L. D. v
  -> 4   
; V+ J! i0 e- ?( @; E1 ^. ^1 jmysql> select 234 % 10;   
2 f& q0 w( p5 q! b5 K* O6 N1 A' q  -> 4   
6 d* H1 W! V4 Y3 d7 cmysql> select mod(29,9);   
5 {7 n3 |3 o  Q  -> 2    4 f2 f' Q# g) U$ K7 J

. G- y) {/ u1 _1 J  X: P) ]floor(n)  % J8 U5 Q+ J8 Z6 I  m
返回不大于n的最大整数值  & A$ u1 b. ?2 J/ Q% ]3 N& }! p* I
mysql> select floor(1.23);    ! ~2 r/ v" [: B( P3 l/ I. A
  -> 1    6 G& {  A$ J+ F( b1 X& I3 @  Z
mysql> select floor(-1.23);    ! Q: X& D$ P/ q. c
  -> -2   
2 O: @! i2 O6 X$ E6 J
, q$ W& R  j* y" rceiling(n)  
6 g$ Z: ~; ?% i$ w0 Q0 T" G返回不小于n的最小整数值  ; G5 Z) [( Z. R% n
mysql> select ceiling(1.23);   
( f, q' q; g% C, c0 Q  -> 2   
. E# J6 ]& n. X) K6 wmysql> select ceiling(-1.23);   
: `9 o/ `) S2 r; f2 e& [! A% X' O8 Y  -> -1    / m) [, q+ Q' P2 F* ?, P' m# H% ]
) l2 z- N3 V9 g
round(n,d)  - Y8 a* T- G. _9 A% F7 m. R% H
返回n的四舍五入值,保留d位小数(d的默认值为0)  
1 T1 \3 `: Q* r- K5 Nmysql> select round(-1.23);    " l- K6 u9 T6 q; \1 y
  -> -1    8 z3 D; ]9 G/ `* u: c! r/ D
mysql> select round(-1.58);    " L' y8 [# u4 U: }0 x
  -> -2   
5 e# [" E$ X3 g& w9 r" |6 m3 E5 Lmysql> select round(1.58);    + e2 Y. A. e& I* I; M  S
  -> 2    2 y0 @' P3 I* A
mysql> select round(1.298, 1);   
! q+ t* R6 C3 i. [  -> 1.3   
  P. L. g% U, r0 imysql> select round(1.298, 0);   
) q% v/ c% t$ v. ?  -> 1    & T: l+ t0 F8 {: H

: S+ R8 G3 j% Q: _' \exp(n)  ) i, `; C" d( X& q! g$ |2 l$ k
返回值e的n次方(自然对数的底)  
0 a% k/ p. m. _9 imysql> select exp(2);    . @( m$ M: z# M, `- @
  -> 7.389056    8 K% ^3 ^! Y' d& x) v1 G
mysql> select exp(-2);   
0 V( T$ F# ]6 v7 _( z# [/ \9 t% k* K  -> 0.135335    - K  @& h$ G4 d  n5 b7 N) C

) B6 e% V8 B; q9 @9 y# `log(n)  2 w. m7 s6 r' T
返回n的自然对数  0 P8 T( V! C6 c5 \7 a+ ]' G; n
mysql> select log(2);   
1 a1 s+ X, E3 k% j) W) E+ j  -> 0.693147    : Q8 T5 Y# v/ K+ c0 }  R
mysql> select log(-2);   
) [! C! \( j) r* c5 l% w  -> null   
3 O$ \# a- T, Q  w8 ?' X; v % T* J* {8 i0 M4 b% x1 m: `
log10(n)  
" @# @+ H' x- ^+ |返回n以10为底的对数  
6 W/ I: G8 S( Q# K% mmysql> select log10(2);   
( T7 ~# _$ L: Z. c3 u. W  -> 0.301030    ; P0 Q' ~$ }3 j: a( r! j
mysql> select log10(100);   
2 y+ w' Z7 z0 F0 g  -> 2.000000   
; j2 h7 W4 B, S  E- Amysql> select log10(-100);    * ~: n0 C/ H' \. \9 S% }8 |
  -> null    $ ]: }: \; r5 M) u7 m
7 G6 Z; z+ @4 H2 }3 {' |9 k
pow(x,y)   
( g% \$ |* V5 \2 M; g1 M4 Y, t. ?power(x,y)   
) P  \; L8 I# z 返回值x的y次幂  
, ^1 o( ~8 F9 n) fmysql> select pow(2,2);   
' i9 |! t2 l! U* G$ s7 y+ @  -> 4.000000   
% ^' w' q3 Y% G5 Tmysql> select pow(2,-2);    / e" v" N4 F) ~: @" u( |8 M; O
  -> 0.250000  6 y& H: f' h* u) a) E
5 y6 t6 P9 S( v6 p9 A3 M
sqrt(n)  " t9 t& A" b2 g* k! S2 V
 返回非负数n的平方根  
9 O6 J9 u/ [8 t2 Zmysql> select sqrt(4);    " U* E3 b2 d7 F, G  L
  -> 2.000000   
8 A6 X: p+ a. z/ V5 I, f( s/ gmysql> select sqrt(20);      I' G" n! e! Z+ F
  -> 4.472136    ; A; A5 k& y6 U; H- a+ u/ ^8 ?1 c& Z
0 {, w3 ]0 V# q* l
pi()   
9 G7 Z9 g, A5 [8 v9 ?& x2 g& F; K( n( X 返回圆周率   / o  C8 f' }' r% r+ V1 o
mysql> select pi();   
/ w) W/ T, O. d! x" P8 c. M5 O  -> 3.141593   
9 D' F2 T% h3 ^  m7 _# ?2 h 2 e: x; }0 g" J% ~. |
cos(n)  
( q" k) _. {$ O% L7 |  C- @/ { 返回n的余弦值  3 w$ B! e2 k" R
mysql> select cos(pi());  + \' V/ A4 h8 n2 B. ?3 C' W" R
  -> -1.000000   
+ `1 I/ ?" Z! }% U( n
% E4 R+ F6 O, D* ~  Ssin(n)  
1 Z" O* m1 O2 r1 ?' H7 p 返回n的正弦值   
4 q: T. ~6 A- P* b' v5 s( ymysql> select sin(pi());    # k- }6 a$ N6 L9 b. ?
  -> 0.000000   
7 Q4 t9 U# u: \6 g  o# R; v9 v  v2 b 7 u& d; P4 `: I1 V5 U; }6 J4 ~
tan(n)  6 X# J( [. V/ Z/ J6 E
返回n的正切值  + T4 f: \& B, P- e2 b) ~5 S
mysql> select tan(pi()+1);    1 ]0 N/ g8 U& C$ U5 I
  -> 1.557408    ) j& b& \6 e% ?& H

! j- g% i/ Q) w! Nacos(n)  
: V1 ^) e2 |8 K5 c" ]  g& u% x 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  
" s5 ~0 s4 O+ T2 B" qmysql> select acos(1);    6 N( e! ?  G& F& N
  -> 0.000000    * \( c8 t+ u- G* }' X- [( {- a
mysql> select acos(1.0001);   
7 F" ?" R) A' K/ j/ L  -> null   
5 V/ N2 h3 V8 e# _mysql> select acos(0);   
/ F. D6 {! @- g% k  -> 1.570796   
0 n8 j' I- B; d* Z% h * a: ~7 B( ?( s+ ?3 _# V
asin(n)  , @9 Z, C+ b  W: }* G& I4 h
返回n反正弦值  
6 D; N; @/ V+ p( _3 P5 i' O) Z" Dmysql> select asin(0.2);   
, U8 Z  g! Y9 j  -> 0.201358   
/ `$ c8 U3 G' i& hmysql> select asin('foo');   
) T- q" a3 _/ [( u8 q$ g8 P  -> 0.000000   
" r+ Y( ]7 A3 j5 R
( X4 Q% r' H7 `atan(n)  
# l5 j% A4 N1 L" y6 n8 E9 \# C返回n的反正切值  
3 w# P' ?+ ]; `1 bmysql> select atan(2);   
9 i+ z% s4 [# R* w) L  -> 1.107149   
5 X. [. g1 G1 ~mysql> select atan(-2);   
  ~! t) \9 K: Y! j/ R  -> -1.107149   
3 k4 f: ~5 H7 m. R5 A) Oatan2(x,y)   
3 ~7 x$ @) R1 |' w0 U1 Z" @ 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  2 L* C" `3 o9 d+ z/ G* ^- v* e
mysql> select atan(-2,2);    ; S$ b2 T4 V$ _
  -> -0.785398    : e- v2 H" d1 S' a
mysql> select atan(pi(),0);   
4 \$ x9 ?' `: a% }/ Q  -> 1.570796   
& J0 Z. W2 N1 O5 x/ E, E
4 a: u; ]$ A) vcot(n)  
8 r8 V$ `$ Y+ C3 n返回x的余切  
# ^/ g; n0 Y3 Q$ \# fmysql> select cot(12);   
- p/ c( l2 Q7 G8 k1 n  -> -1.57267341   
1 D3 x& Z! E- k# o) Q8 ~2 P) rmysql> select cot(0);   
5 d  M5 }% S( A- ~* `  -> null    6 ~& A$ e; {% x/ b
; {' l+ P% C4 f  f% x
rand()  
! k- e" T  T3 _% Zrand(n)    ) g9 B* F! I* q% m/ j! G$ \8 y
返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值) 2 m/ B5 N$ X7 l; M4 r
7 E" n! L  H$ M
mysql> select rand();    8 F, I- j5 T; o& K+ J  [6 M7 j
  -> 0.5925    1 l! V' O& J0 |
mysql> select rand(20);   
. h* I: ?$ ?0 _! r4 v. {  -> 0.1811   
& w# ^" i; U; B6 j* x( j: @mysql> select rand(20);    ! p5 {2 }4 @0 X6 h
  -> 0.1811   
# I4 F; f" M1 H! wmysql> select rand();   
" I* K) v. i2 I& \  -> 0.2079   
" g# h! a; G7 k# X  J3 s0 k; N- Pmysql> select rand();   
: g( ]) C( ]" k$ Z, Q' ^. }. F  -> 0.7888    ' T0 f& w4 Y2 c1 m& {$ H; W' B

+ ^$ U. ]0 Z' W& q' I1 G9 ]degrees(n)  
" b. l/ S- q3 k" V5 t把n从弧度变换为角度并返回  
0 j2 |) j0 O# t+ w7 ?mysql> select degrees(pi());    ! q. K3 P+ O+ ]' p2 j, \: `
  -> 180.000000    : q, I1 g. T1 j) ?) Y
) m3 J+ S% q# ^+ F% X& n
radians(n)
( k0 |+ W  ?7 U" M5 }, Y$ k, Q. l把n从角度变换为弧度并返回   # d0 q& Q; r" K; ~" P
mysql> select radians(90);   
1 E3 X% @# }4 J2 c+ U% S  -> 1.570796    9 a# b) h- S  ^2 [2 B+ V
& k+ P* [- I% x: A% ^* \, t
truncate(n,d)   
! Z  `; G- c+ ]7 h0 Z/ W保留数字n的d位小数并返回  
+ w. \0 l$ X/ T0 x1 |0 fmysql> select truncate(1.223,1);   
7 l( R" }) O$ N# g# j8 C  -> 1.2   
6 q" u' a7 z# Cmysql> select truncate(1.999,1);    - q* D% }0 \& m& g. I3 u; {
  -> 1.9    2 b. c! _( I( y) |+ q, ^: h
mysql> select truncate(1.999,0);    1 l1 d  Z! P8 l
  -> 1   
$ p' ^" y, |- S9 K, H- G
& Y0 q* r0 t' E. _" H5 S% l5 gleast(x,y,...)   
( ]* d8 K# ?; i- T返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
5 z. `. l0 ~2 q% v# p2 Ymysql> select least(2,0);    " r0 w2 s: p+ P; J- h! N: x6 d3 o
  -> 0    . T" y) d# a- `: _
mysql> select least(34.0,3.0,5.0,767.0);    # ?8 C/ P& ^+ @* @9 g6 b( k. J
  -> 3.0   
9 n' w. f+ ~0 Q: jmysql> select least("b","a","c");   
, |2 i: X4 ~) @+ k3 W5 H: v  -> "a"    - j2 G5 I: \: _3 i# e+ f, }( f
$ B7 j/ t, ?0 {" k0 ~9 p' `# v
greatest(x,y,...)    7 ~( Y; T) B8 O3 `' S
返回最大值(其余同least())  
+ t7 _$ s& c# \- ?' fmysql> select greatest(2,0);   
6 x2 P+ v$ o1 F* g  -> 2    . Y, u5 I/ {5 i# d
mysql> select greatest(34.0,3.0,5.0,767.0);   
& E$ M; A+ [- H, ^. M8 h5 `) \% \$ W  -> 767.0    2 ^& E. T% Z/ J. P9 y! ~4 S
mysql> select greatest("b","a","c");    5 R+ O+ f- q$ f9 c# b9 I7 J$ {' ?
  -> "c"     
. }! [5 D! }' c' w& w( {
9 W4 D  ?3 `' P  j3 V* S: B9 }9 F" g3、时期时间函数 2 a% E! ^/ @0 V- U% n1 M3 u
dayofweek(date)   
& @! m; o% i/ g# A& I返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
9 g3 Q# C4 }9 }" r- u5 a' Z/ tmysql> select dayofweek('1998-02-03');    ' c0 j# w  {- x- }, O& q0 n4 S
  -> 3    # `$ _6 {$ {& J2 B5 V& x
4 u7 @5 m! d  J
weekday(date)    2 w# X( l/ S  j- M( z! b* b( y7 S
返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
  I! x, V; Q5 X" H5 s' x; T  . x1 v8 l6 L) }6 w" ]( b. R; I
mysql> select weekday('1997-10-04 22:23:00');    % J& H  p3 V- Z7 s
  -> 5   
  @: n# H0 w6 M, Q% z. |9 Qmysql> select weekday('1997-11-05');    7 ^1 e4 g1 N: g- A3 y
  -> 2    % U4 g) w+ i( V
/ g$ Y) B  j  n+ F6 X3 W- h& g
dayofmonth(date)    # V! `2 i( v: ~8 T
返回date是一月中的第几日(在1到31范围内)   
  N8 J( x  U. q7 Z7 r9 f8 n) dmysql> select dayofmonth('1998-02-03');    2 M+ P) z( R; Q) f! a: ~
  -> 3   
+ @, y! N: N0 @- H8 J  f 1 ?, z, }; y! E1 U6 n* Z
dayofyear(date)    3 ~" h/ b: T$ O
返回date是一年中的第几日(在1到366范围内)    2 s0 i0 O) P- J1 y  t! u' B3 d: r
mysql> select dayofyear('1998-02-03');   
3 _4 o/ ~' J) Y" ]/ X  ]  -> 34    ' u  j, ?/ [) t; m
3 v1 y5 c& @3 d) t2 @
month(date)    & h. j2 _5 q+ U2 b8 p
返回date中的月份数值    3 w5 T& D( V/ J8 A
mysql> select month('1998-02-03');    7 a7 \# r8 T  k0 _. c1 W8 f
  -> 2    $ z9 h% a. ^! [6 [9 }
& J1 Y- C* n; y* k1 P, x
dayname(date)    " P% @( m& e+ Q) E3 D* L& G
返回date是星期几(按英文名返回)  7 \! l" I/ R& b( S9 @; \' V
mysql> select dayname("1998-02-05");    , s; p  S9 Z+ `$ V) j
  -> 'thursday'   
8 k  _  t$ v4 x3 f: C # r! E) }9 O# f' ?' u
monthname(date)    
# W# b! B. N2 L! @, T8 M8 \返回date是几月(按英文名返回)  
* _: _, t8 q9 a- f: amysql> select monthname("1998-02-05");    ' U- ^$ g2 {5 J1 |
  -> 'february'    ' Z5 b: p* B: g+ p* q( q6 q. p- P
; _' o! B% w( L  w$ }  I1 |8 J
quarter(date)   
/ y" H  Z1 l4 B返回date是一年的第几个季度    $ P( B3 }% K, c3 }0 Y& B- ~
mysql> select quarter('98-04-01');   
: `$ e4 E/ R9 `& x* y; Z9 T  -> 2   
, B- q' \# J) f7 Y8 i
6 S  A7 D; F. T" s) v9 aweek(date,first)   8 U# _  c: ^: g" L+ J
返回date是一年的第几周(first默认值0,first取值1表示周一是* T- O1 Q  P2 d2 x9 z( S
周的开始,0从周日开始)  
* g6 s6 O% {% V$ H$ [mysql> select week('1998-02-20');    9 ?! F' }; H. a6 b
  -> 7    8 o- a2 @' k: G) \4 D) w
mysql> select week('1998-02-20',0);    " [7 y# ^! G4 y7 c1 A
  -> 7    ) z, S! w' Q* v! u& K: N! C4 O
mysql> select week('1998-02-20',1);   
4 Z6 j* J5 d, S  -> 8    3 H; h. {1 P( k; ?; ?; X6 T9 m3 }

/ i/ y/ u0 t3 b) F1 _& Ayear(date)   
' M- w1 ?1 V3 p6 X返回date的年份(范围在1000到9999)    : ^6 d% K; O  p& D& w1 h( I( M- [
mysql> select year('98-02-03');    8 m# r2 E* `  r3 J0 I, g
  -> 1998   
  x: p/ l& D, I7 c0 e6 ~   i8 R1 X! e. ~9 U- ]# R9 E
hour(time)    
- U( R. \. V8 r9 E% Y- b" n返回time的小时数(范围是0到23)   
+ W5 O9 v& g* c5 X$ ]mysql> select hour('10:05:03');    , e  `% s7 J3 k7 G1 u9 U
  -> 10      W, e$ W* Z1 E5 a1 {, c2 m/ W- D
) o5 ?& y( _* J
minute(time)    ; i$ _( p9 ]9 |9 q0 k
返回time的分钟数(范围是0到59)    % h& j( R, v3 B
mysql> select minute('98-02-03 10:05:03');   
4 A7 h8 L! }) J5 ]3 |3 W, _  -> 5   
  \0 E0 q% F2 i4 m; r, d
' K, m6 O( @9 N$ D0 b$ g2 e' Hsecond(time)    * r) z. i, B' Q# B& Q% t7 @: Y+ C1 L
返回time的秒数(范围是0到59)   
$ ~9 {: r; G& Y" K% Hmysql> select second('10:05:03');    - Q, |! @: d. t6 d/ C6 P
  -> 3      t) r& Q9 V% K* E9 R# E
  a7 h6 ?8 a; M0 E# h5 F, q
period_add(p,n)    5 X0 `, E/ o9 }9 Z* d
增加n个月到时期p并返回(p的格式yymm或yyyymm)   
5 o6 C1 C% g! g- ]0 z+ W* _" F/ Ymysql> select period_add(9801,2);    & B9 n) v5 V; m4 _) D# M1 Y0 i+ i
  -> 199803   
/ s% }) D. l- u! z % X& z* I0 A' k9 E
period_diff(p1,p2)    % A  Q  g3 w4 ~
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  / x; L/ {! M# e& ?* {- }6 }
mysql> select period_diff(9802,199703);   
. U/ \+ @) n3 G- M( Y; u/ @3 n  -> 11    7 l" m+ d  l4 m! r& N8 |# S
- |3 C2 M4 e" d. x
date_add(date,interval expr type)  
( I2 n3 ]/ w' n  K- c# d/ p3 N4 Ndate_sub(date,interval expr type)   
7 x7 I, ?. H( m% L: m' T# Nadddate(date,interval expr type)    ' d) z% x) Z. W
subdate(date,interval expr type)  
( Y8 m+ l  g( j( H9 R7 H+ f对日期时间进行加减法运算  
1 o0 B6 C4 Y# M1 _2 ]% u(adddate()和subdate()是date_add()和date_sub()的同义词,也- S7 k3 p% U3 a
可以用运算符+和-而不是函数  
- \; C: y8 I7 N# Tdate是一个datetime或date值,expr对date进行加减法的一个表! s# u" b% C4 Z7 D* C. y
达式字符串type指明表达式expr应该如何被解释    q3 L0 t. m8 W8 B$ s' g7 n
 [type值 含义 期望的expr格式]:  
% f) w2 ]0 D- k" c second 秒 seconds   
% h4 _, G, b% D4 [# h, L8 Q minute 分钟 minutes   
! F+ C* ~" C0 z* U% O, g9 U hour 时间 hours   
0 @: Y" K- |# X& b! ~ day 天 days    " H. z' \( G  X2 J! ~
 month 月 months    9 f. I* }  {$ ]/ U3 F7 G* _. O1 Q
 year 年 years    7 t( y8 P  P4 T7 }8 I+ D6 i
 minute_second 分钟和秒 "minutes:seconds"   
3 [1 @2 R. g( u hour_minute 小时和分钟 "hours:minutes"    & c( H4 g$ {4 H! d; g! n
 day_hour 天和小时 "days hours"    7 `. z* [& ?( ~$ V9 J* V: w
 year_month 年和月 "years-months"    . }( \, ~* e2 F/ }& a9 t7 {! U- B
 hour_second 小时, 分钟, "hours:minutes:seconds"   
; D4 I4 V: e9 L: N8 O: Z day_minute 天, 小时, 分钟 "days hours:minutes"   
# Y/ d: n! G& p! C+ H2 ` day_second 天, 小时, 分钟, 秒 "days
4 _: z$ w& y8 I9 hhours:minutes:seconds"
+ x" z( r7 x+ m8 M9 O" g expr中允许任何标点做分隔符,如果所有是date值时结果是一个  q. ]2 W& ^9 C2 i$ M9 k! _+ a
date值,否则结果是一个datetime值)  & s8 E# g; a: C8 g7 F# \& W
 如果type关键词不完整,则mysql从右端取值,day_second因为缺( P& K5 q( c6 R7 {4 K" u
少小时分钟等于minute_second)  7 A9 J( C5 r) X4 |" V6 W2 z- W/ Q
 如果增加month、year_month或year,天数大于结果月份的最大天
& a' O% U% ?2 l2 f2 _& G8 R  I0 e数则使用最大天数)    & x( Y7 ]2 J* x. n9 ^$ H% K. A9 \
mysql> select "1997-12-31 23:59:59" + interval 1 second;  
% T/ t$ k5 e. V( Q- T; [4 z
1 p4 Y5 |! ^" K; `3 k  -> 1998-01-01 00:00:00   
8 m' |( c6 @4 b  R$ ~" Vmysql> select interval 1 day + "1997-12-31";   
& H5 ]6 A6 |) T1 d* R6 O  -> 1998-01-01    $ `* \$ n* T1 ^' T% \' {% d
mysql> select "1998-01-01" - interval 1 second;   
. ]$ @- B6 O3 C0 ~! W  -> 1997-12-31 23:59:59    ! y8 a8 N/ v3 z. h$ _
mysql> select date_add("1997-12-31 23:59:59",interval 1
, D3 O  \. J; y+ `) Lsecond);    . a  r$ |3 t( L' c5 a9 J9 K
  -> 1998-01-01 00:00:00    . i1 I* K, f, y$ v4 Z
mysql> select date_add("1997-12-31 23:59:59",interval 1
! R" C5 ~* M5 r" \day);   
- [% J: g2 n* y% x7 [  -> 1998-01-01 23:59:59   
) u) }' K( Q/ f) Qmysql> select date_add("1997-12-31 23:59:59",interval! i' Q, z% v: w% I/ e! P& }
"1:1" minute_second);   
: ^! Q) v4 m/ F1 A; t  -> 1998-01-01 00:01:00   
6 F  {% j) F! S) o" M; s" Umysql> select date_sub("1998-01-01 00:00:00",interval "1
# x5 F( O% d5 x1:1:1" day_second);    2 _% |5 F- L! ^! N
  -> 1997-12-30 22:58:59    0 d8 C: K% c+ q! ?8 B' J2 S( L  C
mysql> select date_add("1998-01-01 00:00:00", interval "-15 j# A3 V. k! c/ i2 ]5 [: }. u  _
10" day_hour);  
  p" b9 `  _7 h- w  -> 1997-12-30 14:00:00    $ m5 ?' I: I3 F" b1 C
mysql> select date_sub("1998-01-02", interval 31 day);    9 D, a/ b' z% l: l
  -> 1997-12-02    # g- S8 _5 @) p% G
mysql> select extract(year from "1999-07-02");    $ _- @  x& X0 ]9 y% Y. u
  -> 1999   
- c6 z3 P, h1 N; N4 m0 c" ^' umysql> select extract(year_month from "1999-07-02
1 n% w& i$ x5 d5 U/ x; q/ p6 T" q- c01:02:03");    ! o$ S$ V7 ]( f% W' s
  -> 199907    7 p6 G% O2 h) E
mysql> select extract(day_minute from "1999-07-02( m% E. k% l; S# c, L5 c
01:02:03");   
9 i: |: z8 p0 U  -> 20102   
2 w$ M; i$ u; q3 ^. z) g* R & x' ?6 C$ B$ P3 _
to_days(date)    / M2 _  i. U& x8 b
返回日期date是西元0年至今多少天(不计算1582年以前)  
* B) x; `* E: N7 o$ q5 ?- y; i6 \$ Nmysql> select to_days(950501);    7 v3 C) t. l" {4 E- v+ W) B( Y4 x# n
  -> 728779    8 I. e, N0 }7 H% E  k
mysql> select to_days('1997-10-07');    - ?/ y" d  F- {1 H+ X9 Y, K
  -> 729669   
6 k- X+ A' h8 H% K: C0 s 2 H6 w' Z- v& w. X- B! k4 F% F/ M
from_days(n)   
- s8 c$ e* L8 v8 E. O7 f. y 给出西元0年至今多少天返回date值(不计算1582年以前)   
4 G0 X4 n: L! G& ?0 @mysql> select from_days(729669);   
7 S1 D! T( r3 Q. _( ~  -> '1997-10-07'   
* r' m$ p" y/ x, k: P0 D- f
: o7 r, w) {  }+ [6 U8 P7 s( N( p- udate_format(date,format)    ! V# C/ R" K  |+ k
 根据format字符串格式化date值  
/ _# x" [( R: K (在format字符串中可用标志符:  
/ E0 n' M) m6 u. } %m 月名字(january……december)   
$ q+ N3 m& h8 ^$ B3 T %w 星期名字(sunday……saturday)   
7 D2 W) X+ C7 x0 D, s %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)   
# g% r. L2 z1 X% H( g# S9 F" r1 q %y 年, 数字, 4 位   
/ ~3 l+ z2 h' E1 D# F, j %y 年, 数字, 2 位    / w! g( D& \& ?/ ~) _7 ]" _
 %a 缩写的星期名字(sun……sat)   
9 L. w& P1 }" O' J* t' A %d 月份中的天数, 数字(00……31)   
$ g# B" ~0 x. c' v& l* q %e 月份中的天数, 数字(0……31)   
9 e7 H+ ?% ^2 R5 A %m 月, 数字(01……12)    # Q! n6 S# i2 e, `( {
 %c 月, 数字(1……12)   
' z9 b, c. d8 {6 t  ~ %b 缩写的月份名字(jan……dec)   
8 j" e% z" r4 n5 E5 y4 ? %j 一年中的天数(001……366)    ( _3 C* T9 a) f: k
 %h 小时(00……23)   
8 O8 v" p( e; v! U: L: c2 g %k 小时(0……23)   
( s0 a( ?8 x; i- z8 u %h 小时(01……12)   
% D0 l1 K: }" Y/ v. B8 T %i 小时(01……12)    & }* f* E% z% h
 %l 小时(1……12)    + N) E# n3 ~. i
 %i 分钟, 数字(00……59)    7 F' k% b8 r" J. {7 B; a* q
 %r 时间,12 小时(hh:mm:ss [ap]m)   
* a0 t4 I/ `3 [ %t 时间,24 小时(hh:mm:ss)   
( f) a: m" P/ M& I %s 秒(00……59)   
$ s( D$ |% i4 _; U %s 秒(00……59)    : a0 z/ |; j: }
 %p am或pm   
3 Q8 W8 C% D5 l& S& u& S) T9 n4 ]5 y %w 一个星期中的天数(0=sunday ……6=saturday )    9 f/ _; G! v$ r- a) I  {: ?
 %u 星期(0……52), 这里星期天是星期的第一天    $ Z  d2 Y) R+ M5 `8 J! t
 %u 星期(0……52), 这里星期一是星期的第一天    ) l2 R- G" I) B5 m; a% L$ z" e
 %% 字符% )  2 i# p) O8 c$ D, c  E
mysql> select date_format('1997-10-04 22:23:00','%w %m %
. B9 N1 U0 M5 C( xy');    # ^& ^1 {4 J9 }. O
  -> 'saturday october 1997'    * N- g2 v4 u6 A5 @7 @! m
mysql> select date_format('1997-10-04 22:23:00','%h:%i:%* Y0 k- k+ w. p2 D2 Q! v( H
s');    2 z# U. D; g% S3 n- a  W. y
  -> '22:23:00'    9 H$ G$ T1 I+ v% t3 W3 Z8 o+ h) K
mysql> select date_format('1997-10-04 22:23:00','%d %y %a7 R& M# L1 j" W% t" y) \
%d %m %b %j');    ! B: O% F3 k' p9 s5 i
  -> '4th 97 sat 04 10 oct 277'   
6 }8 ?- f: D1 L2 Umysql> select date_format('1997-10-04 22:23:00','%h %k %i! K4 Q$ X* ]  x& r) ^3 H
%r %t %s %w');    * C) J; B$ m* J8 B6 y$ A$ A
  -> '22 22 10 10:23:00 pm 22:23:00 00 6'    8 _" x8 _' g+ S3 C

7 K5 K5 c$ r5 Q- U* ]# D/ Utime_format(time,format)  
" ?% F3 Y6 ?3 j3 g) Z 和date_format()类似,但time_format只处理小时、分钟和秒(其( ?1 b7 H; e5 w# d
余符号产生一个null值或0)  ; U) b. l$ Z. o, g. a* N  |* F3 C
9 D2 z: k1 }3 }0 d
curdate()     
6 K+ j. J8 h3 E3 h+ [1 dcurrent_date()  8 a, E# p3 F- k) D9 C) B: B
 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
) ]2 h0 P2 M/ H0 ~0 F! o* P处上下文是字符串或数字)   
( r- L* W1 b) N; Ymysql> select curdate();   
# U- U. h7 O; d% X" r  -> '1997-12-15'   
3 R- B8 }4 o. d! D! T& A- Wmysql> select curdate() + 0;   
' H: H4 Y  W; i: _; d" L2 @$ z  -> 19971215   
% [! u% Y3 _# D3 a! F' p6 P
$ E# W4 S1 s. q. _; v% Pcurtime()   
- `& M5 v5 ]1 Bcurrent_time()  1 f& }4 m% [0 N, _
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上" A* x% |) m$ G$ p, s& J/ Z& \8 G0 ]
下文是字符串或数字)      ; P! i7 t. ~! L9 [
mysql> select curtime();    ) w/ w& F  i. ?5 F' A
  -> '23:50:26'   
' D$ q+ v& ]' w; K* hmysql> select curtime() + 0;    ! o# R. Q" f2 x) b/ u7 p! w" r
  -> 235026   
4 L1 L0 b- @9 c
$ n9 J1 r5 j/ ~  mnow()    
: v+ a6 [0 a4 q" k$ ysysdate()    
1 M8 E; K. D! Mcurrent_timestamp()  
  p' H! w6 p4 X% a; u. j9 p 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期; X+ E6 M1 C8 m# i0 _% |
时间(根据返回值所处上下文是字符串或数字)     
$ ?  g) A9 \4 K+ ]8 w% _mysql> select now();    + l6 S5 r& C+ {9 v- W: G& I0 }
  -> '1997-12-15 23:50:26'    $ d# g' \! i0 h( Z+ _7 a; g
mysql> select now() + 0;   
, Z  e4 `1 l: Q1 o4 j5 B  -> 19971215235026    . E* t- G5 W6 |' j! t
* Z2 k/ B4 Y( G1 ]1 S- U7 x
unix_timestamp()    ; [3 ~; L( V2 \* l
unix_timestamp(date)    % |# P+ ~: y3 \# `; V: Y
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
; q7 P6 B- o  j$ b$ Z% n数,date默认值为当前时间)  ( w- Z: }! s( Z' i- k
mysql> select unix_timestamp();   
# ~+ r! x5 \- e% Z  -> 882226357    & w; S7 U, n7 g8 ]. D
mysql> select unix_timestamp('1997-10-04 22:23:00');    : {/ F( r3 P+ C( _" v; o8 z1 y
  -> 875996580   
) d- n% Y- I$ O) }- n) S
* ?  Y1 q- [- A, a- Rfrom_unixtime(unix_timestamp)    ' u" T# E/ J! R6 K" k  v( x
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的7 e! j6 A8 v/ k3 m
值(根据返回值所处上下文是字符串或数字)     7 V& |# b8 r' @5 m3 L0 K! C0 F7 O, J
mysql> select from_unixtime(875996580);   
: v' z1 T$ e( K3 L" \. B  -> '1997-10-04 22:23:00'   
/ E& O' ~6 a& ?: y0 ~* f0 n4 Ymysql> select from_unixtime(875996580) + 0;   
) x( T) y9 h2 C! H  -> 19971004222300    6 T* {1 f8 t' u6 M  t
5 q/ \2 z( R3 `; O
from_unixtime(unix_timestamp,format)    7 H+ V- C3 J6 |& T: A
以format字符串格式返回时间戳的值  
8 _6 ~  _4 C. M$ A$ X. Wmysql> select from_unixtime(unix_timestamp(),'%y %d %m %
6 U9 ^& o2 S) I% |; M7 [" `h:%i:%s %x');   
5 R, w* ~* [5 D7 _+ m$ G  -> '1997 23rd december 03:43:30 x'    1 f+ Q) B; D" p
- ]1 T% o7 Z5 P0 `5 ^1 @. f
sec_to_time(seconds)   
/ B: B1 I2 r  Y- r* c以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
: q9 _5 ^6 [8 Y7 P, l: v5 ?7 u& kmysql> select sec_to_time(2378);   
- w8 k  Q% ?- m+ k7 b  -> '00:39:38'    : E3 E" [# U: Z  O% k; S
mysql> select sec_to_time(2378) + 0;   
! n- H* z" B7 d# p  V- @; Y, ?  -> 3938    , H1 L/ N/ i5 z# _
3 i) i* m3 @: T) h2 v* b) Z1 {
time_to_sec(time)    . T! S. D1 A* Y( B6 i
返回time值有多少秒    0 f3 [: |! Q8 Z# m: }0 n
mysql> select time_to_sec('22:23:00');   
- S6 T6 M) s+ a0 S- p0 h  -> 80580   
* l3 t) d  c" s2 j6 U# cmysql> select time_to_sec('00:39:38');    8 l1 ]2 e% ~8 r( r" R1 p8 c2 ]5 x
  -> 2378
. }7 q2 w: M. J2 s* H 8 E5 I( ~9 k1 K1 {$ d9 w' v& N( d
转换函数
# q' C2 ^/ W0 `8 X8 V8 Bcast
$ _! u# k+ }  t% d3 Q* ~用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]$ B/ c. B* |2 q3 a% c
实例:select cast(a as unsigned) as b from cardserver where order by b desc;
+ B/ i6 v6 c1 B1 h- P  A: \convert:6 M/ ?9 }9 r3 u5 {# S6 C2 N' N& F
用法:convert(字段,数据类型)
8 f( r4 o( r2 Q: F& n5 ], G实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

+ u* O) B- f9 W7 Q6 \7 c
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表