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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数- _( o- `5 R, R
ascii(str)   7 A( K8 t7 ?9 I. L5 C# H
返回字符串str的第一个字符的ascii值(str是空串时返回0)  % f! G7 V# ?# w# s: m
mysql> select ascii('2');  
3 j; v* A8 X2 r- ?% K5 r! `  -> 50  3 s' ?1 B5 m1 D$ Z7 h0 a% s
mysql> select ascii(2);  
+ ?1 @9 @8 h/ V( n! Q8 U  -> 50  + A" l: L7 I& E5 K/ q
mysql> select ascii('dete');  
- r# A& _- q% ?) k6 p( B" w7 b# s  -> 100
, G5 z/ f" Y& W8 j: i
ord(str)   6 D/ x" Y$ M* S; w7 c) t& t$ M
如果字符串str句首是单字节返回与ascii()函数返回的相同值。3 j" F0 _6 b6 ~
) ?4 N4 {2 T) w: ?; I( [
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  
& x# U6 v) k6 ]4 O8 O. Bmysql> select ord('2');  . x9 K. j) ^. m
  -> 50  
, ^) d, M( [# @1 U  l0 F   : x- Q4 L+ o8 S" u  B; b' V
conv(n,from_base,to_base)   8 y8 L1 C; Y1 G8 R- ^" u: X
对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
6 ^: V+ r3 x, e6 P* }2 ]. Q7 ymysql> select conv("a",16,2);  
) Y/ G4 Q! `* d/ ^) ?) P5 J  -> '1010'
" @) t4 h% _- E4 S7 Vmysql> select conv("6e",18,8);  
) `- a8 D7 g  e8 E2 |9 V  -> '172' ' H6 p' J' j7 C5 m8 Q
mysql> select conv(-17,10,-18);  
2 M) f, H" f$ X* T; q  -> '-h'
* y' L% A% _( g% R6 ^# S% \mysql> select conv(10+"10"+'10'+0xa,10,10);  
9 q5 v. ]9 P; a! z. }4 k6 D  -> '40'
% T6 y1 b* |; y4 Z0 K7 z. }, Y* f: e5 X   
- \7 G5 F, C% k! C7 T5 |bin(n)   9 `& K! W. l" m, |2 V3 `2 S6 X' o& e
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
; L; M' B2 \% w4 d% X( V) E+ t7 f3 H; Ymysql> select bin(12);  
2 n6 ], S: ^, [  X" F% ]  -> '1100'
  S; T' K% x. E; a) _- i( B6 |$ h; ~
  r" x  o* [/ Y2 ^oct(n)   
; g' S) K3 Q" o! n' E2 g  I把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
1 B, O- H( U! Y2 H& Wmysql> select oct(12);  
4 U+ w' \" G' |5 p  q7 D  -> '14'
1 _! f& C5 b) E: v$ X! ]; X4 u, ]1 e   & j" w4 k9 X, u8 a" D+ {2 y* \  z5 V9 f
hex(n)   
; Y) a; c% o# `( V把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  
! @& A+ ]0 k* w) q' \. k, p2 x1 z- Bmysql> select hex(255);  # s5 E, f  D, m# ^9 c
  -> 'ff'
3 t+ v3 d2 {* k   
' Z4 \% V' P; N5 `/ K9 u( jchar(n,...)   $ l1 M1 k2 I' q2 m) ?& k: o
返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   
7 s2 D4 G* C! W2 J5 s* J+ Mmysql> select char(77,121,83,81,'76');  
6 S1 c0 `# J/ t. ^* {& f4 X- ~% U  -> 'mysql' / G7 M" i; a  u% }. s+ s  o% d
mysql> select char(77,77.3,'77.3');  
8 X+ m: R* W+ N  O  -> 'mmm'
, X7 M% Q; q  k+ x1 ^! b4 R# q   
% }2 }! d# H: }0 W( [6 z* z" @concat(str1,str2,...)   + D9 \  N: s8 |
把参数连成一个长字符串并返回(任何参数是null时返回null)  , j; Q, J! u8 l
mysql> select concat('my', 's', 'ql');  ' d: r: A/ _6 k& o/ \
  -> 'mysql'
1 R0 o! [* r; i5 {mysql> select concat('my', null, 'ql');  4 G/ U% v% x. H; D, b) y
  -> null
0 N' S5 R9 d( R8 jmysql> select concat(14.3);  
: W  `/ C8 |7 g/ M  -> '14.3' 4 j4 A) p% f& D, N8 S- d. `
7 K9 U! W  g2 ?5 F
length(str)   % f2 D1 y0 G$ V
octet_length(str)  
  j* P6 J' J4 @6 Y6 T7 y$ ochar_length(str)  ) R; d+ L8 p$ U
character_length(str)  
, q* |/ Q2 d% f* n( r  x3 q" m. N; T返回字符串str的长度(对于多字节字符char_length仅计算一次)* f% k! L. ?/ e, b/ W! j8 i" z
mysql> select length('text');  
8 c; [' i9 r6 ~9 e: A3 _" x  -> 4  " T( l; O2 x% A1 s. h& _3 v  u0 ]
mysql> select octet_length('text');  0 U: ~" n, @  V$ S) c0 E: g$ L
  -> 4  & c' I6 H/ a5 ?, e0 r9 H

6 N; m+ Y& C3 `6 X) m7 hlocate(substr,str)   + q$ I$ v) I- Y% z% F" r& I: ?3 b
position(substr in str)   9 D0 K  `* G1 x; x
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  # F6 F( i* W& @: P
mysql> select locate('bar', 'foobarbar');  
& x1 _6 [: o; _# u  -> 4  * @% T6 X6 G6 Z4 z4 s, C0 W. Z1 o
mysql> select locate('xbar', 'foobar');  
7 J  C1 h8 p/ ?  -> 0  
& a9 O0 M5 }% f; q+ `    6 P5 g6 r' x6 }, R- S) V7 ?. L
locate(substr,str,pos) 4 g8 {, L! N8 Y+ ?. x
返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
5 U: B* g$ R! N+ dmysql> select locate('bar', 'foobarbar',5);  ! ?+ s! q, a. G8 P8 h  R- _
  -> 7  
9 Z5 U3 V$ e& [6 `9 `9 F9 \ " s; Y9 b- f1 b
instr(str,substr)  
/ B  n' _* M6 E返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)    k0 V) ~2 H$ }  J* q: a
mysql> select instr('foobarbar', 'bar');  ; r: f1 B3 m3 c- E& @
  -> 4  
2 [2 k6 I) q1 V& d# ^4 R3 O& Bmysql> select instr('xbar', 'foobar');  ( E+ {' Y5 o- G" X8 Z( T' F
  -> 0   
; @- `' t3 w7 [ 2 S" @; M4 m, @9 a. @% k  ~0 E- X# y& \
lpad(str,len,padstr)   
! T1 q* J- }) A' s8 S用字符串padstr填补str左端直到字串长度为len并返回  
  K; ?, h1 ^, W: t) kmysql> select lpad('hi',4,'??');  
