找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 1843|回复: 0
打印 上一主题 下一主题

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数
: l& W7 }+ m0 r$ pascii(str)   ' s6 M% A8 j4 h
返回字符串str的第一个字符的ascii值(str是空串时返回0)  & ^+ w2 x+ P' S3 h# e* {7 j
mysql> select ascii('2');  
0 p- ^, S9 j% L$ w. p$ p1 \6 m  -> 50  
9 c7 G* j; P1 i% n/ p& p+ _mysql> select ascii(2);  
( \. {* d4 x5 |# ~  -> 50  3 j, h7 _7 J6 O% y, U, m6 K* n7 c
mysql> select ascii('dete');  
  U: o: N! q( H( H  -> 100
# k! C6 H5 K" b7 f
ord(str)   * ~' D) q. O% K1 I0 K1 C
如果字符串str句首是单字节返回与ascii()函数返回的相同值。
" o; m. N( E# [2 V1 I
7 m" H% j- D" w3 A5 A7 u5 m如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  . p: h; f; G" o/ U1 m5 f
mysql> select ord('2');  2 A+ p" D; V" c" M1 u! W; x/ q
  -> 50  
: M4 c' q  B+ }' D" C   + w' p7 y7 w9 X, Z" U1 M0 o
conv(n,from_base,to_base)   
% u; V. \, e, u2 ]对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  6 {- C2 O: O5 h: A0 \9 _
mysql> select conv("a",16,2);  
) F/ }9 w3 z9 n! r' e; z# L  -> '1010'
' a: v3 @* |2 F1 P" M5 k3 Y! ^9 Omysql> select conv("6e",18,8);  
, @0 \& y( t# q* D; v  -> '172'
( e# }) }/ _# |+ K0 {* f3 jmysql> select conv(-17,10,-18);  $ ^  e( n! b2 _0 M
  -> '-h'
; Q4 ~) l8 M6 y" [8 i% T7 c8 rmysql> select conv(10+"10"+'10'+0xa,10,10);  8 s' A# |0 p& v' u' i- |
  -> '40' . @/ K% u: ?2 f
   " k4 `9 m1 i% B  j$ W
bin(n)   3 E! |5 q# C5 }" d. n
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
2 |( _. l8 r. b3 E& y6 bmysql> select bin(12);  ) M3 H0 d) V- k2 C; I; K2 d
  -> '1100' + ]) m5 g' ]* q. f
& u- l, F9 g" u  |  P: i" s1 r
oct(n)   % v9 R9 E+ U( i3 ]
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  6 R) o: {! k* M6 P3 `6 n
mysql> select oct(12);  
, i0 q* V/ A0 V, }$ |$ H' e  -> '14' , Z4 w: {9 r# F1 h% c
   # s* R  S1 N. o4 x, @2 G( q
hex(n)   
- V, A2 m" m% i2 B  ~把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  9 X) g& \( y7 G. v
mysql> select hex(255);  
% l0 v' Z$ X9 Y( q2 ~: r$ Z  -> 'ff' 8 A+ U6 l: |0 J' D! L0 p6 T
   + K/ W/ T3 [# N6 ~4 x0 u. }& R
char(n,...)   
/ }( Y$ h! E# f返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   ( x3 F5 ^# c+ n1 d1 u2 Z- i. J+ V
mysql> select char(77,121,83,81,'76');  % k0 ]% J2 v* @; U
  -> 'mysql' % M8 F0 ^1 j2 ]$ b& Z* N/ a
mysql> select char(77,77.3,'77.3');  
: ^9 g( i% b) u  q! v8 v: J2 B  -> 'mmm'
7 s4 a2 h1 r! r$ E* u* U+ {   , d0 ^: \, {! i$ a( Q1 p. u  |/ A
concat(str1,str2,...)  
) a4 h9 A( J+ G, z5 T* |0 _1 G把参数连成一个长字符串并返回(任何参数是null时返回null)  0 }1 m8 e' \2 b; S3 O. R8 r
mysql> select concat('my', 's', 'ql');  % b% ~/ R; g' V, [* ?; v
  -> 'mysql' : Q) Q6 H1 s+ F% W' X
mysql> select concat('my', null, 'ql');  & R4 {: l5 V% M
  -> null + {, N0 ?0 G9 t7 f! M7 d3 ?
mysql> select concat(14.3);  + ~. x8 |5 t- O% u
  -> '14.3'
- E4 ~) t' [/ l3 M# E0 e# ~6 ^
3 n0 L" h% O# j0 G/ j$ X$ ]) ]/ slength(str)   
7 E) H" Y' c! l* ?- m/ k% roctet_length(str)  
3 g4 W! t) c9 f3 o! G) ~5 a8 Jchar_length(str)  ' ^4 M. L# Z  B' ]/ N# `# F' R
character_length(str)  
5 s: e! y2 q6 }. k8 k& q返回字符串str的长度(对于多字节字符char_length仅计算一次)
! ?4 M& s/ U8 I8 f& X3 Ymysql> select length('text');  
, ?' |6 {8 V- p  -> 4  
* O! {; T; ^- k) `4 Gmysql> select octet_length('text');  
# A2 w- M5 Z' E5 \) [* I9 i  -> 4  5 f4 f8 X% P0 ~6 L) E4 D. {* M7 o
3 m% v3 R  `4 i* e. [; H
locate(substr,str)   
# Y" ?: B. X  X5 {& t& }  M, @position(substr in str)   , ^# }) {& m( T+ F
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
) U  ^# t( k) V" Lmysql> select locate('bar', 'foobarbar');  1 ^) ?8 x& b. o8 n
  -> 4  : n& |" B. v8 m+ o# C; Y: n! k
mysql> select locate('xbar', 'foobar');  
. C) G/ {* M% y9 l1 b- n3 M  V  -> 0  2 ?+ O+ O" ^* |% S
   
/ r# ^% i, V( H" B- Q8 klocate(substr,str,pos) # F" x! X) r8 C! i* ^$ {3 `) W) y# j1 f
返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  + ^' v4 M4 A1 N# @) p
mysql> select locate('bar', 'foobarbar',5);  2 G; E: ]6 M: V' n) ?$ u
  -> 7  : U  ^. O6 M& g  f0 {0 i
5 V9 D* m) j" j6 l% V; P4 O: h* K$ x$ k
instr(str,substr)  
* x- |2 L1 ?7 V5 v返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  / {, e! b/ x5 a/ X% S5 Q' y( C
mysql> select instr('foobarbar', 'bar');  
8 X) P" ~1 ^4 F* L$ @  -> 4  
; d1 V7 V0 }& M! s4 J8 Xmysql> select instr('xbar', 'foobar');  
/ F* c' J$ J' p, e$ v$ j  -> 0   , g$ U5 G- i$ `6 o

% B$ V; ^. J' u& X6 clpad(str,len,padstr)     O) e/ m" b- l' t0 T
用字符串padstr填补str左端直到字串长度为len并返回  . O' H& _: Z, e  \6 b; {* V
mysql> select lpad('hi',4,'??');  
4 E2 U3 W( S3 P+ v5 @5 v  -> '??hi'
$ l+ |+ z' _0 r* ]. s9 A! H   
" U' M2 q4 z( @- ?' @rpad(str,len,padstr)     R) C8 e' ?7 s2 X: S% c
用字符串padstr填补str右端直到字串长度为len并返回  
# X$ Q0 G; b1 U. g! g& mmysql> select rpad('hi',5,'?');  
- G. ^" V# U: J, L  -> 'hi???' ' h* m1 j* x: o! r7 `* ?5 m, v

