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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数/ Z" N: Y% ~1 ?! j3 U4 `. u
ascii(str)   
3 ~5 }5 `+ Y% k3 F6 ]# o& H% k: {# ]返回字符串str的第一个字符的ascii值(str是空串时返回0)  
% Q! P! Q/ q: }+ |' X7 f% Dmysql> select ascii('2');  
. x! c* c6 I; Q2 s$ _2 T+ a  -> 50  
7 y6 U% d# g5 ~3 v) t  umysql> select ascii(2);  
6 W) m# P2 T/ [  u" S1 V  -> 50  . b: M! e) v# N" q2 _
mysql> select ascii('dete');  4 w7 k; `' i/ w, R1 m
  -> 100
& A: u6 t- d4 ?# Q  N
ord(str)   
6 y; {+ z/ V% o6 r0 _% S如果字符串str句首是单字节返回与ascii()函数返回的相同值。* j! c) E$ R  d  x+ Z% i: X) b

+ O8 k: B) y6 a2 O0 o如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  
0 {: e' e/ s6 K9 W  Emysql> select ord('2');  
* r; o  f  S# o! R  -> 50  : [2 ?. T3 _9 R( J2 q: M7 O
   % J. C9 \8 l! k- ^1 X3 m
conv(n,from_base,to_base)   : I, p' y# ?% W* ?2 B& s
对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
5 v, c" G- q7 P' Q+ nmysql> select conv("a",16,2);  
4 E9 T7 o8 t: P  B1 a  -> '1010'
! C* l2 K" C0 l- cmysql> select conv("6e",18,8);  
0 V3 l0 K1 w1 d; W  -> '172' - s: u& j3 R% j4 c
mysql> select conv(-17,10,-18);  
% B, r% L9 j3 g2 X  -> '-h' 2 p( Z! H* b) z# w5 m4 x
mysql> select conv(10+"10"+'10'+0xa,10,10);  
$ Q7 e6 p, T: |9 Z( D2 l. N  -> '40' $ A% H* `( F0 X' y+ L+ o# O! }2 H
   
: X! G" o+ L+ k" B3 f# R  T4 J6 Z% vbin(n)   
! {+ C8 p- M5 G" q9 s& l8 B+ R' s1 f5 s把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  9 I0 n% Y) z1 R1 K4 E
mysql> select bin(12);  
: @& W% ]* m0 r0 v* [  -> '1100' / \! O& E: b) C/ }  P( ~2 {$ v
# @$ j2 u" F; O- o# p; C
oct(n)   0 S' B) i" X/ {
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
; V( L9 [; g, r5 Y# I) umysql> select oct(12);  
4 _+ y& c/ t  R# N6 l* E+ o  -> '14' 3 f: p+ j) B) J9 J$ V
   
+ l2 V: ]; {. G# z2 M2 Nhex(n)   & {8 J* L, D" g, a% g+ X- K) q
把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  
. g6 r0 @$ w( q: S' I% Kmysql> select hex(255);  
, ]7 K2 ]9 f+ b  -> 'ff'
* g6 Z' f, m% Y6 i$ X$ R. ?# W   
; A3 E) e* k& }/ ~& m* hchar(n,...)   
8 C+ ~$ B$ L) s3 K, N: d+ g5 N' e返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   # r; r  n& _4 }* \* S" ~9 Z" ?
mysql> select char(77,121,83,81,'76');  6 n7 ~$ s  d/ h2 V$ B4 [; [! W
  -> 'mysql' , h/ X: r8 H6 e
mysql> select char(77,77.3,'77.3');  1 a6 f* }$ x0 w0 t
  -> 'mmm'
( j7 |: D3 J. |4 x2 e2 W5 J+ `   : b+ R+ Q1 F, Z
concat(str1,str2,...)  
0 X9 S- J; Z: f+ ^% m把参数连成一个长字符串并返回(任何参数是null时返回null)  
2 G7 d* s$ q" @5 K8 u3 Cmysql> select concat('my', 's', 'ql');  
5 L7 E  @1 `( |7 W% G" {  -> 'mysql'
4 u: d7 U9 I- i; i; U1 Omysql> select concat('my', null, 'ql');  & L+ P- W$ ]% q0 s7 i
  -> null ) W  v) P& U7 h: g
mysql> select concat(14.3);  
9 A7 p/ z. x8 k6 S4 H2 s/ _  -> '14.3'
7 d8 [; q7 l0 u0 J! } & ]; w- k, C0 E9 P/ E
length(str)   
9 k* D! c, U, M6 z5 doctet_length(str)  ; y, U" X- r9 X4 X7 T
char_length(str)  0 i8 o7 X8 ?1 @8 ^0 A6 a, x& T
character_length(str)  
0 O" Y" [2 z; |. P# {+ G返回字符串str的长度(对于多字节字符char_length仅计算一次)
2 f+ A8 U+ l3 E/ Smysql> select length('text');  ( Q8 S' Q6 C4 K6 h1 D
  -> 4  
9 o8 V6 W& P& U. c" q/ o+ }, omysql> select octet_length('text');  
; y( A+ e1 j: M+ I4 T5 [; ]  -> 4  
1 ?* @# A& \+ I. T. B
. H! `" H. m& s  g6 U7 t% @7 C6 Vlocate(substr,str)   ! j% [0 [0 P1 p% h
position(substr in str)   
# n7 V9 O+ b$ Q9 M2 x返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
) E  H5 t5 n, x) ?mysql> select locate('bar', 'foobarbar');  
, t* i6 _& f- V9 D; S  -> 4  ; D4 R/ h( P5 _& ^3 L
mysql> select locate('xbar', 'foobar');  4 K* {; m  r/ r1 s8 o9 r5 F
  -> 0  0 I2 U) w; r% Y8 {. J( K* n
   
7 ^3 [' J% A( q8 u6 Wlocate(substr,str,pos) 3 {# E- g# Y) K; }  N
返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
( x7 c- E( L9 i6 j! e- E6 \9 fmysql> select locate('bar', 'foobarbar',5);  " M6 A; [# t# ]* y  Q& |& Q! S
  -> 7  
  D1 R$ l  F4 s  }
- e, c" u' x# S7 ainstr(str,substr)   ( {7 a) Q$ u- a6 c, f
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
9 k$ E3 a/ h2 imysql> select instr('foobarbar', 'bar');  9 s  L: N* ^; ~9 z
  -> 4  
$ E7 ?( B/ X/ f/ d# d5 C0 Rmysql> select instr('xbar', 'foobar');  
# l/ t# x( V# f& [  -> 0   
! O& H) q1 z6 I6 H* }% g4 v+ F5 x
9 z2 S" Y; Q  }8 N$ {+ |3 G! jlpad(str,len,padstr)   
  s7 i5 X% P) q! E) v( `用字符串padstr填补str左端直到字串长度为len并返回  ; p4 ]' ^8 O0 l9 n* z; ^5 g
mysql> select lpad('hi',4,'??');  ' [! N: t6 c7 Q# G) e* R
  -> '??hi'
) y. Q% G  w+ |" Q, k   6 t' E& u" Y3 j" j- I
rpad(str,len,padstr)   ' n# C# h! `1 s2 F
用字符串padstr填补str右端直到字串长度为len并返回  & y( c3 R; R0 u
mysql> select rpad('hi',5,'?');  + g" K9 j3 Q! P8 J3 b9 X1 R$ h
  -> 'hi???'
5 [3 v6 y  G8 Z( c) F/ z . d- C- w: d# o" f8 f4 `6 l# H
left(str,len)   
! \* T. G5 K# D4 I8 @# ^  C) x" |$ H返回字符串str的左端len个字符  
3 I9 `! }- k6 }/ D5 x9 W7 d/ Rmysql> select left('foobarbar', 5);  # `8 Q1 e! G* A& c6 D
  -> 'fooba'
0 y4 P2 |& {% e: C) U/ ?
8 f$ }! w4 B$ k8 w' j  f" ]9 T. {. Sright(str,len)   
' ^" c$ {* i  V5 e- V7 Z3 O6 t返回字符串str的右端len个字符   5 `2 c+ b$ w. r6 m4 H8 K$ p1 P( C
mysql> select right('foobarbar', 4);    \+ e5 R, ~7 t  ?$ K" |/ b
  -> 'rbar' 5 b- x) k+ S1 {, ?$ N/ w- G

" K# U2 a- k& `+ b0 n# n( O% \substring(str,pos,len)   
) R0 V8 g! |! n. G/ A/ Vsubstring(str from pos for len)   
% u# X1 i5 _+ X4 {5 q8 K1 p! K* Smid(str,pos,len)   . U. `8 H  g1 i# H6 y" O# ~
返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
) `; F- R6 |! J& a3 y; _3 H; M  -> 'ratica'
+ r- h2 H: p& T8 m+ t: @1 c. t
0 {; Q' y& _" Q; A5 o. c4 k  Rsubstring(str,pos)   ) Y: t$ Q! a0 H. N" e
substring(str from pos)   
( t: U$ u3 U5 R+ m9 Z) i返回字符串str的位置pos起的一个子串  
$ V, v# t4 F0 }0 D) F: s) umysql> select substring('quadratically',5);  5 ?9 R( l/ K& U' G/ W9 l2 g: P7 z
  -> 'ratically'
/ e0 D6 p6 i- G3 n. W5 [( j* {mysql> select substring('foobarbar' from 4);  
7 g' l: q. d' F2 d: a5 [# c% o  -> 'barbar' 7 f( d' K# d: ]6 V1 I1 ^
2 f' p7 _: f7 O6 j4 S  B
substring_index(str,delim,count)   ( ?/ Y8 m" s) X
返回从字符串str的第count个出现的分隔符delim之后的子串9 i6 N3 P8 q6 V; k& f1 I
(count为正数时返回左端,否则返回右端子串)  
( e5 ~& c9 B/ B, A9 m# hmysql> select substring_index('www.mysql.com', '.', 2);  
+ y" J. I9 X8 M" f5 `3 M  -> 'www.mysql'
  O' g& \; `4 a$ n) k. V- J. Ymysql> select substring_index('www.mysql.com', '.', -2);  ; S; ^/ g; z% ^
  -> 'mysql.com' ) Z& w. I$ ~6 W% g8 ^  B! \

8 e; H" J- s- a5 d! t2 ]: Vltrim(str)   
& p1 a, U  r5 U& i; }. Q6 f返回删除了左空格的字符串str  
2 W/ ^( O- l2 m( Mmysql> select ltrim('  barbar');  2 I3 g1 }  d; [2 E6 P2 k" n- R
  -> 'barbar'
- C3 x6 v8 I  q: i) b0 F; e
! \; V* d; q/ \rtrim(str)   
. J. x) F) z7 ?2 u返回删除了右空格的字符串str  
$ E7 u0 u1 r: o" i! Dmysql> select rtrim('barbar   ');  
  A0 K9 D; N. T4 g) c  -> 'barbar' # c& t( `7 y8 `
