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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数
4 w+ ], H( r  {. Yascii(str)   3 h" }  Z2 d) P. O" a6 }/ R/ m$ h
返回字符串str的第一个字符的ascii值(str是空串时返回0)  
2 B& N! ~: ?4 ~( Bmysql> select ascii('2');  & F. X$ e7 K; |) W
  -> 50  ! R4 q: |0 z$ t
mysql> select ascii(2);  
- W8 c3 O; P5 [: l  -> 50  
4 s( A. f6 ]. ^' w: L" H* cmysql> select ascii('dete');  " }+ c. r0 H/ y4 U' J% I
  -> 100

+ `5 T- a% O/ `# k& B& gord(str)   # l2 J7 Y0 J( F7 O$ o/ Y
如果字符串str句首是单字节返回与ascii()函数返回的相同值。9 u9 n) S+ e, s
' I/ `- Y% P; Z- G5 P
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  ) R5 J/ m8 k" G9 H
mysql> select ord('2');  
5 c0 s8 r' S  R! E  |4 X  -> 50  ! H9 ~, h- _2 Z& P
   - i2 S6 P/ |/ o" g  t6 F
conv(n,from_base,to_base)   " q' Y% H( B+ u% x* ~8 \- T; V
对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  . G, [( Y* u# h4 N- M' A
mysql> select conv("a",16,2);  $ ^+ S! F' ~( ~& a* N
  -> '1010'
' V% B2 F4 Y" L. |mysql> select conv("6e",18,8);  " q3 p1 W$ }/ V1 o" o  z
  -> '172'
/ |/ }  o1 B6 O5 amysql> select conv(-17,10,-18);  
/ z3 X2 r$ m8 q% B+ x8 c  -> '-h'
+ C8 B- d  K+ o* l9 _- T# f) ^mysql> select conv(10+"10"+'10'+0xa,10,10);  
" i9 l# ?( \8 G  g/ s  -> '40' 1 ], }: Y5 d. Q; L
   
( j3 W$ k1 h5 M) Hbin(n)   
# ^4 X8 Z$ M" a1 d/ l, S# \把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
& d9 F5 n/ G  S: r* n. G6 wmysql> select bin(12);  
6 G: C: l$ z/ D/ ^; A  -> '1100'
+ O+ f5 L) ]" L/ M8 I
7 l* L7 f. B/ e7 k% ]& I, I0 Uoct(n)   : r: M  E. M0 p+ A, a! v# J  o
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
6 z! R1 F: n: W6 Q8 |' @# z; ~! z' ]mysql> select oct(12);  3 s! Y1 Q4 b6 Z+ a1 h
  -> '14' % r& u8 r( Z, d6 I% l5 [1 ~" H
   4 q2 v) L. F9 L- [$ a1 ], b! E" f
hex(n)   
1 r6 K, r( t( t. n把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  
! U2 j+ H& l3 J/ E4 N0 }: X, M2 Rmysql> select hex(255);  
$ X  a/ R: S! X9 s0 W( s* W: e  -> 'ff'
4 m0 ]: g7 W- ~, N' e% H   
1 G0 q* Z* U: _  P( Y8 w  Ochar(n,...)   
1 z: j4 b5 u  h* ~0 H, C返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   & A$ c  _1 y2 {! |/ i$ ~; l2 r
mysql> select char(77,121,83,81,'76');  ( s$ i  H2 Z% h" A9 r% a
  -> 'mysql' 6 F# J2 S$ _0 n. b) ^8 @6 h
mysql> select char(77,77.3,'77.3');  ! Q6 {) R2 G3 d5 _# N; A; r3 C7 o
  -> 'mmm' 2 V( I( G, y6 h& m6 }
   
+ G; ?- p+ {# v# _& jconcat(str1,str2,...)   * q9 s- H+ m! r2 f& w5 n+ W' C+ m# F
把参数连成一个长字符串并返回(任何参数是null时返回null)  ' F9 I! h' c/ U$ S4 Y( g
mysql> select concat('my', 's', 'ql');  
+ j. N( M+ U* Y% z. R( Q; @  -> 'mysql'
$ A& K1 R6 b4 T# Z( x4 ]0 Umysql> select concat('my', null, 'ql');  , o) P: E, K2 ?! P2 r/ C2 N' `7 C( s
  -> null
& ?# }$ }# Q% i8 R0 Rmysql> select concat(14.3);  . I3 S( t+ Z7 ?8 r, Y
  -> '14.3'
: Q( E6 a  h4 g 9 f/ u& o+ s- i$ N( d
length(str)   
! q7 I* Q' s/ Q/ U) X7 O8 Koctet_length(str)  4 o& F# K. A  ?: t
char_length(str)  
) Q$ Y1 @4 ~# V$ d$ l" ?+ bcharacter_length(str)  
& m8 [+ B3 S$ N1 @返回字符串str的长度(对于多字节字符char_length仅计算一次)
. {, ?8 ]3 k1 f- [5 ]- nmysql> select length('text');  
! Y* m8 j+ ]7 @  -> 4  ' n* K! i1 x+ m: \
mysql> select octet_length('text');  
) q) o* @3 ~! G7 z  ]8 L  -> 4  
) b0 r0 L# G. w/ ?4 c
8 x1 ^% H2 }2 {, Y0 ~locate(substr,str)     z6 i$ c' z& K- s! \% V+ F' |3 \
position(substr in str)   
: }% E0 U# |* S返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  $ A$ r4 t+ j! u8 a9 s" Z3 G
mysql> select locate('bar', 'foobarbar');  ! z. ]' r+ {! }9 P# o( H
  -> 4  
, Z. F9 q2 x- p! b% smysql> select locate('xbar', 'foobar');  ' A7 @/ z% y, ?# E
  -> 0  
4 O6 G: E# s$ h$ l6 w- s+ Z    2 u; @% Q  M2 _# _; B& C
locate(substr,str,pos)
$ Q* b  P) R( w- A+ j4 g返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  6 k: m' ~+ s7 |3 G( e5 A4 J
mysql> select locate('bar', 'foobarbar',5);  
3 W, l9 U" F% v$ h5 f  -> 7  6 J! u* p* Y: F" i% }5 h

6 T1 H0 @; U1 t0 d/ \. A/ Winstr(str,substr)   - J, |1 D3 y' P& J- s
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  ( v% o" p3 o- Y/ G9 S
mysql> select instr('foobarbar', 'bar');  
+ s/ C% G( V. f- k+ U% {  -> 4  2 e: t+ L4 T1 b2 y, p0 Q1 ?, @
mysql> select instr('xbar', 'foobar');  & ?$ ^4 m7 ?' \# a- y; D. J
  -> 0   0 J8 ]) x* U9 d) m

- V* d! g! y4 p: ?+ ^lpad(str,len,padstr)   
9 o$ Z: C* e9 p7 V用字符串padstr填补str左端直到字串长度为len并返回  0 R- K9 @! \7 c8 g8 S7 h1 X- f2 i
mysql> select lpad('hi',4,'??');  $ L# [1 d- }7 l! b
  -> '??hi' ) W- g6 f3 P+ A$ e/ b- a* n
   
( u3 A! H, |9 X; Grpad(str,len,padstr)   
. g1 K- s6 E8 g  X& l2 n& f. ^用字符串padstr填补str右端直到字串长度为len并返回  % n6 h1 ~& y! W
mysql> select rpad('hi',5,'?');  % \( |0 g! X- S( @2 w# B" @
  -> 'hi???'
& n+ V2 p9 ^4 f: F; f. ~ - P4 x5 s1 j! N8 ]" D0 i) ]
left(str,len)   
) V9 Y+ R/ @! e4 ^6 \返回字符串str的左端len个字符  & T, V3 l# F+ I( C8 a
mysql> select left('foobarbar', 5);  3 q* q! E0 T+ Q2 T& l
  -> 'fooba'
1 m, C; a: r# l . N7 W) ~! E8 v6 [( k
right(str,len)   
9 |9 @: O; q  I) L3 c返回字符串str的右端len个字符   * R7 z3 |- q- }
mysql> select right('foobarbar', 4);    R" Z  n' m3 N; A$ D; @: G
  -> 'rbar' 9 w0 ?$ M* c  _$ Z$ h7 P
  e5 G. F  a+ S# I1 ~  ?! Y5 g" e) j
substring(str,pos,len)   , I  L  C+ C4 M4 E7 R  H. M
substring(str from pos for len)   ) ~3 M* N* D" z6 u; t
mid(str,pos,len)   
; L" \4 X& Q3 E) R返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
0 b0 W5 F  k9 I& m9 X7 |' F  -> 'ratica'
' O0 _8 _: m% w! m- n
- A: R# e+ z* h7 P$ @substring(str,pos)   
0 c, K: ]& F1 J6 T7 j& ?" _$ P) qsubstring(str from pos)     t* d, B8 C- q( J& P6 b/ F
返回字符串str的位置pos起的一个子串  5 A. J, X4 N4 `' S# N- ^4 U/ C$ C
mysql> select substring('quadratically',5);  ) Q3 n7 ^% w3 M- K$ O# Q3 j9 ^
  -> 'ratically'
$ S6 r9 N' L: X/ H0 Umysql> select substring('foobarbar' from 4);  & b2 ^9 p: C) K
  -> 'barbar' , ?6 M! P' M3 i) `6 l! b