8 Y) I4 F( o2 \, U  h% r0 s/ M* {  -> '??hi'
! J3 j' t8 m; R   
/ ~* ]+ ]" j. ^9 G8 nrpad(str,len,padstr)   
8 c. }0 w1 P* B$ @& v! V4 c用字符串padstr填补str右端直到字串长度为len并返回  
* o" {# x' K8 h0 }, `8 z+ P/ gmysql> select rpad('hi',5,'?');  5 g& }$ z* r  Q
  -> 'hi???'
+ l7 ~9 t" J( K' ]# i8 {, R
9 j. ~0 _* Z0 s+ S! c5 ?left(str,len)   4 U$ _5 Y4 {# ~( ?4 ~; J
返回字符串str的左端len个字符  " _2 k2 N9 t5 ]' m8 @
mysql> select left('foobarbar', 5);  2 o3 D( N3 b6 o1 V8 s& d) h
  -> 'fooba' 7 V8 z- F, x4 L' R; B

1 G, d1 H. p+ D: m; rright(str,len)   . D3 a8 t! a& ~2 ?  V7 V& n- d
返回字符串str的右端len个字符   & j5 ?& T( f9 w' S# l1 D7 A
mysql> select right('foobarbar', 4);  ) f; @- }6 k* n3 T$ @) H( f
  -> 'rbar'
1 H6 c0 @% O# k% f9 @  Q8 e
+ E% s. h( J: a% nsubstring(str,pos,len)   ( ?' w9 Y7 \$ |
substring(str from pos for len)   
) S" G; @; b; O+ Umid(str,pos,len)   
5 h4 S% M0 w9 I* m" S# z2 [返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
: |& a: z. S8 f: R+ }  -> 'ratica' ; z7 F. \% H: I- ?
3 [8 }) x4 {0 Q2 ?6 i4 u6 i2 L
substring(str,pos)   . @  {* P+ q+ w; Y: V
substring(str from pos)   
: L- X2 r; H2 h: z$ Y7 y& E返回字符串str的位置pos起的一个子串  0 @( n& e. v! |# }( a+ D  k
mysql> select substring('quadratically',5);  , y- C/ I. C1 e
  -> 'ratically' 1 w4 f& }" a! }2 i
mysql> select substring('foobarbar' from 4);  
5 [* W* z2 u# u! Z4 }. j) X  -> 'barbar'
, C8 U( l. q. ?. W; @
# w! `+ E5 q5 R* C+ C2 D' gsubstring_index(str,delim,count)   ! L8 {  b! d0 @' Y- T6 Y( w  {
返回从字符串str的第count个出现的分隔符delim之后的子串6 W+ Q8 W5 P# e" X
(count为正数时返回左端,否则返回右端子串)  ; ?; \( Z9 j4 L# O; O  m0 P
mysql> select substring_index('www.mysql.com', '.', 2);  # O" Q6 u: `+ W# z' Y
  -> 'www.mysql' 3 U7 {+ J. F, c3 F' p/ t$ D% @9 Y
mysql> select substring_index('www.mysql.com', '.', -2);  
  L1 U# _! r; C- n* z  -> 'mysql.com' % f3 p7 G1 o; P: L; w1 `

: G1 a0 a4 C+ u" iltrim(str)   
2 N/ e/ z1 O  k8 [: E8 G2 Q9 x# T3 t返回删除了左空格的字符串str  ; l/ S3 L$ B5 i( |4 ]
mysql> select ltrim('  barbar');  * Z4 F! b# l/ Y: R% r
  -> 'barbar'
0 w( J5 z3 e2 j9 r
! H8 y/ C* W9 @1 U4 j! Urtrim(str)   ( p2 l/ t# V' E) ]) N9 K& Q5 _
返回删除了右空格的字符串str  / T1 O4 r" y  T% M) Q3 a+ R# m( U
mysql> select rtrim('barbar   ');  
# Q2 W9 q( J. e; X  x- j4 Z% h: x  h  -> 'barbar' $ E5 ~0 g& h7 G8 b
* k$ S* g9 g4 {( O
trim([[both | leading | trailing] [remstr] from] str)   / ^# g2 N7 S4 V4 a6 z
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
; N" V1 k; W- m8 A, {) Qmysql> select trim('  bar   ');  / p6 P" L  }' P- C
  -> 'bar' 9 f" @8 I  v! O% V- e
mysql> select trim(leading 'x' from 'xxxbarxxx');  ( @6 w* C' k3 T3 U# R5 z
  -> 'barxxx' + @$ z% I3 g% |; `
mysql> select trim(both 'x' from 'xxxbarxxx');  / c, ], m* M( I- e7 n
  -> 'bar'
) C( k( {  S& }* cmysql> select trim(trailing 'xyz' from 'barxxyz');    U. _5 P7 {1 J9 O( s% H# o, q! C
  -> 'barx' 9 l( r5 S. _# ]& f& U) F- m2 {9 {# f# f

/ t8 u& X, [9 Y* R2 f! p2 }soundex(str)   9 t7 W) w% B1 D' H0 Y- I6 Q
返回str的一个同音字符串(听起来“大致相同”字符串有相同的
* G& `+ _! X# W! d5 w0 H同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  
3 a3 b8 g8 d5 H- u' K" ^$ \$ f4 kmysql> select soundex('hello');  : j# W/ e9 ]2 `$ ], O
  -> 'h400' . G: \6 c7 P: u1 J6 \7 x
mysql> select soundex('quadratically');  
; c# `9 W& G+ H2 P  -> 'q36324' ) Y- w1 c- O1 [$ J  X
   
8 E, x1 E: b5 J3 X- A) G1 }space(n)   $ a& Y  J% K, j. f+ b2 d
返回由n个空格字符组成的一个字符串  
& F9 `' s3 ]; m2 _' ~+ smysql> select space(6);  & }) w5 K) q( Q% q; X( o
  -> '      '
+ E' ?8 s' {( [) n6 b  K   5 q" X+ r* N: H+ ^) i! k0 N) s* Q! \
replace(str,from_str,to_str)   
; ]7 A5 O0 F& X用字符串to_str替换字符串str中的子串from_str并返回  
8 }, [: J# y' n. [- w: Jmysql> select replace('www.mysql.com', 'w', 'ww');  
2 c# d% s$ W; p0 |, X8 g9 X  -> 'wwwwww.mysql.com' - s) [+ E/ q2 W: [0 b

# M2 \# b. {( B1 Q# @' M! K  _$ u; hrepeat(str,count)   # r; n* t  [, P+ S- o& s
返回由count个字符串str连成的一个字符串(任何参数为null时
. l- q' O- J  Z1 ^返回null,count<=0时返回一个空字符串)  5 S9 k& z9 l8 X3 E
mysql> select repeat('mysql', 3);  , C  _& f9 i/ a; ]' ?
  -> 'mysqlmysqlmysql' 1 }; {9 S5 S0 k! s
   2 H# k, l% j( K6 r/ q2 w
reverse(str)   
1 Y9 N" }7 v0 S颠倒字符串str的字符顺序并返回  4 y0 R; f! @" ^  R' R, e7 N
mysql> select reverse('abc');  " l$ P2 V# n/ ^! A/ W
  -> 'cba'
2 T( }( f0 o* Y: |2 V0 Z3 Z
9 i/ V9 ^: q8 `: W- xinsert(str,pos,len,newstr)     i9 R- D5 d; J* L9 L( E9 a$ a
把字符串str由位置pos起len个字符长的子串替换为字符串8 ^+ z2 h9 l) z# \8 P' I
newstr并返回  
* T1 u" j! d0 K1 b  N# @mysql> select insert('quadratic', 3, 4, 'what');  
& }+ @/ g* R# U7 S, D& m; @  -> 'quwhattic' 2 i9 o1 M8 t; {: j2 X
" u9 j/ N- o3 _# E  g/ Z* b
elt(n,str1,str2,str3,...)   ! h7 W  F& j  x" M# L  x4 P
返回第n个字符串(n小于1或大于参数个数返回null)  1 v5 e5 ?) `' o7 K% }8 u
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  5 \" \% i6 ]+ A7 z3 H  L' z
  -> 'ej' , I& C1 K# H+ o
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  ; n7 R# Y, A4 {- U3 |. O4 {
  -> 'foo'
$ D! u9 t3 G4 n) F/ a8 e 8 Q* a; L6 u5 Z4 I& Y
field(str,str1,str2,str3,...)   $ f# y1 v2 W3 H3 w8 H
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
& K& [* f4 L( X+ n' y, Wmysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
6 ?, K/ B, h# N) |2 `'foo');  # d8 F; b& t; M; r
  -> 2  
+ ]( I- b) g+ [& C' M! P/ Kmysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
. G! r6 d$ y  b) a5 A8 ?9 s'foo');  
& u' ^+ V1 \) w0 S- X  -> 0  
+ |4 a$ b* U/ `5 h3 ?. M . l4 G/ B$ E  v
find_in_set(str,strlist)   
. A- ~  ~3 H: a- X- l, ]9 T* ~返回str在字符串集strlist中的序号(任何参数是null则返回
- X5 n! u* _. x. B- C+ a! u0 _null,如果str没找到返回0,参数1包含","时工作异常)  
4 t  g+ X$ e& A4 \8 b5 l2 e# ?4 umysql> select find_in_set('b','a,b,c,d');  
& E6 J/ M9 U6 Z9 @+ q# O  -> 2  . V3 C! D. ]5 i; X2 d$ ]
   3 z; S" R' c. e9 ]8 S2 X
make_set(bits,str1,str2,...)  
  m7 }. D' o6 j1 g9 {4 q2 o. X把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应& k" K0 G8 X+ g/ r
位置的字串选入字串集并返回(null串不添加到结果中)  ) ?; _3 c- g$ ]! i* N& {
mysql> select make_set(1,'a','b','c');  
6 P- h3 ]' K0 }& J2 k: A# _& _6 `4 A6 P  -> 'a' 1 s* L* k4 u. @; r1 ~/ r6 W
mysql> select make_set(1 | 4,'hello','nice','world');  
7 u& C+ k! Y5 r  -> 'hello,world'
+ f/ S6 M- L* a4 ^3 @4 e7 @+ b, omysql> select make_set(0,'a','b','c');  . g% E+ Q! |# D$ P2 ^% k1 o
  -> ''
1 S  N% [4 W) E% k! T
+ ]  I; H1 ~& W) U$ zexport_set(bits,on,off,[separator,[number_of_bits]])   
  C6 e  F5 o0 e+ ?" @" m  U3 j' `6 d按bits排列字符串集,只有当位等于1时插入字串on,否则插入
5 L2 d) x0 {+ Yoff(separator默认值",",number_of_bits参数使用时长度不足补0
/ |- T  W2 @& _而过长截断)   2 s. M2 _5 ]% ]: g' t' X
mysql> select export_set(5,'y','n',',',4)  + J) A7 q; K- z, O$ H. W/ v  W6 @) c
  -> y,n,y,n   6 q$ r, d6 m; a% Q3 a4 F, _# [