# C3 }. H3 d$ f
trim([[both | leading | trailing] [remstr] from] str)  
5 B0 |  @+ o5 g3 V0 h6 s返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  . a/ D" g- ~5 k9 m
mysql> select trim('  bar   ');  " ?0 }% I  c# Q* B, `
  -> 'bar'
* ~6 Z3 L2 j5 ~8 e5 J+ P0 y/ Jmysql> select trim(leading 'x' from 'xxxbarxxx');  6 `# R; ~" ?9 k4 U
  -> 'barxxx'
- H& t: O2 t/ u5 ?mysql> select trim(both 'x' from 'xxxbarxxx');    g7 W& G' o) Q1 b$ i+ g
  -> 'bar' * K4 M) z% G5 f/ o/ G) G/ X% K
mysql> select trim(trailing 'xyz' from 'barxxyz');  
$ n' h- D& ^1 E8 c  -> 'barx'
& K& u% O4 S* e  Q8 a3 o3 x3 n - @  l4 G: e5 k% |7 @
soundex(str)   
9 s+ p3 Q: d$ h2 x6 l& `. n返回str的一个同音字符串(听起来“大致相同”字符串有相同的
) t5 K9 C2 p' k- a7 M4 \; F同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  9 F2 N) t& Y& g: j& {- K
mysql> select soundex('hello');  3 l9 m' i$ w( f' N" q5 ^
  -> 'h400' " K2 I7 P6 _; k( g, x' P$ p3 P4 f
mysql> select soundex('quadratically');  
* z' {$ c5 @& _! @7 Q* D( p  -> 'q36324' + ?7 W: d4 A' P; x  }
   