1 D7 h- W3 p  _2 F1 }( G0 Jsubstring_index(str,delim,count)   ! k( ?- h0 v# d1 V, I- K$ L, a
返回从字符串str的第count个出现的分隔符delim之后的子串
& N- z' f- Z. ]( a2 \7 C(count为正数时返回左端,否则返回右端子串)  
" P( n$ d& J6 ?! lmysql> select substring_index('www.mysql.com', '.', 2);  
) Y! |# i1 K/ O! f6 g% M$ ~0 @) U  -> 'www.mysql'
) f: m: n% {. L' A8 jmysql> select substring_index('www.mysql.com', '.', -2);  
8 `# O; b8 a' Z7 k  -> 'mysql.com'
5 ], R8 b' j# G9 l9 t4 ~( e, B0 F & I" n1 c- G' H. U3 z3 T- Y
ltrim(str)   . y# ]& x/ [  B3 Z7 M
返回删除了左空格的字符串str  # R' U8 \4 W4 Z% {4 G1 N" H1 p! L
mysql> select ltrim('  barbar');  
- _/ j2 }' O! J1 X0 U1 n6 |2 f  N  -> 'barbar'
, g. G( c5 B( j6 e3 E
5 {8 h+ G6 R3 s# \2 Ortrim(str)   - b. a, O! t! u, ^1 N
返回删除了右空格的字符串str  
3 v' D+ l6 |( q9 Amysql> select rtrim('barbar   ');  ; B' p, h1 G5 u' o" T3 D
  -> 'barbar' # l9 m" A. c5 B! ~+ w# |& O

2 y1 T' [  L' Z3 r* F# L1 utrim([[both | leading | trailing] [remstr] from] str)  
7 D0 x* v5 h  F3 |5 q( _; d% W返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  $ X. R+ n, y& e
mysql> select trim('  bar   ');  
- _+ N8 C6 D1 W# X  -> 'bar'
7 w9 R. V9 U$ ^" t* @mysql> select trim(leading 'x' from 'xxxbarxxx');  
$ b0 Y0 a) b$ y5 j  -> 'barxxx'
0 `5 t8 ^# W4 ]# H3 A) pmysql> select trim(both 'x' from 'xxxbarxxx');  
4 I' ~' h$ z& a  -> 'bar'
% E$ o0 Q3 D8 K( c0 O0 h* m" \$ nmysql> select trim(trailing 'xyz' from 'barxxyz');  
! C& u, y( _; q. N9 d1 t; }. s+ M  -> 'barx'
" m1 s. ^# ~1 ^# s- x ) h; w! a# \) o% ^
soundex(str)   
7 O4 i+ _0 e( a3 @5 x返回str的一个同音字符串(听起来“大致相同”字符串有相同的
, d- d8 o7 {- j9 G1 l同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  * P1 b1 J! M8 ^' v" u% {7 ?
mysql> select soundex('hello');  
7 S1 Q5 w4 ]! j) ?4 I; |% M, z  -> 'h400'
6 T5 d8 V3 `9 Tmysql> select soundex('quadratically');  
6 |- _# Z: t8 B' X  -> 'q36324' 0 N6 c  x+ B6 j
   $ H/ J9 R9 @  ?- p& H) e' B
space(n)   
/ ?2 S; l, h- p返回由n个空格字符组成的一个字符串  
; g4 f) e7 Y+ f+ W, X+ `8 Fmysql> select space(6);  
# P! B1 e0 b) q/ w- n) f8 T  -> '      '
+ G8 L5 `) q/ {. e5 h   ! F  n2 I3 E8 J& m, m
replace(str,from_str,to_str)   
; E0 W3 a: R$ I$ m, p/ `/ O用字符串to_str替换字符串str中的子串from_str并返回    ^! y3 `3 M7 ~
mysql> select replace('www.mysql.com', 'w', 'ww');  
  a7 J/ F" E6 {" T  -> 'wwwwww.mysql.com'
% \2 K: b3 o( w5 W$ y- z, N; T' m 9 E8 i6 @0 i( _6 S- O' W
repeat(str,count)   ( ]9 Q) i  H; d- e3 ?2 [
返回由count个字符串str连成的一个字符串(任何参数为null时3 H& K* h2 `3 Z0 C+ w
返回null,count<=0时返回一个空字符串)  
- L* l+ V$ y/ C2 W9 \* ^mysql> select repeat('mysql', 3);  
  o0 g& _! t& u* v: @7 ~  -> 'mysqlmysqlmysql'
- E( I  v5 X7 J0 @/ w   
0 p+ K# ]# J0 g* W) lreverse(str)   
2 }+ |3 @# K1 A! y0 N% I# g! c颠倒字符串str的字符顺序并返回  
- {8 D" U/ }8 _( h1 _mysql> select reverse('abc');  
; u6 Y! [7 {0 g  -> 'cba' " `# p) k: G3 J

; b! L. k/ {5 K( k  Y0 q1 D3 Minsert(str,pos,len,newstr)   
+ x; s+ o5 }3 j$ c. O把字符串str由位置pos起len个字符长的子串替换为字符串
! v6 ?, h: |3 L' Z$ B( xnewstr并返回  8 e% A2 `$ v+ ^/ i& ~
mysql> select insert('quadratic', 3, 4, 'what');  
4 \, W  \, i$ p/ t, Q  -> 'quwhattic'
! P5 a8 t' r, u% @. |
  Z% `6 C8 {6 a5 y/ Zelt(n,str1,str2,str3,...)   & E* I9 V: a" A, e
返回第n个字符串(n小于1或大于参数个数返回null)  - W" q% ]9 F# B" N4 M) i
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  ; T9 h3 G( e7 N1 V
  -> 'ej'
3 y0 e8 _4 X7 B* a8 S4 b! q% tmysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  7 P) d, m4 s$ @9 a% g! t9 H
  -> 'foo' 7 [8 S# O. U0 Z9 G
( d! y+ W  }! r  Z& E( k
field(str,str1,str2,str3,...)  
+ _+ j+ P8 e5 ^6 L返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
3 b9 d9 J$ U+ i8 H4 {mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',% e, u! b8 k& L8 Y" c
'foo');    e0 H4 R6 ?; t1 W, j/ ?! \
  -> 2  . j/ \. _- T1 d  M
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
& t+ w' s* G8 V& R$ x2 X7 O# U'foo');  % e7 A$ u5 A( ~2 e# l
  -> 0  1 s9 H! G4 X& @5 i+ F- w
3 e7 @" k4 z6 W: S
find_in_set(str,strlist)   
( R1 D8 ~" |7 U# d, j2 d2 d返回str在字符串集strlist中的序号(任何参数是null则返回" z2 a, I, s' B% k* ?
null,如果str没找到返回0,参数1包含","时工作异常)  
& n9 d; T4 Q4 ]8 r/ G$ n& R& l! W3 k3 f: Vmysql> select find_in_set('b','a,b,c,d');  
% r; t4 X3 I# i+ M& n( f6 @3 ]  -> 2  2 C* ~, ^5 g  `8 ^
   $ N8 a% y" |8 p) t; f
make_set(bits,str1,str2,...)  ' J; g- T1 V9 U
把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
2 Z; @( t7 R/ J4 E# X: U/ ^位置的字串选入字串集并返回(null串不添加到结果中)  . F( u( `& P3 e/ H2 T1 t
mysql> select make_set(1,'a','b','c');  
; @/ `/ U" j1 O$ q* d1 o  -> 'a'
' H. E$ D2 h+ V7 P' mmysql> select make_set(1 | 4,'hello','nice','world');  : b. }! u# b, w4 @% X
  -> 'hello,world' 6 w* S* j: k+ M7 N+ [# ^' V8 E
mysql> select make_set(0,'a','b','c');  9 Z9 N% R8 b' |4 s+ R
  -> ''
$ L$ W1 M' h) |* R+ U. E
8 }" o5 H. D5 I: g! H: Dexport_set(bits,on,off,[separator,[number_of_bits]])   
! ?. d8 Y0 b" g$ t9 H6 z, z9 b! K按bits排列字符串集,只有当位等于1时插入字串on,否则插入6 j5 ?& O4 q; Q/ n# h& S5 p
off(separator默认值",",number_of_bits参数使用时长度不足补0
" x# k- w0 u2 D, ?- S9 H2 Z而过长截断)   9 w0 l; S' U, R) d
mysql> select export_set(5,'y','n',',',4)  
8 }* R* k$ w3 i- x) ^9 o$ D1 c  -> y,n,y,n   
: z, _5 R# K2 G+ x8 p1 O
( r4 h5 m- A9 W* a/ n! t. }. vlcase(str)  : \+ r: \) r# y3 W0 v' n
lower(str)   % I9 V& p/ p/ n6 ?8 `/ A+ ?
返回小写的字符串str  / I  _3 V3 X* F! d1 ~  W
mysql> select lcase('quadratically');  
( E: c8 A0 J& |9 H5 T, R  -> 'quadratically' ' o5 p$ v6 ]- v) P9 k( A9 Y
   # J. ^& e& r" c1 p
ucase(str)   ' f$ H' k. |9 a5 R( Z0 S
upper(str)  
( n" R# J9 c8 q) w- `# k$ C( S返回大写的字符串str  3 z6 k; c+ [; g. f, C" U
mysql> select ucase('quadratically');  
9 Q" Q' E6 g7 \: u3 A6 g  -> 'quadratically'
, C( o. c% V/ h7 m7 b. p
" U) {3 j3 R) F: f: r5 Oload_file(file_name)   
2 k/ N. g" K1 y0 j4 m读入文件并且作为一个字符串返回文件内容(文件无法找到,路径" `; }1 n8 e: [+ v8 C3 R
不完整,没有权限,长度大于max_allowed_packet会返回null)  
' o0 u6 q9 z3 G; wmysql> update table_name set blob_column=load_file
+ m3 W( E  D' {; c("/tmp/picture") where id=1;  
3 Q8 }( V8 K$ k) w1 [$ q 1 J8 I* [" C- s; S/ ?5 z; x; p4 P; G# {% K
2、数学函数) m6 t* T5 U* l
abs(n) " n& }1 @* `( R0 q, F$ ~: M1 d
返回n的绝对值  
" c+ g, s  E5 h- n8 vmysql> select abs(2);    6 J9 |/ b9 l5 F& B- q
  -> 2   
: f$ }- i. {9 p; Lmysql> select abs(-32);    1 N% L3 `' A; t* ~3 [! B9 [
  -> 32   
3 H$ G9 t9 R' O4 r4 \   
/ J/ v/ x* i+ S( ], Q. Wsign(n)  + _  T# D  W( {: O
返回参数的符号(为-1、0或1)  
5 ~+ `" U9 V2 |, v; d# Emysql> select sign(-32);   
  e/ {, c7 k/ p3 m. R  -> -1    + k4 l' i% b$ m: e
mysql> select sign(0);   
5 l8 ]9 |, F  U1 k2 d! z( Y  -> 0    5 v3 d: h" q. |8 D/ Y* ]
mysql> select sign(234);    # U9 \7 e, p5 y3 ]# A
  -> 1   
# v4 C1 D( ?% k' X. v( c# u1 l7 \$ x% G
) D- _0 ]: K% Q3 d& r( bmod(n,m)   
& P7 Y' v3 k$ @7 h( o8 x* ~取模运算,返回n被m除的余数(同%操作符)    0 |5 ~# K! q7 F: |
mysql> select mod(234, 10);   
' b3 Q5 y" y3 H  Q  w  -> 4    ! N6 \) M/ y9 G5 f
mysql> select 234 % 10;    ( K2 r2 z; |# j/ F$ S' m
  -> 4   
9 c7 U/ Z- D) @7 N# p3 ^* \1 Qmysql> select mod(29,9);   
: `0 g5 p- t* E! ~( T  -> 2    1 N+ u1 N1 A! a/ P% D2 p

, `( h6 H0 N6 c6 S; F0 Wfloor(n)  * b, K6 x5 p+ s& ^5 x9 p% d$ G
返回不大于n的最大整数值    Y# M' E# L/ ?0 [  j' o
mysql> select floor(1.23);    $ x6 X" ?/ V& {# D
  -> 1   
( j' _* h3 K2 X; S4 Cmysql> select floor(-1.23);    ( \: y6 h0 M" v, a& v$ z/ A
  -> -2    + g0 u3 c5 o9 Q5 ]+ R

+ I5 j3 T  J3 f2 T3 l+ Qceiling(n)  $ z# p6 b1 }8 y4 d$ ~( O
返回不小于n的最小整数值    g5 }2 y8 v. R
mysql> select ceiling(1.23);   
+ _4 h" E8 u; v9 J: j9 U  -> 2    ( `' z$ P+ s/ J7 R
mysql> select ceiling(-1.23);   
+ `' A; Z4 j  L  ~+ N0 G2 p  -> -1    " D( F, Z& D9 N$ J
9 ]2 S6 M1 W$ j4 R
round(n,d)  8 D# i: d% P7 j& T7 c& O% l
返回n的四舍五入值,保留d位小数(d的默认值为0)  
/ n* g$ [6 Z6 I9 O& E& S; ]2 G5 tmysql> select round(-1.23);   
& r! K$ f5 j6 o/ i1 d4 x- m1 e4 i  -> -1    8 O% g3 n$ ]5 t3 F" T
mysql> select round(-1.58);    9 y, e2 n- D9 H
  -> -2    * r1 r0 C7 X0 [' n, c
mysql> select round(1.58);   
6 s# h( h3 M6 ~" ]$ _5 ?$ n1 z  -> 2   
' z. c" q" |% e& v: p0 E5 P0 [mysql> select round(1.298, 1);    ' N; `" d# R0 ?, `7 C  }6 X7 Q: W
  -> 1.3    - D* t; V! C1 m9 Q* N& v. `9 ]% X
mysql> select round(1.298, 0);   
% t% S9 J1 U" {/ b. y! a  -> 1    3 m5 V4 \9 f( L( @/ Q5 Y
) E4 F* J4 t' \8 k# d7 d4 f$ c
exp(n)  
4 k6 J8 L) x& c返回值e的n次方(自然对数的底)  ) u& k! W" J* e/ q7 U$ B
mysql> select exp(2);   
' y% j3 |6 u+ t. w  -> 7.389056   
* S5 _- ]: q1 L/ [# smysql> select exp(-2);    ( |. f  s0 I4 R1 }9 B, B6 T3 B
  -> 0.135335   
6 s+ }+ ]+ Z; o9 E0 J9 J+ o 2 \) ?' E* N2 O" j. T2 r2 s: X, i
log(n)  # C0 \" R" B1 a5 I8 B9 e& |/ M
返回n的自然对数  ; A; g5 p/ D  w
mysql> select log(2);   
0 I- f$ c) {1 t& d8 z  -> 0.693147    5 y0 I. Q" o; V/ D
mysql> select log(-2);   
+ n$ ~& f: W8 S1 {/ z" X: t* B  -> null   
+ i' d) t- m" G3 }% P! U 3 P2 s% s) T8 a! p  U% Y
log10(n)  
- k& |6 w* y( o, D6 R返回n以10为底的对数  
) F/ G  P# \! Q9 h7 @mysql> select log10(2);    ( c7 C9 u" p4 Q0 s+ n
  -> 0.301030   
7 u. p) D/ `* Hmysql> select log10(100);   
( {+ ?( B, a# ~% W: h  -> 2.000000   
8 O5 D, W+ C6 ~6 umysql> select log10(-100);   
& `7 |% y) j. ~% f7 q0 }8 ]  -> null    ' M  r! ^; n1 B1 ~' N& J# X

; D! ~  ]2 v& T6 y/ P8 S5 q% G1 ?pow(x,y)    8 R5 t3 z% ?0 H* h- y
power(x,y)    ! Y7 f" A- \  s* S3 J3 K! a
 返回值x的y次幂  8 g# D" L! }2 b; ]
mysql> select pow(2,2);   
0 Z$ Z8 D; @$ Y( L( q, b6 v; j  -> 4.000000   
! S  c" e& y% O8 \/ c( x  {8 _- ^) mmysql> select pow(2,-2);    ' d* S5 ?# F0 W: G2 i/ \) ?
  -> 0.250000  + a; z$ B" D  g$ H
/ F) A$ g) A0 A" _: G7 J; M
sqrt(n)  & q2 A! q  J' m! u8 x  e+ B1 M
 返回非负数n的平方根  
+ ]& o+ d7 w/ Pmysql> select sqrt(4);    5 E; H% J* V: J
  -> 2.000000   
* S: |5 v7 y* U3 E! I- Xmysql> select sqrt(20);    ) H8 f  Z  \. }1 H& x
  -> 4.472136   
! ]: n2 ^/ s  q# J" \ , E: b: V, d( _! f+ p
pi()   
+ `7 a% r2 h4 ~- } 返回圆周率   
  a- D" |3 A. F9 F" j; Dmysql> select pi();    3 F3 W. }- {6 }1 }/ W
  -> 3.141593    8 B' F, u+ \9 O2 G, Q' P

0 k) E# U# f1 j& S; H7 vcos(n)  - _5 n& @' N! G
 返回n的余弦值  + O. t( B9 \4 ?) h
mysql> select cos(pi());  
" A% O2 B( j9 f! G  -> -1.000000    7 k( Y8 G, b$ M" H8 ]. P& V

1 M1 `4 K: [3 u0 W+ `8 w" P3 u3 t  Ysin(n)  
5 p- b$ ~) z! B0 r 返回n的正弦值   % A: s0 A1 t# j" v+ v+ f1 p! S
mysql> select sin(pi());    8 w% S; J& N/ S$ [8 X
  -> 0.000000   
6 h* C7 i2 p: }4 c" I2 x' J3 l1 P
% l& z1 N; {3 x" r4 |4 C, f$ Q! btan(n)  % g: X! L' m+ g9 ~! M' b4 F& ^3 y/ W' ^4 q
返回n的正切值  
" U+ z; z$ L$ m7 [! l. c: }mysql> select tan(pi()+1);    ( C& D1 u) A3 o; f9 g2 W8 d1 f) C
  -> 1.557408    * O9 T8 B; `0 w4 O- D! K

* f3 v1 i* ?% _! P2 Eacos(n)  + U/ ?. Z2 p3 L% J: b5 V
 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  ' z) j  L& a2 w* F
mysql> select acos(1);    * r) ^0 S( N) q4 [% k
  -> 0.000000   
: n/ H4 S- G6 U' H5 }0 ^mysql> select acos(1.0001);    % Q- m2 f3 r. `6 n# a- r/ f
  -> null   
6 |- x) W7 W/ @* Q. r* smysql> select acos(0);    / B, r; B, O0 o. X8 m) N; G+ }
  -> 1.570796    1 E2 x7 `5 j- f4 U5 C- Y% S
- g) D/ |) z2 k+ x9 a& b
asin(n)  . \" C4 Q6 E' H, G! w1 E& [
返回n反正弦值  
, t$ d7 H' F1 X' Z3 pmysql> select asin(0.2);   
, {/ P* L' B3 H- F$ m  -> 0.201358   
* n6 N6 s& `0 i. c# jmysql> select asin('foo');    2 l* o# G9 x+ V" b
  -> 0.000000   
- A$ f+ ]8 I- x+ b, R ; n8 k* z9 }: e6 h6 [! A
atan(n)  ) b4 Z4 [- B% r, }8 d
返回n的反正切值  
  Z3 k% H- |1 Umysql> select atan(2);    % T: J+ W) j) `4 H3 z* O
  -> 1.107149    3 s+ [( l' \- @7 b9 O" S2 G2 f$ t
mysql> select atan(-2);    ! t) U& K( H6 S) u7 {9 m  X1 ]
  -> -1.107149   
$ E, q' P' h" gatan2(x,y)    9 z* G/ @' K, y1 h% c
 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)    V, M% D2 }. s' R2 r% Z& `
mysql> select atan(-2,2);    5 j; t8 }1 F3 m1 _5 U+ U
  -> -0.785398    6 I) x+ o. m3 Q, b- u
mysql> select atan(pi(),0);    % ]# B, V$ R3 h# Z. u% Z. _
  -> 1.570796    # n: a4 [/ B' J+ @