3 g+ [2 ?: j/ O) S4 k) kleft(str,len)   ( T" z) q- l  ^  F
返回字符串str的左端len个字符  
- ]) f0 [' |; a7 i5 e% Umysql> select left('foobarbar', 5);  8 d% I6 w4 e  |6 G
  -> 'fooba' / w& P" R( _7 |$ E
2 g& u: z. {! k/ n
right(str,len)   
4 t7 w; z8 p* T# v1 W; m返回字符串str的右端len个字符   
. Z& k, o4 j3 cmysql> select right('foobarbar', 4);  
& I3 H' r+ e3 e; R2 E% E( o  -> 'rbar'
: Y. R8 `; w) t0 Y, r " u" z4 Z4 P2 q# l. S+ @
substring(str,pos,len)   $ t/ q. ?  @$ l$ |
substring(str from pos for len)   
; j5 K) I$ C' H7 @2 U' @" O# B; Hmid(str,pos,len)   
: P* B" C) _9 ]# V3 |* j返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
' t! l- ^0 P3 }# n  k; ?  -> 'ratica' * L+ V5 r6 `3 x7 k3 d% v8 z0 p

2 ~0 u* H5 {3 y; Msubstring(str,pos)   
& i# g8 ^) a2 R) d1 o7 Isubstring(str from pos)     o' \. j- _1 a
返回字符串str的位置pos起的一个子串  ! w- n8 p' ?. F% n! M
mysql> select substring('quadratically',5);  
) A# Z# p) Z8 z0 o! v4 q4 K+ B  -> 'ratically'
) p6 D; G0 l8 E4 B7 k# }mysql> select substring('foobarbar' from 4);  / p& k! g: S, G. A5 F: j! ~# w
  -> 'barbar' % d! c3 k2 K5 g: x& G' d8 e8 w

) k! G! j- L: f9 bsubstring_index(str,delim,count)   $ t0 s; Z6 R1 \$ N5 W
返回从字符串str的第count个出现的分隔符delim之后的子串
! h, P  I5 g! w4 w8 d; w# K# l(count为正数时返回左端,否则返回右端子串)  
$ {3 P- L# \. c: Nmysql> select substring_index('www.mysql.com', '.', 2);  & b% O9 f# L5 D, J2 @  ^
  -> 'www.mysql'
& [- @4 z. \' M7 pmysql> select substring_index('www.mysql.com', '.', -2);  9 C4 k  T, w  r  m3 o1 m+ O( X) g+ }
  -> 'mysql.com'
( K8 y+ o  J3 ^0 K$ X' P! Z! ], V
6 }! }9 i+ C$ ~8 \* jltrim(str)   
+ v9 X" M4 R; d. M返回删除了左空格的字符串str  5 n) s. J$ R" R+ s# F
mysql> select ltrim('  barbar');  
7 W1 ^; W) z3 ~* b  B  -> 'barbar'
. X7 l! M# }/ {& U! l
# m' A4 K4 ~/ Q: V& H& J: Q" krtrim(str)   
/ V! f" o, S7 K1 t& q6 Y返回删除了右空格的字符串str  ' X% b; u2 J$ K5 ?% G( t
mysql> select rtrim('barbar   ');  8 O+ g# i+ W6 u) A2 P
  -> 'barbar' # x: F/ X( \6 Q# F0 W; |* h

2 o; Q% l0 x* p# l1 U5 {trim([[both | leading | trailing] [remstr] from] str)   8 ~1 g, }2 r" V  n2 }  U- C+ J' L
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  $ J# l* O$ Y, |+ O' n
mysql> select trim('  bar   ');  & E! }) z- c2 m4 u+ _
  -> 'bar'