* ]( b/ `# o. I7 n/ lspace(n)   / O# R! W. C* e+ \: p& V
返回由n个空格字符组成的一个字符串  ( _" k" d9 ?& t: y! }( c4 _; X
mysql> select space(6);  1 P0 b6 G" W( y, V; Y: S
  -> '      '
8 ?! @: I2 H& O/ L. |. R' J   " r/ A6 C4 ]* Z3 h
replace(str,from_str,to_str)   
# w5 U! N& r4 o用字符串to_str替换字符串str中的子串from_str并返回  
9 J* T, z& N  _" \, ?mysql> select replace('www.mysql.com', 'w', 'ww');  
% ^8 o% A) @) [- f+ `  -> 'wwwwww.mysql.com'
! x2 {' T. Q4 |  s" V" ]
& I: I7 }! t* G. }0 e5 k( Drepeat(str,count)  
" z) ?2 ^# i1 Z' x% E, d) T返回由count个字符串str连成的一个字符串(任何参数为null时
: m( I6 W6 Q( ~& a返回null,count<=0时返回一个空字符串)  , I# F; p* L7 N2 K4 c+ f
mysql> select repeat('mysql', 3);  6 a' M. r- g+ h4 [
  -> 'mysqlmysqlmysql' 6 J$ Z1 c2 W  @0 ?. R
   
8 j1 ~9 z; x! k9 \' v+ p$ `reverse(str)   5 F# J1 q1 j1 m0 O8 X. C, P
颠倒字符串str的字符顺序并返回  2 Q1 l  S6 F. J) X7 I& q
mysql> select reverse('abc');  
1 d/ \+ h" B. d+ _) E1 i  -> 'cba'
8 o! j6 Z+ v3 [9 M/ ]: i$ o
! P9 b: s. k: k. \' finsert(str,pos,len,newstr)   6 n8 u: K& y; Q/ _: w* l8 X9 z
把字符串str由位置pos起len个字符长的子串替换为字符串
( V) v+ \- w# O: onewstr并返回  
6 d* [) E/ Z$ @4 b, J, G3 i! P  gmysql> select insert('quadratic', 3, 4, 'what');  
) z3 }. y, j0 H* U" i% y  -> 'quwhattic'
6 V0 }, s. `% O: I& M
" ?% l2 O5 X+ helt(n,str1,str2,str3,...)   
& E5 P: ]; c( e+ _+ w返回第n个字符串(n小于1或大于参数个数返回null)  
5 j( Z9 ^% E5 i1 n6 |mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  
) \  {% R! u0 q, |- T  -> 'ej' & j0 t6 v+ z: T& A+ J+ {( }6 o7 R
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  
$ J' G$ }' E" y9 G$ M) B( E  -> 'foo' 2 ^  Y8 b) G+ d5 D  ^+ l8 O; }

2 V  r% }: S  b) |4 Rfield(str,str1,str2,str3,...)  
; {$ y) c5 E2 A. g5 }返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
. P8 k6 x' q$ A* O7 ymysql> select field('ej', 'hej', 'ej', 'heja', 'hej',) P' t; F& L8 v+ ?3 Y" b
'foo');  
& y! G# F9 w0 e, S  -> 2    Z1 E9 h% |8 t$ B
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
% k5 n- o9 a* ]'foo');  / {# L' B- q: {& C/ O
  -> 0  ) v5 c7 K& i, g# I  i* X+ o; T& o
6 S; k/ o, n# h$ y* M8 D
find_in_set(str,strlist)   2 _$ E1 v/ m% k! _, f! z
返回str在字符串集strlist中的序号(任何参数是null则返回
1 O" b9 I; O7 x: Q2 f7 xnull,如果str没找到返回0,参数1包含","时工作异常)  
8 c% _1 a5 `7 c+ v8 a. C8 Y! I/ Pmysql> select find_in_set('b','a,b,c,d');    i. @$ B) S$ a- @
  -> 2  : E. U/ I6 R( c- Q) i' v
   # M8 y- n2 z; G2 Z6 m
make_set(bits,str1,str2,...)  
9 f. `1 U2 ]# Q把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应( C$ ?( ?( b* {, t! N% A
位置的字串选入字串集并返回(null串不添加到结果中)  
: e3 W$ w7 b$ U) [$ dmysql> select make_set(1,'a','b','c');  
7 ]5 Z: d  w$ q/ g. }& `. A) v  -> 'a' # G  f* {  @0 ?, J, x& w
mysql> select make_set(1 | 4,'hello','nice','world');  % m5 N  c; s' e1 }
  -> 'hello,world'