9 Y6 i# d' ^- y
cot(n)  7 `& T* Z5 u& ?3 g
返回x的余切  
" B5 V8 |" ?+ s6 K5 omysql> select cot(12);   
; J. L+ L; M/ o  -> -1.57267341      d) p! Q  ?5 c; m$ p$ ^# w/ o1 J
mysql> select cot(0);    * v9 V- j/ ~, T' B
  -> null   
4 N+ U/ ~( X& X/ h) _1 T
6 w  ]" L3 N; B' p) Z, K  v1 [$ zrand()    y; j( s3 U0 \6 X
rand(n)    
) y  g. L* T, k8 F. _返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值) 8 }" g" ?- V. u

4 O, L3 K4 I/ I& F. n  Imysql> select rand();   
7 t  ]8 Z" |" B9 r5 c6 J  -> 0.5925    7 z) w) h+ X% {. y
mysql> select rand(20);    2 J! Q. k) y$ G
  -> 0.1811   
( F0 b% f3 r' n  I* E  A+ ]4 amysql> select rand(20);    1 s5 z, E+ E! w) l3 j
  -> 0.1811    / U0 ~( |0 p8 w4 [) i- `, H
mysql> select rand();      J# Y2 {: R( d  E
  -> 0.2079    , y* X4 `/ O% M& s$ Z$ V
mysql> select rand();    4 U! E. C9 u! w% w' P* d( N
  -> 0.7888    ' M* D# r5 t% ]# J6 B8 a7 X$ _* s
5 c* _) u. D6 y) i) l6 P
degrees(n)  1 \# |- T; x: O' D
把n从弧度变换为角度并返回  
: X4 C% u9 O8 z* E/ Imysql> select degrees(pi());    & _$ `7 J& Y8 W
  -> 180.000000   