, V; s2 j' h4 ]  I9 Y7 k- g
lcase(str)  % D9 Z( J+ B. ]  T4 L
lower(str)   
8 u7 g- k2 E, c' j; y  d返回小写的字符串str  - z2 G# Z! s! X6 L  }" U$ a
mysql> select lcase('quadratically');  3 ~" ~( J% \, M( L5 V6 E0 O
  -> 'quadratically'
/ I$ A: z1 j$ T8 N  I) n   
1 Q4 f& i1 v$ A. c* P( Aucase(str)   6 G& ~) k1 X# @% S7 ]' }' W+ Y
upper(str)  
  d# C6 u9 ]: T' m3 A0 p( p返回大写的字符串str  : W6 e$ K" x) C7 ]
mysql> select ucase('quadratically');  - w3 A9 q/ z4 x9 q
  -> 'quadratically'
2 b* A) w1 P8 K4 S) @
0 L2 A8 C- T( v9 mload_file(file_name)   / L( H- n6 L9 C  p, E
读入文件并且作为一个字符串返回文件内容(文件无法找到,路径
  C% z0 j6 {. Q不完整,没有权限,长度大于max_allowed_packet会返回null)  
2 g3 p7 o/ Y0 r, q: E7 nmysql> update table_name set blob_column=load_file( @6 e3 I2 d1 s, [$ H$ n/ E
("/tmp/picture") where id=1;  % I6 A6 \3 b% r" E

* ~/ F! p/ g% ?7 G! ?! C2、数学函数$ Q4 ?* J) R9 N& O! @
abs(n)
( @3 }+ `3 K( p+ d- K2 R返回n的绝对值  
+ }" m8 q+ C8 w/ r4 D7 B0 A9 b7 t+ [mysql> select abs(2);    ( Z4 k2 X9 C0 [( b: n) q
  -> 2    1 s* h: V/ W9 q+ F( L
mysql> select abs(-32);   
! y4 _( A0 E3 P1 r  -> 32    ( a6 N2 W1 V9 R# c7 _5 M0 Z4 x4 h
   
) k: M. g2 T0 h& [6 ^sign(n)  
# E! h- A$ s/ i6 P返回参数的符号(为-1、0或1)  
8 c' {3 G; f& P  F. Z" A9 bmysql> select sign(-32);   
! s) |: k& o$ |7 c+ R, [+ W7 A9 C  -> -1    3 G" T+ {! `# v) m
mysql> select sign(0);   
5 _' ]! \) a2 B( L$ M  -> 0   
, ]+ q# o1 p& \3 y; Z" b8 z2 ymysql> select sign(234);   
$ |& K" f+ ?: x9 n% i1 V4 N  -> 1    ) B$ b5 Q% [1 o9 q$ Q+ @9 D
7 w  ]' s" H+ {7 c
mod(n,m)    , o8 N) m0 i9 H% \* d
取模运算,返回n被m除的余数(同%操作符)   
8 q4 K% p3 x' t- k. Z8 g( R" U" ]0 [mysql> select mod(234, 10);    % r+ l3 I1 Q7 B8 [
  -> 4    3 L9 N( c/ J1 R2 V* R' b4 z
mysql> select 234 % 10;    5 T4 L# [& x5 e% i- T
  -> 4   
4 a  ?* J' X4 Q8 dmysql> select mod(29,9);    5 |1 E. C( |2 k! ]+ w
  -> 2   
/ i) P  D; C1 I4 p' S# b) b$ p 9 N9 W% n' \( j0 K
floor(n)  8 w0 I  J! g: m  I$ A  _$ l) a
返回不大于n的最大整数值  8 Z* Z0 ]0 c' j4 N! d0 J% V# }
mysql> select floor(1.23);   
  d9 ?0 @/ x; O9 _  H% z/ h  -> 1   