( K% N3 g1 A4 M1 s( o1 S. Pmysql> select make_set(0,'a','b','c');  + r, `7 J7 |. l8 W: \5 n* Y; p6 u
  -> '' & c# V9 s0 L+ k( M( [7 D5 N
& g* z0 B  g6 w# }0 n8 Q
export_set(bits,on,off,[separator,[number_of_bits]])   ; o4 `( r% f2 f/ Y
按bits排列字符串集,只有当位等于1时插入字串on,否则插入
& d" n: b5 i0 J+ @6 N# m) Qoff(separator默认值",",number_of_bits参数使用时长度不足补0
! {9 X% q' q: Q$ Q而过长截断)   
, }% I) {( V, j" xmysql> select export_set(5,'y','n',',',4)  - ^0 D$ K, G0 b. Z/ s9 n* k
  -> y,n,y,n   
2 G9 L1 p! t# }( A * U/ A* `- v- u, Q9 [5 I: W9 n
lcase(str)  
/ `9 D! M  i& i( h4 e' `lower(str)   
0 X2 W+ f, }) h% T  b1 G" i返回小写的字符串str  
: [) A# t+ U( d1 W/ F# b, D6 mmysql> select lcase('quadratically');  
9 @: i0 M  @& u3 c- ]" j% N6 \  -> 'quadratically' 5 K; _8 q) {& l7 y  f# r
   
2 @" P* n1 I! A1 h  gucase(str)   5 p1 }* n/ }* R  s1 k5 }  @
upper(str)   ( V" D5 D" K' O- [4 p7 b# ]
返回大写的字符串str    U" w3 U  i3 [6 s& o# I9 E
mysql> select ucase('quadratically');  4 I" l& Q" ~) H+ Z
  -> 'quadratically'
/ O7 e3 d9 u( g2 l( @# o- c1 Y% V
: a+ n& c0 T( T1 V' f6 g+ Uload_file(file_name)   
& p! P5 o) F- i读入文件并且作为一个字符串返回文件内容(文件无法找到,路径9 [9 d) c. N, k' x* m! I+ `
不完整,没有权限,长度大于max_allowed_packet会返回null)  
1 t" \+ C5 a+ b, ~$ ?/ imysql> update table_name set blob_column=load_file6 V- H4 n; N0 W* X# @
("/tmp/picture") where id=1;  
- c( V( c, e- v) @
/ }  B: j8 ?7 {6 H4 D3 G5 u. l2、数学函数
. ^  u1 {3 @! q# b8 wabs(n) / |0 q/ i& S- I/ x. `
返回n的绝对值  
6 }8 f- l* c# x- n1 r2 E* e; u9 Ymysql> select abs(2);    / H7 x; V' R6 X
  -> 2    ' h: Y6 U! p8 n) M3 c1 u! \
mysql> select abs(-32);   
" O% K$ Z+ q- s  `7 L( Q+ J2 i' c  -> 32   
+ M* j% ~* o+ U: v! m   8 u& l7 [0 @# V
sign(n)  1 j; l8 W+ Q: l0 Y
返回参数的符号(为-1、0或1)  : K- H) A- b3 s# C" G. w
mysql> select sign(-32);   
9 f8 {& g- N: P6 D' g+ o6 |$ F  -> -1   
1 m: I3 m5 E- m- Q" X0 mmysql> select sign(0);   
/ B+ S+ [% T2 o2 m9 D+ ~- {" Q  -> 0    7 P/ n& j2 {2 }7 W. K  e
mysql> select sign(234);   
4 ~% m/ l7 c+ A* ]  -> 1    1 w( H8 @: h" N0 ~( ~

7 L2 E3 e: |7 E8 {: [$ l1 W( Bmod(n,m)   
2 o# O/ C- F) a2 K  b4 J: M取模运算,返回n被m除的余数(同%操作符)   
: n; }4 W* S; Emysql> select mod(234, 10);   
3 c+ ?0 R+ v, [  -> 4    ! `4 P# _% B8 n1 p& B2 j3 q
mysql> select 234 % 10;    ( v9 T4 |3 B* t( ^  c7 D0 e$ k
  -> 4    & e2 i5 E& m% Z4 P) G( B" f. l# R
mysql> select mod(29,9);    ' o- O0 Y; t8 I$ ~
  -> 2   
( t8 H. u  q7 Y7 e5 R
+ |0 m7 q5 I% p! y# Wfloor(n)  . \) `! j, Y% u" Q
返回不大于n的最大整数值  ' k" R2 I0 {" ~+ g* `1 S2 @  r; {
mysql> select floor(1.23);    2 \; [% k$ s- n$ b7 a: m
  -> 1   
4 P* e3 y8 a" [/ ]# Q! z) Xmysql> select floor(-1.23);    $ O; ^+ L' L0 B; C
  -> -2    5 @  j* S6 ?) d: ~7 S
; `4 U" O8 M& W
ceiling(n)  
: Z0 W  Q4 o0 L2 b返回不小于n的最小整数值  
5 `* X5 H& Q6 u% R7 }mysql> select ceiling(1.23);   
& Y5 L0 M- t5 E, d8 ^  -> 2    % F2 w( X9 F$ V* J
mysql> select ceiling(-1.23);   
. B- r% U( K* Z4 Z  -> -1    % }7 ~' {% {- C5 N% J

6 v, s8 V% i2 v. v0 J; o+ g0 S' Dround(n,d)  " f! C! S; p. w/ f3 Z0 C
返回n的四舍五入值,保留d位小数(d的默认值为0)  
5 E# b# I$ M. f7 n- Omysql> select round(-1.23);    $ ~" {* T& h5 h) u  H) h
  -> -1   
( Y6 c( v1 w/ ~0 pmysql> select round(-1.58);    " n7 D% X, S( b9 M
  -> -2      e! o" Q$ h$ o# f3 h0 N1 ]
mysql> select round(1.58);    , G( ~$ y  m; q, r+ C
  -> 2   
* G5 L! u& M/ S  V; D1 q+ vmysql> select round(1.298, 1);    - n4 f, c$ d+ w7 i
  -> 1.3    $ E) d$ ^/ V0 o+ d/ E7 _
mysql> select round(1.298, 0);    ! e1 d% _. z  [
  -> 1   
  y: G1 U* Q' b8 a0 J, f" z" i' | 7 j8 k. W7 [: b8 _4 X+ X
exp(n)  
! |1 z5 Y3 l/ V8 o返回值e的n次方(自然对数的底)  0 U6 _3 ]1 @: |6 g0 f  _  v
mysql> select exp(2);   
5 }1 F% o+ e2 ^: v  -> 7.389056    9 [. ]3 @- O* B: u, N+ R
mysql> select exp(-2);   
+ q7 i! J3 D2 U- q1 I  -> 0.135335    2 U1 R* }4 d- ?, J7 ?; Z

1 R, u+ K8 @: M6 Vlog(n)  
9 m# g0 {( ?* k6 S$ S0 J5 l( H返回n的自然对数  
' O5 W. m# o0 L: x5 S3 s% d% `mysql> select log(2);      d* l6 h, _/ g! B' a4 L
  -> 0.693147    , o, k+ J3 m; P. K6 \# K
mysql> select log(-2);   
# @* X' v' R" F9 ~  -> null    $ W6 y+ q+ b0 w! w4 n

- j/ M5 J8 s+ |  ?) g/ u6 Glog10(n)  
0 T5 A1 j9 h8 ^- g返回n以10为底的对数  
4 ]& {: b+ y; n- ]% o* R2 |mysql> select log10(2);    - ?/ F, q0 X8 J+ f: f
  -> 0.301030    5 s- c; j4 C  i4 R  _) o
mysql> select log10(100);    9 ]6 V' V; j0 M7 U% x* B
  -> 2.000000    0 h: P' U: \' ?) d1 Q. F
mysql> select log10(-100);   
& n5 H( [$ E( Z( u3 _  -> null      {2 S8 f, o) v2 K

1 p' i+ j7 M2 B) Z: a$ q7 Jpow(x,y)   
7 Q* x" p* x0 q: w$ d; apower(x,y)   
. ~& F: J9 o/ h6 d0 e 返回值x的y次幂  
# r4 A9 ]& p/ i1 E4 c8 Z( b0 Kmysql> select pow(2,2);   
5 J4 G! ^/ \/ h& B7 j+ A* y  -> 4.000000   
7 t! ~# ^1 O( p& |5 Y3 W& c7 Xmysql> select pow(2,-2);   
: }, \5 ~8 ?- y! ~4 {2 m3 M; H; [8 c" \  -> 0.250000  : D' x# u9 @- B) h

; p3 H3 z& g6 U, ?) rsqrt(n)  ' c* F+ }8 a* t: Z/ }1 g
 返回非负数n的平方根  
! S$ c: @$ F  ]& @" Smysql> select sqrt(4);    , e- ~6 ~0 P; y* H* o, i
  -> 2.000000    5 e. A( n  @' q9 Q% @0 `, f! h, N
mysql> select sqrt(20);   
+ Z( C0 p' M% D) ?  -> 4.472136      Z$ @! Z! b2 x; V$ R# i: E7 r
( d1 J7 D' D8 s: x
pi()    $ K% }/ \: C# {) H
 返回圆周率   
8 o0 r$ J$ m5 y# C& ?mysql> select pi();    8 H' g: r$ y# c+ J
  -> 3.141593    " P" a  t1 D$ R

- X: F1 N! G5 H& Jcos(n)  
" u1 `9 W, {9 l* i+ {( S 返回n的余弦值  1 l6 C: S1 T6 |1 h' q9 }& P
mysql> select cos(pi());  
* J, W$ v/ @' R1 {- ~% L- l  -> -1.000000   
$ c+ }2 u4 B% V+ e$ y3 M4 Z7 d
- x- _3 G8 P7 H6 \0 K. Ysin(n)  3 q% f" [# [& k$ C7 T# i
 返回n的正弦值   
' P7 G" m3 y/ y7 r8 [; x4 d# Smysql> select sin(pi());   
. J$ u. c* y0 ]# p) ~" X& Z6 |  -> 0.000000   
: W7 |8 x5 s* ~/ {, ]
0 ?& Y( z  D, Y; Q/ s1 q% ltan(n)  
! U! a2 i$ A2 {  o- h4 |! ^返回n的正切值  - |1 R5 O0 V- Q* m) i) a
mysql> select tan(pi()+1);    , E% Z% G( F' U
  -> 1.557408    4 r2 D6 q- M) s! B9 D4 {7 B* Y
, p4 c8 Y1 _9 [# E/ q
acos(n)  
! E/ A" e/ H9 x: C 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  
& _; j7 `" f- K+ Bmysql> select acos(1);    % V6 z5 L! B, n1 m7 F0 I% {# G2 v
  -> 0.000000   
3 D  ~0 w# q. ]9 A: `8 Y' ^3 g' tmysql> select acos(1.0001);   
" b3 l" |% ~$ l' A' C, S( |  -> null   
4 a$ o1 t$ n! K1 E) U& N' smysql> select acos(0);   
3 c. {3 P2 ?% s6 Y# h( h4 N! J% r& {  -> 1.570796    # u; z5 u7 U+ u/ F

* `4 ~% {9 V0 m( u! m% aasin(n)  $ U) Z* w1 W, [
返回n反正弦值  
' |0 N% x3 P" A3 F* L  R4 rmysql> select asin(0.2);    % K4 r1 ^# T) c  F- B% s1 h  c* X
  -> 0.201358    0 b# r9 ?; `. W9 u# ]
mysql> select asin('foo');   
; @! F1 m* [  C: }& W  -> 0.000000    8 S/ \2 c, o  O6 A1 L* d

8 c! O6 T$ ~& P  {/ o8 n, ]( `atan(n)  
6 c  g) h) s( E1 R5 I$ U. V返回n的反正切值  
5 ?% p7 u( t; g: m- \/ @mysql> select atan(2);   
% I) `6 M* G( D: D6 j% d  S8 w  -> 1.107149    5 l* u8 J' S; t1 ~3 x( Q
mysql> select atan(-2);    : K8 W: ^! g9 e+ e9 M4 ^
  -> -1.107149   
7 C  z6 d7 \3 n. v3 \& \. W% yatan2(x,y)    + p/ r/ S# d; k% R
 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  
) K) ~+ Y5 s3 C8 {& qmysql> select atan(-2,2);    9 w; a  v  y/ y* W) d6 X
  -> -0.785398   
* p6 j; T. _$ o6 pmysql> select atan(pi(),0);    2 |; W, j" ~* M# j
  -> 1.570796   
2 p& o$ g$ H& z
  q# f/ Y, v2 p) g" Pcot(n)  
2 a: j; a! ?  i* L$ |返回x的余切  
" Y# w3 S2 P* ]mysql> select cot(12);      m- M. ?; S5 V+ h, t
  -> -1.57267341    & p, B7 L& G1 O, n1 ~/ Q6 M0 D. s
mysql> select cot(0);      e2 O: O! U: f' C3 Z- |
  -> null    3 y/ r# l  `: t7 y  r

  d$ Q' X% w$ J1 o: J' Erand()  " N0 n; f: e3 P7 k7 U
rand(n)    
! e, q& R: ~: S: k1 R  @- `8 Z; N返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值) 9 y$ ]8 k  k5 _

" p& Y0 j- G. {# J5 Qmysql> select rand();      o6 M" M* o, ]6 `9 T
  -> 0.5925    7 b7 i, V* h  g6 w: y7 B" w/ Q/ P
mysql> select rand(20);    % J4 o$ C" U9 v4 [7 L
  -> 0.1811   
0 i$ x) l7 L$ j6 ]" G/ kmysql> select rand(20);   
1 ~- u' X8 H1 Y, [4 _+ }6 t9 D% h9 E  -> 0.1811   
, e% I7 Y& O  W/ }: w3 v, bmysql> select rand();    % F% \( n% j- T$ K/ n+ E+ p
  -> 0.2079    6 V% U" U  V1 A" I, `8 ?1 h
mysql> select rand();    / I6 ~' `1 v! b7 L9 s+ c8 w/ |
  -> 0.7888   
4 z6 z) I# e$ [! {/ L6 \" \ $ a" X, f3 L# l% d$ b
degrees(n)  
5 Q: U% T3 d1 ~! ~; _+ W9 V4 i" p* z+ V$ `把n从弧度变换为角度并返回  
9 z8 f; ~* r; q4 S8 k' y- ]mysql> select degrees(pi());    % }# {8 \- {3 t$ N& [4 C/ o
  -> 180.000000    9 _* C; L! P8 b3 V9 }* J

6 J% W1 \# L/ B5 L2 ]radians(n)
% W+ n& f" P( T. c把n从角度变换为弧度并返回   2 w% m' V0 i. S  _0 D3 B
mysql> select radians(90);    9 \4 |, A# S9 y: V% E- w/ \
  -> 1.570796   
1 C- M% p2 b5 R! R) |$ j4 m" H% K% ~: T
truncate(n,d)    ! K" }- x) r# f' f2 n0 \
保留数字n的d位小数并返回  
; X5 }6 N! ^4 }2 S5 Cmysql> select truncate(1.223,1);   
1 X4 \# a! P7 l  -> 1.2    1 E) B+ X# j: i$ c
mysql> select truncate(1.999,1);    ( H1 a/ |# }3 Z8 ?" p  f( o
  -> 1.9    2 Q. q- g( i0 y1 E3 P
mysql> select truncate(1.999,0);   
4 N! ], T5 P* i, I; x9 W  -> 1    9 s5 B% a/ ^/ o0 ~4 T; e

# m- H  W0 L5 o+ [4 ?7 fleast(x,y,...)    7 V' ?6 K& X% `( A  @
返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
' z, l3 f6 B7 s3 z1 c0 wmysql> select least(2,0);   
: w* Y1 |$ j$ }1 A) F6 H  -> 0    # J" c% @# X$ `) x! |# ^9 o7 Q
mysql> select least(34.0,3.0,5.0,767.0);   
8 F7 G  w2 j# s! i  -> 3.0   
; g9 h' p+ p# f+ h/ ^mysql> select least("b","a","c");    + T; H- z7 M  ~  w! v& X4 Z
  -> "a"    7 ~  u0 k) v* v. t9 ~
( u; d. {* S4 d! p
greatest(x,y,...)   
" `4 P  [# l0 T0 b) h* n' V6 ~8 r4 l返回最大值(其余同least())  
. M6 B8 t, o) z$ @mysql> select greatest(2,0);   
) O1 ^/ |5 U" Q: t) R* e  -> 2   
6 @! C$ ]0 s$ V1 `mysql> select greatest(34.0,3.0,5.0,767.0);      w3 S+ L3 v; F3 z
  -> 767.0    & W9 e7 }: @3 J, m  |
mysql> select greatest("b","a","c");    , Y8 U5 y# F5 z) g7 K% \( \% |3 q
  -> "c"     
3 K& b2 O$ N' H/ Z0 q$ U7 t' c1 u2 l. Y3 \
3、时期时间函数
/ j$ T7 n' e$ zdayofweek(date)    7 B! O7 w/ ~- ^' q6 Y3 A( O6 c. F
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  3 j7 `9 s1 U9 r2 x: R
mysql> select dayofweek('1998-02-03');   
. B) S6 c  A# X: c4 ?) \% d  -> 3    ) t/ i* w3 Q% N3 L# I7 W3 v, F
6 U$ v/ R- v  V# P
weekday(date)    " b1 p  U3 A) M2 E1 ^
返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 " S. W' h: P! Z4 {4 A, P
  
& @; ^- `  h1 xmysql> select weekday('1997-10-04 22:23:00');    * f1 v& M3 S/ K+ f+ }2 W
  -> 5    * i  p- J5 n! ?! v# N
mysql> select weekday('1997-11-05');   
# p, q9 u/ K/ @7 J; M  -> 2    5 w( J; D+ B3 f) j& g( q# \+ ?# ~
% T. k5 W) f1 |$ g
dayofmonth(date)    " [5 Q7 H) K# C  h
返回date是一月中的第几日(在1到31范围内)      W# P* d( `7 g( N* L9 ^, J- \
mysql> select dayofmonth('1998-02-03');    7 u# y+ U' \1 L, w  S  O
  -> 3    " H" v# k- [+ n
  ^. k2 s, H$ i  S
dayofyear(date)    % Z% I, i5 F, t8 X) ]/ a- ]0 v
返回date是一年中的第几日(在1到366范围内)    1 q* k7 [0 v+ J2 V
mysql> select dayofyear('1998-02-03');    & u; f* X8 u5 h& K3 c" J" U4 b
  -> 34    : I6 f7 [  ?2 e

5 ?5 c7 I% T/ ?, k: r6 |" dmonth(date)    ; C3 y1 w4 q2 d& I- A! V* v
返回date中的月份数值    5 s* ?7 Q( b& @0 i( k* z
mysql> select month('1998-02-03');   
* Q0 b$ z5 U2 `$ @' A  -> 2   
9 K# [, g! [# |: `- c- ]
6 y- j% q# l& v$ M1 m1 \5 wdayname(date)   
/ L% I/ E( J) r7 {/ E返回date是星期几(按英文名返回)  - d0 f8 C. _' T/ {7 J9 n
mysql> select dayname("1998-02-05");   
( ?: E- r; u, G: o* @3 E4 m  -> 'thursday'   
! V+ X& G8 R9 b& Y! e( F
3 ?) D" K3 `/ f/ J' A3 s7 gmonthname(date)    - v- x. F- U% @
返回date是几月(按英文名返回)  
3 a; f7 h, H+ u7 d4 ?- y; m2 M# Ymysql> select monthname("1998-02-05");   
" R8 Z9 Q, }& D. B" A  c! h6 o  -> 'february'   
6 M; [) ]  H4 K) c- l+ d9 ]2 v 8 e" x) O) K; _, Z* R3 f
quarter(date)    ' z+ X2 u& v6 t& U: p/ H. q' c/ u
返回date是一年的第几个季度   
! ~' @" R: o. Z' f  Imysql> select quarter('98-04-01');   
* M- H# c* B% H! e, g8 a  -> 2   
; q6 V/ d8 k) ]$ l% X6 h8 t; a
- R; m$ y7 h+ F) r0 u% q0 }week(date,first)   
, e1 \# q$ A. u/ K% |7 ?返回date是一年的第几周(first默认值0,first取值1表示周一是: x# l- i; u! C# u/ A2 K5 l
周的开始,0从周日开始)  ) d$ }6 E5 ^3 D7 T2 u' i& L
mysql> select week('1998-02-20');    5 j3 n) _: Z; n4 }
  -> 7   
