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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数
  G- {  v  G! y. Z6 Y! [- T. \ascii(str)   
0 M9 p" p/ J" U返回字符串str的第一个字符的ascii值(str是空串时返回0)  
6 ~. g6 [- X' Umysql> select ascii('2');  
+ m, A( }/ @& k2 K1 k1 I  -> 50  8 {# o) R( X$ G7 `; k2 ^+ U/ R7 Y
mysql> select ascii(2);  
7 u5 o& q3 ]" T  e# P  -> 50  # [, W8 ?0 z3 h6 t4 a" U( o" i
mysql> select ascii('dete');  ! v; x4 D3 H# _
  -> 100

, `8 T; V8 G: M7 p6 [) N# o5 qord(str)   1 b* x$ W* q( I- T. K. U  A$ W
如果字符串str句首是单字节返回与ascii()函数返回的相同值。9 S# Z! x' I2 s/ a* X8 O1 Y
$ a# ^4 M" h0 f; K7 q" q: o
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  $ ?& b; l$ m6 n7 t. A! p
mysql> select ord('2');  
4 w$ h( N7 p1 H% K1 V  -> 50  
" o0 U4 Z3 [3 U! P8 Y/ U   ! y9 F3 x; w$ G, H  u2 b4 r
conv(n,from_base,to_base)   ( g, r3 V4 V0 V5 S0 P
对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  / d% o3 Y$ l  n4 O* i. H3 {! R" s
mysql> select conv("a",16,2);  
; {9 O! p: U5 z# d' _1 s  -> '1010' # V( d) D1 Q/ X, E2 [/ A3 B4 D! p
mysql> select conv("6e",18,8);  9 D; K* ?: w; ?, r; d
  -> '172' ) b! M3 g1 y) L+ W
mysql> select conv(-17,10,-18);  5 D7 }' Q& ^3 j" L% K
  -> '-h' $ f: v8 I; ]7 d) ~
mysql> select conv(10+"10"+'10'+0xa,10,10);  
# B, o8 B- J# D0 |- w# `, Y  -> '40'
) w; v" z* z* {( c0 U8 C9 ~   
  v. S5 W7 c: _2 d, w6 [$ Ubin(n)   # s1 {5 _9 M& a  P5 d- {8 a
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
# q4 c3 d. z: ^% V% ?) Umysql> select bin(12);  
* c, D. I5 @, h8 i3 [  -> '1100'
# a+ K* B( m. U5 ^8 N/ E( d
: D( @& g- ~8 `' K( x* Boct(n)   
  X: F8 }5 [$ ^把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  - E$ F& H: t2 N) c1 L8 H, N# U
mysql> select oct(12);  7 j2 k& V9 f& B2 @2 O, B
  -> '14'
. @- K, G; e% j- L8 \5 V7 I/ j   
( J+ E3 l1 J2 O2 c8 M( Phex(n)   : U) u; I; M" _, g9 d
把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  
% o7 {6 U# ?: Kmysql> select hex(255);  
3 M2 o$ f/ B3 o% C  b, M6 |  -> 'ff'
, S. G5 ?& |$ E. J# @8 F! B   
* D, Y+ \( d" |char(n,...)   " r" d+ A: J' O. l
返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   
$ Y% K( U1 `( t1 z! imysql> select char(77,121,83,81,'76');  
$ |% [& U1 E+ b/ _  -> 'mysql' 8 H7 d, ?9 d+ n9 X& n. @
mysql> select char(77,77.3,'77.3');  7 e8 u: k8 z6 p1 v1 V7 G, e# }
  -> 'mmm' . M9 f: Y0 d' }. d( j7 ]4 Y; @
   
' }% u, W3 ?, q( Mconcat(str1,str2,...)   1 S' j  S8 ?: k
把参数连成一个长字符串并返回(任何参数是null时返回null)  
/ x$ U. Y6 A$ t" d  xmysql> select concat('my', 's', 'ql');  
6 t! w( P7 Y3 ?! E9 P& G' R* M  -> 'mysql' 4 M0 M: I7 R/ y1 o# V
mysql> select concat('my', null, 'ql');  6 r; U, z  ~3 Z* w' I
  -> null 9 V) w; r* W3 L; G8 b$ n' P* R4 x
mysql> select concat(14.3);  " H3 r7 U9 y' e5 ~
  -> '14.3' . f2 k& x& r; w( E4 c  l2 c4 P$ z" S5 x

0 O/ Q8 y* `, e5 h4 h; s2 s4 p% \length(str)   5 |& J  R" G* P) g
octet_length(str)  
) Q% c- N6 S4 [* h" J1 Tchar_length(str)  
" }2 V4 {- i% ?( L& A1 d% xcharacter_length(str)    j9 K* _/ ~* ~$ ]
返回字符串str的长度(对于多字节字符char_length仅计算一次)
; K5 T" P: i# _7 e* [( Nmysql> select length('text');  5 q/ Y9 P! ^: h% s$ a4 @
  -> 4  : N9 H) L* r4 w) B; m5 A# b
mysql> select octet_length('text');  % `# F0 d3 ^* r, ~
  -> 4  % p8 \1 N. M  w4 M: i5 [

: V$ o# s/ A3 d- q% ?$ ~/ ~locate(substr,str)   
: Z  e1 O, s% @3 ]) V* v2 S6 ^  yposition(substr in str)   
4 j, y) l% I1 j6 `4 M8 l返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  8 ~1 X9 J( h" ]3 m( F* i8 }
mysql> select locate('bar', 'foobarbar');  
% v) i4 t0 E/ B8 d$ T8 U  -> 4  
' T1 Y; i7 C; c& n* ymysql> select locate('xbar', 'foobar');  % o7 v) q8 l; X' P- |
  -> 0  
% t" v7 v1 l" f   
. F5 P" @% V' m2 Hlocate(substr,str,pos) ) m& J  c3 I/ h
返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  ! L  K% X/ e( F0 l# w  y
mysql> select locate('bar', 'foobarbar',5);  
7 [$ t4 I# j! J6 m9 I* u# y; G1 z  -> 7  + x% O6 P5 ~. l9 \
; R  ~+ q6 u1 M+ ?1 P
instr(str,substr)   * L/ R+ O& ^6 K& W; N% n7 R: A) D  x" \
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  # y+ `3 E5 ^( v
mysql> select instr('foobarbar', 'bar');  . E3 s0 |" w7 ^2 M+ |- ^: n; ~/ D
  -> 4  
% ?; ~+ R) S5 i+ lmysql> select instr('xbar', 'foobar');  
/ {3 ~: z! C0 z& ^" u- ^9 ?  -> 0   
: s9 {4 r7 M- X
( s( y  h+ }/ Elpad(str,len,padstr)   / \6 ^$ Z- L1 i3 B. ^
用字符串padstr填补str左端直到字串长度为len并返回  
1 [; a+ m9 M$ L8 X% {; bmysql> select lpad('hi',4,'??');  9 D- P7 M% M  l2 }6 c7 p
  -> '??hi' ! p/ a# ~( r0 p3 f0 L( z0 G
   
$ C  x' w+ b, R2 b. u5 frpad(str,len,padstr)   
; t4 @- l) N/ D  [4 d' b用字符串padstr填补str右端直到字串长度为len并返回  
6 g( _) M5 E3 I0 b  Kmysql> select rpad('hi',5,'?');  9 a3 M1 m, p9 `2 Q  f
  -> 'hi???' 1 @) K3 S5 T$ X/ [) l- ?

& Q. w+ V) m3 uleft(str,len)   8 t8 k) J/ |: O# c* I; L# A% N
返回字符串str的左端len个字符  8 d' f8 l8 e3 \
mysql> select left('foobarbar', 5);  
" `# Q  d0 w  d2 X+ m  -> 'fooba' 2 x8 `3 \6 Q1 `+ S8 Z" P( W4 n
1 ^- k& H8 y2 e) U
right(str,len)   0 [# _( r2 B/ C' J* Y" |$ j
返回字符串str的右端len个字符   
+ S" w4 ?/ B3 v+ Lmysql> select right('foobarbar', 4);  
) L/ l' m  W; H  -> 'rbar'
; L3 O3 f5 [; Z- }3 n% g; { ! P; L, t' w) O% M/ x/ c/ i: k
substring(str,pos,len)   " T% X9 P# g! n
substring(str from pos for len)   
% @7 b4 }4 P7 E+ G( Smid(str,pos,len)   
& q4 ]! U0 P4 @) v+ Y3 a返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
$ C& @- c9 V% q  |' D  -> 'ratica' " q5 z  r* w2 a5 ~

: r! Y( H1 K) `! c8 jsubstring(str,pos)   
3 F# f- p+ ^8 _. K; m2 @substring(str from pos)   
. O% U( Y) h* z6 m% J返回字符串str的位置pos起的一个子串  
+ i  q4 m! m2 m% n. T+ jmysql> select substring('quadratically',5);  + ?* k, Q( A8 Q2 `" ^
  -> 'ratically'
* K4 Y0 ^. E/ N/ f4 _, Zmysql> select substring('foobarbar' from 4);  , l' G2 L& z+ z; J' _* J
  -> 'barbar' 5 _  m- @( ]9 w3 ~9 Z
6 l9 p$ j& x1 Z4 {6 C# x
substring_index(str,delim,count)   3 w  H1 [$ D- e
返回从字符串str的第count个出现的分隔符delim之后的子串0 u) F0 t/ t+ j  I5 m  V
(count为正数时返回左端,否则返回右端子串)  
6 h5 r  `8 L3 T3 p" }' B/ zmysql> select substring_index('www.mysql.com', '.', 2);  3 d5 l4 \; z( a) Q- y4 B
  -> 'www.mysql' ; y. y) F( n/ u5 i0 Y
mysql> select substring_index('www.mysql.com', '.', -2);  / K4 Q- v0 v* `. z$ E( w% i3 P
  -> 'mysql.com'
: L/ F4 ]! Q3 ?: b 2 `' x  E8 Z& H4 R& y0 D; s
ltrim(str)   , S$ O9 }9 y6 [  m) [8 b& t& x
返回删除了左空格的字符串str  & V; y; Q3 J0 @. w& f2 L3 Y" t
mysql> select ltrim('  barbar');  
. o; D6 }; }8 f. W. N  -> 'barbar'
7 q( ?& e* v, Y2 v  l+ H
- p5 X4 C$ M) T9 i) ortrim(str)   
8 A4 _/ P6 E' z! y  P返回删除了右空格的字符串str  / {& H; a8 }& ~: w/ G, P
mysql> select rtrim('barbar   ');  9 D' ]" z, y  ?; }. ?7 k! }& g
  -> 'barbar' ( H" b4 K( \$ g# m+ b0 F

( p% L4 G1 x/ ttrim([[both | leading | trailing] [remstr] from] str)  
  [& J2 D  E3 Y1 k: l% o返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  1 f3 d/ n; v$ {( X+ I
mysql> select trim('  bar   ');  
5 P; j+ q: N4 r  S  -> 'bar'
9 X1 ]2 z9 Y& Imysql> select trim(leading 'x' from 'xxxbarxxx');  
2 `) b$ G& V# ]. j  -> 'barxxx'
( T/ C3 L3 f" |9 V( Jmysql> select trim(both 'x' from 'xxxbarxxx');  & y8 {' Y0 u% _% Y  ^
  -> 'bar'
6 r& k! ^9 F$ s# Amysql> select trim(trailing 'xyz' from 'barxxyz');  
' H2 ~9 F. d4 O4 j/ E# _' T! y% g' u  -> 'barx' 4 M( Y9 ~6 k- ?/ P4 ~. T# z

6 k2 S; R6 [1 p, ~) tsoundex(str)   ! a  c0 t$ k; d: D7 X" x
返回str的一个同音字符串(听起来“大致相同”字符串有相同的
) x8 t! P* j! Y5 G! u* M+ {: J同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  
! o" l9 I1 E0 E) f; U. d+ G4 a( Dmysql> select soundex('hello');  + j# }' J( x) Q6 ]
  -> 'h400'
6 S- |; o* g, G: [, F+ vmysql> select soundex('quadratically');  
, [+ r5 ~1 }4 h# }7 [. ?9 f  -> 'q36324' - r# R) `- J& r* p. w% y' \5 l* w
   
* k5 f  E' a, _: Tspace(n)   4 k) N5 @: [& P# f$ C$ V$ \3 d
返回由n个空格字符组成的一个字符串  4 m, \) {5 r+ m" N# z
mysql> select space(6);  5 b- j* g: w# B; U" }  H' N
  -> '      '
0 G4 |. P1 h! i, C/ j   
3 {& J/ L7 {4 |" qreplace(str,from_str,to_str)   8 ?6 L) y, S+ L/ Y- `3 q
用字符串to_str替换字符串str中的子串from_str并返回  
2 ?2 [. \; y7 u2 }  Rmysql> select replace('www.mysql.com', 'w', 'ww');  
: F% D: L' B4 u/ g; b  -> 'wwwwww.mysql.com'
, Y2 d$ ~, e' d) w , S1 D( }* A& y5 t* ^3 B) z8 y2 v; J9 v
repeat(str,count)  
6 h$ M$ X3 n  T: M返回由count个字符串str连成的一个字符串(任何参数为null时
+ l; `- @) B# n返回null,count<=0时返回一个空字符串)  + N/ O1 p" F, ~1 T
mysql> select repeat('mysql', 3);  
8 l" ^# h: q1 D  -> 'mysqlmysqlmysql' 8 ?' C* C6 w: C' }
   
( h; w- u! c5 y2 M% H( Q9 dreverse(str)   1 q) s. P. X: T+ ]% \- Q4 @3 v
颠倒字符串str的字符顺序并返回  
# N" ~2 Q$ f9 b; y* Cmysql> select reverse('abc');  $ A: j. D2 Y' s8 w( X+ ]. H+ J
  -> 'cba'
" B0 Z, U; F2 j9 W
: d0 j9 G* l. {7 m9 s' binsert(str,pos,len,newstr)   
- R# V/ W. j. Q9 x; q' U" i把字符串str由位置pos起len个字符长的子串替换为字符串
& u; @. T" Q9 f: Q0 R- \; ~# Tnewstr并返回  
4 H' @# M  l6 r( `% E8 i* cmysql> select insert('quadratic', 3, 4, 'what');  
6 A# X* Q, [; m+ h8 ]0 B  -> 'quwhattic' + o; x" k. X( t& ^$ o

" R& e) c* N% Zelt(n,str1,str2,str3,...)   ! c. ^( k5 A7 R" b) j
返回第n个字符串(n小于1或大于参数个数返回null)  4 H% q, m0 I1 t8 `- F) N. u
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  1 j' ~7 j& _  n
  -> 'ej' * {5 f+ b; k+ O( y0 O
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  2 y! G# S$ ]# w# t# s, Y' O# T) w
  -> 'foo' 8 b# d* }  {0 j

) d4 }$ _+ @$ E, |9 s& {field(str,str1,str2,str3,...)  
( {  |, M; q/ @返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
$ K- h3 T$ {% J1 emysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
( c* a3 G5 F; o% J3 Z2 k' M3 k'foo');  7 y# c2 h8 y4 o
  -> 2  / P) t1 n, g% c) e0 G
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',6 M5 U1 x% H" S5 e; z- ]8 }3 E
'foo');  
: F* j7 G! z1 {% f0 a6 J  -> 0  
# J( V) v% g! B% k1 y. J2 W  z
) S) x. s2 q) }5 I% w5 i! N4 f3 E$ Yfind_in_set(str,strlist)   1 g8 v) `- q, }/ M: s3 w6 k
返回str在字符串集strlist中的序号(任何参数是null则返回
! b/ W' K9 j, _( z9 ^null,如果str没找到返回0,参数1包含","时工作异常)  " w+ I0 K) A6 T; \4 ~( ]) G7 t+ a
mysql> select find_in_set('b','a,b,c,d');  
8 C- V- D: f3 K' Q  -> 2  & p! O, Q# m. S: X/ i
   6 D; o  N$ b6 h! z
make_set(bits,str1,str2,...)  
& b& J3 {9 z, }把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
4 Y( U7 k- i$ _% M  G位置的字串选入字串集并返回(null串不添加到结果中)  
* K* Q: i4 E4 e3 Mmysql> select make_set(1,'a','b','c');  * ^7 _- ?$ D& n& z* J. y8 f$ U3 G7 q
  -> 'a'
7 W0 e1 h) t1 I; lmysql> select make_set(1 | 4,'hello','nice','world');  
0 W) F$ T; M4 e4 C( ~2 |  -> 'hello,world'
2 ?* N$ K6 z& p( f# U/ [0 O/ h! smysql> select make_set(0,'a','b','c');  5 U% Y* F8 m! v; @
  -> '' 4 U5 E; S3 a: L- w6 V

) W8 i  {5 b$ d9 Y* ^) r0 f& bexport_set(bits,on,off,[separator,[number_of_bits]])   
& `  V6 S9 }& t6 f0 c2 E* X按bits排列字符串集,只有当位等于1时插入字串on,否则插入4 q! O- M7 }: V1 ~* a$ _0 |
off(separator默认值",",number_of_bits参数使用时长度不足补0; O3 X& X4 C  Z% G0 |. b2 E) ]
而过长截断)   $ R! k0 `) o& R. V& R
mysql> select export_set(5,'y','n',',',4)  
& F2 C8 E5 k* F" y# h* y. F/ f  -> y,n,y,n   
& z% T( u/ j% \  L
- s1 V# I% g" Nlcase(str)  
3 [2 M  `0 I0 u7 C* o$ Wlower(str)   
" B* b+ f6 Y, f/ _返回小写的字符串str  
  }( J0 A; N/ jmysql> select lcase('quadratically');  5 C( f. a3 l9 r; i8 J" @! {/ |! Q& R
  -> 'quadratically' 7 ]  |8 E  W; y6 i5 w% O" L
   2 I0 N2 W* W) R+ J
ucase(str)   
( O( ^8 Z. A7 ~" s( b" B8 R0 {, Rupper(str)  
# k0 V; `. V  l+ F/ `返回大写的字符串str  
) g0 V2 a: j$ ?; }mysql> select ucase('quadratically');  , s* ?$ P9 P; M/ C. p; m6 F4 t' R
  -> 'quadratically'
( w& I; _: f: H+ S; F7 ^' _
: @/ {/ l/ z- W0 h2 @7 g- lload_file(file_name)   
' _) s8 v0 ^. j读入文件并且作为一个字符串返回文件内容(文件无法找到,路径. k! E% W. `: e/ B) z  t: Z0 e0 ?
不完整,没有权限,长度大于max_allowed_packet会返回null)  
, W$ l# n) i1 K% R% _mysql> update table_name set blob_column=load_file
9 t; I$ m7 C1 x" N: n("/tmp/picture") where id=1;  
" L- Y, G1 {7 \. N. o% h % f6 N) P% @: F; Z. h! Q
2、数学函数2 g' W; ?/ B+ E: v6 l
abs(n)
) E" U+ K$ ^6 u( O! W返回n的绝对值  
. r& ]$ f# h  r! `1 U3 ?/ j. bmysql> select abs(2);      j  U; a  h: n% ~! j  s; }, O
  -> 2    ; r  E3 e# K/ j5 g/ k+ K5 b/ z
mysql> select abs(-32);   
+ \1 V* t$ Q/ E0 X8 N  -> 32    ( m% m: f9 ^4 }& Z
     R; i2 i0 z- I; t; b" x0 ?; B5 K
sign(n)  . i8 c' d& I' f. Z" l/ z% z5 B) N
返回参数的符号(为-1、0或1)  ' v. Y# U7 D" g# L0 K
mysql> select sign(-32);    - f+ M8 f( R4 F6 L) R! O
  -> -1   
4 J$ s$ X7 G: J; j( ^9 O5 d1 `mysql> select sign(0);    ' r* D/ @9 S) E+ y9 \
  -> 0   
3 @6 {# }. a) n2 Y" p+ l6 S2 u$ Imysql> select sign(234);    + o4 a) q( m7 C+ h( a
  -> 1   
6 Q8 G; Z/ Q4 Z  b) J* I
: L5 u$ r9 W9 N& }! f8 o6 o; [4 wmod(n,m)   
$ }' {0 [% j7 j1 t取模运算,返回n被m除的余数(同%操作符)    " c( m" c, r2 m2 I" k. d
mysql> select mod(234, 10);    0 r" G% s' J( R3 y, b
  -> 4   
& d" s4 t/ Y# |0 f7 ?! N; h' b5 Hmysql> select 234 % 10;   
- s5 d; ^. S" U0 ^$ }  -> 4   
' _; n$ N# C3 y8 }mysql> select mod(29,9);    . U5 |$ a+ A/ |3 X- Y5 _
  -> 2   
: b+ k/ @2 e  g- U. y5 y, v
% z2 l# y: @& k2 d/ ffloor(n)  
/ s7 v( G2 Z( s8 t返回不大于n的最大整数值  
- @( [+ O7 ]7 r3 ^4 p# d9 F) U4 xmysql> select floor(1.23);   
: a3 o8 t8 a& m9 K4 x1 }  -> 1    ; p; L3 g0 r$ i1 [* u
mysql> select floor(-1.23);    * i% z7 ^& H: E! k6 C& g; w/ c! H
  -> -2    ; J; D& `% Y% W" Y* P
, [) y! G& f5 g+ `) q
ceiling(n)  
- T! }) g1 z! t8 E: Y2 }返回不小于n的最小整数值  
: t1 _2 |, e2 Y/ Y6 H" r5 lmysql> select ceiling(1.23);   
1 \8 i6 e. D8 Z: x  -> 2    9 e9 ^) b1 p: Z" o. g/ A
mysql> select ceiling(-1.23);   
* `# N4 b: P  \( d3 p. p& X  -> -1    8 t# N" X" f1 S' d8 K& C* d% s/ N
/ ]! V' m1 w8 y3 X" u5 U3 c
round(n,d)  : W9 P( a) P* |; \0 G  L
返回n的四舍五入值,保留d位小数(d的默认值为0)  8 |$ k1 _+ ^' \# T7 ?: O6 G
mysql> select round(-1.23);   
* M: z4 x, \2 ~: H5 E- c, v  -> -1    ' r: K, O& G3 c* k3 _- r6 M
mysql> select round(-1.58);   
  N# `5 s/ q! R" M* l) W7 [# ^  -> -2    1 }# U1 G- ]5 E3 [, G- f+ T
mysql> select round(1.58);    $ L) w) `3 c" l) K
  -> 2    " f- C8 y) ?5 Q! ?- K4 V$ z8 \
mysql> select round(1.298, 1);   
4 m' @/ m4 Q% e$ ~* q; q  -> 1.3    ( D" x5 l' k' q+ [9 ?
mysql> select round(1.298, 0);   
; Q% G& k/ R# v- e  -> 1   
9 D! R+ ]& P1 ` 0 I# {" f( k, `; ?7 W
exp(n)  + P: n; w& ?) T
返回值e的n次方(自然对数的底)  
; p( J* _. p. w0 Z. amysql> select exp(2);    * A" J) N! Q/ y
  -> 7.389056    : P7 D) V" V1 E1 I
mysql> select exp(-2);    - k2 W. w; A2 A- x7 U5 u
  -> 0.135335   
% q) ]! v$ C& B5 D* X2 @1 | " O3 h! M% e% J/ ^& x  i
log(n)  ; E0 R) R% N5 j3 F, r2 a  v
返回n的自然对数  
1 @2 A' m7 d' ~: q2 H' `mysql> select log(2);    2 Z3 O* }1 N, \4 E/ W5 f
  -> 0.693147    ' ?, T* q$ ?0 y4 B; @
mysql> select log(-2);   
7 R( W3 Y: M' B! g0 E1 o' A# I: L  -> null    7 D/ V* o- P8 {9 P
" n: E2 M6 c* d' b& s- ]. W. W
log10(n)  
; X. [. N, P& x, l+ Y! J返回n以10为底的对数  ! W( C0 J$ p! h7 X  L
mysql> select log10(2);    ! p- q: C# [8 {
  -> 0.301030    + N7 M2 O& ?4 m. y7 H/ W
mysql> select log10(100);   
: i6 o6 Z* t: n! a  -> 2.000000    9 Q% R! G9 s/ L/ x: }
mysql> select log10(-100);    1 b3 C: t4 U* t- X# p
  -> null    + |5 [7 W/ t7 f+ u* p9 V+ k
6 ?/ m. [2 L! `! ?! N" i
pow(x,y)   
! O) S6 `  \0 U; Vpower(x,y)    , R, v" h3 c% C$ `" b5 M+ M
 返回值x的y次幂  
8 e6 j7 i& w  |4 l, \- D, U/ Pmysql> select pow(2,2);   
7 F- T# Y' ?" C  -> 4.000000   
; z* a  P, @2 w" u  j  Q, ]% vmysql> select pow(2,-2);    1 e/ D- n" H5 i& J5 _  }
  -> 0.250000  3 v+ c! V( j# U# l) h
* H1 C! w6 {7 ~3 k+ v
sqrt(n)  : g. C7 \# ?, Q8 c: m# n$ @* T
 返回非负数n的平方根  , Q3 j( J1 O7 R" H4 G
mysql> select sqrt(4);   
+ x; \# Z9 }8 L  F5 @, f- ]. B/ m  -> 2.000000   
! T; Y) Q9 H* ]) j1 ]- qmysql> select sqrt(20);    7 x4 y4 z! `9 J: Z
  -> 4.472136    ! U. _9 Q8 s- k% I* C( @5 w

& K+ Y+ M+ v' b  T  B. |' Xpi()    % ]3 Y2 f1 c0 T* ^1 u0 y, D
 返回圆周率   
6 b# W' e% z0 S  Q$ Nmysql> select pi();    / f+ t# \/ h+ ~
  -> 3.141593   
1 U0 e: h0 A8 n% z $ [7 d* H, Q* ]# @4 m
cos(n)  " l1 J; l0 H2 F6 l
 返回n的余弦值  
, ]1 d! c. j' ^7 o. Q. Amysql> select cos(pi());  
9 W- p% p# @1 W6 B6 Y  -> -1.000000    9 a. K3 e. b, w

, `0 z5 g  y( y3 z" b8 T! ^sin(n)  
3 K, i( J- h% O& B 返回n的正弦值   ' K. K% g" P# {2 c7 \0 J
mysql> select sin(pi());    5 o, r& U! A6 y0 I# G) v
  -> 0.000000    / F3 z3 l/ y% o$ Z6 [4 B( O8 D

7 P( y4 G7 z* Q9 s9 Mtan(n)  
2 P$ W; S/ ?1 R" ?- W$ I3 P. H1 G返回n的正切值  
3 q0 ]% Z% Z# x: X0 {% F5 b; xmysql> select tan(pi()+1);    2 D0 q( F, N7 Z% c* @
  -> 1.557408   
0 O7 F7 E. \  D% Q) W
3 D. j0 L$ k4 h) C1 Zacos(n)  
1 W; R; ^4 X; n: E 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  + j1 K: F* `! d8 F& ~1 n
mysql> select acos(1);    ( l1 @" k) R( ^
  -> 0.000000   
1 I7 ]$ T! u6 x% M& t( L% Lmysql> select acos(1.0001);   
" v* x. F" ?/ K! \! ?3 v  -> null    5 f! f' k8 L* C
mysql> select acos(0);   
5 K5 Q7 u* @1 F  -> 1.570796   
; t$ N* e) z; I7 a ! K& ]* d! F1 {- c
asin(n)  
  r; @; Q# R, X5 c2 r返回n反正弦值  : v" A% u" X# U& O8 L
mysql> select asin(0.2);   
' L+ }& g3 f. q! o" r  -> 0.201358   
& w* x$ U$ d+ i4 ]* Y- p: ~4 ^2 ?! N2 Jmysql> select asin('foo');    ( `4 }. O% L& Y9 F* P
  -> 0.000000    ; K. V& G! z0 K$ n. y9 P

$ p, C( F- a9 Y& }atan(n)  
$ D9 \2 |" W* B3 G& A# ]) v+ r返回n的反正切值  
/ w( R* ~- v) emysql> select atan(2);   
# r/ D3 ~3 y$ ^3 t3 ~: P  -> 1.107149   
4 q5 s- c, s3 {% h0 Umysql> select atan(-2);   
' l7 S9 k6 j/ w( P7 D1 _& N  -> -1.107149   
2 N4 t* U7 \5 E1 A: Z  h% {2 `/ _atan2(x,y)    / |9 W: L# o8 X% c* d4 d
 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  
& b3 U& p# K. @/ a' z9 t5 o4 E5 W) Hmysql> select atan(-2,2);   
( ~# z2 I! K9 _3 M$ b6 j# e  -> -0.785398    2 q2 c6 h& K4 }4 H0 G. T
mysql> select atan(pi(),0);    / u0 @$ q6 C; W5 g
  -> 1.570796    3 e" d- Y, q4 R) w& F0 A- s. U+ U3 Q
% k# V% M  N4 Y, u- F( e' Z
cot(n)  - M* Y! ~8 m9 L3 [
返回x的余切  
) S  [+ \1 B- N; T1 W9 ^mysql> select cot(12);   
, e& I2 u3 @# p  -> -1.57267341    $ s7 h5 V" ^+ i$ Q6 k
mysql> select cot(0);    * i4 D" }  x$ K7 k  W9 ~
  -> null      l* g  M+ w$ E+ {
' I2 K9 S$ z3 M4 V! F0 l
rand()  # n/ u9 z: r/ V
rand(n)    
9 ~6 L0 d, V* H& `. j3 s/ ]6 ]* B返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
, `8 w' c& Z9 p) `! i  k3 D5 b! K
7 k# u. A9 W  t6 a; Fmysql> select rand();    8 U6 b7 h" w. Y( ~
  -> 0.5925    : f  L) P3 m! A  i( H' k
mysql> select rand(20);   
) J" Q* }& D8 X4 D: G' w  -> 0.1811    , _! @0 w( B* L! N/ V% ?
mysql> select rand(20);    2 }: P+ g& b- ^
  -> 0.1811    / i+ o3 \& l3 U: F% j0 Y
mysql> select rand();    . ^! @. ~& p9 G" `1 j0 {
  -> 0.2079   
  y( P. t( h& p4 V! p+ omysql> select rand();   
2 h5 I* @2 Z# t9 L2 E  -> 0.7888    2 ~% R$ e; W/ V+ u9 s
4 r$ y* i8 d( E# P, z) O
degrees(n)  , B9 V, ~9 q. X; _1 {
把n从弧度变换为角度并返回  
$ f  ~, z, o" a) ]4 ?& c, |& M. c1 emysql> select degrees(pi());    9 v# @% ?8 f: B8 P: B
  -> 180.000000    5 Y# q% ~5 i* m
9 _6 q) I! c& t% L
radians(n)
9 ?) C- Z: z! w7 h1 l把n从角度变换为弧度并返回   
  R6 V0 R4 a+ A9 e/ t& Wmysql> select radians(90);    - \% k' @" v8 n" x/ `5 Q0 k' Q, s: d. I) A
  -> 1.570796    6 u3 M& c7 U& c/ `9 y

( ?- p. T, M8 ^! Z0 mtruncate(n,d)   
2 q5 p8 z  j; v7 N/ f' O保留数字n的d位小数并返回  6 R" j5 {  h( e0 f- s& w
mysql> select truncate(1.223,1);   
% I3 u; b1 d* Y* I8 U2 k  -> 1.2    2 j6 @! }: U$ W  Z
mysql> select truncate(1.999,1);    $ v# G" ^7 H& `/ v9 c
  -> 1.9    3 A- M* x2 U) L: C! }7 B( a
mysql> select truncate(1.999,0);    ! I2 f$ I' }2 D! }# Y
  -> 1   
% ]2 D  k- N" G* v0 N % P$ p5 C4 l4 {% V4 U
least(x,y,...)    ! I6 O) K+ O& i
返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
3 ~" K' b+ }+ Q+ \. A% y; K( Smysql> select least(2,0);    6 M. x) {+ L" g" n0 Q' v2 o
  -> 0   
# X% J4 u, @$ H6 N, Dmysql> select least(34.0,3.0,5.0,767.0);   
/ `9 a0 b% M( n  -> 3.0   
' I& |1 x4 U, qmysql> select least("b","a","c");   
# H3 t( i5 R% }3 q  -> "a"   
$ g( n6 q, ?" P8 b4 Z4 X 8 w# f4 l6 ]  r5 K
greatest(x,y,...)    0 z7 b3 A9 H0 Z& w7 c4 ^
返回最大值(其余同least())  0 S( Q% @7 _! ^
mysql> select greatest(2,0);   
. X9 i  i9 c: g0 H9 j* y* k4 w6 S  -> 2    2 s8 R) Y( H0 T: l) [
mysql> select greatest(34.0,3.0,5.0,767.0);   
+ A! P# C/ N9 _8 ?2 J# g9 H7 s  -> 767.0   
. T( p9 V0 g! l6 V& v: \1 dmysql> select greatest("b","a","c");    % X* u2 L2 Z1 F- ^5 I1 p
  -> "c"     
5 |) z2 m8 o3 a" k! X, o$ k' d0 f  I- z9 d
3、时期时间函数 5 e- m/ p( W8 U: x: u$ `4 J
dayofweek(date)    : L. b$ I8 B( ?( H% y+ Z
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  ' Z  r; ?1 v4 h$ S
mysql> select dayofweek('1998-02-03');    % O, ?2 e9 n  S
  -> 3    ' E3 n" X# o6 \) s( u6 D% R; n! }4 x# l
% [0 W; n: W% U
weekday(date)    # q" p2 |0 @5 p! j9 x
返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 % M" e! Z4 T# q3 p" J4 v
  0 i4 g1 d4 I! D( _2 A5 }
mysql> select weekday('1997-10-04 22:23:00');    , m9 b  g5 \5 k5 b) \; z
  -> 5    6 d' S0 ~, U% \% l  }9 O& v4 i
mysql> select weekday('1997-11-05');    $ c5 M% d' t0 {8 T" o6 P
  -> 2   
: v. y( h  G) V/ N" q( [
4 `# ]# h9 k3 T0 L5 Z; x! Kdayofmonth(date)    
- h' c4 v6 G# j返回date是一月中的第几日(在1到31范围内)   
9 N7 V" b; P% k! b. p2 l1 a9 [, Zmysql> select dayofmonth('1998-02-03');    9 v* b2 Y8 h, }1 Z
  -> 3   
& r. R# c" y6 o" g: R( ^$ P1 j
# m8 p1 y5 S1 |: H6 G( p" E6 P& kdayofyear(date)    / C2 O. R  {0 f8 |; a4 w
返回date是一年中的第几日(在1到366范围内)    6 Y3 `* p  W0 n- m
mysql> select dayofyear('1998-02-03');   
) ?. `2 U: o& F2 u  -> 34   
8 a( k) m% e  [: \
6 K; |; C% L8 d# t; N9 Lmonth(date)    4 a) y  n' p7 |' i. z; H
返回date中的月份数值   
2 K1 ?2 f# [# o# s0 `! rmysql> select month('1998-02-03');    - y& V* |8 A: P$ e% m' t
  -> 2   
, m) {! ?1 P! M7 `2 M ' p% V  q2 M* h% o
dayname(date)   
- b8 B2 z! M2 M7 }+ _返回date是星期几(按英文名返回)  
4 a; u6 B. N- j1 U6 V( F3 H* mmysql> select dayname("1998-02-05");   
+ d" A  `1 s9 ~( |5 q! i# Q, B8 J# }  -> 'thursday'   
4 u/ b, ^8 j$ j# h' X : Z: p! p4 M& j* P  M1 W$ H8 g
monthname(date)    
6 L0 a, e% p2 E9 ]0 u) p; D返回date是几月(按英文名返回)  
9 p4 k  k" ~  P7 l( J' L$ Mmysql> select monthname("1998-02-05");   
# b; A) a# J/ @+ \; F# c  -> 'february'    7 a/ \& e* n6 ~1 ?+ ?! Q/ u

5 _* S- `  \2 p$ p# ]0 u. \/ y3 equarter(date)    9 j4 w, D. x- Y/ S3 J' N
返回date是一年的第几个季度   
1 n& M# T9 e* x( B% a6 a* Dmysql> select quarter('98-04-01');    7 s4 m- K, [5 X
  -> 2    & b6 Z3 j: W! p

5 U$ X5 q8 d4 D* k! K. Y) c0 Xweek(date,first)   . S' u' Y7 c! U
返回date是一年的第几周(first默认值0,first取值1表示周一是+ n2 g$ \. t+ q+ u( h% W
周的开始,0从周日开始)  : J) f2 k8 D. W* E
mysql> select week('1998-02-20');   
9 V( R2 I) N4 l5 i% C+ ?' H3 `  -> 7   
! `# g% T( H) F5 n5 ?# \0 k1 mmysql> select week('1998-02-20',0);      C' ?( _8 A" L) {8 k: A
  -> 7      g. G& d" ~4 ^/ O! \
mysql> select week('1998-02-20',1);    6 |$ W4 U) g: H$ X6 `
  -> 8   
8 b; I) ^7 J) g8 T4 z$ A$ B5 e
) V8 Y5 B/ {& Oyear(date)   
- [7 N1 {' R7 y. `5 p. o返回date的年份(范围在1000到9999)    ( d! e& \. E7 B8 q1 ^! y
mysql> select year('98-02-03');   
! M) \0 C" b* _# \0 K5 I  -> 1998   
- y/ m: }% A" E$ ]* N ( a1 U, ^+ Y7 n8 d% R. F
hour(time)    
- [5 W  `5 O+ W$ d+ M返回time的小时数(范围是0到23)   , p& F9 Z0 |& t. f
mysql> select hour('10:05:03');   
9 O2 M! c% V2 _! ?* L$ O  -> 10    3 I9 N3 T( S7 W! B& C

. n$ f+ P% N" S4 Cminute(time)   
# w$ W3 M! J/ J5 V/ P返回time的分钟数(范围是0到59)   
# b; G1 ]* O" ~, g5 }' S) W4 h4 Emysql> select minute('98-02-03 10:05:03');    # ]$ d3 H' H, R* x. c# [- V
  -> 5    ' W2 F2 w. b5 u3 z; E& G# b0 s

" E7 {; T7 @0 T8 @second(time)    
: B2 g4 U' o# x( t4 |/ R. v, `返回time的秒数(范围是0到59)   - t5 a" R% k4 C; g
mysql> select second('10:05:03');   
) p; W! @1 c1 C$ l% k7 [* y$ ~% W  -> 3   
- a/ L$ R" L3 s" K 3 ?( x1 G, `; ?, Y* q* [( }8 h
period_add(p,n)   
! h, W5 U# b5 K8 V0 K) D增加n个月到时期p并返回(p的格式yymm或yyyymm)    ' Y/ ?7 t  q" X9 O3 W5 w
mysql> select period_add(9801,2);    ' @2 g1 ^  ^  Q
  -> 199803   
" n/ O$ |, t* W4 k. M) }
; M+ H! p6 W3 e, x# x" ^; fperiod_diff(p1,p2)   
* U8 m- j! K/ Z4 O3 H返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  
1 L# w: A- h$ s. Q# W4 hmysql> select period_diff(9802,199703);    $ i0 S. M" w. Q0 j0 A8 y3 x
  -> 11   
9 p/ X7 S* Q% e( r3 U6 x
' {+ L" F# d# g2 p$ x: Ddate_add(date,interval expr type)  
& q, a! d& c1 c! G. Sdate_sub(date,interval expr type)    . H# S' C% W8 z  o4 s1 i& a, V
adddate(date,interval expr type)    5 ?; @" v2 s2 l5 E6 ?
subdate(date,interval expr type)  . ]1 D, C! Q3 Y3 T* d& U
对日期时间进行加减法运算  / `2 C0 x/ D3 v+ n1 V3 ?6 g# ~0 \5 M/ {
(adddate()和subdate()是date_add()和date_sub()的同义词,也
2 Z3 p3 w  U" I+ y& }可以用运算符+和-而不是函数  
4 O/ [! H! {2 ~& y% e7 Ldate是一个datetime或date值,expr对date进行加减法的一个表
$ M& T9 |& l6 B7 e6 n) s达式字符串type指明表达式expr应该如何被解释  1 ]6 q. t2 ~' @$ x- i% }7 X! e
 [type值 含义 期望的expr格式]:  ' |9 M0 d  ^: \+ G- r, B
 second 秒 seconds      v% q1 b: t! V8 K
 minute 分钟 minutes   
  J$ N: F5 g# b+ n hour 时间 hours   
3 M5 j% B" B2 \' ?2 \+ D3 d day 天 days    / z4 V7 X% M3 `. H/ b5 g
 month 月 months   
" S6 O& ~2 L" w# n7 \) m year 年 years   
& F! _* c( I* f: T minute_second 分钟和秒 "minutes:seconds"   
  o7 `# [: [+ z4 A$ t3 D hour_minute 小时和分钟 "hours:minutes"    0 D+ S1 B/ K* i6 E+ u
 day_hour 天和小时 "days hours"    5 D5 Q7 W! M& O
 year_month 年和月 "years-months"   
! @* E- U( ]* ?9 }: U hour_second 小时, 分钟, "hours:minutes:seconds"    " C9 I- Z( o! R8 l8 g; k
 day_minute 天, 小时, 分钟 "days hours:minutes"   
/ M. v" `9 }- _( l# H. h day_second 天, 小时, 分钟, 秒 "days
/ ?# I4 ^9 e" X* ~7 D' w- i, R) B) ohours:minutes:seconds" 5 Z4 F' f- ^6 q* y
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个/ L- a" q2 O! i; _# }: J
date值,否则结果是一个datetime值)  8 M' d7 @6 V9 o; E* t
 如果type关键词不完整,则mysql从右端取值,day_second因为缺8 K7 D2 O2 t5 y) ]" v
少小时分钟等于minute_second)  
- a' o/ N8 M$ D: n8 F. v' Y 如果增加month、year_month或year,天数大于结果月份的最大天! s! B# i' ~0 t0 h1 ~' {: O
数则使用最大天数)    6 R' h$ g; q  O6 }; t. J6 [
mysql> select "1997-12-31 23:59:59" + interval 1 second;  
/ N/ O- t+ k# S! X4 R  U1 E
- f' U; @9 N- X  z  -> 1998-01-01 00:00:00   
& P" U0 {$ R: H8 q, N- n) Mmysql> select interval 1 day + "1997-12-31";    / \7 d* V- d9 K% A( g  ]
  -> 1998-01-01    1 N2 x/ t$ V6 j/ B' k; X. K0 r
mysql> select "1998-01-01" - interval 1 second;    & p9 F# @" c. r; f" ]
  -> 1997-12-31 23:59:59   
  @. ^. z( W' r0 b/ B9 Fmysql> select date_add("1997-12-31 23:59:59",interval 1
) Z0 S' M% `( N7 Wsecond);    % x% k& p* D: V1 j& q) M
  -> 1998-01-01 00:00:00    1 i% y/ n3 b* R! M3 y0 \5 z
mysql> select date_add("1997-12-31 23:59:59",interval 18 l6 p4 n7 V- g5 x1 ]
day);    / k6 q& X' Y( M! o
  -> 1998-01-01 23:59:59   