. E! n: c* k; o, f9 w  \mysql> select trim(leading 'x' from 'xxxbarxxx');  7 M  U6 }; P; [, p
  -> 'barxxx'
' t  _  \8 ?1 v) [. M# i' d$ Zmysql> select trim(both 'x' from 'xxxbarxxx');  , g; y% B! |( j' \3 y: u
  -> 'bar' & g( {/ }- U0 P. x
mysql> select trim(trailing 'xyz' from 'barxxyz');  
( Z, i9 {: U: Z: l# N# ~' x- J  -> 'barx'
% A9 D/ \3 p+ P, _8 j# a
/ ~8 P  A0 _9 G; fsoundex(str)   * |1 x, g# V* _/ }* d% `
返回str的一个同音字符串(听起来“大致相同”字符串有相同的
. `! Q9 e. D0 D. y# N同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  . w4 Q, R6 \* W, l( l
mysql> select soundex('hello');  . u0 N# }8 |! s: i* F: W$ u
  -> 'h400' " q! v: I6 j# j9 P1 f
mysql> select soundex('quadratically');  
4 j$ y+ K# Q  R. o4 |  -> 'q36324'
, z" x9 ]' j, U1 Q3 y. K, o5 L   
7 ]4 ~9 r" }9 }" A9 mspace(n)   
" E2 X) V4 u" p5 y返回由n个空格字符组成的一个字符串  - e# v5 n" O2 j, O
mysql> select space(6);  
" i! X% v, p; P& U4 {$ o! m  -> '      ' * o/ K3 u; P$ Q( h4 J; [
   ; W" p  U- @$ ^5 c7 r+ ~
replace(str,from_str,to_str)   
: x8 f0 Z! R9 O  p! o2 X用字符串to_str替换字符串str中的子串from_str并返回  ) d. g( G  [4 |5 H6 Y6 D& q
mysql> select replace('www.mysql.com', 'w', 'ww');  - ~" n% c; ^) j5 v8 V- b
  -> 'wwwwww.mysql.com'
: ^: w( c+ ~0 u 7 v: y7 Q# M* P5 A& q) w
repeat(str,count)  
$ O" F/ A& h. N/ e" y; U. R3 g返回由count个字符串str连成的一个字符串(任何参数为null时7 q# n+ }& O4 k8 S
返回null,count<=0时返回一个空字符串)  
, h: a$ v1 m6 P! Dmysql> select repeat('mysql', 3);  
) `6 c! K6 s( g5 S2 f1 P+ y% i  -> 'mysqlmysqlmysql' % s: j: U+ ]) |4 }  W7 E# O5 B
   ' h$ d5 k, W; b
reverse(str)   + _  B. W9 r! ?- [9 q; l
颠倒字符串str的字符顺序并返回  
( t3 C- r* J% ?. l$ emysql> select reverse('abc');  
& C  X% l7 N) c0 F  -> 'cba'
0 k8 ]1 S' Q% |5 k- S0 i' p $ h$ \( T. j6 K: l0 v8 T" ^
insert(str,pos,len,newstr)   
, ?& K4 r# J+ K$ C; c把字符串str由位置pos起len个字符长的子串替换为字符串; I+ l4 ^- S2 u" c/ q# a2 w
newstr并返回  7 a- O. ?/ l' J) B5 g  x
mysql> select insert('quadratic', 3, 4, 'what');  * w" ?. n1 S' f7 y* q
  -> 'quwhattic'
: Y$ L3 Q& X* M* J' Z- M- C
6 {5 O. G# h4 ]  a% e- D! welt(n,str1,str2,str3,...)   
* ^) P/ p' Z& f- d返回第n个字符串(n小于1或大于参数个数返回null)    p) m  ]( y0 L9 b. C8 n
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  ! w/ r( m) N5 k  j' b4 }3 ]
  -> 'ej' . ?0 H; j  d6 \* j1 ^
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  ! u: `2 K) v- H' V- a+ _2 b
  -> 'foo' 5 G) Z- K! i5 U9 i" R

2 B& z' r4 }8 d- E3 ufield(str,str1,str2,str3,...)   ; [$ v/ @$ a, f3 c
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
6 v: t0 F. z% x9 }5 j4 |mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',; C! Q3 J, T9 t- n: f
'foo');  
6 k: }6 J5 E& n0 B+ w, c  -> 2  8 J6 t/ H$ ^4 \4 E/ r% @3 o
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',9 B) j) z( R5 b- b' i4 E( d
'foo');  , p) M2 j" }$ N$ v
  -> 0  
& Y6 p) o# k4 w" ?+ e4 o5 W
! D9 T  t* v& a% i# T* Hfind_in_set(str,strlist)   
5 |3 n8 w3 L8 w9 e返回str在字符串集strlist中的序号(任何参数是null则返回
" x& [: m2 m0 Z- V$ znull,如果str没找到返回0,参数1包含","时工作异常)  , C6 B9 O  _9 P& V, C- Y
mysql> select find_in_set('b','a,b,c,d');  
, D4 T% n( O( g: s# M' Z  -> 2  ( @7 A8 m& N6 F, F0 h* O
   4 m1 S+ p2 X( _; X8 q, l( ?1 D
make_set(bits,str1,str2,...)  " H1 O2 _1 D, i3 e
把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应, [. c9 c1 b6 ]- J# A6 ~
位置的字串选入字串集并返回(null串不添加到结果中)  
, ]$ J* ]' p, Qmysql> select make_set(1,'a','b','c');  
/ I$ z3 Y5 q/ `2 y; O, W0 @" o  -> 'a'   n8 u4 V5 G4 S
mysql> select make_set(1 | 4,'hello','nice','world');  " j8 b  E# T4 z4 T
  -> 'hello,world' 9 C, F/ K, r/ s/ ?
mysql> select make_set(0,'a','b','c');  
! Z2 N) V( b9 e$ c3 Z" c, T6 r  -> ''
  Q! O! E9 l2 P8 U
5 W  o5 e& M- S/ u0 m! Rexport_set(bits,on,off,[separator,[number_of_bits]])   
; E8 C8 i* o+ a1 g* H- v  f; g按bits排列字符串集,只有当位等于1时插入字串on,否则插入
8 n9 z. i* P3 z% ~- n' l4 boff(separator默认值",",number_of_bits参数使用时长度不足补0
" h0 F; Y8 f: t: l+ U而过长截断)   
) P$ B) G* G, k, _2 J/ V% j/ @mysql> select export_set(5,'y','n',',',4)  
( n# W8 E5 F) Y( S5 e% O  -> y,n,y,n   : I* ~+ Q3 `' n# D' u( T

& L* {* H% |" w! K3 ?" ^lcase(str)  
; t2 r0 A3 k: T8 K( X" Y  Glower(str)   6 `$ j! K; S* t, N5 o' p( O0 C
返回小写的字符串str  
! }" S" h* _- j2 e7 _5 h# Emysql> select lcase('quadratically');  
  n6 f* F+ f! t) {& {" a2 T8 P  ]5 M  -> 'quadratically'
. {, D1 l, `4 O1 e+ S! E. \0 @   
. f8 ?' d5 b- M5 O6 G7 R4 Sucase(str)   2 O# g; G7 E, j9 d
upper(str)   0 q; a& t, L+ S" s9 T- _
返回大写的字符串str  
% w9 h' E; g: |) ]mysql> select ucase('quadratically');  5 L4 O7 s# L1 {. ?: \1 o
  -> 'quadratically'
: c2 z4 C+ F' x# w. D- A. S
* u% ]. k8 t( Qload_file(file_name)   
1 g2 k: U1 L! V$ ^3 c5 D+ q读入文件并且作为一个字符串返回文件内容(文件无法找到,路径" g) m, Q, h9 x$ a5 n( r" Q
不完整,没有权限,长度大于max_allowed_packet会返回null)  % n% T2 [$ P$ R( ^
mysql> update table_name set blob_column=load_file
: q3 ^5 b; W5 n5 V("/tmp/picture") where id=1;  
: f  M9 q; Q+ ^% ^, r# s1 `
( [& y4 N/ d8 \( P2、数学函数
  z# i# R% o. U$ A& R3 Habs(n) ! V2 L' b; B( P9 {1 H/ m
返回n的绝对值  & M3 f# x" V% k, _" E4 C. {, r
mysql> select abs(2);      ]5 S& w- V8 Z; Z* i
  -> 2    # J7 J- K' J& g. h
mysql> select abs(-32);   
7 D+ {6 D' Y  H* F1 z' [' p  -> 32   
, _4 C  W2 c% E' R   
, |; i* x- h! V( s  G- w4 Msign(n)  
4 y/ ?" `6 k% n) k返回参数的符号(为-1、0或1)  
) ]$ b1 m8 G% d7 S7 Pmysql> select sign(-32);   
, l; G1 J- V2 F1 [, V& I  -> -1    . A8 R* g& y4 l! a3 q& x1 ]5 U! c) j
mysql> select sign(0);   
5 n% Z" S# S3 m: [  -> 0    . ^9 t6 Q9 o, a. t$ i0 h8 u
mysql> select sign(234);   
5 q$ ~- R0 p) r8 Z! k5 v5 t6 L: A8 K) G  -> 1    ) E7 W- S9 d; Y, c: K" ?
* w$ ~, H$ S! O" H( i/ X9 u
mod(n,m)    . y: L+ z; \0 s& a( s
取模运算,返回n被m除的余数(同%操作符)    0 y5 A6 D8 Q; d! u8 j- a, z" L
mysql> select mod(234, 10);    8 `& g) ]+ b3 P8 S+ \/ G
  -> 4   
4 r( [* y, r! Z1 g) M0 G% lmysql> select 234 % 10;   
/ u) J1 f2 P" n9 y9 ^  -> 4    6 _2 n1 ^, m4 @" Z1 A, Z
mysql> select mod(29,9);   
* @/ O+ Y& |$ v' C; i9 v0 N; W  -> 2   
9 z$ q1 S' k# p+ c) N, l" }
5 f+ p; t. B  o0 ^( vfloor(n)  
6 v5 @0 c6 q6 |- p# |7 l# h$ Y/ Z返回不大于n的最大整数值  1 U6 m( o+ }6 X0 y0 O# ~5 {
mysql> select floor(1.23);    # H( ], U9 D2 w: R4 j4 `
  -> 1    " _8 a* q5 A' k8 a  L# ]
mysql> select floor(-1.23);   
1 e- Q8 Q" c( v# s5 c  -> -2   
/ z* m1 l* X2 ~; @/ E) O. H- e6 Y ) R) z, X4 z2 [
ceiling(n)    m) F$ Q5 x( Z1 m
返回不小于n的最小整数值  " e2 x# Z) H& r% W( Q
mysql> select ceiling(1.23);   
) l% c, K; V& H0 T3 N  -> 2    / O1 `# U4 ]9 C7 Z7 U2 g  f2 b; J
mysql> select ceiling(-1.23);    ' E9 U  S, t6 D3 F+ h
  -> -1   
! @: [; x/ ^- y5 s" O* i# O 9 o0 M% y: _2 Z/ L& N' i
round(n,d)  
: C: b8 z+ w' U! c返回n的四舍五入值,保留d位小数(d的默认值为0)  4 [. T; e! E4 b0 X
mysql> select round(-1.23);    . i# {3 D: |5 x, ]7 C9 s
  -> -1   
& h( @" |) ]' O! T- N+ Dmysql> select round(-1.58);   
; Z+ M5 H: l. D+ m9 m; x$ G  -> -2   
6 ^; U2 J: x. p7 K! [) P$ lmysql> select round(1.58);    5 O2 [* @4 w& v7 s. o
  -> 2   
/ X; T4 ?  s4 bmysql> select round(1.298, 1);    2 G- p2 }4 h. V) j
  -> 1.3   
% H9 O' x" U8 A: qmysql> select round(1.298, 0);    2 K5 p! U9 s, O- ^) c8 C
  -> 1      m+ F) F* x2 ?

, B) X% D' l3 q0 {# E9 u% J  Jexp(n)  
% r( Y4 U5 _- z9 {0 A# A5 Z; a返回值e的n次方(自然对数的底)  
* M7 ?, h7 Y& T- Fmysql> select exp(2);    : U; [/ X$ E) c: f, B6 ]
  -> 7.389056   
8 @& d$ O9 k' {4 r# n" wmysql> select exp(-2);    . C: e$ _2 R7 e$ A) U7 G2 v+ a. ^
  -> 0.135335    0 e6 S& o4 L" \; d

5 \% z: l% n( c# K+ L$ j* |2 ?log(n)  
" q4 ]' o" n/ q! k* L( d/ q( t返回n的自然对数  * y) \2 L! r- t1 F8 v' @7 a
mysql> select log(2);   
% L8 j# z: L' J, D' [  -> 0.693147    ! d& f+ d; }+ @+ L( q
mysql> select log(-2);    + A/ b7 y4 H4 }; V2 o* N
  -> null    ' x* E& M- k% g% X7 F- m* X

: j- A. v1 ?" M& c7 ?9 V5 @log10(n)  
2 a/ ]5 \% c# N2 `! t4 g9 V; Q返回n以10为底的对数  2 E/ l, y" V  v: V3 x  \3 V3 P
mysql> select log10(2);   
' R6 Z: z9 i0 J  -> 0.301030   
5 H4 j- x4 Y+ B3 j3 Z# Mmysql> select log10(100);   
5 U) `/ K; Q- M3 g  |  -> 2.000000    7 M0 A: `+ i' Z" X$ t+ R5 i' I) Z
mysql> select log10(-100);   
; i8 D# Y8 ]% y* g  -> null   
4 C- K' U4 t7 D$ G5 w5 y $ k. B6 n8 ~& @; |# K
pow(x,y)   
. M, {' @6 l0 a4 _4 p. {+ @power(x,y)    4 x1 G5 _1 e% c) d
 返回值x的y次幂  
5 Y0 C5 ?# p9 z! smysql> select pow(2,2);    5 S( K5 ]: z* ^; q' C
  -> 4.000000    6 i$ m6 C% Y5 a8 P/ [- P1 d& U6 _9 ^
mysql> select pow(2,-2);    ; l3 Z/ s9 R/ }# A( U
  -> 0.250000  
) A6 r$ }$ x% n& Y8 m' ]" B/ j. M  ~* r# L
sqrt(n)  
# n! `- r8 y+ W4 h 返回非负数n的平方根  
6 e7 u5 k( l2 k* r# ~: d9 Omysql> select sqrt(4);    7 T0 J! [' G4 i, [9 ~- C( u( R; I
  -> 2.000000   
" L: [4 F' Y: p; s3 R5 V! Y' Lmysql> select sqrt(20);    1 P  n* D0 T2 B  R* M3 f$ n  K
  -> 4.472136    8 }0 n: Q0 |, G" E  ~. `

2 A, F3 [' K+ u; ]$ w/ r: W/ o3 O0 z  Mpi()    4 C) B" G6 _9 K' J2 A
 返回圆周率   
& \% I& t6 u8 u% i& Z% ^mysql> select pi();    " G9 Z3 @" t7 b% H
  -> 3.141593    - Q/ U8 v  {$ x! s. W" p
" i; g! c' [4 W2 e" }8 u: G
cos(n)  
$ }6 {8 K/ Q8 R 返回n的余弦值  
, |: K& \+ S9 v) j# n5 L% w4 X& Qmysql> select cos(pi());  1 Q: v1 D  X8 P8 _" @1 W
  -> -1.000000    7 A* @, n' Z5 o
# B5 N" i! m6 W
sin(n)  % x7 z' x8 P% Y- S. ~; {( K
 返回n的正弦值   
, ?) i9 n& w3 W* ^mysql> select sin(pi());    1 N2 T* N0 I; u$ O/ a. f( e3 K% J
  -> 0.000000   
. t, m7 ?4 I  k" |! _  k
0 H, G5 o- K2 H, L: V5 |3 n* B) ctan(n)  
! v6 I" F: O3 a( U  n. `: X返回n的正切值  % j, v, k2 p# y1 ^$ g, q% e
mysql> select tan(pi()+1);    3 {  f8 \- y" ^9 B" b) H( z
  -> 1.557408    # L: p- k6 m2 Q% ~' E* v& w( C
" u  u3 }! l$ |- W, g. b* j8 E+ R2 w
acos(n)    ]; }0 f) i. l$ i% U+ U' _
 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  