# i% A/ T; N5 w% Omysql> select week('1998-02-20',0);    ' j% q& g. m- `1 w6 s- s7 M2 G. a
  -> 7    ' {; l# m9 {4 ]0 i
mysql> select week('1998-02-20',1);   
/ ]; Z' i. h' i- P) |  -> 8    - H2 F- L" }. e+ Z* y

# n' B+ ?; n1 K1 n: Z1 Iyear(date)   
9 h) t1 E+ U; P) B8 ~返回date的年份(范围在1000到9999)    : W2 D- G0 w" Z$ m0 b
mysql> select year('98-02-03');   
* v$ u9 T$ ~- I# ]- A: R  ^2 ^  -> 1998   
+ u, Y0 e, |; r1 u, C0 r' W8 _ : {  x% n9 q! Y3 }6 f& G
hour(time)    
( N" G% m8 p+ m返回time的小时数(范围是0到23)   
& r% c0 m( I! ^) n9 S0 N1 Tmysql> select hour('10:05:03');    7 ?! c$ {2 H; I9 w# W' ~  G
  -> 10   
7 u  v. \7 a2 ?, Y4 s- Q4 p 5 P9 [2 A- \) G' c! ~9 w9 {9 ]
minute(time)   
. K. D4 Q$ `' ]: r返回time的分钟数(范围是0到59)   
) _' _0 z4 z4 u. E, F/ G' jmysql> select minute('98-02-03 10:05:03');    9 b8 h% d: K3 {2 I! J' U
  -> 5   
. S6 I. g6 S5 _/ E* a1 {
2 \3 l/ }% R  m" e: C+ vsecond(time)    5 ?+ i! `4 `) q  l0 }
返回time的秒数(范围是0到59)   / i1 T' c2 C% b
mysql> select second('10:05:03');    * M' M  u. t0 Y3 G* s* \
  -> 3   
& Y" p  Z& o6 e0 A7 L) Z9 y
: R2 z" m' H  q0 p& `, L1 P8 vperiod_add(p,n)   
( W* q: O* m8 \$ g增加n个月到时期p并返回(p的格式yymm或yyyymm)    % |& R2 X7 f. N* l
mysql> select period_add(9801,2);   
  g" W- G  o* y0 e5 L5 ]# T: h  -> 199803    ; {% h4 K: R" E8 |" e( W! c

# b; ~; k6 I1 V$ C& Tperiod_diff(p1,p2)   
, R; ^# p% O+ B: x& S返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  
! A$ F5 B  s6 w- i1 @/ H/ r+ lmysql> select period_diff(9802,199703);    8 `0 \7 [) B( H2 _
  -> 11      D5 E" V& {+ ~3 r4 A, _
" d# B9 T$ N6 {) [4 n9 O2 P$ l
date_add(date,interval expr type)  - {) ^8 y% m0 e9 R9 ]( v* v
date_sub(date,interval expr type)   
; y) O* z) D8 Q$ E/ r4 }% s) oadddate(date,interval expr type)    - {# A1 ~( r  p' [" S( h% g
subdate(date,interval expr type)  
1 a1 _' A. j" v2 v' X/ t  ^, V对日期时间进行加减法运算  
* Z1 T. m: |1 I4 Z0 I5 M+ a" L(adddate()和subdate()是date_add()和date_sub()的同义词,也+ w$ z5 g% M  \' S- K
可以用运算符+和-而不是函数  
8 ^8 u7 e( J# Y; ]5 }# p, J& P, qdate是一个datetime或date值,expr对date进行加减法的一个表
0 J) }& z, e/ n  t7 ?0 N& r达式字符串type指明表达式expr应该如何被解释  4 Q1 Q) B0 x% |; ^! u
 [type值 含义 期望的expr格式]:  
! |  `4 a  ~$ p" O1 x7 z second 秒 seconds    - l" q/ B- e6 M% d3 K% ?, G2 C
 minute 分钟 minutes   
4 _; d- }+ E& ?* ]  x3 J8 _ hour 时间 hours   
( O* d0 u7 T- l# F! w day 天 days   
' v0 s) a' N+ |; _3 u; n month 月 months   
0 P' N+ e8 {: `, r. ~9 k  Z! M* Q year 年 years    5 E, f5 C( \; |, ?2 ~* X
 minute_second 分钟和秒 "minutes:seconds"    7 x) i1 f9 R' D  ~
 hour_minute 小时和分钟 "hours:minutes"    1 C$ R+ S+ r/ G7 Z% u% h
 day_hour 天和小时 "days hours"    $ B9 n0 z# Q0 Z& C8 ~; N
 year_month 年和月 "years-months"      q! F; y' Z" ]& ~
 hour_second 小时, 分钟, "hours:minutes:seconds"    ! E, b1 I5 r. J) g& x  N! h
 day_minute 天, 小时, 分钟 "days hours:minutes"   