" G9 P' Q1 h  O0 L( _/ xmysql> select floor(-1.23);   
  @" m- P0 A, A  -> -2   
0 \+ [$ F! W" F2 ?6 D% W 7 o' ]* l$ L# z. u" w  y
ceiling(n)  $ x. x& Y: i( k& @) u
返回不小于n的最小整数值  
  H3 A! o  q4 o4 \2 }8 L5 _) mmysql> select ceiling(1.23);   
5 S6 U' T2 z, J' L7 d: @1 L% \  -> 2    ( T1 L8 r. a: Y6 d
mysql> select ceiling(-1.23);   
2 c3 @9 H# E, F  U. `  -> -1    ! y% E; D4 _6 f8 p

2 r' B) J( Y6 [. jround(n,d)  4 p# T3 A) ?3 e3 U. {8 O  y+ S" G3 C
返回n的四舍五入值,保留d位小数(d的默认值为0)  
4 a3 q  B) G1 K7 G2 Amysql> select round(-1.23);   
0 M9 J1 `) [. r1 k6 ^+ W+ \  -> -1    * V' E/ y8 A6 S4 {  f/ O
mysql> select round(-1.58);   
* e$ v# w+ s6 W. t" f% }& N" \/ p- O  -> -2    7 _$ [6 U; Q2 L1 s6 T& }
mysql> select round(1.58);   
* i. o' A) w, v( Y0 w  -> 2    ! V; V3 m/ O3 P* c( t# ?
mysql> select round(1.298, 1);    0 T" @& P0 T8 \, F4 R" w3 I
  -> 1.3    , C1 U& f0 _, R
mysql> select round(1.298, 0);   
3 O0 B9 O5 S1 G! n  -> 1    : b$ d8 C: m" w
6 g* l. ~9 X; D* g0 U& b, T' j" q
exp(n)  % _9 r! g& V9 B! Y! `# e6 R% k
返回值e的n次方(自然对数的底)  
% e5 ~  O7 z# V4 i0 k% Hmysql> select exp(2);   
, P: @' I0 _* g% u% g+ G1 I  J7 ~  -> 7.389056    ' j; L3 _- x/ y$ u3 ]; l4 C
mysql> select exp(-2);   
" `: [! [& |+ Z9 a  }  -> 0.135335   
) T$ T& e- Q6 T$ g / [. x3 {8 r# I* [5 Y
log(n)  - w& `6 y, I% f4 ^6 m# E
返回n的自然对数  
8 ^6 H3 X8 o" \: w0 m% nmysql> select log(2);   
$ B+ W+ u3 z% O; E" L  -> 0.693147    6 \9 s/ R* Q! a3 v1 A2 G$ V
mysql> select log(-2);   
/ u; P) m8 `: L" ^2 c  Y  -> null   
0 a; Y* A8 S3 ?/ M2 \# H# m/ f 2 F2 l/ ?" R* z3 S+ }( z' b
log10(n)  # t9 `- }  \& l, ~, V* b2 k4 l
返回n以10为底的对数  9 q$ r2 w4 V. H
mysql> select log10(2);    ! E6 c8 d3 ]0 t  k9 D1 g& }5 o% B' w
  -> 0.301030   
  X( y& U2 V, P1 ?mysql> select log10(100);    # a6 [$ s: c9 a9 t# c
  -> 2.000000    & x! T! ~3 d, R; j/ d( X. j& j7 {) Y* k1 E
mysql> select log10(-100);    $ ?2 x5 L: K& `& S9 X1 g5 n( T$ u
  -> null    - e% k5 U% k6 E4 \% L9 o; \+ Q0 ~
! J! U$ a; \& I/ G: Y8 u$ O' H1 ^
pow(x,y)   
) s4 O, S$ I' A* epower(x,y)    , Q& w. L% {( w% j1 x4 h7 A
 返回值x的y次幂  
$ Z, j( v1 r+ Jmysql> select pow(2,2);    7 _# R* E9 k$ V: }7 P/ B1 J/ ]
  -> 4.000000   
6 [( E; b6 j( Imysql> select pow(2,-2);   
. f+ ]# B$ f7 h  -> 0.250000  
/ R0 p- b+ T. t: x" d, F) b2 O1 P  }) y
sqrt(n)  $ p8 j: @, J: e' j$ b7 C
 返回非负数n的平方根  + B' z# X5 X, C; g
mysql> select sqrt(4);    7 {; X% w6 q2 ?" |! m. K5 m$ F
  -> 2.000000   
; N3 K& @( l  C' A  n: Q7 _mysql> select sqrt(20);   
9 c3 s! {4 J# y$ t- q  -> 4.472136   
! I6 h( x+ k+ I
8 C3 S9 S0 Y) T  i; A+ ^( vpi()    3 v- m1 Z) k2 U+ |0 E/ Z
 返回圆周率   
" T! U  k/ u" j6 r' o. `9 ?mysql> select pi();   
: R8 q% t) v- P/ U, T6 W  -> 3.141593   
- e2 `9 a" p/ t$ [
9 ^) d, `( F3 l0 F7 T- _cos(n)  0 I# o, z* @+ Z
 返回n的余弦值  
5 K+ Y) k8 Q- J& ^4 u: t0 u5 jmysql> select cos(pi());  " U& a: e( x) o  f
  -> -1.000000    # v  W9 s1 W4 r/ y" T

9 L/ p2 k' `4 fsin(n)  , J& j9 C/ g/ }. ~3 H
 返回n的正弦值   6 p& T: |5 C6 B) c! o: l8 j* q+ H/ a