, ~0 y( k: Q; x8 T$ C9 z' N
/ T8 N4 l. }6 d6 [radians(n) % F! F2 i. z6 }$ n
把n从角度变换为弧度并返回   3 V2 @' V( p9 E7 g/ G5 J
mysql> select radians(90);   
5 V( r) U/ N/ R8 u  -> 1.570796   
1 M1 B6 N1 H# s, w0 H9 L: N, P  z0 `3 S' P
truncate(n,d)    + ^4 r, J* j# p; h9 m. d
保留数字n的d位小数并返回  7 J1 Q0 p8 v, F* H0 K
mysql> select truncate(1.223,1);   
. v* G) _: A! l7 L4 ^: p  -> 1.2    6 z6 n+ E1 t1 q* H* G
mysql> select truncate(1.999,1);   
+ X4 j3 S- `: j4 }3 M4 C. w) |  -> 1.9   
% c+ I5 o/ @1 R6 Rmysql> select truncate(1.999,0);   
% a& v; r6 I; ?  l. _  -> 1   
3 ~' j! u7 u! D: M' d! l- R; H# t
7 H' N2 B* [* _6 f; v4 `least(x,y,...)   
& J3 Y8 c, j6 \返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
) S* z  A# T' q! }8 W- i& Jmysql> select least(2,0);   
& w# C) S% T4 _$ Z( b% Y  -> 0   
2 A; o" `7 H) n5 Y6 Fmysql> select least(34.0,3.0,5.0,767.0);    , d/ s" ~+ f) Q
  -> 3.0    . D4 G# y8 U8 y4 I) y2 N