, j4 g/ m( i$ h  U; W7 Omysql> select date_add("1997-12-31 23:59:59",interval$ v3 }0 X8 f! N! v
"1:1" minute_second);   
; x, Z) L% A1 A7 n  -> 1998-01-01 00:01:00   
/ D( s6 k  D$ Q3 G; h1 O* Wmysql> select date_sub("1998-01-01 00:00:00",interval "1
9 s; U7 u* l& L, O4 f1:1:1" day_second);   
. a0 S  v4 l3 z! U2 {" I  -> 1997-12-30 22:58:59   
6 h* j2 H/ n! f9 ?. f3 Mmysql> select date_add("1998-01-01 00:00:00", interval "-1
5 j1 H3 q% A/ o10" day_hour);  
- B' H* J1 U$ t' j8 I$ f: o, I2 C! \  -> 1997-12-30 14:00:00    , }+ n; B5 R1 @  ]2 q
mysql> select date_sub("1998-01-02", interval 31 day);    6 O1 G7 B$ i/ B  S0 j
  -> 1997-12-02   
6 `: f1 [9 |+ C7 \mysql> select extract(year from "1999-07-02");   
: G9 m7 D, N$ f  Y  -> 1999    : h$ @0 `" ^& m& d" v% m
mysql> select extract(year_month from "1999-07-02
$ J. ~1 C, F3 E. t3 h01:02:03");   
! T+ ?' O8 e6 f  -> 199907    # Z- Q7 L9 m' J  D
mysql> select extract(day_minute from "1999-07-02! N/ g% ]) h7 E' o9 A$ j
01:02:03");   
7 H+ |6 g4 a( C& h  F& y3 E  -> 20102   
9 P+ M: X: g( |* g& b3 M
% c# ~3 o% k8 `; e3 a2 v/ Z3 \1 Mto_days(date)   
3 v! u" Y  k- B6 N返回日期date是西元0年至今多少天(不计算1582年以前)  
1 j9 @  \4 l1 h( cmysql> select to_days(950501);   
* P. `" L/ a# ^) q- T  -> 728779   
4 Q; E; P  e4 j; M$ tmysql> select to_days('1997-10-07');   
3 c7 |2 v7 e9 v) c6 C7 W. k  -> 729669   
- h3 B( q& R9 p+ b9 p* f - C% t. ?2 D) o  Y
from_days(n)    3 m8 u1 w' K8 c0 D
 给出西元0年至今多少天返回date值(不计算1582年以前)   . w* a4 G- ~8 w+ T/ K! a
mysql> select from_days(729669);    8 H) U2 Y9 s+ f# g6 V
  -> '1997-10-07'   
3 u7 ^7 p3 I$ o% H( X
( n4 k2 [/ T0 K+ L. l1 Y& Ddate_format(date,format)   
$ y6 D  V: i; Y  z 根据format字符串格式化date值  
1 S8 Q4 @* _! J; c5 P8 V (在format字符串中可用标志符:  + Z7 a) d0 d( H! {/ d/ W
 %m 月名字(january……december)   
2 [% `: I- t9 y2 K %w 星期名字(sunday……saturday)    . \7 g7 R, [; t4 U( u# o3 C2 o3 h
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)   
6 y: D+ ]4 t) { %y 年, 数字, 4 位   
  ?. Q+ A) o4 {, c- X* V %y 年, 数字, 2 位   
" {1 r: F; i7 }9 R$ c %a 缩写的星期名字(sun……sat)   
# u2 }4 J3 e' D! U %d 月份中的天数, 数字(00……31)    - u  B- Q9 S* {7 q7 U
 %e 月份中的天数, 数字(0……31)    , y5 v9 l- T9 N. _9 B4 c/ J
 %m 月, 数字(01……12)   
! e) u- C, j0 X' b* f" S %c 月, 数字(1……12)   
1 [# Q' L/ ~! U4 j4 o/ o0 o) D %b 缩写的月份名字(jan……dec)   
6 d' c0 [' i% ^ %j 一年中的天数(001……366)    / Q% H4 [7 ^1 L; I2 ^
 %h 小时(00……23)   
! P0 C4 G7 M2 ?! n7 A! X %k 小时(0……23)    ! m$ e7 g% }* b
 %h 小时(01……12)   
' x/ N, g, `1 g- e( n %i 小时(01……12)    + E$ A6 K& X+ }& V" m9 e5 [) q
 %l 小时(1……12)   
5 g2 ^# W! |+ e1 v+ B %i 分钟, 数字(00……59)   
/ @$ a8 y. _* O# |, g+ ^: X %r 时间,12 小时(hh:mm:ss [ap]m)   
! m( w; C! U. ~' j! L' q %t 时间,24 小时(hh:mm:ss)    : t+ J' S& e: a7 M3 n1 o
 %s 秒(00……59)    . h  ]4 w+ O4 y) ~* `
 %s 秒(00……59)    & S. D' E7 d6 k3 Y
 %p am或pm    & |- E) g) m5 l$ o" Y7 X; c
 %w 一个星期中的天数(0=sunday ……6=saturday )   
4 a8 c7 S3 L0 N4 t: w %u 星期(0……52), 这里星期天是星期的第一天   
# K+ a/ f! R, Y %u 星期(0……52), 这里星期一是星期的第一天   
2 [4 e4 F4 p* S; m9 L2 i %% 字符% )  
0 P8 {5 M4 L8 B& m5 l. E& _mysql> select date_format('1997-10-04 22:23:00','%w %m %- K' `" W% f* Q4 U9 A
y');    . t# Q7 C8 }# c7 m% p$ \- l  y
  -> 'saturday october 1997'   
( y( y: A" I) `$ u1 o/ j. ^mysql> select date_format('1997-10-04 22:23:00','%h:%i:%. u+ Z* S( k8 m/ k# J6 R9 \
s');   
& I( {& n6 g7 G+ E! m/ @  -> '22:23:00'    ) S  ]2 n0 p/ n3 f6 C
mysql> select date_format('1997-10-04 22:23:00','%d %y %a
9 f3 n( m9 c  |- v- V4 d$ I6 w%d %m %b %j');    " a8 W# |* O3 q" l, @/ z" X
  -> '4th 97 sat 04 10 oct 277'   
$ y. `2 C! I$ c' F  wmysql> select date_format('1997-10-04 22:23:00','%h %k %i$ t. |) j& V  `2 J6 L6 H0 i
%r %t %s %w');   
% N4 y  Q4 x) s# n$ G  }  -> '22 22 10 10:23:00 pm 22:23:00 00 6'    5 g: e6 n8 ?! o$ ]+ ^% L+ T
1 A" Q/ x0 O2 a4 {
time_format(time,format)  
& S% N' j) o$ n9 O' F  C 和date_format()类似,但time_format只处理小时、分钟和秒(其. n: z) @" B  b& ^1 o, d
余符号产生一个null值或0)  
5 M) P, d3 \9 r
* P+ O# |8 q* g- x) h9 D" ~1 [, Ycurdate()     7 L/ q8 c( Z/ k% I; k
current_date()  
& _7 N! y( u! |5 d2 J- n' n* w 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
. X1 O- t5 R' Z3 q* ^& g处上下文是字符串或数字)    + L, w- @, }* |; _) L  n) b
mysql> select curdate();    ' Q3 R5 \) P: n6 N$ Z* ?
  -> '1997-12-15'    ) o; [7 f. \9 C: Z3 {
mysql> select curdate() + 0;   
7 R6 p: M4 y8 |- X1 g' H  -> 19971215    2 S& J2 \( p1 x  a& n

' O) h* O5 Z5 L8 Q7 `curtime()   
& a$ t6 j  Y) d. _2 z' ycurrent_time()  
9 [6 y6 S5 q. I9 q. _5 S 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
. T% b. a; K. v' d/ X下文是字符串或数字)      
9 v4 f- ]& x* G$ w  }mysql> select curtime();   
3 h" i: o6 Z% u1 R  -> '23:50:26'   
" u; z" Z, n8 L3 L$ Imysql> select curtime() + 0;    & T8 T( }) c6 c- `
  -> 235026    , O! V6 o7 b  b8 d; b
3 Q1 k' s) F" Q& v" o; c
now()    ! N) l" B0 n0 w( m1 ?
sysdate()    % g* |1 W, x2 B- O- `( M1 q
current_timestamp()  
/ N) W5 |1 {. |' [ 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
' a  u# w- P3 a: Y/ u时间(根据返回值所处上下文是字符串或数字)     " K& [- T9 P: J6 V! P: \
mysql> select now();   
. T1 R% c8 S, H+ ^$ l5 S2 I  -> '1997-12-15 23:50:26'    ! |" U) @6 @: @% e' y. T
mysql> select now() + 0;   
( ^# v5 _5 i$ _7 }, b  -> 19971215235026    * z0 P. L+ e7 K, Q

' y( u- s6 P: b7 \unix_timestamp()   
  I: p- f3 [: X+ Nunix_timestamp(date)    * N* j7 L6 W; W- t$ L  A. Q
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒9 ~: Q5 _9 s. n7 y' P
数,date默认值为当前时间)  " ^  J9 l. l4 Z% r0 B+ l
mysql> select unix_timestamp();   
' `3 m2 d% j% b: R0 V5 h  -> 882226357    # h# S- P3 D5 i% h+ k/ _# x9 F
mysql> select unix_timestamp('1997-10-04 22:23:00');   
# p5 M* k9 H2 d/ W  -> 875996580    - z3 V  M7 I5 A/ M1 }/ M3 v* }
- h& `8 ?2 f( Z. g' x" G
from_unixtime(unix_timestamp)    ; t0 E6 k% z+ o. N, f/ I
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的! S4 q, R, C' j9 h$ v
值(根据返回值所处上下文是字符串或数字)     
+ @9 a' U+ Y; A5 Qmysql> select from_unixtime(875996580);    " }7 n- }- L- F# X& W, j7 @0 e4 ~
  -> '1997-10-04 22:23:00'    # S$ l! [7 J7 @5 z, \1 U
mysql> select from_unixtime(875996580) + 0;   
4 t& |0 \+ ^* [  -> 19971004222300   
' O+ e, F8 ]: e! A. |# L6 P2 @
3 {/ l4 t. ?* g. zfrom_unixtime(unix_timestamp,format)    - @6 W% o/ r) v( n5 u
以format字符串格式返回时间戳的值  
$ a2 D# Q8 u% \( m* lmysql> select from_unixtime(unix_timestamp(),'%y %d %m %
: j! P7 v2 ^* A7 ]# o* Y/ @h:%i:%s %x');   
1 ~, q# E6 r2 n  j9 ~( r& S3 M% [: |  -> '1997 23rd december 03:43:30 x'   
% y" A2 v' G8 g" k* i- q' h
$ v# e# s5 G2 ^6 x  hsec_to_time(seconds)    2 @$ C0 _1 r7 ]" {8 ]- q
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     $ d1 h, C/ O$ ^. b: W
mysql> select sec_to_time(2378);   
& G; {2 [, S- W& d5 w! i  -> '00:39:38'    / v( Q) I; ^8 s" s* }% Z
mysql> select sec_to_time(2378) + 0;   
9 V# t: T! F! Z) r5 Y7 R, D  -> 3938    ! ^# I) `0 h7 M0 I6 r

7 t2 U: H- R" u; x5 \: b, A" Itime_to_sec(time)   
+ R0 u0 ~! `/ H+ t返回time值有多少秒   
! r" P& W6 @- o7 B0 ^* Q. ^  L3 j0 dmysql> select time_to_sec('22:23:00');   
& S2 ~0 {, S( Z3 ]6 W8 W  -> 80580    # [) Q, V7 q8 _9 a/ y; [
mysql> select time_to_sec('00:39:38');   
3 o1 u+ q: u0 K  -> 2378 ( L* L1 }/ H- Y7 E
. B5 T" v: y8 Y( ^- W, X
转换函数, r- [, @. J% ]0 p7 R( N
cast. O% p9 G0 t2 ~- g' ?3 k9 ~
用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]
9 a: k9 G" M3 W7 G! r; k3 q实例:select cast(a as unsigned) as b from cardserver where order by b desc;
5 @4 j$ {" y: n+ {6 Sconvert:
7 l  ]4 N' x! d% n! g用法:convert(字段,数据类型)
* x6 o! p+ O( x3 i" G0 z2 S1 V  |. G实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
: Z# ~  `: ~. f6 t: h( }! a
回复

使用道具 举报

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

本版积分规则

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