% s7 B  G- e$ [  h; Dmysql> select acos(1);    ) [/ O1 N. e" ^7 I% y  |6 p
  -> 0.000000    ) b! A: W$ R! j- F7 W' v6 a
mysql> select acos(1.0001);    3 p' J  }3 U7 u0 k+ w' @
  -> null   
8 d' q0 N0 S/ R. C( Zmysql> select acos(0);    0 B+ ?; [/ ?' y1 q
  -> 1.570796   
: h* p& b  I: o, X- A
$ J' H, b6 F$ B% fasin(n)  ! C; i, N! A' |" P5 c
返回n反正弦值  
2 f. P' m7 |3 y3 Qmysql> select asin(0.2);    0 e+ E+ e3 ^; @, ]3 A( x0 R
  -> 0.201358    0 H( O+ g& }/ S; z9 e) s) l
mysql> select asin('foo');    / d2 J+ A% l' v9 a
  -> 0.000000   
0 i; I8 E2 H* P8 q! [8 y + `3 V5 d. G/ T9 W0 f6 P
atan(n)  
$ H. p2 ^' F- @返回n的反正切值  
8 T6 e. V/ ?/ k1 B' nmysql> select atan(2);   
; ?  Q$ l- k1 y  r$ F: s+ w4 `  -> 1.107149    ; o, B6 B) ~5 p& i& y- O
mysql> select atan(-2);   
! f& J7 g. Z1 S. c( P  -> -1.107149   
- k; P: B. h8 n' P( b7 i7 latan2(x,y)   
; @5 ]( |7 g1 O  z4 k* s/ p1 _ 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  
& \$ a, X4 f# g4 ^( l5 A( Rmysql> select atan(-2,2);    ! r* e4 U6 r; m5 t$ |
  -> -0.785398   
  a" Y/ r, d" |2 I! L! d; b/ nmysql> select atan(pi(),0);   
' c% g3 i# {# Y0 J; d  -> 1.570796    * C9 B# O& g! T4 J
9 m+ J/ H: f. Y- [5 s1 L
cot(n)  & a- s  t* B7 d4 h' U, E
返回x的余切  
1 w0 k) ]4 [( n- [2 }  K4 N; Tmysql> select cot(12);    ; }- [- _" `+ T/ s
  -> -1.57267341    5 o0 X. X- R9 L! _4 V/ O
mysql> select cot(0);   
+ q7 B5 j, g9 }  -> null   
7 s% z9 |/ @7 z 5 I% G% N* T' o- {# Z
rand()  
: c& |* r% Q6 B/ Xrand(n)    # o  o% s, S; h5 C, @
返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)   ]# v& [$ N: ~& d( n& p/ O
+ x& q# l) J& i# e- s7 H
mysql> select rand();    7 i! U5 {. F3 t! @; l  s  h. P
  -> 0.5925   
7 D, v$ S2 E- P1 Fmysql> select rand(20);    9 `( P/ H/ M! N: H4 k# E/ q
  -> 0.1811    ; A2 H7 ^- z" K: w% _  U
mysql> select rand(20);   
, g6 U$ J2 I. F, N8 c( S  -> 0.1811   
* l2 D0 L/ s/ A7 Z2 Smysql> select rand();      c. A3 |* u6 |& {  W
  -> 0.2079    / q2 h6 ^- |$ k4 X1 k' [
mysql> select rand();   
( z  u4 c$ i5 k( f# r; {! _  -> 0.7888    # B! q. h, y9 q4 E) p" \7 K

' O: V7 z& T) k) ]( ~degrees(n)  
2 x0 N3 b# L; V# _" @把n从弧度变换为角度并返回  
. M! k4 t9 q6 p' F' Wmysql> select degrees(pi());    ! A* M1 G( R# K$ _  R1 Y  ^
  -> 180.000000    / W; d2 D5 `  e
4 T, }' `* m: w, Q/ I. |
radians(n)
0 a. Y7 C; a( f& b8 ], B把n从角度变换为弧度并返回   1 A; b& e* b2 R7 ]2 ?' K& v  }1 ]
mysql> select radians(90);   
# o4 t' m" r5 ]% i4 X  -> 1.570796    3 z" U6 b# W$ ]$ ?8 _( L' p2 g
# f  x; x. Z  R5 N. D
truncate(n,d)    5 q2 {% c* K3 f
保留数字n的d位小数并返回    e+ A* b7 y+ Q& a2 m0 q* g' n' Z: b
mysql> select truncate(1.223,1);    % @+ z2 [7 q+ G* _4 {/ I& L# h
  -> 1.2    * G1 P& R; X4 M
mysql> select truncate(1.999,1);   
5 A: B, Y: N8 B4 Y3 ?' J4 ^7 C3 @  -> 1.9    " G4 X) N+ k, U& J: |+ B0 T7 F) O
mysql> select truncate(1.999,0);   
% w, |0 j1 v6 G5 H. t  -> 1    : [" v+ v+ Y. W
6 t$ n" j* f* L* T( Z
least(x,y,...)   
, s% C' ~: C, @9 w返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
2 o# J( ~3 Z& }( Vmysql> select least(2,0);    4 v2 q  m$ T7 v( f# p
  -> 0   
0 ^6 U2 [3 u, ?mysql> select least(34.0,3.0,5.0,767.0);    9 g# M9 L9 y6 g& H
  -> 3.0   
4 E' V& j8 w4 \# Q* V( b0 _) Qmysql> select least("b","a","c");   
' w8 m8 w; P3 l- h, M- v  -> "a"   
$ G! ]# m& V3 K" B 5 x+ R9 P% ]5 f9 H  m, S
greatest(x,y,...)   
2 v5 N  O4 e& g8 y) _: w9 Z. R返回最大值(其余同least())  % t( }* v0 A6 r7 v! t
mysql> select greatest(2,0);   
8 }9 u  O: R/ M/ V  l  -> 2   
* {/ M3 K; h1 u; xmysql> select greatest(34.0,3.0,5.0,767.0);    % W1 ?- E  B0 W! J8 y6 ]
  -> 767.0   
2 l6 t6 M0 W* j. a3 p; K6 G: K4 emysql> select greatest("b","a","c");    6 A% P+ b( L! E  p5 g  j2 L) h
  -> "c"     
% P: F# X+ v* U& d! O. \
) T! y! `2 r3 W) W3、时期时间函数
4 B2 }4 w4 H2 Q: D6 Hdayofweek(date)    1 w2 t' G8 C( p' S9 J% V* ?
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  & x! B7 Q3 n8 ?9 ~9 E6 I
mysql> select dayofweek('1998-02-03');    / r. b, H  L: X) `. `" X# H
  -> 3    $ V! U3 h) O' |) }5 e8 n. p% q  [

' \/ o$ m3 l: L/ sweekday(date)   
0 K6 ~' T8 W( W# J0 l返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
! V9 s3 v/ s# [$ T) d6 ?  ( v' }. t& }1 R  Z3 ^  l& @1 d
mysql> select weekday('1997-10-04 22:23:00');    9 x- @) }( T- _  ?- I5 j
  -> 5   
' D6 K9 F9 c4 S, L$ T, fmysql> select weekday('1997-11-05');    % a9 F+ v( |7 A$ \( }0 p8 w
  -> 2   
  l) T" v6 v. ]) j. K3 x6 Y) y 1 D' l: `* o# I" ]7 u1 t
dayofmonth(date)    
, ?; n& Y. p- z7 U/ c返回date是一月中的第几日(在1到31范围内)    6 |3 `, h0 C: x+ u
mysql> select dayofmonth('1998-02-03');    4 x! k2 N7 C4 L) i: u8 I
  -> 3    7 j% B3 `* g* x+ O: W* [3 g$ {) h
- [3 O  J' B& v9 r
dayofyear(date)   
; ^9 H# B# V  O# t1 d0 T* S; r# `返回date是一年中的第几日(在1到366范围内)   
, k$ \, \: ~* ^mysql> select dayofyear('1998-02-03');   
8 f. h0 Z- d4 z' f# B! ~  -> 34   
  ^3 B& R0 n+ o2 y5 V7 }2 S1 {- Q0 q . I5 b7 G( ]9 }) G" s
month(date)    * d. a7 o4 C/ \5 {% R
返回date中的月份数值   
% W) O% I( N9 s# F' O8 n8 H; jmysql> select month('1998-02-03');   
3 |: |9 {% W4 R5 Q  -> 2   
2 t1 `+ s& n! F* O6 j2 A
1 U" C* ^# D  r5 z0 Ddayname(date)   
% R/ I* j- d0 u- L  e返回date是星期几(按英文名返回)  
; R- Q2 J1 A) l6 S' l( tmysql> select dayname("1998-02-05");    0 \8 n! b# J4 e$ ?+ G2 D, L
  -> 'thursday'   
9 j. x, K# ^! K 4 d" L* R0 K9 D+ `
monthname(date)    6 b* l+ e) ]2 B8 I+ d
返回date是几月(按英文名返回)  3 Y/ u" M0 Z* _) }2 H8 F" s# ^& V
mysql> select monthname("1998-02-05");   
5 _! }7 P* B: r; ?& U. Y: P, i" d  -> 'february'   
2 _' h# i& W" X, g' [8 c8 y
1 ]: e& g) Q; p9 z' _quarter(date)   
. M( K" s5 S/ T0 e  q1 P返回date是一年的第几个季度   
. {' v7 M6 l: k+ E+ |" D" Z. d- lmysql> select quarter('98-04-01');   
& v! T0 Z) A/ v" D% d7 f/ @5 W1 B3 |* C7 v  -> 2   
  a' X% c# Q& h7 H8 M
6 O+ k1 c1 F) G. R  }7 f! {4 P8 Wweek(date,first)   
7 ]0 D5 {! d; ]1 u返回date是一年的第几周(first默认值0,first取值1表示周一是
) O" {8 t& {- D. Z' q+ O周的开始,0从周日开始)  ) L) u( I+ @0 P$ O
mysql> select week('1998-02-20');   
" l2 Q. B; e2 V3 \) m  -> 7    # K, d3 a2 G% C/ {) A- B: \  M3 x. E# j" A
mysql> select week('1998-02-20',0);   
+ _+ i0 f% ?( V* e  -> 7   
: D4 y  N) p- r% ?5 Zmysql> select week('1998-02-20',1);   
% w9 i7 @1 W7 I5 c  -> 8    9 v2 P4 W* U5 Z- o0 P3 u# h6 z
) B4 E# q9 k7 p; _
year(date)   
/ r9 ?. ]+ n7 y2 J1 ^8 Q+ X, Z+ H- ~返回date的年份(范围在1000到9999)   
  v% p6 @7 \( x% t' lmysql> select year('98-02-03');   
& t9 N0 `. [2 P3 L9 ?8 g  -> 1998   
  r4 i: f4 ~0 C2 v6 |3 H! B) Z # V, K/ [% l9 E: G3 o  P6 q
hour(time)    2 `8 }% v* Q- U6 C' h* r! l! s
返回time的小时数(范围是0到23)   
3 |/ h# \# g/ ~% p9 K) k$ bmysql> select hour('10:05:03');   
! P, O  s9 v7 }7 L0 Z  -> 10    ; W# i3 K4 ?' @% [1 G
( `# I+ x2 k/ r
minute(time)    2 ?  `# g" U8 ^8 f/ k6 V
返回time的分钟数(范围是0到59)    % G9 b' y# ?3 C8 E& s$ \5 }2 i
mysql> select minute('98-02-03 10:05:03');    2 V" C1 F8 l/ c5 ~9 I
  -> 5    * P: @7 X3 t7 t- S+ E, K
* C/ b# w, R3 d# C( y, G
second(time)    * h( T6 R* ]) p. s7 t& l" `2 a+ \
返回time的秒数(范围是0到59)   
2 v& H) S: s7 ^3 j; rmysql> select second('10:05:03');   
3 }3 X4 R! u# c% M* B6 ]  -> 3   
- o* `" I8 O3 R: R% K3 p
# P0 S1 d* a$ c* W3 F( k1 z: rperiod_add(p,n)   
: e' z/ I$ \1 b( @) O9 T增加n个月到时期p并返回(p的格式yymm或yyyymm)    2 D. Y& V" d* H7 n0 J7 p, x
mysql> select period_add(9801,2);    : W+ X/ g7 G3 V4 S& M5 c% {
  -> 199803   
8 Y4 L' `4 ^) }6 H " t0 a( N7 B" j  p+ U9 h5 R0 M2 H
period_diff(p1,p2)   
8 ~3 ]) J& C+ X2 m* R) O! \  e  t! }返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)    G# X' n* k. o+ e$ Z" x7 k" g
mysql> select period_diff(9802,199703);   
- m! i- d% b" O6 l% ^' @  -> 11    # T; a# e2 l3 j