mysql> select least("b","a","c");   
& U+ T/ |  G8 _6 J, R0 C5 |  -> "a"   
3 }& c1 v& _( a9 R . ~$ D3 @& }+ J$ v0 H' X
greatest(x,y,...)   
2 o; {( g7 G  q- W# R返回最大值(其余同least())  
6 `/ X- O& T: ~mysql> select greatest(2,0);    ( Q! b2 ?- p  |; [
  -> 2    * `) w: j5 X4 T$ Z
mysql> select greatest(34.0,3.0,5.0,767.0);    7 A5 ?0 C1 e# W6 P# `
  -> 767.0    ' J6 D6 y$ Q1 d3 |
mysql> select greatest("b","a","c");   
9 Y! O% ^- ^/ Z# u# Q" R' `  -> "c"     ) k2 _  X" n" a4 r# [

2 \' l9 y, F1 G/ C! j3、时期时间函数 ) @7 a: A2 ?. {/ B2 C$ F# _
dayofweek(date)    : E, H$ X6 X9 y( E+ a
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  4 y) C- \) e+ t/ w
mysql> select dayofweek('1998-02-03');   
$ ?' [4 X' e! Z* q3 r  -> 3   
/ x) e% B! X' {$ b3 Q+ ~ 3 `) O( k/ h% T  O9 ]
weekday(date)   
2 G1 t! E1 o) o5 `" D9 d返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
4 w) ?  C' ^# E1 k% d  
7 c) F/ N& J4 |1 R9 T) pmysql> select weekday('1997-10-04 22:23:00');    5 a* u% w; U# R" O9 |5 I
  -> 5    1 \( ~5 y4 b( \( ]4 |! k
mysql> select weekday('1997-11-05');   
& R" p$ K9 J9 s4 [5 o) G) m  -> 2   
4 a! x3 P4 Z4 H1 Q  [/ ~ / A$ \! U& ^* I- N( c, q
dayofmonth(date)    ; d! p1 j1 \6 J- J4 {6 ?7 t& S5 Z2 f
返回date是一月中的第几日(在1到31范围内)    . ^" _1 @3 l4 c2 _0 q
mysql> select dayofmonth('1998-02-03');    , _" Q7 t5 {/ A) P1 N9 `
  -> 3    ; X% T6 i% V4 W