% Z; c4 _9 Z) Z day_second 天, 小时, 分钟, 秒 "days
' n0 q, V9 f! a4 h+ ]4 Thours:minutes:seconds" . |( j5 Z+ m' _8 C4 M
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个2 |: c+ @& m! I' N
date值,否则结果是一个datetime值)  3 r7 o) A9 `0 ]/ N. q' D6 B& J
 如果type关键词不完整,则mysql从右端取值,day_second因为缺/ L! u2 m3 \7 Z( b) T
少小时分钟等于minute_second)  
% n/ E8 h9 r/ q5 w; ~$ ^6 X3 ^ 如果增加month、year_month或year,天数大于结果月份的最大天$ d0 P- z8 i7 r9 E
数则使用最大天数)   
0 Y9 z' @/ ~, B8 W4 W  Xmysql> select "1997-12-31 23:59:59" + interval 1 second;  1 T- `" m" y. A1 A6 G3 o; @
! _  O. K% L% c9 V
  -> 1998-01-01 00:00:00   
% G0 N8 g- s$ y- Hmysql> select interval 1 day + "1997-12-31";   
! E% ]& S/ r' ^  -> 1998-01-01    ' ~$ A- @' j, K4 N! \) q; B6 k6 b
mysql> select "1998-01-01" - interval 1 second;    ! b8 ^. @( K% n. J- J/ A& ~4 r
  -> 1997-12-31 23:59:59    1 K; ?; C" {+ D# ?' N! z$ h
mysql> select date_add("1997-12-31 23:59:59",interval 1
  X7 A/ b0 X* z' b4 H4 j3 {5 Gsecond);    2 G& M# s" {3 R/ h9 E
  -> 1998-01-01 00:00:00    " i* e6 K) s& c& ?& G+ e* }
mysql> select date_add("1997-12-31 23:59:59",interval 1, i+ v! [7 D" C2 p" N) n
day);    3 X7 b8 k1 R" ~5 l6 Y
  -> 1998-01-01 23:59:59   
+ b* y6 {  x/ w6 \4 Ymysql> select date_add("1997-12-31 23:59:59",interval% E! p5 X% f' \9 X
"1:1" minute_second);    0 Q, y* _1 \! `  B" R+ U
  -> 1998-01-01 00:01:00    : Q" M6 w& T8 j
mysql> select date_sub("1998-01-01 00:00:00",interval "1
- ]; J3 w+ M: {, c! O+ f& B1:1:1" day_second);   
) F7 B7 }& S# D5 f  -> 1997-12-30 22:58:59    3 ?. e2 P# U4 S/ Q
mysql> select date_add("1998-01-01 00:00:00", interval "-1$ v7 m  m% ]5 r
10" day_hour);  6 _0 I* ^" n& Q  N
  -> 1997-12-30 14:00:00   
6 s) f6 w- Q* e1 H, q+ |  t0 Xmysql> select date_sub("1998-01-02", interval 31 day);   
" h+ f  L- t0 T( O- h  -> 1997-12-02   
' Z7 A9 `" {# Dmysql> select extract(year from "1999-07-02");    2 J0 V* q# F4 p) p
  -> 1999   
3 @& H3 d! F0 l  omysql> select extract(year_month from "1999-07-02
* ^8 s* x, u. j  A$ I01:02:03");   
5 H/ Z+ ~% d4 j! K  -> 199907   
8 B, B# D4 k! K; x" a! c/ nmysql> select extract(day_minute from "1999-07-02* j7 Z6 g/ J0 e
01:02:03");    6 d$ [9 B: Y6 g1 C% u' ]0 z- C4 f! r
  -> 20102   
9 l& J* N, B/ T# i( J- m  E; l' A6 i & S0 Y) d, o/ [
to_days(date)    1 ^5 f2 B6 x3 q: m. I5 g( G
返回日期date是西元0年至今多少天(不计算1582年以前)  
6 ^) T3 D5 h# Xmysql> select to_days(950501);    6 L0 f) J( e: R& |/ z0 f7 U
  -> 728779    * f2 F8 T7 }* b% l5 a6 Q! |3 W. l
mysql> select to_days('1997-10-07');    " [" T# ]* w) p2 R" l" |
  -> 729669   
) a% H" K- s, r3 }% E: G / P- @! l& g: U; f, {8 U0 k5 m
from_days(n)    : Z& |9 n  o( g4 x4 X$ t* J
 给出西元0年至今多少天返回date值(不计算1582年以前)   
3 ]+ M( ]+ A  @$ `) gmysql> select from_days(729669);    % G* G2 @" M# k& h5 n
  -> '1997-10-07'   
# Y8 V8 [/ K/ V5 E  X7 `
) x* D- E3 f0 X4 z  Mdate_format(date,format)    1 F2 G" c# L& E& o5 z3 p6 `5 X
 根据format字符串格式化date值  % N, z* h+ ^# i. D
 (在format字符串中可用标志符:  
3 q  e! v6 _% O  d9 e/ V %m 月名字(january……december)    - T4 Q. ~- {0 {* Q6 k
 %w 星期名字(sunday……saturday)   
5 T6 }% O/ c4 j5 f' ?2 ~ %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)   
$ Z3 u& B/ T0 W. S! m  g' g. j2 u) s %y 年, 数字, 4 位   
3 M# J9 V1 p+ d. _0 U- Y %y 年, 数字, 2 位    . }# @/ W2 Y: f6 I* j
 %a 缩写的星期名字(sun……sat)   
2 d2 q3 `. d9 [3 g; T/ i %d 月份中的天数, 数字(00……31)   
* B5 y- e6 k5 e/ f8 P %e 月份中的天数, 数字(0……31)    ! X: Z3 z* k  \4 H8 ~0 ]% W& k
 %m 月, 数字(01……12)    ! G: v( _# D/ R* x5 K
 %c 月, 数字(1……12)    , s) B& ]: B7 C& @) a" S
 %b 缩写的月份名字(jan……dec)   
  Z3 T' n9 T4 W! Q) L %j 一年中的天数(001……366)   
3 F8 R- j7 }7 b  m/ J) p %h 小时(00……23)   
. f9 u, K2 H* n2 b %k 小时(0……23)    ; e$ |! K- W# @; Z
 %h 小时(01……12)    . d9 O! A: h& e+ f9 x6 ?& y
 %i 小时(01……12)   
+ U: e6 t% i* y7 z  x  Q %l 小时(1……12)   
3 V/ W$ P" q. c %i 分钟, 数字(00……59)    # G: M6 Y8 f- V# n- {
 %r 时间,12 小时(hh:mm:ss [ap]m)    ' t8 @. I. {  i  }/ u! i
 %t 时间,24 小时(hh:mm:ss)   
3 z5 y9 l. b  q0 L1 k %s 秒(00……59)   
2 W: b- e, }* t& z %s 秒(00……59)   
5 L' _- P7 V- H %p am或pm    . N7 s% W  d9 c4 e* e- n
 %w 一个星期中的天数(0=sunday ……6=saturday )   
  {5 x7 T5 f, z* K %u 星期(0……52), 这里星期天是星期的第一天    . d9 ~' \" J8 n" N7 S/ e' N# P( S
 %u 星期(0……52), 这里星期一是星期的第一天    - l. X5 G0 I" O# L
 %% 字符% )  ' L1 f, B; |+ J$ J7 H: U7 c) \
mysql> select date_format('1997-10-04 22:23:00','%w %m %
( C9 b# u$ x, x- sy');    & j6 j' y1 C2 `" c# x
  -> 'saturday october 1997'   
1 T+ o. w, R9 V4 G4 p! ~mysql> select date_format('1997-10-04 22:23:00','%h:%i:%' r7 G5 B8 n1 g/ q2 c+ \# |
s');    ' g3 |) ~& Q) u1 }1 e
  -> '22:23:00'   
0 `. o  N* i2 t2 Jmysql> select date_format('1997-10-04 22:23:00','%d %y %a
- ~- D8 O+ s+ N6 {%d %m %b %j');   
4 S4 I, N4 w7 k5 d0 j* o- r0 Q6 ]8 A  -> '4th 97 sat 04 10 oct 277'    0 }+ g' z* }) B' X) C+ }0 a/ @
mysql> select date_format('1997-10-04 22:23:00','%h %k %i( [% Z# x9 z5 D' v: j2 r: A
%r %t %s %w');   
% B9 \; W9 k2 z  }; K( W1 ?  -> '22 22 10 10:23:00 pm 22:23:00 00 6'   
) _4 z# Z$ ~. I3 @8 U
/ _! M/ x8 |; o- r8 qtime_format(time,format)  " T' p, {2 a* @# C' i  V
 和date_format()类似,但time_format只处理小时、分钟和秒(其/ P% C4 l8 {0 L- c* I
余符号产生一个null值或0)  ' N0 f: W2 l( L
: n4 @5 e% ~; g% Q. L
curdate()     - y$ a1 R) `/ l8 A
current_date()  " _( {2 B7 g, s
 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
0 i6 D" e, N0 b处上下文是字符串或数字)    / F. ^& L$ {5 U% F
mysql> select curdate();   
+ x0 k1 V3 C6 h  -> '1997-12-15'    ' b+ l" E( j3 S$ y/ L2 ~
mysql> select curdate() + 0;   
; f9 |0 q8 m2 J$ \  M  -> 19971215    6 t/ t" ?; K8 G* P

) \, X2 o2 @, ?; s9 Kcurtime()    : P  }; }& s. X8 {& i( W! y, p* s
current_time()  
0 s$ g0 q: `3 s# X" m+ h3 m7 I3 M; q2 e 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上/ @( T5 `1 r0 g, g9 @: x
下文是字符串或数字)      
5 a* I! ~' g3 lmysql> select curtime();    & w7 f, C1 w! X% b0 J+ F
  -> '23:50:26'   
! m3 e7 k+ M7 O& N. m  Jmysql> select curtime() + 0;   
, B- Y9 Z6 w& w7 s  -> 235026   
- R# j: ~) |- ]  K) ^( ?  U8 x 2 Z; z8 w0 }9 _, n; f
now()      Y; x/ U: \9 F6 q! m' m
sysdate()    
" Z9 _' |% G# {& b+ Y. R9 s1 [current_timestamp()  
4 i- |. S3 s* ^! v% C 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
7 X" M+ p% u3 F4 ^4 ]8 l6 K时间(根据返回值所处上下文是字符串或数字)     5 z4 U; l# F; I# `  D
mysql> select now();   
' d3 \/ v* z; S. i  -> '1997-12-15 23:50:26'    5 L6 ?& r  x6 X& y& [8 p
mysql> select now() + 0;    $ G. k  ?, w' ^) b  C. Q( p
  -> 19971215235026    5 J8 E' y  h! X) S

% ^) K1 G2 Q* e- ~& y$ i, @8 Nunix_timestamp()      R* L9 u8 X+ _, k! v
unix_timestamp(date)   
) x. A2 @1 Z9 [; s4 ?) ?0 V, r% S" \返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
) n' H- S  [' S( W  Q/ u数,date默认值为当前时间)  7 n) i0 V# Y; N4 e) T% g# ]
mysql> select unix_timestamp();    2 T" c% o9 `1 W' f! z
  -> 882226357   