8 @, }% I5 `1 i. P  w4 v% Gdate_add(date,interval expr type)  - b1 S2 b' ~* Y- ]3 U. b$ _3 H
date_sub(date,interval expr type)    4 C/ v( L. E* q( b; q
adddate(date,interval expr type)   
* o; J, a: d* O) y; X; T. Gsubdate(date,interval expr type)  
6 A( w0 `6 a8 ]/ w: u. j对日期时间进行加减法运算  
5 U! z/ Z4 G3 o9 U3 q6 ^  Z(adddate()和subdate()是date_add()和date_sub()的同义词,也( W* [7 |' x3 @! w) P
可以用运算符+和-而不是函数  4 O* |3 {: @$ b: s* `/ R+ _# }2 Z
date是一个datetime或date值,expr对date进行加减法的一个表' r% R8 w* t" ]0 `
达式字符串type指明表达式expr应该如何被解释  ) e4 F: O* q7 E: W& h8 ]0 f4 E8 ^" E
 [type值 含义 期望的expr格式]:  
' ]" _% t" ]0 g% i* Z second 秒 seconds   
& v5 X' k; J* u6 M minute 分钟 minutes    , \+ N* e% _: m* k+ F
 hour 时间 hours   
( M  N. T5 K7 [, h0 O; }- c) O day 天 days    9 \: F9 Z7 F; R& {5 G/ ~% L
 month 月 months   
/ O! o* F; o6 O# p( H year 年 years    , I. V2 J6 V! C" d( ^2 X9 K
 minute_second 分钟和秒 "minutes:seconds"   
# Y. R1 E* P* g1 L& K7 ^ hour_minute 小时和分钟 "hours:minutes"   
2 f' K# A  U4 S+ D! i9 T; ? day_hour 天和小时 "days hours"   
7 [2 @) c7 G, Y8 T5 x6 L+ F year_month 年和月 "years-months"      F6 G/ O- o+ ?+ \( @
 hour_second 小时, 分钟, "hours:minutes:seconds"    # n8 P. Z% O- E' s5 w6 Y9 w' W
 day_minute 天, 小时, 分钟 "days hours:minutes"    5 p; s) S1 n& D7 R  W) m
 day_second 天, 小时, 分钟, 秒 "days
! N# ~/ r& v) P( T* shours:minutes:seconds"
0 k# \% i+ s: X$ d  N) {4 { expr中允许任何标点做分隔符,如果所有是date值时结果是一个/ _3 @8 ?6 N5 a3 {! ~6 ?
date值,否则结果是一个datetime值)  
4 R7 B8 b# y9 e4 y 如果type关键词不完整,则mysql从右端取值,day_second因为缺
, @' p0 G5 R: L! L  X) t少小时分钟等于minute_second)  
4 V; r7 F; t7 z" N4 ^4 m  X 如果增加month、year_month或year,天数大于结果月份的最大天
! n; x- U" f1 a# d数则使用最大天数)    1 L+ m% S( W$ }$ D0 W
mysql> select "1997-12-31 23:59:59" + interval 1 second;  
: n1 J4 o1 _5 j, [1 o, A) x
8 c. e; o5 n% |, z  -> 1998-01-01 00:00:00   
1 t% J! Z+ f- X  Kmysql> select interval 1 day + "1997-12-31";    ! P/ }. L; u" F3 n
  -> 1998-01-01   