mysql> select sin(pi());    $ b- a  a( Q" U8 M5 f9 M& H+ o4 d
  -> 0.000000   
- {7 S7 U0 x! R " O" s, v4 h" b: B3 o/ ?: t
tan(n)  
3 m8 @6 d  R( Q* U) J' E返回n的正切值  
* V  c( H. X2 O( dmysql> select tan(pi()+1);    + a: y$ P$ k/ x. ^# {1 f9 b- B
  -> 1.557408    1 i. \! V; z- Q$ w

8 Z  D7 o6 `, Y4 x7 ]9 l9 p7 [3 Cacos(n)  5 d9 B8 l5 b: V5 F/ v: t
 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  
9 _" J+ w( ]  j( Z' A8 \% @mysql> select acos(1);   
5 g) F- J- Q2 d) P  V  -> 0.000000   
2 [, K* N5 s! hmysql> select acos(1.0001);    ' g3 H( j( [) F
  -> null    6 X3 h9 c7 o& z' C8 t6 ^. I0 {
mysql> select acos(0);   
& t6 c2 j: x- d% F: z! d  -> 1.570796    ; s# R; I$ K6 g- x6 z! [& V! C
1 l: y$ G6 i" u8 ]$ u
asin(n)  
2 Q/ i; |6 w2 l返回n反正弦值  ) S/ h# }+ W" L) ~! k
mysql> select asin(0.2);   
2 g* _, [: Z. T6 c4 q! O  -> 0.201358   
6 i: w" n; j) F- w* P- d1 umysql> select asin('foo');    - L( Y1 J6 H9 p
  -> 0.000000    0 v  R, p8 ~& N
2 C) r, R* q5 w0 J1 R
atan(n)  
3 B! ?/ y2 }8 v返回n的反正切值  
* j8 Q) r( Z. gmysql> select atan(2);    $ @5 Z. m% D! A2 V6 O1 F4 g) d; u7 ~
  -> 1.107149    ! A: G% V, ?: b
mysql> select atan(-2);    2 t/ ?5 a  M% s& d. O- m
  -> -1.107149    , x! D0 [. a0 M+ N! Z
atan2(x,y)   
# Y8 T1 y2 a8 k6 W* j0 n$ u 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  
* x( z1 v. d2 l3 c! Wmysql> select atan(-2,2);    9 C) o1 Z8 ?9 L  _# b0 Z1 C
  -> -0.785398   
8 y5 y" ~: F" _( X0 L3 gmysql> select atan(pi(),0);   
; V/ I* w4 Q* }) q% G  -> 1.570796   
" y- }' [" V* k4 j, l- x+ I
5 T. J3 a- |) U$ G( [' \1 Ccot(n)  
1 A$ c- R0 w+ e+ ?" a返回x的余切  
( J$ [4 Y5 V  ~mysql> select cot(12);    5 J6 J+ d! r1 j' v
  -> -1.57267341   
0 N, N: n, ?! y! k+ Q  Lmysql> select cot(0);   
0 k+ {2 n4 C! s5 p9 |7 f  -> null    9 s- ]7 f, q1 n

( u& L/ N2 W1 B9 lrand()  & C) z0 [* p/ x. Q& ^2 R) {
rand(n)    9 x8 F4 Y$ n" P5 Z; `) G
返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值) 8 U& L) |* j* Y
' [; V" B* _2 M
mysql> select rand();   
/ A3 S9 O: S" }& n- ~2 z/ F. R  -> 0.5925    : B0 ?" s1 i3 _4 m4 R
mysql> select rand(20);   
/ |* a  K1 j2 @% _) E. l! K  -> 0.1811   
# t5 d5 _$ g0 W, ~" O# ^6 ymysql> select rand(20);   
) G. ~) l0 d) F; P  -> 0.1811    / O5 l: d( R( m& i  T5 D4 s
mysql> select rand();    4 F& @$ `% t- S4 F$ {
  -> 0.2079   
0 v. [$ n) G3 K* @mysql> select rand();    9 P4 M3 S0 B4 c% V  u
  -> 0.7888   
$ q. B% J+ @) g1 k, r  a4 K
  K2 W- \; K/ c8 r8 n( A2 tdegrees(n)  . d' j; ~7 k1 k/ C: A) V3 N9 Q  x
把n从弧度变换为角度并返回  1 p: X( n: A* l4 P) P# x. k" [
mysql> select degrees(pi());    ' k9 O3 |' ?# g1 I
  -> 180.000000   
, v! K5 k# _1 Y3 y4 n$ Q
  [  z, L: ]' @radians(n)   U/ O# z8 E  f; x, `. [
把n从角度变换为弧度并返回   
; h9 d# P/ ^0 h$ ^" `mysql> select radians(90);   
2 [$ o2 U# H5 c; I  -> 1.570796    5 M5 b4 S, g: E5 s
& _* z$ N2 I) h1 D+ b4 m
truncate(n,d)    9 a1 a9 i* A5 Y5 e3 u
保留数字n的d位小数并返回  * p& @* S% S' F/ t
mysql> select truncate(1.223,1);   
! Z- W) r; X* o9 [; n  -> 1.2   
; ~+ \0 |, G! Y+ Dmysql> select truncate(1.999,1);   
  j" o( H+ _* ]* \  -> 1.9    8 Q! Q* R  k% V/ h! Y- b5 ?7 g
mysql> select truncate(1.999,0);    ! q8 m- |, W! T' ^
  -> 1    3 r- z' L. [' J1 n
2 t6 r4 X, a# V' A' T& ~
least(x,y,...)   
6 `; n$ K  n7 O2 H( Y返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  1 o# U, i! n# H' g
mysql> select least(2,0);    . W3 U* {# i, m2 ~1 v, N
  -> 0   
- X3 E; N2 h( Fmysql> select least(34.0,3.0,5.0,767.0);   
; s4 n& N6 P5 R: @9 U  -> 3.0   
5 G1 F! j9 |* N$ omysql> select least("b","a","c");    ) y) N5 ^. L% e2 j  k8 |  E! ^
  -> "a"    - G0 r- r$ B, S

5 A6 B. O5 Z, C( |7 Fgreatest(x,y,...)    1 V/ z# v) O- H$ k+ g
返回最大值(其余同least())  : |: w. G* }* D- k
mysql> select greatest(2,0);   
9 H8 ~5 N. q, ]/ p2 a4 u  -> 2   
. Y& O; A9 `. q- {mysql> select greatest(34.0,3.0,5.0,767.0);    5 Z; T# K% j5 @; c  `; Q  o
  -> 767.0    0 ^+ H+ L  K- o, W) N+ ]4 t; ?
mysql> select greatest("b","a","c");   
6 [$ K2 q- P% Q. `5 _7 T8 D  -> "c"     
/ W, N5 v% U& l0 Q1 G1 O* V& o
1 @; `$ X3 t& ^4 y( {( u3、时期时间函数 3 N% T" s+ r$ z( M/ p" d! i
dayofweek(date)    0 ~& S, h0 n" |
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
. G. l4 l* n" s, M' |1 umysql> select dayofweek('1998-02-03');    2 J  a2 {$ {, T- v& y6 }1 a
  -> 3    3 y+ s: |  O' ]+ Q0 ~5 B" M* B+ ^7 W
+ S) v" Q8 j8 z, M9 Y( ^+ b2 F: h
weekday(date)    / Y  z$ M$ V4 E2 Q1 j% t8 B
返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 ( i. }6 s/ z0 ~2 Z( \4 x+ @" g
  0 N$ \3 A$ U. z$ h
mysql> select weekday('1997-10-04 22:23:00');    2 S* Z: Y& M% `9 d7 W- l
  -> 5    ( w9 L( F2 q' |
mysql> select weekday('1997-11-05');   
" s# o& @$ i2 F  -> 2    - C8 X- u8 J; Q. p# n) y
! X; M2 H1 l, z, f. l
dayofmonth(date)    
" y2 S; m2 l3 L1 T+ Z( d+ n返回date是一月中的第几日(在1到31范围内)    ( l$ I; Y/ }0 b8 M
mysql> select dayofmonth('1998-02-03');    2 x" A2 C: i9 H5 X7 P- R8 m7 v
  -> 3   
6 H" E( o7 m: p  c
4 {! t* p. x5 @- u( Vdayofyear(date)   
) Y$ l. ?9 ]7 O6 H9 q返回date是一年中的第几日(在1到366范围内)   
& |* [& Q! T4 N+ c: v3 k1 p; ~mysql> select dayofyear('1998-02-03');    ( G1 o) \: N% Y8 Y+ q
  -> 34    / i( _; z- n* x2 J% ^

& g4 I( Y) K5 I- w: N9 Emonth(date)    ( \5 J3 @# o# Y0 Q' ?
返回date中的月份数值    9 n6 H& h0 P  v  Q6 \
mysql> select month('1998-02-03');    . t9 ]8 @. Z# r6 [2 J" o; g
  -> 2    " ^0 b9 V" ?  t& r
' S, N; _3 Y& j* H
dayname(date)   
" L2 d$ y. @% P+ U返回date是星期几(按英文名返回)  9 R) L- D+ ?5 p2 ]
mysql> select dayname("1998-02-05");   
' ~. I5 p1 E0 O* ~0 T2 ~  -> 'thursday'   
3 ^( j6 B* \; F8 M2 H# J9 L& e , i! ^7 X9 N7 G8 i
monthname(date)    ; e" A" [4 z# Y2 N
返回date是几月(按英文名返回)  
8 ~) R9 c; P0 [! L! {: Xmysql> select monthname("1998-02-05");   
2 p* }, r  a: H  -> 'february'    # O$ @3 o& X, D. W* W! e2 D
$ I/ B" e/ a0 n) H, D' z" V
quarter(date)   
( [/ K3 ^- r1 @返回date是一年的第几个季度    & s- |0 a* {' N9 ]' s1 p
mysql> select quarter('98-04-01');    & ]5 Z# W2 C. v) K# M! W4 Q
  -> 2   
: U4 X1 ^- Y# H& ] / Z1 E  @) y, z7 X- h
week(date,first)   . R; ^$ T. M) g
返回date是一年的第几周(first默认值0,first取值1表示周一是
* M% I5 I) x6 i( y周的开始,0从周日开始)  , l; F2 N9 `/ O) A9 U1 \% W* h
mysql> select week('1998-02-20');   
6 X  P! u2 h+ W4 Z  -> 7    6 S$ Z/ J' b8 F2 \$ u8 W4 ?/ V4 P
mysql> select week('1998-02-20',0);    ' i( V1 T+ D- _6 J# z% n1 p, m
  -> 7    ' v, B' g% X6 S' T* w# P4 b0 h
mysql> select week('1998-02-20',1);    7 N6 b! {9 s; U" H" u  j+ {
  -> 8   
0 `) q+ B' D1 W4 ~0 Q
0 M, g* c7 P; T. {/ B% t; jyear(date)    5 D' }( F9 t* N
返回date的年份(范围在1000到9999)    # s+ z! j* K5 x- K) W% H# d9 @4 H
mysql> select year('98-02-03');    0 w8 v! A& i( \# T
  -> 1998   
; g# {2 [6 P5 H2 X/ m + @( K9 j8 l/ k; p
hour(time)    / e# z' Z* t% @1 C
返回time的小时数(范围是0到23)   8 `' p/ d. B& X$ U. X7 R: ~
mysql> select hour('10:05:03');    ) y' r' A' X3 t5 z: g
  -> 10    / a' p; v. e3 k: @

3 a/ I8 F0 K9 Hminute(time)    5 B1 `% W2 A) h8 t. U
返回time的分钟数(范围是0到59)   
  u: {; t; R% k! K/ V0 h# L3 ]mysql> select minute('98-02-03 10:05:03');    $ ~1 ?: |6 a$ G) c& @) X. K
  -> 5   
. H4 e- m) x9 L7 \ 1 d, q8 F( t6 k4 B& ]$ B1 R
second(time)    ; _: m8 `# P# {" a, r5 u$ U" @$ C
返回time的秒数(范围是0到59)   ) t$ J* o; W( L: a+ i! y9 Y, @
mysql> select second('10:05:03');   
8 ^* v% t: F4 A  -> 3   
% c5 G+ d" W5 s* u% D / s$ S1 ?; A# P( o7 M
period_add(p,n)   
. {" h3 w& F5 U0 z增加n个月到时期p并返回(p的格式yymm或yyyymm)   
) [0 r% X( u' C$ k3 ~+ A5 Imysql> select period_add(9801,2);    ( Y2 o' a* y+ y9 x5 t/ M1 f, C
  -> 199803    9 p: O9 O5 j& G2 B* F; |% P. Z9 t
! Z0 h5 g& n0 h  J# N
period_diff(p1,p2)    0 T, S2 e! v- I5 o+ U, S! _9 X
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  : o/ r% N9 n3 {2 ]
mysql> select period_diff(9802,199703);    . u) m4 \& C. M3 k
  -> 11    " v4 L/ u6 C2 s, @

6 |2 T5 u9 ^" H1 w  q. _date_add(date,interval expr type)  % n$ I0 G0 ?! i. s6 Y% O2 j! W
date_sub(date,interval expr type)    & t# O# G8 @/ \1 k3 A' J
adddate(date,interval expr type)   
$ ]  G5 S* E$ |subdate(date,interval expr type)  
; u0 N- z7 p: v对日期时间进行加减法运算  
$ O  f) Z; z) n; J, u(adddate()和subdate()是date_add()和date_sub()的同义词,也
5 @- k* ?1 G) H可以用运算符+和-而不是函数  
6 a1 b/ e7 n& d) C/ Ydate是一个datetime或date值,expr对date进行加减法的一个表
  [/ A& l0 b& p+ n达式字符串type指明表达式expr应该如何被解释  ' S; b3 U/ g% Y6 S5 t2 Q
 [type值 含义 期望的expr格式]:  & O! ~, s; G4 `1 L( K
 second 秒 seconds    ' l+ z/ c1 F( F2 J* @- I3 R
 minute 分钟 minutes      }1 D$ T5 ~' I" N+ }( x5 D
 hour 时间 hours   
/ ]# d' r3 o2 Y; n0 R8 C day 天 days   
+ A2 m/ f" V6 l4 ?( `; Y) C month 月 months    ) T, h5 R1 [% ?# _! E+ A5 U
 year 年 years    " @1 Z2 u3 w) L# F; W, k
 minute_second 分钟和秒 "minutes:seconds"    9 r6 A* J- \, r
 hour_minute 小时和分钟 "hours:minutes"   
+ v. R1 F' u. V6 [, M' f5 F& [( P day_hour 天和小时 "days hours"    ' Z' b; E! l  N; l
 year_month 年和月 "years-months"   
) E# t$ J/ E) Y( _ hour_second 小时, 分钟, "hours:minutes:seconds"    7 V/ i/ n) \2 z( y6 Q( B+ N
 day_minute 天, 小时, 分钟 "days hours:minutes"   
3 h! q+ t, ^' a. J3 w3 L day_second 天, 小时, 分钟, 秒 "days
9 z$ b! k. [/ d1 s" w& g  ]hours:minutes:seconds"
! W9 L7 X7 N/ X. r2 } expr中允许任何标点做分隔符,如果所有是date值时结果是一个
2 A/ }$ ]! y4 \date值,否则结果是一个datetime值)  
: _- j5 j2 X# r' j& B 如果type关键词不完整,则mysql从右端取值,day_second因为缺: S  z$ M2 n6 B% w
少小时分钟等于minute_second)  
+ c' D# |  W- W" b: W# r* a) z  X2 Y 如果增加month、year_month或year,天数大于结果月份的最大天0 E- C5 w  ?2 W
数则使用最大天数)   
! m- Q0 r) W7 L+ B( amysql> select "1997-12-31 23:59:59" + interval 1 second;  
/ Q5 h* T$ P/ r5 I + [1 a# k& W6 R- v# B5 v: `
  -> 1998-01-01 00:00:00   
3 o9 z0 Q! N  G/ Lmysql> select interval 1 day + "1997-12-31";   
4 b/ O8 s0 {: o  -> 1998-01-01    8 P0 [/ l' Z5 r
mysql> select "1998-01-01" - interval 1 second;    1 T. E6 T/ Y) h2 Y
  -> 1997-12-31 23:59:59   
& E% ~0 R4 x% I6 F+ L6 ~9 j3 d! dmysql> select date_add("1997-12-31 23:59:59",interval 1- ?" h4 B. O0 u  q; [! w
second);   
4 l# c! q% D% r4 a  -> 1998-01-01 00:00:00   
. O8 R+ ~9 G. i! a' H7 }1 {/ Pmysql> select date_add("1997-12-31 23:59:59",interval 11 f% s: r% M" D  o4 \: ^3 j
day);    1 j7 c7 x' T- l
  -> 1998-01-01 23:59:59    " u* p7 ~8 z! b7 [+ j" }
mysql> select date_add("1997-12-31 23:59:59",interval! ]1 |* Z3 T3 d& g0 x. U
"1:1" minute_second);   
6 d6 D8 e8 |7 X( n+ y" F* K  -> 1998-01-01 00:01:00   
; P4 ?: U5 p) q6 r) umysql> select date_sub("1998-01-01 00:00:00",interval "1
' D1 f- D- Y7 X1:1:1" day_second);    ; o, I0 j% s6 B7 c4 ^) s- A
  -> 1997-12-30 22:58:59    3 |, W* T4 M& i3 u
mysql> select date_add("1998-01-01 00:00:00", interval "-1
! B5 n, n: d) k/ g10" day_hour);  * z8 j6 R5 G% ~! e
  -> 1997-12-30 14:00:00   
0 w& J/ w  g$ N& V0 p5 [mysql> select date_sub("1998-01-02", interval 31 day);   
& N! A9 {' T: u  -> 1997-12-02    ( |* z, v, t* _1 x8 @2 ~
mysql> select extract(year from "1999-07-02");    . w. U& ~0 Q+ q: k4 d
  -> 1999   
, C7 e* R) _9 gmysql> select extract(year_month from "1999-07-02
% B) u1 Z/ |* G& e5 E01:02:03");   
$ m3 |2 \9 g7 ]% P  -> 199907    - `  u9 ]2 A5 ~  J0 n. Z4 M
mysql> select extract(day_minute from "1999-07-02" F6 G! C) b. f. \1 H
01:02:03");    4 m; z' e, e0 a0 H+ K4 }
  -> 20102    $ c( w9 P/ |5 e" Y4 D
; C+ _! m4 ^% v4 j" b. H; K
to_days(date)    / |8 m% D/ A1 j: V1 |; b: x
返回日期date是西元0年至今多少天(不计算1582年以前)  
  j$ z1 m/ r6 Z  ~3 Mmysql> select to_days(950501);    : S2 ^) D0 G% s, C7 O7 A, r
  -> 728779    ; J. f5 l  w5 J  Z8 Q
mysql> select to_days('1997-10-07');   
; O# z! S; w3 t/ {  q' `, F% ~; t  -> 729669    ! J# S" U7 ]2 j
2 |& b- k+ W1 R% o% `( h5 }
from_days(n)   
2 S( X! m2 @0 @' w 给出西元0年至今多少天返回date值(不计算1582年以前)   
' i( [/ r; i' V( M8 a' B, umysql> select from_days(729669);    " k! a4 c. {+ s; D7 S/ R
  -> '1997-10-07'    $ Q) s$ c: V! T& `0 T' |

! G" _. K0 X! d5 Odate_format(date,format)    8 L2 d+ b# c* n: S2 C& q
 根据format字符串格式化date值  , o2 R) |" i" s$ ?
 (在format字符串中可用标志符:    q% u. r1 n+ T+ b9 v) r
 %m 月名字(january……december)   