9 X6 h$ K$ E) p' i* qmysql> select unix_timestamp('1997-10-04 22:23:00');    * l3 u) z" y6 Q8 z$ Q- D' @5 }
  -> 875996580   
1 J$ Z6 y' h  }8 R% W" b + `/ x: W! t) q
from_unixtime(unix_timestamp)    ( {( x! l( L) d% [( a
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的
/ O! n; {1 G9 [9 e# V* q  |6 x值(根据返回值所处上下文是字符串或数字)     : V% h$ _  o0 {
mysql> select from_unixtime(875996580);   
/ v& n, T$ s+ P- o( q# m- e3 U  -> '1997-10-04 22:23:00'   
6 r5 ?$ m" s7 r5 u' f) i; D8 r0 emysql> select from_unixtime(875996580) + 0;   
8 d; v- A( ?6 \6 p/ O, Y8 b$ S  -> 19971004222300   
) t0 L/ Y3 C+ O, V7 j5 f
$ j) ~5 J/ |! afrom_unixtime(unix_timestamp,format)    
7 u8 f" l% _2 |, ?以format字符串格式返回时间戳的值  
  r+ G. ?9 G9 y6 c6 ~mysql> select from_unixtime(unix_timestamp(),'%y %d %m %
$ Y2 C- H" X: u/ V" H+ yh:%i:%s %x');   
: s9 n/ R7 a  j+ G  -> '1997 23rd december 03:43:30 x'    0 N8 A) m# w* a5 z4 l
# q9 s6 T6 L; w. @
sec_to_time(seconds)    + z* ?1 B. n# e7 a
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     % \$ A6 |; g! Y$ Z, x6 |5 p7 c
mysql> select sec_to_time(2378);   
+ ~5 t3 h. E9 N8 ?5 K  -> '00:39:38'    7 |6 t1 a* u) C# J3 W
mysql> select sec_to_time(2378) + 0;    2 \: [2 X9 p2 U# @, p
  -> 3938    2 `1 C  w( D/ A+ _- b" O, ^
/ N" ~, }" ?8 Q2 `
time_to_sec(time)    * I4 n3 a& x* d7 H$ M$ v
返回time值有多少秒   
6 E, F+ V4 O9 f, }mysql> select time_to_sec('22:23:00');   
% }( J+ ]8 m4 \  -> 80580    0 ]) ^9 d0 M5 o/ i& [7 v' H/ `
mysql> select time_to_sec('00:39:38');   
/ I8 F% x" z" m  -> 2378 ) ~# x1 ~; S% k6 w+ z

5 h6 T+ y+ A3 ?6 @转换函数8 t6 s* \3 _, O! d) z
cast
5 G, [" d* x5 S! y- V用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题], t* ^  W* Z* |  K. a
实例:select cast(a as unsigned) as b from cardserver where order by b desc;+ n/ l$ ]0 k& I$ Q2 f( g
convert:8 W' H' n$ c( d- m- [
用法:convert(字段,数据类型)0 u1 W( p/ M3 T' G' T* e0 i# P
实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

4 n8 ~9 _$ n) M7 j8 K) ]$ t
回复

使用道具 举报

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

本版积分规则

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