- l* T3 \8 I3 v) i2 T& Amysql> select "1998-01-01" - interval 1 second;    5 K2 U3 O8 P# M# M  g7 }0 l
  -> 1997-12-31 23:59:59    : k; X6 c# `6 I/ K
mysql> select date_add("1997-12-31 23:59:59",interval 1% I; x% o" `; j6 n! }
second);   
. a1 Y* s2 M; _5 H  -> 1998-01-01 00:00:00   
; a: C$ `+ o- ]' ~0 n' `mysql> select date_add("1997-12-31 23:59:59",interval 1# P- Q$ H) o( y" A: A) x
day);   
/ `3 D( F, p; a2 M( j& {  -> 1998-01-01 23:59:59    ! _1 q! Z6 d9 L+ ?6 G
mysql> select date_add("1997-12-31 23:59:59",interval; [! p8 W# @1 Z  T; [) _9 }1 L
"1:1" minute_second);   
& p5 h2 }, A# A) z& B+ [- t  -> 1998-01-01 00:01:00   
  e2 c9 Z# P  `2 a3 Z1 nmysql> select date_sub("1998-01-01 00:00:00",interval "13 q! j& C4 ]( U& g" S3 V5 o! U
1:1:1" day_second);   
$ v: |. L5 k/ `; W0 S$ m$ |: l4 z  -> 1997-12-30 22:58:59   
3 t, ~; B: S: B% r4 Kmysql> select date_add("1998-01-01 00:00:00", interval "-1* S1 R; ^: U! w% R4 b$ r
10" day_hour);  
; ~$ `. ^5 X* T6 s% S& x  -> 1997-12-30 14:00:00    + I" b( e  c* ?* ?$ g
mysql> select date_sub("1998-01-02", interval 31 day);    4 W7 A  C6 o' X* S' E
  -> 1997-12-02    4 d- R! d# M, ]. i
mysql> select extract(year from "1999-07-02");   
. ]4 ~; N9 B) l" {" a  -> 1999    ) k3 a5 k' m" T6 M
mysql> select extract(year_month from "1999-07-02& k; }! R" w2 e1 v6 x( n5 c
01:02:03");   
0 A" L  i% _2 n+ |0 P  -> 199907   
/ L1 r+ h, ~5 Emysql> select extract(day_minute from "1999-07-02
& l7 Z5 U2 ?2 E6 V) u; y( P01:02:03");    : \" j5 {: v+ m2 v. w- S
  -> 20102   
  U' a& P0 w3 t' Q2 w) T, r
7 |) P8 e. [! X3 o% @( Z" Uto_days(date)    ' ?) l8 {8 Z* M' y, @, t9 f! K
返回日期date是西元0年至今多少天(不计算1582年以前)  
5 v9 v& Y% p* c* @2 Q, s  Vmysql> select to_days(950501);   
8 B. o) B. o$ a7 S7 H1 p4 S  -> 728779    9 p/ A) x  c3 c5 p2 ?  P* a2 n* o7 s
mysql> select to_days('1997-10-07');    ! i: z& @3 G4 k3 d$ L
  -> 729669    ; _1 C* p' Q/ M: v
( L$ d* p) z8 x7 c
from_days(n)   
5 z2 Q! X% E, Y9 X 给出西元0年至今多少天返回date值(不计算1582年以前)   
3 t3 n: ~6 B# v' g" T4 e5 ~  emysql> select from_days(729669);   
/ u- s! |& V9 `' g! g5 K  -> '1997-10-07'    * u! v- v& |/ T3 Q- d

) w* |' n1 ^  Y4 P  X# Jdate_format(date,format)    ; N) r+ @% \4 Z
 根据format字符串格式化date值  
; j1 \4 k1 ?/ C# F$ b1 b (在format字符串中可用标志符:  & q' u! V2 R0 \( l( j
 %m 月名字(january……december)    , U7 l# A: m3 l% F
 %w 星期名字(sunday……saturday)    - G8 f1 x4 e: X. B" r& ~6 ^6 m8 a; K& P
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    0 i. q6 Q' e- {* C0 w7 l
 %y 年, 数字, 4 位    + q9 w' t! {7 _# F* b" I3 h
 %y 年, 数字, 2 位    ( @1 d# l  z) a" R; H: k  p7 [
 %a 缩写的星期名字(sun……sat)    # }  y! u: U, b3 Q' e/ B6 Z
 %d 月份中的天数, 数字(00……31)   
4 a% N+ Z" v& n, X( F& K6 l* l+ H' X %e 月份中的天数, 数字(0……31)    $ g- Y2 \9 N/ c6 j5 y8 @
 %m 月, 数字(01……12)   
2 t1 x/ J3 V, ?8 O$ n %c 月, 数字(1……12)    * o2 `+ C8 _( y  ]% X
 %b 缩写的月份名字(jan……dec)    3 R8 C# R( u# t: I# R+ |, o
 %j 一年中的天数(001……366)    $ Q# F- v! h7 Q! |& y
 %h 小时(00……23)   
  [7 a* ?( s$ q6 v4 w %k 小时(0……23)    5 G6 l2 N! v+ N0 w/ i3 n" s
 %h 小时(01……12)   
. S( Z, I  T' A( ~" y %i 小时(01……12)   
! \9 C  g: A4 H6 | %l 小时(1……12)   
9 [/ p4 Q. e" V+ m+ R %i 分钟, 数字(00……59)    ! t5 L7 y) u6 e# G; S8 `
 %r 时间,12 小时(hh:mm:ss [ap]m)   
1 c9 I) Z! \% D9 y6 \ %t 时间,24 小时(hh:mm:ss)    2 Y9 u6 \( P9 \
 %s 秒(00……59)   
/ Q% C  j9 ?- c' P+ u$ l$ w %s 秒(00……59)    - u* M5 y6 S5 {& Y" c& k
 %p am或pm    1 S% X0 o3 q: q4 S8 a7 X. T) H
 %w 一个星期中的天数(0=sunday ……6=saturday )    " T0 G6 L0 P9 q  V" e
 %u 星期(0……52), 这里星期天是星期的第一天    2 M& E0 P' y$ S$ C9 y/ H& M
 %u 星期(0……52), 这里星期一是星期的第一天    ! W9 l6 o! ?1 f* ^# C1 ]
 %% 字符% )  3 C* D( O# u) M" c' c. i
mysql> select date_format('1997-10-04 22:23:00','%w %m %
6 i% `4 q# H- @2 o! Sy');   
  L+ ^2 G3 H7 a  q* W. h/ V# x  -> 'saturday october 1997'   
5 e! w5 }3 X  U. W7 S: wmysql> select date_format('1997-10-04 22:23:00','%h:%i:%, w" P# [" w) ]( Y0 [9 W4 N
s');    ( Z4 u" ~% f+ k% g
  -> '22:23:00'    4 D( i  ]) d# y: J" y. y
mysql> select date_format('1997-10-04 22:23:00','%d %y %a: X% e4 Y8 _! G* C- X
%d %m %b %j');   
  h% Y; b* L* j/ k/ S4 V' g) u$ F& Y  -> '4th 97 sat 04 10 oct 277'    , ^- L. F: G: W! e
mysql> select date_format('1997-10-04 22:23:00','%h %k %i
+ ?2 x! G& S2 @% K' b%r %t %s %w');   
( a. q9 T: r/ S, v* t) l  -> '22 22 10 10:23:00 pm 22:23:00 00 6'    . \& \. i# a  g3 c" C$ q
5 w0 V* Z) ?( |5 b
time_format(time,format)  
! {- i0 m$ B" D0 F3 [ 和date_format()类似,但time_format只处理小时、分钟和秒(其
1 K) K) q; z# i% I余符号产生一个null值或0)  & y+ D" V( ]8 G- R. Q

$ z* j5 P* [% S7 |curdate()     ; O& z- C2 V4 {+ X" b, u9 k. D7 X
current_date()  
& N  u  {; ~3 o/ e 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所: C( W5 G) h$ e: w' l2 z3 {. Y
处上下文是字符串或数字)   
4 b" ~# K+ _/ Tmysql> select curdate();    1 K7 H2 ^! [) q. K: n: h+ [' w. n
  -> '1997-12-15'    6 ~& W4 O( W! N+ O
mysql> select curdate() + 0;    9 U! f" q# D& W1 Y# s; c( y
  -> 19971215   
3 e& G  g+ j8 A  f$ ~
( Z) U( R. e& a9 i$ d; |! ~/ t: w4 Rcurtime()    ' K: v6 n3 \  x
current_time()  
: c4 R5 ?) M: X1 F+ q. S" O9 j 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
; G9 R" Z5 Y; }+ F' k1 d, u/ p+ a下文是字符串或数字)      ) A: k3 i; ?9 [* E/ T' M. Y
mysql> select curtime();   
! w9 E/ P+ ?+ {5 t; c  -> '23:50:26'   
# I" ?4 M1 K* ^* H$ q% b: smysql> select curtime() + 0;    5 L  M- W; V7 @) p% m9 D( o" V
  -> 235026   
1 R/ F) j6 v& c# \$ I7 F" _6 Z ( L6 B; G, a1 S) p: W" Y  I
now()    7 C% L& C, u+ Y* V( ?3 _7 G' j) U
sysdate()    1 U" y; B  B2 r# g( {' h2 s
current_timestamp()  , X; p2 [- t* z& `: y  |4 G% g
 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期" Y* L4 ]7 a7 b
时间(根据返回值所处上下文是字符串或数字)     3 h+ f: A, k) a
mysql> select now();    % B9 h; x* [* \# g. ]7 H
  -> '1997-12-15 23:50:26'    ) \4 L/ f# [# _
mysql> select now() + 0;   
- j+ t( J' m" w5 E  -> 19971215235026    0 X& ^* t9 N0 \) V* }. I
' t# ^- C" U) W* Q9 _% y
unix_timestamp()   
, C; d* r# I! ^unix_timestamp(date)   
) n. c9 [7 P& |- s; N6 E3 z& r返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
+ \( b+ L9 v4 g7 j! R: E* n1 k7 M8 B数,date默认值为当前时间)  ; y( {! s6 R% ~/ Z: K+ l
mysql> select unix_timestamp();    ! z6 L* [0 V1 A+ W. z5 l
  -> 882226357    6 d( d. Q# b2 z' Z) K1 i/ p
mysql> select unix_timestamp('1997-10-04 22:23:00');   
; o: {. D8 c' n6 }' Q  -> 875996580   
8 R6 A6 B; P  ~1 S1 Y
* w( R8 Y1 c4 vfrom_unixtime(unix_timestamp)   
6 M5 F8 S4 |, U1 R以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的
: z6 N  o& E  G; u9 t1 T, H# U值(根据返回值所处上下文是字符串或数字)     3 f; O# K1 \9 U% f4 N3 W4 T8 s, W
mysql> select from_unixtime(875996580);   
+ A* {' V* D! Y7 H1 d6 i1 u  -> '1997-10-04 22:23:00'   
4 G' L5 C7 m( Smysql> select from_unixtime(875996580) + 0;    ) g9 @, C7 n6 y% @* o  I4 i+ m
  -> 19971004222300    " b" n" K- h1 X/ z) H. j

4 b3 K) @4 D3 F6 E$ K' qfrom_unixtime(unix_timestamp,format)    $ `9 D) w. y9 T* Z
以format字符串格式返回时间戳的值  
- @2 Z9 \* p# e, Q5 Y! T& |9 xmysql> select from_unixtime(unix_timestamp(),'%y %d %m %
+ k( F% a! w: B2 nh:%i:%s %x');   
; z2 s. a  Y' _4 I# a  -> '1997 23rd december 03:43:30 x'    & F* g% [" m: k  k' {

: c0 N2 p" v; s: G7 qsec_to_time(seconds)   
$ m$ A/ m9 L; z: O. t! e以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
( e) W. Y' Q0 o9 R- k: Lmysql> select sec_to_time(2378);    ! i" f/ B+ P- L! W" P/ r* o
  -> '00:39:38'    6 O# P/ U" H! f3 w
mysql> select sec_to_time(2378) + 0;    1 f; s4 v; H' v$ e5 R0 A
  -> 3938    $ I7 W/ R1 F4 x, l' s0 y

9 \% v( N: H" q: I  t8 X; Stime_to_sec(time)   
; a2 @7 l$ X( ]' m, V返回time值有多少秒    ( z3 g4 x# b' Z& w  |" l/ A2 |" q
mysql> select time_to_sec('22:23:00');    " h. p1 v& y! D/ y% F2 C
  -> 80580   
# E9 {* T# Y" E0 Q" m; ymysql> select time_to_sec('00:39:38');      m2 ]/ U( L% k- V; r
  -> 2378
6 y* J/ _: @$ X  H7 W  A/ Y
) z( Z( n( i# _& q) I# z4 ?! ^转换函数; b' f+ b, p' z  L* M) a
cast$ J! G- f9 m! @
用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]
" N" v' w+ c( U/ D3 h0 ~/ V6 ]% v# l实例:select cast(a as unsigned) as b from cardserver where order by b desc;) j# E. r+ A, M$ z: a5 E
convert:$ o; Q7 q) a+ G' H. e
用法:convert(字段,数据类型)
5 l; O& w5 @: o) ~) b实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

7 G# n' s) {$ f- y5 n6 Y4 Y
回复

使用道具 举报

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

本版积分规则

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