/ h. E5 \4 n8 J0 I  P2 ~6 _ %w 星期名字(sunday……saturday)   
" H3 p! |, d/ O. g  |+ a1 g %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    ; Y/ C9 F# _# a$ c  X+ _
 %y 年, 数字, 4 位   
. B; m$ O3 n8 q3 ~& x) j3 Q %y 年, 数字, 2 位   
( Q  O7 k+ \6 n, G" z" ?5 \ %a 缩写的星期名字(sun……sat)    : E2 M8 V  }. K9 u! f
 %d 月份中的天数, 数字(00……31)    1 k  W* X; f/ f: e0 @# o
 %e 月份中的天数, 数字(0……31)   
! u; p- ~% D. ^9 P %m 月, 数字(01……12)    9 h4 s) @6 V3 d) w0 i
 %c 月, 数字(1……12)   
+ ?% Z% E& C: `$ v! I/ [ %b 缩写的月份名字(jan……dec)      V5 V0 ~6 T0 W9 E7 Z% Y- s& [- M
 %j 一年中的天数(001……366)   
  m. `8 K1 D- e$ T# s/ F8 ^1 F %h 小时(00……23)    : o$ R2 n: S0 u
 %k 小时(0……23)   
! N: V) R% l0 m2 e( s %h 小时(01……12)   
3 \  m$ M0 p9 X6 ^ %i 小时(01……12)   
! J' C" J& e7 r %l 小时(1……12)   
4 v2 [# w6 G! z" `* f %i 分钟, 数字(00……59)   
: e0 `: S# m+ w+ o: K0 N& ` %r 时间,12 小时(hh:mm:ss [ap]m)   
" t4 h3 p8 v2 r. x3 u' P) E0 u) q %t 时间,24 小时(hh:mm:ss)    - R  D8 O" j$ l7 V2 s% q
 %s 秒(00……59)    . p! c; h& Q, T9 F! ~! r) s( C" {2 C
 %s 秒(00……59)    / f6 h0 i8 H; V0 C2 D5 |
 %p am或pm   
( w3 L, y( N2 ^8 ` %w 一个星期中的天数(0=sunday ……6=saturday )   
+ `. A& Q: }; ^- j %u 星期(0……52), 这里星期天是星期的第一天    ) T! q4 a0 |3 ?1 F
 %u 星期(0……52), 这里星期一是星期的第一天    - d' R* s- _; t
 %% 字符% )  
, a5 v0 P/ W0 k9 ?( n. {" \4 Hmysql> select date_format('1997-10-04 22:23:00','%w %m %
7 ]; R+ q& q, R% `- B2 H7 @+ Ty');   
+ u7 g; \3 J4 A1 V2 ^8 g) q$ w5 }$ H  -> 'saturday october 1997'   
( A! I9 R/ g( E/ Z4 e6 _  n9 ~mysql> select date_format('1997-10-04 22:23:00','%h:%i:%: `+ J) E' x7 b4 F/ V% j* P* i
s');    $ \# U/ S. n9 _' {
  -> '22:23:00'    ' W3 K# F3 n$ ]5 ~/ A6 Y* M
mysql> select date_format('1997-10-04 22:23:00','%d %y %a+ ?1 K; r- I( b2 {. Z- ?
%d %m %b %j');    ; J- u, g1 n$ ^4 \9 U
  -> '4th 97 sat 04 10 oct 277'   
$ p! ]& M  c9 y0 T6 N; emysql> select date_format('1997-10-04 22:23:00','%h %k %i  O1 S/ Z5 @9 e9 ]3 p1 ]+ t8 a
%r %t %s %w');    / ~$ h8 L3 ]: n( D
  -> '22 22 10 10:23:00 pm 22:23:00 00 6'    - W2 z% J' d0 [; l5 v" K" f

1 N  Q* {0 f9 z  y9 Dtime_format(time,format)  
! c& C, [# Y& V4 Y  w: J; L) F4 O 和date_format()类似,但time_format只处理小时、分钟和秒(其, @0 p* t9 Q" d# Y4 Q
余符号产生一个null值或0)  2 a3 I  R" L9 p0 `

: H3 s. m* l) B+ m- Y/ hcurdate()     
: O- E: y% d# d0 j' @4 z2 R. H& Ycurrent_date()  7 T% g* Z2 C7 m# q* X
 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所0 R; y' e+ u/ t8 k
处上下文是字符串或数字)    " a" e/ y7 I% B7 s5 h6 V
mysql> select curdate();    4 F, Z. E8 y9 f6 \( V8 Z
  -> '1997-12-15'   
$ i- K* A8 h5 ~6 x! k; lmysql> select curdate() + 0;    % }1 N* m, [3 v- B5 p" s4 Q2 v& w( ^3 L
  -> 19971215    4 \+ V. H% i' K5 K, z

& I. r) w4 A: t, W- Q: ^7 p3 zcurtime()    # [5 `) g: B: ], B5 I* s+ N) C
current_time()  6 T: P3 p! c9 l2 S3 F0 _! F
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
- g1 c  g# P6 D下文是字符串或数字)      0 N# t1 L3 }2 q6 T* _$ T
mysql> select curtime();    ' G$ x  Q7 L5 ~  ?
  -> '23:50:26'   
# T0 ]8 c8 F9 e4 Umysql> select curtime() + 0;   
5 b5 A" N- a0 y, T! }  -> 235026    . }  e/ G- e$ N4 [

2 z* c8 s7 ]- A0 \7 ~now()    2 O. P% Y3 c3 J! M' G! Z1 q4 _
sysdate()    , R: N6 o! D- x6 b9 [
current_timestamp()  3 b" b2 y% H, P+ }% O* e% C
 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期* ?+ e& r/ G) e' ]$ {
时间(根据返回值所处上下文是字符串或数字)     ( Q2 ~$ Z+ u: s  ?) \5 t
mysql> select now();   
2 h5 j, o/ A6 y2 W: Q$ O1 I  -> '1997-12-15 23:50:26'    8 `2 b$ g8 n, P' p4 B* Z
mysql> select now() + 0;   
( [$ }9 B! |" e. o2 X  -> 19971215235026   
8 h& h- Y9 D  [! B , a3 @4 T8 o( R, i
unix_timestamp()   
! X, {8 S1 ^3 g5 G8 uunix_timestamp(date)   
  P8 U! q% c8 _, F返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒9 i" X6 ~& A4 b& [( k4 n
数,date默认值为当前时间)  
3 H' @0 X1 `& C  l: ]mysql> select unix_timestamp();   
5 P0 h+ r1 a0 y4 c8 p2 ^  -> 882226357    3 l3 @. p+ ^# i& }
mysql> select unix_timestamp('1997-10-04 22:23:00');    , W7 Z! o' A' j: R# t$ w, J) R/ B! x
  -> 875996580    7 T& ?" y& z# D$ z3 i2 N$ l) U