7 c% q/ P$ n6 `( ldayofyear(date)   
% L. H  v, E  G! R! v返回date是一年中的第几日(在1到366范围内)   
5 [+ k. S' a* m: J& u( umysql> select dayofyear('1998-02-03');   
9 o2 e- J; r1 t+ V: ?  -> 34   
+ f. R# m- d3 w% y3 t
0 ?8 t, Z( T4 d; amonth(date)   
  e2 ]8 S3 x0 C  m返回date中的月份数值   
. ]3 N* H- g( O7 @6 Jmysql> select month('1998-02-03');   
6 p/ c2 m3 ?, E3 g* R+ ~  -> 2    % }! k6 |9 H4 ^( j
7 L0 |5 n8 W4 [, m5 i
dayname(date)    - T+ B; _( G: }- G7 }  C
返回date是星期几(按英文名返回)  4 B, [1 h2 I3 D
mysql> select dayname("1998-02-05");    , ~( i1 s( N% p, ^' T$ f6 I
  -> 'thursday'    0 a1 @0 d/ W' _7 i

# Y6 Y- N" j5 `, Wmonthname(date)    3 T/ C# W" ?7 i7 l& h
返回date是几月(按英文名返回)  2 D$ ]+ X: [0 T+ E
mysql> select monthname("1998-02-05");    8 H- G2 G& c" h
  -> 'february'    % e* H, H/ Z' u3 r' @

2 S+ o; b  X6 p- Z! b% X7 |$ mquarter(date)   
# R+ v" H, D* p, v返回date是一年的第几个季度   
: E8 X( x( g: \8 V% u0 k& `9 V3 fmysql> select quarter('98-04-01');   
7 }  b/ ^8 }  b8 d; {0 ]  -> 2    ! H, E, d$ n2 A  I# e
' k9 k. _5 o2 Q* @; O9 t
week(date,first)   
" Z1 n# r5 w1 \1 V, H4 B: G返回date是一年的第几周(first默认值0,first取值1表示周一是3 B9 P" W: {- k9 M4 x0 w! E
周的开始,0从周日开始)  , x1 l; P9 S$ D1 ?% s- U
mysql> select week('1998-02-20');   
% J( W- _  c& E) y2 D  -> 7    1 |* {' ]" F8 _3 G% j+ m0 h
mysql> select week('1998-02-20',0);    # F4 k6 K" r: K/ q7 s
  -> 7   
4 }* j3 V. e# {8 Xmysql> select week('1998-02-20',1);   
8 }$ @: c. A! K/ p* ]) h' p1 a' X  -> 8   
. U' T( l& b6 V5 x 8 P0 Y4 a! s2 ]( j4 \
year(date)    ( p$ r, u, k$ W8 b4 u- g6 T
返回date的年份(范围在1000到9999)   
0 ~# u- z. H1 Emysql> select year('98-02-03');   
- H2 ~% V3 ]' s8 B% y  -> 1998    9 h* u; h: S" i
: s# N- t, R8 i( J* `: s, i
hour(time)    
" o& F1 [8 X2 d+ {返回time的小时数(范围是0到23)   0 T2 K0 K* U8 R% _. v+ G1 v
mysql> select hour('10:05:03');    # J+ z; u$ B( f, d! l8 {  z3 c
  -> 10   
# f: C. d, h& F1 ^" O  {
- W! B; a: Y0 uminute(time)   
8 E2 v$ U3 a! o2 m: z, H- j" _返回time的分钟数(范围是0到59)   
* j5 ~2 X; v! o- v' q1 W7 s. T+ qmysql> select minute('98-02-03 10:05:03');   
- O2 H+ ~9 }! o( @1 {  -> 5   
# y$ Y0 K5 b4 E) @+ C 1 q) c; M2 ?5 j4 l4 k3 g! P
second(time)    
& h0 \: t* @8 v( u5 z4 U- o; j0 T返回time的秒数(范围是0到59)   
" k' G+ {' C/ k- d) G2 umysql> select second('10:05:03');    3 p7 [9 N6 i; J4 v" C; |
  -> 3   
$ E& [! ]: A! G$ \3 [& w
+ j2 l* J/ s# S' x: s2 j" {period_add(p,n)    3 z# O# Q$ V/ y# e! [5 S3 f
增加n个月到时期p并返回(p的格式yymm或yyyymm)    ) k$ C3 D( J, X, ^+ X5 y
mysql> select period_add(9801,2);   
$ R3 @# A8 L/ r9 v; u  -> 199803    % H+ o% U# ?/ a% h9 X
. y3 s  E" U) M) o
period_diff(p1,p2)   
  d& Z  m+ E9 L% ]  T4 h+ H: s5 b返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  
7 E- c. i0 Z4 {) pmysql> select period_diff(9802,199703);   
7 h/ T* C& O. ]  -> 11      g8 o. i: E+ M2 K' k; Q

3 A, z  L% \! l* [date_add(date,interval expr type)  . Y# w: E- F' A6 j; a/ T7 ]
date_sub(date,interval expr type)   
1 `' X. A4 M; Z: I: g; Jadddate(date,interval expr type)    ( Q8 @  ]& e' A( R3 q
subdate(date,interval expr type)  
, `" s0 M& F# ?+ h3 c0 p7 b, k% k: j) y" j对日期时间进行加减法运算  0 N0 L* e( `' C  N# u5 T' p8 w
(adddate()和subdate()是date_add()和date_sub()的同义词,也
8 u2 Z0 J, M4 B3 @) O可以用运算符+和-而不是函数  
8 f& ]; j& b+ l+ ~8 W' X9 J- q' idate是一个datetime或date值,expr对date进行加减法的一个表+ ]5 O9 R& C5 B; i" ~
达式字符串type指明表达式expr应该如何被解释  # N+ w1 {( X, W+ @. K, W
 [type值 含义 期望的expr格式]:  1 J9 W2 z2 \( n0 d1 W0 Z0 X8 p) d& Y
 second 秒 seconds    . k; @0 [* D3 w* z& @
 minute 分钟 minutes    1 f. b! t" `( b% T) U1 Z. ~
 hour 时间 hours   
9 k, f9 J' o; R0 s$ h1 E, [ day 天 days    ! w! ~8 C+ D3 G1 H. k# v
 month 月 months    ! B7 |$ A/ K& }7 Y
 year 年 years    , p9 I- x7 \) r2 a: |
 minute_second 分钟和秒 "minutes:seconds"    6 a1 f. K% _$ k* ^
 hour_minute 小时和分钟 "hours:minutes"    3 h9 \2 O( Q' ~$ C( G. d0 t  n! L
 day_hour 天和小时 "days hours"    4 _' S$ D: y2 F  b7 ^. A
 year_month 年和月 "years-months"   
2 D+ L3 {* _, k: q7 b hour_second 小时, 分钟, "hours:minutes:seconds"    4 x1 f0 Q# w' M
 day_minute 天, 小时, 分钟 "days hours:minutes"   
" G! z& R( `$ Y% w* t& O day_second 天, 小时, 分钟, 秒 "days8 i9 j; X3 A) L' b
hours:minutes:seconds" 8 a0 I+ Z9 V( I3 h- r* f
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个( |* E, E6 H9 U
date值,否则结果是一个datetime值)  
# b* ~: z9 B  [, s9 k 如果type关键词不完整,则mysql从右端取值,day_second因为缺
5 W5 x* E" E; n少小时分钟等于minute_second)  
, z/ J. k, Y" f: a# f$ j' h 如果增加month、year_month或year,天数大于结果月份的最大天: }7 \# q4 H* m, H8 |  P; d; V+ R
数则使用最大天数)   
' a+ k3 W& C/ ?  }: _mysql> select "1997-12-31 23:59:59" + interval 1 second;  
1 x: j! w# s) W; F% G% x
& q1 ^/ _1 J+ S/ `. N  -> 1998-01-01 00:00:00    ! |" ~+ V3 N4 h
mysql> select interval 1 day + "1997-12-31";    & T; W$ b' q% a2 f2 |  N: x
  -> 1998-01-01    4 k8 m8 @8 S8 r3 y$ g2 }
mysql> select "1998-01-01" - interval 1 second;    % m8 p  {8 A) x) R6 [
  -> 1997-12-31 23:59:59    # Y' I/ S; O& U# Z" D) p8 N, X" T
mysql> select date_add("1997-12-31 23:59:59",interval 15 t' Y7 \5 T, A% j# |
second);    / p6 k1 I& A+ k; q, a# a5 ?9 w
  -> 1998-01-01 00:00:00    ) [# j6 k$ W! H4 e9 U; z
mysql> select date_add("1997-12-31 23:59:59",interval 1- T8 R6 T: _  _5 l) x3 T
day);   
$ I4 o1 a& P( l  -> 1998-01-01 23:59:59   
' X+ }& h5 U/ \- _4 jmysql> select date_add("1997-12-31 23:59:59",interval
9 p+ K  _% B0 F. H' F  B: m"1:1" minute_second);   
" ^, m2 w, S% @4 O/ E6 F& s  ?( o; C  -> 1998-01-01 00:01:00    / n' j5 q: ^  e0 U
mysql> select date_sub("1998-01-01 00:00:00",interval "1
/ c: N* g/ S( h% W1:1:1" day_second);   
+ N6 U- ?* _8 M8 I2 @7 f' C' q  -> 1997-12-30 22:58:59    + `# w% j) G! u( w
mysql> select date_add("1998-01-01 00:00:00", interval "-19 m- `: u; {1 j& F2 d- q1 l! ?
10" day_hour);  9 e8 \# K; G8 {
  -> 1997-12-30 14:00:00    # Q' E$ g2 i+ P; t5 s
mysql> select date_sub("1998-01-02", interval 31 day);    . e; Q# D1 F7 G, ^) p3 f- I
  -> 1997-12-02    4 m& D. @/ R9 Z& \3 j
mysql> select extract(year from "1999-07-02");   
( p7 h. M3 Z: F7 N& C" P  -> 1999    . u, {+ E! _' A6 w  U+ _
mysql> select extract(year_month from "1999-07-02
# r3 S5 f0 J/ o0 R. m. q, K01:02:03");    : K' _4 ~/ ^) P# F1 L5 U
  -> 199907   
/ r/ c3 \0 E4 `$ z8 fmysql> select extract(day_minute from "1999-07-02
& T& J) ]. d7 }5 Y; `1 E01:02:03");    2 b3 m9 p; h& y3 l4 @% g
  -> 20102   
. P. X( S0 Z. I- ^* T) E
5 K7 ^( G1 i, g! m8 n4 x5 W2 Nto_days(date)   
- o# E+ t+ Z" r/ w# K% T6 u1 \/ x返回日期date是西元0年至今多少天(不计算1582年以前)  
8 K- M/ F: I0 P) Z1 Rmysql> select to_days(950501);   
- N) R* h( f' t& c+ g  -> 728779    ' o2 n0 A$ @2 [$ D0 G  ^
mysql> select to_days('1997-10-07');    / M' T# f5 h3 `1 w7 M# q
  -> 729669   
$ }- l- @8 s: q ! J* G( s$ v9 `+ T
from_days(n)   
' n/ f( g, F" H& B  f 给出西元0年至今多少天返回date值(不计算1582年以前)   
- H* p5 Z( }( ^( v- g- q5 Pmysql> select from_days(729669);   
$ L( n  H7 }: n5 [% j  -> '1997-10-07'    2 i6 D$ Y, E: [/ E
. f/ O; ]- G" H' `
date_format(date,format)    . l! x7 I  o( y3 C* b  ?. S- z
 根据format字符串格式化date值  + |+ ?4 X, R* \
 (在format字符串中可用标志符:  
, W1 j. Z( i/ u. R7 G' e# t %m 月名字(january……december)   
& h7 J. S, h* W! e9 o9 @9 y! Z+ A. ^ %w 星期名字(sunday……saturday)   
7 t6 z' w- ]$ Y  M %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    3 q% ]1 Y1 [. Z' }2 m: F  t
 %y 年, 数字, 4 位   
' x' o4 J! O. ]( n) W8 L: c; Q5 Y %y 年, 数字, 2 位   
: u7 q- P" I6 p' S7 {" \ %a 缩写的星期名字(sun……sat)   
1 S  K8 ]- L2 {" y %d 月份中的天数, 数字(00……31)    ; m7 W  n" v; i7 T- y5 i$ u! E& s
 %e 月份中的天数, 数字(0……31)      ?; s4 Q( a! x4 i3 e" O! a
 %m 月, 数字(01……12)   
* Q- U* T6 w: y5 ^ %c 月, 数字(1……12)    6 {! j8 C. B) }0 ]- @
 %b 缩写的月份名字(jan……dec)    , V* _2 w& n* b! m; R$ |2 H
 %j 一年中的天数(001……366)    ! z( M& M4 W: }6 {( C! z2 k
 %h 小时(00……23)   
. p" i9 z. p. y+ Q4 F, ?( A %k 小时(0……23)    % I! C: v) K$ I8 I5 m) S! a
 %h 小时(01……12)    " {& h* {. C$ H# W
 %i 小时(01……12)    + A. X( t. l( ~
 %l 小时(1……12)   
& d- R/ h8 c* a+ \ %i 分钟, 数字(00……59)    % H* z0 [& Y, u( t. a
 %r 时间,12 小时(hh:mm:ss [ap]m)   
  t$ y1 ]7 X7 L* } %t 时间,24 小时(hh:mm:ss)    , f/ X: w( a1 S9 o/ z
 %s 秒(00……59)    8 s: P. R9 b' Q& k3 ]$ }5 F
 %s 秒(00……59)    ! L/ @4 @' N( K/ Y
 %p am或pm    0 `- P$ J% v3 m! Y" H$ x: i
 %w 一个星期中的天数(0=sunday ……6=saturday )    1 i9 R/ @+ F2 R5 @2 e
 %u 星期(0……52), 这里星期天是星期的第一天    , _) k! }& {1 h
 %u 星期(0……52), 这里星期一是星期的第一天    $ S+ V, H4 C0 A5 D  H* e2 I0 I) ]
 %% 字符% )  0 ^+ k$ Y6 G) z  O3 o  t1 K3 ?
mysql> select date_format('1997-10-04 22:23:00','%w %m %/ h% r9 L3 b6 n6 p* D
y');   
; V, ~# }# h  A& M  -> 'saturday october 1997'    $ i( y( Y1 P0 q" J
mysql> select date_format('1997-10-04 22:23:00','%h:%i:%
4 g5 v6 B# o$ T* f1 V1 b/ Vs');    " l5 m, H. y; j& e9 I
  -> '22:23:00'   
/ s# ~  o9 M( h2 J% I, smysql> select date_format('1997-10-04 22:23:00','%d %y %a" f  A, W1 ~2 t- g0 b% ?
%d %m %b %j');   
/ B* g1 @# D) q# z) {. \  -> '4th 97 sat 04 10 oct 277'    - d2 I  m) {" S: ~
mysql> select date_format('1997-10-04 22:23:00','%h %k %i
1 I4 m  p9 S4 ~5 X* [9 J3 J%r %t %s %w');    8 A: C: D5 ?8 K
  -> '22 22 10 10:23:00 pm 22:23:00 00 6'   
6 s8 a; _$ _6 A $ W. K. N6 D) x* H, |) p" w
time_format(time,format)  
9 R# |5 W, e* `) d" e 和date_format()类似,但time_format只处理小时、分钟和秒(其0 u. \+ J7 w/ J
余符号产生一个null值或0)  5 G1 M5 ?7 W# R2 @8 l  Q

* X3 G. u" @5 S, H6 Xcurdate()     
3 {) n1 b# H: d- q8 _current_date()  . J- r2 P  p# {7 R1 u- o7 o* i. }
 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所# I* ~. G  C. F1 w2 T! `( R
处上下文是字符串或数字)    - T; j8 H, [* D+ [
mysql> select curdate();    . V/ z& D3 `$ f! g- T
  -> '1997-12-15'    ; V' u$ X. A1 a9 O$ T" t
mysql> select curdate() + 0;    + z& Z9 v& ^. j& f% p' B% H
  -> 19971215    * f( I- Y" S0 ]1 r6 {9 H
9 k8 f. ^: t2 |( Y9 R* q
curtime()    / Q( j$ H# g' k
current_time()  3 ?. M& A1 G% `8 a/ @7 w
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上" J, g# s) @( X2 Y1 O
下文是字符串或数字)      
1 ]% d  x" U2 p, R* omysql> select curtime();    + G% }0 t; v0 s
  -> '23:50:26'   
5 i! X8 O* [" j$ B- M' W2 D' Amysql> select curtime() + 0;    ; z+ L) f$ d$ c+ l7 U
  -> 235026   
/ R+ ]1 n# D9 J4 t3 p1 `+ J6 g
: H$ ^: Y6 q3 P; xnow()    
1 J- P# B$ o1 C# z! b6 L% F9 c% V* E  Osysdate()    & f, b& F  n) \2 o
current_timestamp()  $ ^  T, g* c: h0 x
 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
" @6 K# {# \$ |时间(根据返回值所处上下文是字符串或数字)     
3 l( E- V/ z5 \6 |" Z1 Omysql> select now();    . j3 L+ t- n4 T2 B  O; u* O2 G
  -> '1997-12-15 23:50:26'   
0 a4 d+ E7 E" g0 F# i* ]& jmysql> select now() + 0;   
' K1 I* k+ h$ z& Y7 V9 Q& g: n9 X  -> 19971215235026    ( b) R# K. ~* {0 V) j
9 v( A4 t1 B5 t$ V+ m
unix_timestamp()   
9 Y" F" K. E1 r+ zunix_timestamp(date)    4 J% B. {; \. {, W: D) v
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
3 _5 B5 r7 @$ m# a* M数,date默认值为当前时间)  ! x, ~0 v( Z, i/ @/ h& j/ o
mysql> select unix_timestamp();    & h: s  d! G: |# n0 J6 S' `% [' @$ j
  -> 882226357    ) C1 T- w0 f; l' ^7 u$ \; e/ _
mysql> select unix_timestamp('1997-10-04 22:23:00');   
$ c; T' S5 @+ `. G! v( `9 c  -> 875996580    ' |# s) ^$ E$ Y. c- A
# r8 ^4 f/ I1 q0 {
from_unixtime(unix_timestamp)    " c, N, w1 N. s1 I; m
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的0 s* L. e' {6 E, n4 c
值(根据返回值所处上下文是字符串或数字)     
. _; x8 R- z; P* c' x7 y5 z% |mysql> select from_unixtime(875996580);    & a0 X2 T9 j& D8 q
  -> '1997-10-04 22:23:00'    7 {( n& A$ K; J$ ?1 X/ @6 g4 |( N
mysql> select from_unixtime(875996580) + 0;    1 d% O' {; X" _
  -> 19971004222300   
& H/ l( H5 R6 M; _ 5 F6 u! |& C; U
from_unixtime(unix_timestamp,format)    5 x5 h4 T# w5 |$ M( T! p7 A; W
以format字符串格式返回时间戳的值  # V) k% {6 [9 J6 N5 C, ]# H
mysql> select from_unixtime(unix_timestamp(),'%y %d %m %
& V4 m$ U% G% O6 w3 z% R: dh:%i:%s %x');    ) O/ d. Y- b2 h+ c- w2 Y+ I
  -> '1997 23rd december 03:43:30 x'   
  y8 E0 s, B2 O- s" D & V  d4 p, H8 a9 }' ~+ @
sec_to_time(seconds)    % ~- D* W. i3 N. S
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)       W& O9 _3 x3 a7 B
mysql> select sec_to_time(2378);    5 A' t- a8 e: I* A4 y3 z$ C/ e1 I' M
  -> '00:39:38'   
4 A* W+ I& B& A) c. kmysql> select sec_to_time(2378) + 0;   
  O9 ?- V* p( I, D( y; @* v  -> 3938    . f/ }) s  k! D

3 j* Q  Y* u. u# I4 X7 O2 q1 btime_to_sec(time)   
6 |& p: B& k3 p* ~* R, I2 o1 L返回time值有多少秒   
* i, h$ h7 l, w+ }: F7 C- J# Z* dmysql> select time_to_sec('22:23:00');    " x6 e, N! n3 \: W5 z5 ~2 ?. l; P. c: E
  -> 80580   
" U: R7 ^3 |  l/ smysql> select time_to_sec('00:39:38');   
$ m% a7 J, a0 Q( Y  -> 2378 2 q) d1 V" F' T
3 ^! |- L: Q- L) f1 F- g2 q  p
转换函数0 _0 H) l  ~- G; D& k
cast2 F" f8 I: f, S+ _) {; c0 J
用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]9 ?4 d9 i1 n, H6 X0 ~
实例:select cast(a as unsigned) as b from cardserver where order by b desc;
9 b; v$ C# q; T" Zconvert:: L% T; {# `8 H$ s! P- q4 @, Q0 g
用法:convert(字段,数据类型)
$ _1 j7 P8 e* ]实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

2 n7 P& V3 T. [7 Q. c  ~" X$ I" u
回复

使用道具 举报

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

本版积分规则

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