( v' }& d1 Q. b0 j7 h3 \+ E
from_unixtime(unix_timestamp)   
1 `( u4 t. i0 u: X( w9 }2 g( R, L! S以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的: z7 C. V" D6 j# z
值(根据返回值所处上下文是字符串或数字)     9 p, C/ U" R: o" t" a& K! }
mysql> select from_unixtime(875996580);   
& V; T. ~/ J: U& [# ?  -> '1997-10-04 22:23:00'   
- H) c- e7 z4 Q6 _/ T; qmysql> select from_unixtime(875996580) + 0;    1 Y8 w/ Z6 {) [( e
  -> 19971004222300    9 A2 R5 Z1 x, F" `

4 ?+ \3 v, L/ {5 A3 `2 Q# O' zfrom_unixtime(unix_timestamp,format)    
6 \2 d. D0 h  J$ P以format字符串格式返回时间戳的值  . N5 X1 W6 Q$ _$ T8 L& ]6 V2 M; M
mysql> select from_unixtime(unix_timestamp(),'%y %d %m %" u2 O2 p( u' Q/ I" a
h:%i:%s %x');   
( T9 z: ^) h& d7 `" |' d. j( p1 W, d  -> '1997 23rd december 03:43:30 x'    6 c  l1 j4 J! X* J) p; r

$ g' @# Q% _, ]' U0 Ksec_to_time(seconds)   
+ _. J* ]" F; P+ _% \以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     * Y- O# U- `& U  H, Y$ }8 a/ q, L* ?
mysql> select sec_to_time(2378);   
0 h6 b0 z+ K- l; G  h% ?  -> '00:39:38'    , h. b, b- o  w' a0 ?+ O3 n
mysql> select sec_to_time(2378) + 0;    0 a- I; t' ?2 x! c  l) M4 G% \
  -> 3938   
+ K9 B& I8 Q& a 6 R+ T1 F, S9 m1 ?
time_to_sec(time)    + h, S" v/ l% j- j  }6 L+ @) {
返回time值有多少秒    & `+ j0 c1 P8 F7 o
mysql> select time_to_sec('22:23:00');    ( M  a! O, A6 k/ z; B- x: X" L
  -> 80580      |; X! u' W( _& c* O
mysql> select time_to_sec('00:39:38');   
! Z/ ?4 Q- @- l0 Q. M  _  -> 2378 - A6 g& @3 m$ S4 w
3 l. i+ B7 q$ l: n- h! l+ C# L
转换函数
+ t4 ^, }4 J) V; b6 `- B5 a% W9 ucast
" V$ K. X. F, R( P& G; s用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]
; C+ |5 G2 `, D4 ?* T% V实例:select cast(a as unsigned) as b from cardserver where order by b desc;
; U) I2 e  C' p; ^convert:! j# D6 I& u% X' B' y3 ~1 t
用法:convert(字段,数据类型)# n1 y- b# U6 N5 O$ G2 D: v* U% L
实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

) p% u+ P/ T' P$ [, z5 @, S
回复

使用道具 举报

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

本版积分规则

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