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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数
! {$ F9 y2 m7 ^# C. _ascii(str)   
7 l, w8 t2 V' Z9 h9 @: N返回字符串str的第一个字符的ascii值(str是空串时返回0)  0 L) L$ J+ V3 u/ k+ }& M
mysql> select ascii('2');  
. D2 m9 F$ G& M# s' I# t8 X2 T  -> 50  , H0 C$ s8 i3 b% Z
mysql> select ascii(2);  
7 f' M9 h. {! d5 l# E6 C9 z1 ~0 ^3 T  -> 50  ; U0 f! d5 D" [( i' z1 }- D
mysql> select ascii('dete');  1 g" p8 @+ H. n! s
  -> 100

& F* f# q% M% q4 L0 Aord(str)   
2 K9 f& i0 k7 T: }" y  ]如果字符串str句首是单字节返回与ascii()函数返回的相同值。, k/ b* K3 Z1 o

9 Z# J( o5 f* F) q如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  , g9 Q7 R+ {. K4 {& X+ u( ?/ x
mysql> select ord('2');  
3 C6 g% u& z9 E$ b/ l  -> 50  " z% L1 h5 I* }
   ) o6 ?; w3 H9 o: r; d. \
conv(n,from_base,to_base)   
& p" \0 D) K2 |1 h对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  / @0 g$ f5 J, v: r
mysql> select conv("a",16,2);  
4 U. m3 P' [* r; f5 p  -> '1010' 7 J8 X, i( t7 A" ?8 ~8 _4 W
mysql> select conv("6e",18,8);  ' r- f0 {3 Q, R* `" p  z
  -> '172' $ T# D! u# d: g1 M# \) @
mysql> select conv(-17,10,-18);  
; {9 K- ~- `* h' {( H% K3 k  -> '-h' 2 ?5 K+ n' f' A; f3 T
mysql> select conv(10+"10"+'10'+0xa,10,10);  
! O( c8 v' }: E! _. v  -> '40'
- n6 `# B) \7 \* j2 {   
  _4 H- y- H9 \' T' s; P( Gbin(n)   
/ L! A3 u6 r& w9 Y' Z把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))    {0 M$ b4 y6 X
mysql> select bin(12);  
) d2 V$ c* E1 e: ^, g8 v$ d  -> '1100'
" F# b, x$ s, H3 c- r/ k
% [, T  ^0 s3 C( Z$ {* C2 ]oct(n)   $ E! @' `6 ]$ i8 [; h
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
: ]5 ~" }3 o+ Gmysql> select oct(12);  5 B/ i! ~0 F8 z; D2 I8 s
  -> '14'
" [" V: T! P# o# V* U% L   
) j- k- j9 L8 \hex(n)   
+ ]4 W5 q# h, K* S  p把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  : b9 N$ s! b6 ~
mysql> select hex(255);  
) k# I, P7 x4 H  t8 ]2 n/ Z. i  -> 'ff'
+ f* h; \& j$ M2 w. `   
0 M+ K$ n1 J( gchar(n,...)   1 C8 h" L* ]: T- a( {- C( l
返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   / w' K3 z; _, o( L
mysql> select char(77,121,83,81,'76');  
. o& ~( ]. O' y* S+ y+ {  -> 'mysql' ! v. H3 Q8 v2 D0 j6 q
mysql> select char(77,77.3,'77.3');  
6 T5 u; k% {/ C4 W. C0 ]1 G  -> 'mmm'
0 _$ v+ ]2 t( D6 X( T; A( W$ M   
, j5 @# C% ^2 _2 R' j1 E' j9 a, Cconcat(str1,str2,...)   - v/ x2 p! ^; T3 G$ O6 n2 A8 t2 [4 @
把参数连成一个长字符串并返回(任何参数是null时返回null)  , H* L+ w0 }8 h, N% f) ~8 D4 U0 V
mysql> select concat('my', 's', 'ql');  
' F4 h! c4 T" v1 D& Z  -> 'mysql' + g$ G1 y% j' ^" D9 _/ |1 e* j
mysql> select concat('my', null, 'ql');  
' [9 s: f& K* _. x  -> null
; f$ x% u3 _& |, V5 x2 h+ C7 X/ N- @mysql> select concat(14.3);  
7 Z. K. W; v* T% D* n5 T3 z5 S3 F  -> '14.3' ! V; t9 w' r  Z8 X  ]$ ]) o

/ `: B2 w2 F3 Slength(str)   
" V" p5 ^% |3 m" s' D* g4 Ioctet_length(str)  5 @( ~1 _1 v" }  ~; i$ R
char_length(str)  # ?) m8 K1 S, p0 S# A& W" Q
character_length(str)  
: h+ C- D4 e1 i2 P8 t返回字符串str的长度(对于多字节字符char_length仅计算一次)* L- ?7 |$ l& Y
mysql> select length('text');  # H6 E  J' ?; ^6 b3 W" i$ A, _
  -> 4  * b. G2 Q, W, J/ Y
mysql> select octet_length('text');  7 ]. d% J/ a1 ^1 Z1 Y$ l
  -> 4  
0 h5 _# @/ {( _ + R$ L+ U/ q  X' [4 S
locate(substr,str)   3 D# u" F5 t% ?$ A: Y' n
position(substr in str)   
1 ?- q, L& c4 E8 y+ p8 K! o返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
2 Y5 T/ l+ u& e1 y4 Rmysql> select locate('bar', 'foobarbar');  
; \  L) e7 l' _  -> 4  # s' k, B$ O9 F6 f8 P* B
mysql> select locate('xbar', 'foobar');  
% _- H  b* z1 b  -> 0  0 r, ]7 l& q( X- v1 F
    5 @/ c5 j0 c/ A& |
locate(substr,str,pos) 7 R0 \# Y( L3 f
返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
  y  @' f& P- \5 ]+ Lmysql> select locate('bar', 'foobarbar',5);  
7 z4 l- d. z+ \, t3 O$ L  -> 7  
! g9 e+ v. e# i3 z9 N & t/ H" g% V1 P8 X  O! \
instr(str,substr)  
) n  ~3 W0 v$ ?返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  8 Q7 n  n0 s6 w/ v+ C5 n8 x
mysql> select instr('foobarbar', 'bar');  
) }7 d' C2 {, t  B0 w  -> 4  , p1 y7 Q% J7 J3 C: q% k  ]4 u
mysql> select instr('xbar', 'foobar');  # J- ]( j- S, U- E" @% E0 E
  -> 0   
& h1 G" S9 j  @+ H, l4 I' c * ]3 H  R3 R% ^: Z
lpad(str,len,padstr)   
& J9 J. Y% ^6 o( j1 r, l7 p用字符串padstr填补str左端直到字串长度为len并返回  
! r2 ]$ l4 h) X; Amysql> select lpad('hi',4,'??');  
, P6 `/ u" k5 ?2 h  -> '??hi'
6 `, Y' e8 c$ \" q; n   
; S+ f+ U+ t5 u3 X' K0 X* @rpad(str,len,padstr)   / U! s+ d- I: G% F! K. U" T
用字符串padstr填补str右端直到字串长度为len并返回  
* w# e0 F: H+ N9 u7 M# [mysql> select rpad('hi',5,'?');  * c$ v) O/ X4 i, ^0 f- N# M; b
  -> 'hi???'
& `9 @: [1 h' A0 p! g4 s, @. N6 r
: L3 N7 |; ]# W$ a7 l6 s; Jleft(str,len)   
! i% b+ \+ o6 @# ~: a返回字符串str的左端len个字符  
* [: Z- b2 J( r6 P' _mysql> select left('foobarbar', 5);  
) f& Y% ]1 i' I  -> 'fooba' 1 u& E4 \9 L. n+ t% C. `& J5 i: W
! i$ P2 ^- b1 }; f+ ^2 v8 p% s# k, s9 T
right(str,len)   
2 |( K3 _- q/ h' I3 _- [返回字符串str的右端len个字符   ( N$ g3 d) Z. ~" ~) t
mysql> select right('foobarbar', 4);  6 ^/ g. a* h0 m9 b8 V1 u5 Q
  -> 'rbar'
* v* Z: x7 Y' {* d) _# e4 k5 n0 M% h
/ _2 M( ~/ s7 A/ `. S. ]1 asubstring(str,pos,len)   
1 W* l1 Q3 f  N, fsubstring(str from pos for len)   
: B; k! h2 F+ p+ @6 U4 pmid(str,pos,len)   0 l1 u; V, W) P3 x3 y4 I
返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
% Y, _: L3 s/ {6 ~  -> 'ratica'
( m; I$ [7 Q8 U5 u  z. l4 |$ E & i" h6 Z5 t2 X! K  J% H
substring(str,pos)   ( u6 y' P4 z4 g+ a6 [3 I
substring(str from pos)   
% k' {) E7 A- S* e- @返回字符串str的位置pos起的一个子串  
3 B# j) b  o: j/ r& v4 P) `mysql> select substring('quadratically',5);  
/ T) C5 L3 |# ]& F. n/ ^6 r  -> 'ratically'
  w1 n. R' ^! s; I! v1 i) |mysql> select substring('foobarbar' from 4);  
9 s2 S2 _# P* G  -> 'barbar'
2 u7 W, t  \0 e6 M9 `$ z$ F, Q! u 8 F- m1 l& P% J0 W/ K& T
substring_index(str,delim,count)   
9 l' {, A$ i. n0 H) I返回从字符串str的第count个出现的分隔符delim之后的子串; A0 [) z7 U6 `( I7 Q; g7 |
(count为正数时返回左端,否则返回右端子串)  # U) R- X6 L6 J+ {" d  i
mysql> select substring_index('www.mysql.com', '.', 2);  
6 a( |( o) T0 A. o0 h  -> 'www.mysql'
, F# ^6 [+ `# U2 jmysql> select substring_index('www.mysql.com', '.', -2);  , g+ K" d" }7 O: R. t% ^
  -> 'mysql.com' 9 \0 V/ ]* P7 ^+ V
& L) r( Z  F4 h& Z% g8 ~
ltrim(str)   / A; a7 A) l1 f& F: ~1 Y; C7 g
返回删除了左空格的字符串str  
" \3 f4 D  M/ |+ [  [. T- |5 Q  zmysql> select ltrim('  barbar');  
: @! S% D; b0 `9 M. L  -> 'barbar'
( u* `5 }1 i3 h
( C2 j- J( }/ L: L5 R" mrtrim(str)   4 N6 i; u5 q0 P" j3 @1 E3 q& A
返回删除了右空格的字符串str  
; i4 V/ G1 H6 l4 Smysql> select rtrim('barbar   ');  2 h" q2 Y9 H9 a, w2 ^, l
  -> 'barbar' + p1 }' c- Q5 E* e3 }
. l, P8 s2 y9 U: b  E! w
trim([[both | leading | trailing] [remstr] from] str)  
3 P" Q9 X/ Z. ?7 u; b' b) ~返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  % H) A' |) @2 j. J8 d3 L
mysql> select trim('  bar   ');  
0 c$ q' `/ {) e9 s) y! `1 i  -> 'bar' ' N* V( G( y- ^* m) m
mysql> select trim(leading 'x' from 'xxxbarxxx');  
, Z/ a& B0 S% e. D  q  -> 'barxxx' 7 h6 R/ I1 d7 A/ y( x6 Y( q
mysql> select trim(both 'x' from 'xxxbarxxx');  8 ]# I0 e( n6 n7 l# p- Z
  -> 'bar'
3 W+ O! A0 J( W2 e; c9 U! k0 x* cmysql> select trim(trailing 'xyz' from 'barxxyz');  
: Y6 C  C! a1 [. M" Q$ a7 U: N  -> 'barx'
; [; {& h9 B( u/ K8 ]. }+ _ 8 h. S3 ]/ a, W  S/ s
soundex(str)   
' m4 ~! \' ^7 m, y9 }8 D3 m返回str的一个同音字符串(听起来“大致相同”字符串有相同的
; i5 r; @% n% w5 j同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  & ^: _$ B' J, B) d3 u2 f
mysql> select soundex('hello');    ?; s* B' z4 d! g$ o1 T
  -> 'h400'
! V* U' ^- ^8 \# a3 Jmysql> select soundex('quadratically');  2 C, o% |: w1 g% r3 ]# l
  -> 'q36324'
' C0 `) s6 ^1 D- o( T) X! I   3 J9 _9 G9 _9 u, Q+ J# B1 M5 Y
space(n)   ! s6 E" G8 m* I, M$ M1 z6 ?1 I
返回由n个空格字符组成的一个字符串  
, R/ U& Q+ F7 j3 ~6 G2 Smysql> select space(6);  , e) ]( Q. S  s! i. K" e0 Z
  -> '      '
9 @5 c# A- K! N" P$ u( R0 q   ' I. ~% C/ q7 z3 x" K5 y
replace(str,from_str,to_str)   ; k- d7 }1 `- r
用字符串to_str替换字符串str中的子串from_str并返回  " e: A; A) a. Y6 ?* q" C7 w) j
mysql> select replace('www.mysql.com', 'w', 'ww');  
. t$ }( _3 T' q) G% M) X; m  -> 'wwwwww.mysql.com'
) ]7 ]9 T7 j: y, Z ( `* I" o1 X5 Z0 l  m5 u7 J$ u
repeat(str,count)  
1 ]  I+ f( z1 u* l  M; B返回由count个字符串str连成的一个字符串(任何参数为null时# T! z) h1 v4 _  A! P8 m
返回null,count<=0时返回一个空字符串)  4 G; j! r- }2 D  f" N
mysql> select repeat('mysql', 3);  . |" \0 f! u7 ~% _7 V5 I
  -> 'mysqlmysqlmysql'
2 l$ J& o3 u: k1 \5 i* k# \2 S   # H) y0 G4 a# t
reverse(str)   
' C1 Y; o" U7 m/ U颠倒字符串str的字符顺序并返回  - Z0 k8 h0 {' S( s; c: {
mysql> select reverse('abc');  
- B' F' e; t' A  U  -> 'cba' " `/ P- y2 @6 B+ x5 F
% m' {& v- }% H) A* v1 C3 [
insert(str,pos,len,newstr)   1 d, _9 K0 T: y- O  _) F; D, ~
把字符串str由位置pos起len个字符长的子串替换为字符串
  P( @5 ~4 U& [newstr并返回  9 S/ a- z; d  J) k/ S8 O5 F& w
mysql> select insert('quadratic', 3, 4, 'what');  $ o" B, R. x2 p) t- B
  -> 'quwhattic'
" }- A3 S* W. D4 i
# ?# W; R6 j" ielt(n,str1,str2,str3,...)   * S" a5 @: N$ d8 ^4 T9 I* x4 n
返回第n个字符串(n小于1或大于参数个数返回null)  3 O  G. t& u) f, L) ^* J0 S6 s9 O
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  
* {+ B# i( ]) J  -> 'ej'
1 g  h( s+ u- v. ~mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  8 x1 D; l& x- ~* s
  -> 'foo' 9 Y0 @: o7 R* d2 \) G4 q' F  c" W
2 D' j) I* G5 @5 _& n( [
field(str,str1,str2,str3,...)   9 x8 L. K" H4 A
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
2 I' ~( D# L7 e5 ]mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
0 _3 p+ D3 p0 |'foo');  ! Y# n0 O' `2 h$ C
  -> 2  
8 \) ]! [. g. |mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
" t8 x3 G1 M, \1 n- I' a# `'foo');  0 l* o* [2 c! k: E
  -> 0  
! b: m) w( |% ?/ c  ]
# N; o) B, y; k" B8 `. |  |find_in_set(str,strlist)   
5 I9 T. u% v, Y5 O, _; a6 \2 h4 W返回str在字符串集strlist中的序号(任何参数是null则返回" ]% n- ^: ~, m+ w8 f  q2 @7 \
null,如果str没找到返回0,参数1包含","时工作异常)  + [7 P7 a& `( s% \8 Q+ ^& ?
mysql> select find_in_set('b','a,b,c,d');  
4 ?4 n+ z; f  p! T3 |  -> 2  , T8 h4 B8 I4 K$ S( C0 d4 R4 J
   : s  D1 e, z0 ?9 G8 l
make_set(bits,str1,str2,...)  
6 [1 x' G& w0 Z( R把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
7 X! A; A1 d# ?! N) U位置的字串选入字串集并返回(null串不添加到结果中)  
, @; l2 E% I. W: A6 {" dmysql> select make_set(1,'a','b','c');  6 @1 P1 y8 `* i
  -> 'a' + S: Z7 l! L- j/ z9 |" H
mysql> select make_set(1 | 4,'hello','nice','world');  
% [0 y& @& P2 o' ]4 D, L  -> 'hello,world'
. o$ f# n2 n, t5 X  }9 K' ?/ Wmysql> select make_set(0,'a','b','c');  2 r' U. N2 [3 A& W* |5 h
  -> '' " v  e! `- {  |, e+ }! Z

+ }: S6 T) H4 r9 |export_set(bits,on,off,[separator,[number_of_bits]])   5 D$ A1 C3 e% q  ~1 O
按bits排列字符串集,只有当位等于1时插入字串on,否则插入, N. V& Q) [( K6 n1 h
off(separator默认值",",number_of_bits参数使用时长度不足补08 n3 k( K9 m. D0 ^2 ^
而过长截断)   8 Z; \# L' j1 q& N
mysql> select export_set(5,'y','n',',',4)  
1 [9 {3 P/ L& ]* N4 y  -> y,n,y,n   
( z* Y! S7 P6 s! k( ]6 W& M- T ' c0 ?" F: e* D, ]; @
lcase(str)  7 X4 A* O; K) J4 ]. l, s  U
lower(str)   2 c) {. x" z9 ~2 d3 S% E  E9 [
返回小写的字符串str  
  v0 e# V. K& h0 Amysql> select lcase('quadratically');  ) @  {& ]+ b) i3 p
  -> 'quadratically' 1 H. D! d, u  j7 J) G3 X
   
6 R3 L+ N( L* O9 l& H# h2 kucase(str)   & d+ ?% M: H7 ]' Y0 G  E
upper(str)  
' C( r  ^7 K2 p. ^5 ?( l' X返回大写的字符串str  1 K( H/ \3 ]5 H1 @: g
mysql> select ucase('quadratically');  # q5 F8 x9 X& R4 I
  -> 'quadratically' 8 ]* V5 Z$ N- M/ E$ n
* P% y( G6 @# R; @" m2 N9 m8 V
load_file(file_name)   " i$ O3 x& B3 h  q: x
读入文件并且作为一个字符串返回文件内容(文件无法找到,路径$ U% a, p# B$ Y4 U% M: u$ Z. I
不完整,没有权限,长度大于max_allowed_packet会返回null)  3 T: e% v7 Q4 f0 [
mysql> update table_name set blob_column=load_file* u  L* ^3 S$ l! T
("/tmp/picture") where id=1;  
+ t# z& k+ N( i! a2 h3 _
7 {1 Z5 P; r1 L" g1 [, K2、数学函数
5 C3 n3 K1 L; \6 q+ V2 R% K$ Fabs(n) / N1 S' Y, O1 l' y1 A
返回n的绝对值  
% y8 h/ Z& z. v+ ?% H1 B$ Rmysql> select abs(2);    4 B' D% U+ s* N- y+ p
  -> 2   
; ]" v* Z% u8 M! omysql> select abs(-32);    : ]4 j6 m) C( w) j6 A) f
  -> 32    2 e7 |9 ]- g% S) C% {. Y  n% z( k# ?
   $ m* V/ H3 w: e9 S& A" C
sign(n)  3 F# [. g+ D* P) N2 R
返回参数的符号(为-1、0或1)  1 B& h4 G& P- d) @9 T6 w$ G
mysql> select sign(-32);    , l$ O& T1 b9 @8 u: E" r  h
  -> -1   
" z6 b: I% z( W" @2 Rmysql> select sign(0);   
4 x! l1 m; V& X  X, @# S  -> 0   
9 l* r' n* N$ _# V  Z/ Gmysql> select sign(234);   
! @" B# G6 b6 s& L- i4 {  -> 1    % k) n* g' R: s& q

  ^: v) Q  e% }6 Qmod(n,m)    0 I% v# z- o/ F: F4 o  g9 l
取模运算,返回n被m除的余数(同%操作符)   
- N+ D1 _, p+ G; {9 j7 J  bmysql> select mod(234, 10);    : e$ d5 D. O3 U1 X8 V' m% A
  -> 4   
' Z; |7 H" B, }% wmysql> select 234 % 10;    ! c) @( t4 W+ U% e; m+ E& I  L
  -> 4   
8 \9 [: i. d+ y9 i, Y0 Bmysql> select mod(29,9);    . z  d+ z( P' i3 _% b. P' y" F
  -> 2   
' R# ]5 n6 {* g8 T+ l* ^( V' V * o1 A. k7 D( Y' ^6 T
floor(n)  9 t. g2 U* S) A0 l  |: ^) S
返回不大于n的最大整数值  
3 n5 ?2 B- J- Y* N: C2 D6 i/ umysql> select floor(1.23);   
; m$ a0 W# x9 g  -> 1   
3 {0 S" `4 Y& N( rmysql> select floor(-1.23);   
  Q6 m& l1 `! E! S' k6 ~: ?" q  -> -2   
( D3 p: ~( L6 [2 H 1 b! i5 D: ^2 E& l8 n
ceiling(n)  
$ `, O+ d; f' k0 [6 Q1 m0 W: w! F返回不小于n的最小整数值  ! B+ Q6 y6 e$ P9 |0 @' i
mysql> select ceiling(1.23);   
, S* ?: ^& C( G6 h9 ~$ P  -> 2    ; `; r1 I0 r0 ?* Y
mysql> select ceiling(-1.23);    ; l  A& V3 @& [% p/ T' l
  -> -1   
( f, V; ^( l1 S: J3 L7 k
' \$ ?4 ?5 f! i/ }( ~! G) [; D2 bround(n,d)  
2 V5 W  Q6 O% V- C3 x6 b1 \返回n的四舍五入值,保留d位小数(d的默认值为0)  
! }: e0 N6 o6 G! v: j$ jmysql> select round(-1.23);   
& d5 ]/ I( D- H" u" ]! s6 [  -> -1   
: m9 }2 b7 b: u( @% A5 i! N4 E' emysql> select round(-1.58);   
8 F5 R4 Q) z. T0 e. `# t  -> -2    * E! i+ A3 z6 G0 e9 a# }2 K1 P
mysql> select round(1.58);   
# a1 ^5 {$ ~' Q4 S3 n: X2 T  -> 2    2 Z, q7 Q6 X! L3 |
mysql> select round(1.298, 1);   
2 U; A/ }: M5 H  -> 1.3    # b3 ]6 d  q3 \7 W) @+ \, F" d; l
mysql> select round(1.298, 0);   
" n! C4 v2 t- d: g8 D$ z- P0 x  -> 1   
* {5 e8 V, l/ }$ d( _
& u( A9 L  g& C0 q. O+ W& m/ o5 Hexp(n)  : {  k; g  \: p" _7 a% A1 Q' y
返回值e的n次方(自然对数的底)  
. b2 l8 D/ ?8 t& f) d/ V/ g+ Pmysql> select exp(2);   
7 C( ]5 n0 Z: {% a' L. H( [  -> 7.389056    " K# Y( X6 W, f+ i% m. ?0 o
mysql> select exp(-2);    * w9 }8 m2 X& V
  -> 0.135335    4 b# D: p/ [6 v( @/ F5 D

6 E3 r7 M1 n: P2 H0 F& Ulog(n)  
5 v/ k* @6 U: H' R4 O4 Z返回n的自然对数  / a  v8 h; U- K7 h8 l
mysql> select log(2);    / O4 J4 E2 J/ U
  -> 0.693147   
, Y  B  B6 M6 @mysql> select log(-2);    & l) C1 D+ n0 p: I, i2 o2 ^; Q
  -> null   
1 i* h3 F3 U* G4 C4 E' P( d
! s) m9 K( P7 F7 J0 a; K4 Y; ]1 tlog10(n)  
. |3 V; T5 b: s4 w返回n以10为底的对数  2 v' S, W  g8 B! V
mysql> select log10(2);   
( D# @/ s, u% U+ }6 y  c% O  -> 0.301030    5 w, H* ]( v' o5 }6 U& @8 [! r
mysql> select log10(100);   
& S* ^4 I! I7 n4 g3 q( g; h0 J  -> 2.000000      c; |$ e1 A6 V3 }+ ?' i/ b
mysql> select log10(-100);    ) O0 r( b! D% \8 q
  -> null   
, F% h4 ]' K) i! b, X
/ S' |7 s  G0 R5 k" epow(x,y)   
2 h- P$ _9 Z' ^5 m' b& b/ ^3 ^; [power(x,y)    & ]* X# n1 L# @* V) v
 返回值x的y次幂  
5 ?6 n8 m9 N* L3 H% K2 hmysql> select pow(2,2);   
9 q5 G( [, i, J+ F  -> 4.000000   
. P2 W; _( J% F& a( \8 pmysql> select pow(2,-2);    # |) ?- `, J* u/ W( Z% W0 V% P
  -> 0.250000  
, `( C4 K! z6 g8 `5 |  N! @, \! h. U
sqrt(n)  9 D( v! V# q$ {% O9 W
 返回非负数n的平方根  
% [+ F$ S# ?+ \. D2 j# Umysql> select sqrt(4);    1 j# W) p6 L$ j7 E: Q/ F
  -> 2.000000   
; D" P7 s) h6 {/ q/ zmysql> select sqrt(20);   
4 p) @1 o6 O' M4 A8 w" n  -> 4.472136    : ]% h  z  d1 j9 ^  i0 [

: O* g; f& @! a# m. U7 spi()    / F- F1 O9 A$ j# f5 }
 返回圆周率   ; W1 t# i7 m* B! L4 @. Q' |1 O
mysql> select pi();    4 n! i, h; x% x0 T6 f& q
  -> 3.141593    & e# d" Y. r* ~6 U& I; b' m5 S
$ B) ?" ~5 R; v
cos(n)  
$ H9 l$ |9 ?9 ^ 返回n的余弦值  6 U8 Q; m& f! m  V! @
mysql> select cos(pi());  5 o' N3 j' {! R
  -> -1.000000   
7 z; H$ m  [4 i& z% d * T% K* }( @9 O% E, J0 }+ {, ^
sin(n)  , Z! ~8 Y4 E" r
 返回n的正弦值   
: _- n2 \! s( pmysql> select sin(pi());   
; a; d; b+ A$ E2 k# f- O; u7 E* D  -> 0.000000   
- ]) y+ j* C1 N7 B- Y% m0 n ) c! V7 R' U' ?) \1 `5 _( A
tan(n)  / _5 i+ S9 r8 v% A: l+ \' s
返回n的正切值  & l8 G# Z) a5 ?+ \
mysql> select tan(pi()+1);    0 G6 d7 R$ G8 s5 q$ J' [* Q( V$ ?* `
  -> 1.557408    8 I# I# k: M! L6 r6 P' K  T  ?
: Y# I" v2 @$ f& F% Q2 _. u! t
acos(n)  
' ?/ f& v* r& w! M/ O 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  
! B. r, Z4 ^0 N7 ?; `& C- Amysql> select acos(1);    - d$ x- r$ S: d: E/ c6 W
  -> 0.000000   
! @: ?) [( E, imysql> select acos(1.0001);    $ o# Z/ }. }* |7 ~$ @! n
  -> null   
9 j, e: i2 ^5 c. I$ K/ U. ymysql> select acos(0);   
: G, `* u4 x/ R4 z8 U& R$ {  -> 1.570796   
& f5 d0 P% V! F) B
+ R/ S1 Z5 O) lasin(n)  
1 A6 @: Q8 l( j5 X3 g1 U. P返回n反正弦值  
2 u  B& S4 x5 g1 @. y8 E7 xmysql> select asin(0.2);   
: w* b. t! X  r  -> 0.201358   
- V9 m* V5 Y( V; N; \( z8 m# Nmysql> select asin('foo');   
1 ^3 ?+ m/ b) U) a- W3 I  -> 0.000000   
8 A3 N" ]! o/ s4 [& L 2 ~+ l7 @  A  ~7 L0 s+ x7 B& n
atan(n)  : q- L6 F" g- a# ^7 N
返回n的反正切值  
) L. D# j# m$ j4 e. Q% Pmysql> select atan(2);    + q2 T( Z7 {2 i' t# H
  -> 1.107149   
2 }, l! r7 h: y! F- ^mysql> select atan(-2);    7 t+ G; S& n; l& T
  -> -1.107149   
% l, z' C- c: Latan2(x,y)   
3 h$ n, T; h0 Z: G+ o 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  1 [# t, J8 Q+ i
mysql> select atan(-2,2);    1 J+ H! c0 [9 `
  -> -0.785398   
) b( r( _/ k7 F- ~3 H* X: N. Wmysql> select atan(pi(),0);    ( M* v. l  [: f, l$ s) {
  -> 1.570796   
' b) m" O( d% K8 j  ^$ r: a
& c/ Q9 J; R  w5 Q) w# C& x3 `9 dcot(n)  4 u, I: y* R5 o* Z
返回x的余切  - V0 F: F9 R9 H- W  S% ~: v$ Q/ O
mysql> select cot(12);   
: Q  ~6 f6 ?1 T# \& o0 v  -> -1.57267341   
7 Q' j, i- [; ?; u' N0 `; @mysql> select cot(0);   
' x- z! M& @- ~3 ~8 I, B5 `- Y  -> null    0 n9 b; x3 D  F; t; i

- F( w0 I8 e9 i" {# k$ @+ Jrand()  ' o2 P! q, D' I  R0 U: r# r
rand(n)    - h) z2 c6 t- d- d$ ^
返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
* T0 I0 T* r. o5 m9 j+ {; v2 M* C 6 ^# C$ R, p1 o/ ^6 v% p
mysql> select rand();    9 W% |& v3 {+ @- H6 N  d
  -> 0.5925   
) U, e( e3 ~% x, Lmysql> select rand(20);    / @* e8 D' A, A; i
  -> 0.1811    . T5 k/ c, E2 R+ \- U3 E* p# r
mysql> select rand(20);    7 P! C& \1 }! F2 \
  -> 0.1811   
7 N) x0 f5 G9 F. Pmysql> select rand();   
3 L6 X5 a6 @4 W  -> 0.2079   
: T5 h+ |5 Y# f0 Z/ r4 nmysql> select rand();   
. U6 o, l8 v6 i0 Q0 J, d  -> 0.7888    7 U* F0 h! G% S* s' C  u

) D! i; K" E' ~% B7 e4 s! cdegrees(n)  7 j/ b/ ?4 C2 H- X. G
把n从弧度变换为角度并返回  / l+ e2 t) r! B* O. ?3 b- _1 \
mysql> select degrees(pi());   
4 e( M  i, u% G' ?( Y: k% f  -> 180.000000    % W  _; ], V4 F9 |) K  V
$ C) k2 R) m' a) v  R$ g
radians(n) 6 g. ]6 e7 Q  r% \! A7 ]
把n从角度变换为弧度并返回   
4 i, \0 d# u5 q  q3 E- umysql> select radians(90);    , f5 [- k$ a) I) o
  -> 1.570796    " n4 C/ W# h" N7 C
. E, n6 C% _& W) Y9 _* P
truncate(n,d)      `, W; z$ J2 W' p! K
保留数字n的d位小数并返回  
) c/ ]$ ~5 U; r/ v! f$ Dmysql> select truncate(1.223,1);   
+ Y" X7 O3 k, _  l6 X* o* `9 q  -> 1.2   
5 ~4 G2 M) ~4 d7 amysql> select truncate(1.999,1);   
9 K7 W& O8 E' x2 l! h  -> 1.9    # I% @& Q! w+ p! Q- o
mysql> select truncate(1.999,0);   
/ |! E; N0 h+ j8 X4 \  -> 1   
" ]* l  J: \+ b" z* f: {# _: a
9 ~- F2 l+ P$ Z: z1 V7 \least(x,y,...)   
8 v  V* q0 ~$ L0 C返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
7 a8 P" B1 F2 e% j* Pmysql> select least(2,0);    3 e: d: D  S+ B' u' k5 Y
  -> 0   
( d* r, P3 H( p4 @* m/ m8 a# Fmysql> select least(34.0,3.0,5.0,767.0);   
) \" Z$ q5 h" [! Z- h! n( O  c: W  -> 3.0   
$ d* l& e3 d- P, K' ^5 Lmysql> select least("b","a","c");    4 L7 ?0 @- [- |4 t1 S$ `
  -> "a"    5 C2 D( |* O& x- L0 j2 C

* W7 G; ~- g2 d! ]2 L% X0 Egreatest(x,y,...)   
1 {+ P& `; \9 C- t- E返回最大值(其余同least())  3 N6 @& ^; }) H- e1 n* _3 ]3 Y- A
mysql> select greatest(2,0);   
0 k. n9 {# Z) Y& i  -> 2   
% l1 x+ H1 ^3 ]& U" I( Hmysql> select greatest(34.0,3.0,5.0,767.0);    5 s. o. s) \1 N/ Z' I' Q* R+ V
  -> 767.0    " A+ `: w) u( y+ _( x8 U
mysql> select greatest("b","a","c");    " R/ E  U. z( B: b7 c
  -> "c"     : z2 F$ z& |( G4 G5 \
3 W# c! f$ D+ r# v' L4 {2 T
3、时期时间函数
. r5 Y" d  n1 zdayofweek(date)   
. n! j5 k$ s$ r/ ~返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  : p$ K6 C# v( V, }' n
mysql> select dayofweek('1998-02-03');    ' l" N. c& e/ D8 a* y; p1 |
  -> 3   
% n, I8 ]. F+ W % b4 H9 Q+ N4 M7 v- B7 k) V
weekday(date)   
& d0 i9 _" i5 ^5 j' q* ?返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
; ~  M. A. C4 f( _' X/ M4 V0 W0 H  
+ v1 w6 e0 E! I+ l. Y9 G+ Lmysql> select weekday('1997-10-04 22:23:00');    $ K5 [: A2 E- P4 V7 e7 X
  -> 5    : X( I/ V2 u$ \2 e9 N% d
mysql> select weekday('1997-11-05');   
& u; [; f4 c- S' X+ ?6 }  -> 2   
  R3 f. }6 l% g( L
! i; n) |: C& V6 n% _- xdayofmonth(date)    4 w6 \1 B% H, g0 `$ G
返回date是一月中的第几日(在1到31范围内)    / k% v+ G, o5 L) O/ z. k7 T% X
mysql> select dayofmonth('1998-02-03');    ! m, M" ]+ _% Y, G3 X! U+ }
  -> 3    / B. C& G3 d" c

% w& s; P* w: b0 k3 [! Q* ^dayofyear(date)    - {/ I: t* A' ?+ \! S
返回date是一年中的第几日(在1到366范围内)    , ]' E! _0 A+ G$ k8 @+ t
mysql> select dayofyear('1998-02-03');   
8 L$ a; \- {8 R, V, X1 t5 G  -> 34    9 k. t% |* w2 `
% _' r4 \" p9 w
month(date)   
9 \1 J+ P9 f* D返回date中的月份数值    ! V2 ^% m- ~1 T4 R( c& ?2 T, B9 E
mysql> select month('1998-02-03');    2 T) y( S7 E1 @8 d0 i
  -> 2   
; z# w+ p% c+ s# X; M3 s5 } 9 t" w* c( k2 r3 T! h& O1 g
dayname(date)   
3 e' m6 ?9 b: Z4 g) s, V3 {9 M" [* ?返回date是星期几(按英文名返回)  ! P. w$ n7 j" X# C! K
mysql> select dayname("1998-02-05");   
- a  {( ^2 @9 M. P' u% B2 X/ j% y7 d' I. Y6 I  -> 'thursday'   
1 i+ y& d  f( Y7 q8 G % [  t6 m* \& ~$ U
monthname(date)    : @' z, h* ]2 B- n
返回date是几月(按英文名返回)  
) c; ^: S6 H& o% }0 p% @mysql> select monthname("1998-02-05");    " Q/ v; q9 H8 i  v% v& |  a
  -> 'february'   
2 X# _# u9 t+ ~7 r! W$ w
* b' s$ R. f8 }% P4 s! wquarter(date)   
2 D6 n5 v. m* C9 P$ i返回date是一年的第几个季度   
) e  Z6 x2 f8 k2 bmysql> select quarter('98-04-01');   
" g* V/ N) g" I# t5 ~# y( X% L1 E  -> 2    + `$ I0 Z+ v( n0 ?+ a, \3 S' Y

3 a- G% k& N3 U$ x% R6 ^week(date,first)   & f9 v* u* A& x) h- k+ d* V" |
返回date是一年的第几周(first默认值0,first取值1表示周一是* r) \* w, ^! T* }! ?& e: L
周的开始,0从周日开始)  
; p' J, Q1 n- v( X' `: {1 Xmysql> select week('1998-02-20');    ' I7 C4 P/ G) F+ G: Q
  -> 7    9 w3 H7 G" c' j5 _( H) o# Y
mysql> select week('1998-02-20',0);    & n; C9 h  ]+ M- ]. [) b
  -> 7   
6 s% Y* X5 O2 Y. D& mmysql> select week('1998-02-20',1);   
. \: j; ^6 M/ O* T. z/ L! ?  -> 8   
5 a! b* a5 I9 F5 H9 I' L- } % x+ f0 P1 }! O9 |; o& P2 u
year(date)   
) }8 h. h' B$ a$ q5 z1 \3 L6 k5 E4 p返回date的年份(范围在1000到9999)   
( m1 E" v1 ^% X; W/ \mysql> select year('98-02-03');    % B, ^3 r+ G( J2 v0 G. I7 G$ F4 g6 G
  -> 1998   
7 s" G, l0 u* N% u& V % r+ j# c/ l4 t3 Q. c
hour(time)    / U9 ^: j% r; j
返回time的小时数(范围是0到23)   
% o. N  H7 C& O- w9 Kmysql> select hour('10:05:03');    # N) C, s# _1 t7 |* z
  -> 10   
$ A6 q3 D1 Y) B4 R* [8 Q, G + r0 Q% V+ U5 J
minute(time)    ( }1 k5 t+ j, M) T& n
返回time的分钟数(范围是0到59)   
/ Q* d- W3 N, I1 A/ }mysql> select minute('98-02-03 10:05:03');   
, u7 l2 X) y! Y) U! M6 z  -> 5    , x5 t9 K$ c& {5 f# o8 \/ o

, J% A( m2 L! S: s8 W. k, `  R) W0 osecond(time)    
: K4 c3 \0 i* s# m返回time的秒数(范围是0到59)   & {( G; c- ^: j( C6 M" H
mysql> select second('10:05:03');    8 B  y/ z0 ^' Q
  -> 3    3 a6 D3 d; Q% K, i  W
9 @' |' A1 C8 }0 w% ?
period_add(p,n)    7 f, E) n( x. y3 B# S- |# v$ [
增加n个月到时期p并返回(p的格式yymm或yyyymm)   
, l6 T/ r) ]+ H6 Wmysql> select period_add(9801,2);    # H0 m# D6 X1 D6 P, }
  -> 199803   
' h4 G9 D0 ^" v: o: V; B, ^! V 7 |, b/ V/ g6 i0 W1 t/ b7 T2 F" h0 {
period_diff(p1,p2)    9 F1 J- V9 ?9 f7 [, G# r3 f+ k
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  * Z* Q* K4 m4 S" F7 ]
mysql> select period_diff(9802,199703);   
* e5 @3 U8 T! t/ z- E  -> 11   
1 [" }6 Z* u# G' O$ [7 b8 z 7 d" E( ~1 j/ \
date_add(date,interval expr type)  0 j, j/ t6 n' ]5 i
date_sub(date,interval expr type)    6 b7 i& b9 |3 D5 T
adddate(date,interval expr type)    3 q  `' i- j. A# @9 J/ U( g6 t4 Y# E6 ?4 y
subdate(date,interval expr type)  ! f+ ?( S: k' Y: }/ \, X7 I
对日期时间进行加减法运算  4 ^+ j' \) T4 \4 Y
(adddate()和subdate()是date_add()和date_sub()的同义词,也( E8 x- f6 d4 d( L* @/ q
可以用运算符+和-而不是函数  
5 {2 p; p6 D+ }8 @9 d, jdate是一个datetime或date值,expr对date进行加减法的一个表
* ?" s' c8 t. n3 y达式字符串type指明表达式expr应该如何被解释  % r+ X/ q! @; {) H1 }: ^# X
 [type值 含义 期望的expr格式]:  ) l; H' _3 e+ U3 I' \) m( U( E
 second 秒 seconds    3 A3 d( P9 b5 R- n4 ]2 }4 a
 minute 分钟 minutes   
" b; p, J* K: i, y+ x& ]% P hour 时间 hours    / O5 l& |+ X& q
 day 天 days    4 {3 T9 n! q. j( A7 a
 month 月 months   
) x9 U! x4 Y% \9 d! r4 w  h year 年 years    8 I/ N1 I! _/ L: |
 minute_second 分钟和秒 "minutes:seconds"    1 l7 N: _) q; n( j' N
 hour_minute 小时和分钟 "hours:minutes"    ! P% ^  }3 e6 q7 v/ N
 day_hour 天和小时 "days hours"    - Y* _% m! j+ H
 year_month 年和月 "years-months"   
5 b* b; O6 D3 a% s6 f2 B hour_second 小时, 分钟, "hours:minutes:seconds"   
8 b/ K8 i, f( o, F, d day_minute 天, 小时, 分钟 "days hours:minutes"    $ ]6 T# e/ p! `- W- Z
 day_second 天, 小时, 分钟, 秒 "days, ?2 s  B" T; C+ }' G" L4 G1 O
hours:minutes:seconds" ; Z4 K& i5 }$ o  _. z5 q
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个
6 ^7 g2 _2 s5 edate值,否则结果是一个datetime值)  
6 j) S1 |/ D  N. u 如果type关键词不完整,则mysql从右端取值,day_second因为缺
2 G: U' A8 G( }# \少小时分钟等于minute_second)  ( b( I# y" }5 H! k
 如果增加month、year_month或year,天数大于结果月份的最大天
6 ?; F2 v) L5 c- q数则使用最大天数)    9 I7 U$ Y6 v9 F% }3 Y( T, K: N, \
mysql> select "1997-12-31 23:59:59" + interval 1 second;  
- x* _! O6 J/ H" g
4 j$ e! e" H2 z! \' F- e3 s  -> 1998-01-01 00:00:00   
! G9 Y4 L- b" ?2 o% ~mysql> select interval 1 day + "1997-12-31";    6 P' X' ~2 l' }; i* t7 }
  -> 1998-01-01   
: a, q- q+ u( |* @mysql> select "1998-01-01" - interval 1 second;    1 _. |/ e# D% J+ }
  -> 1997-12-31 23:59:59   
, e4 [2 |+ B+ p7 e, a% B& p9 @- Imysql> select date_add("1997-12-31 23:59:59",interval 15 B; b/ f+ `/ A7 k6 M1 T
second);    ) }) x& J2 P. c9 z- @2 x0 ]8 B0 R; X% g
  -> 1998-01-01 00:00:00    " \9 ^% p" k3 e  Y; r. A8 i- Y" }
mysql> select date_add("1997-12-31 23:59:59",interval 11 I$ z: _7 E5 h; ^4 e
day);    $ j) `5 u% ?7 ^" x1 W0 q! F
  -> 1998-01-01 23:59:59    . [$ H8 D- S& f% }
mysql> select date_add("1997-12-31 23:59:59",interval& i2 T! I( L* j
"1:1" minute_second);   
1 K9 G8 w7 n% i- A  -> 1998-01-01 00:01:00    6 x/ u% _2 F& `) I& J6 l8 T
mysql> select date_sub("1998-01-01 00:00:00",interval "1
8 V( E1 \$ R% X1:1:1" day_second);    ( g! y5 i$ b; p5 ?
  -> 1997-12-30 22:58:59   
1 C$ }  u0 T2 Amysql> select date_add("1998-01-01 00:00:00", interval "-1
7 {4 v/ o9 q+ f+ Q10" day_hour);  
3 h  Q% U7 f. t  -> 1997-12-30 14:00:00    3 h# G1 P5 n& A
mysql> select date_sub("1998-01-02", interval 31 day);   
1 D, G9 l9 u0 t/ i2 M( k9 ]0 ~; o  -> 1997-12-02   
3 ?% J# o! s6 P  v& tmysql> select extract(year from "1999-07-02");    4 Z% v* O) ?& m% U& k% z& T8 u) X
  -> 1999    ' e* a. S7 n" L5 d
mysql> select extract(year_month from "1999-07-02
# }1 g  T+ D/ H: ?% r: x01:02:03");    0 ?0 j; ], ?' x/ Y8 c& r
  -> 199907    ( m" P0 Y& f; B) u3 ?' T1 U$ u
mysql> select extract(day_minute from "1999-07-021 `5 w# Y; F7 @- Q, l# T+ }
01:02:03");    9 G7 U; h  L  N) ^
  -> 20102    , |+ M/ g% M5 r1 [1 c' _
7 y$ E, Z" c- |1 P% i
to_days(date)   
! p, r/ F4 N% e4 u返回日期date是西元0年至今多少天(不计算1582年以前)  , A/ S) O. S0 Y% F8 x4 r7 L
mysql> select to_days(950501);    $ Y- l9 K9 ?& V* E. I6 P
  -> 728779   
# t2 Z) ^; \# R/ m& i; J/ q' W+ f; Emysql> select to_days('1997-10-07');   
4 q# h) W- P& F( o0 n4 ]  -> 729669   
6 D' p2 n3 r, t/ J : I9 A- o+ S1 t6 O. U1 j! T3 T0 g
from_days(n)    & Q; y1 I+ Y; r% x
 给出西元0年至今多少天返回date值(不计算1582年以前)   5 \. Z0 K) n0 u) c
mysql> select from_days(729669);   
. V6 R" t- {, H: A  -> '1997-10-07'   
$ Q2 m" j6 O8 Y6 v# } 3 t% N! g" W: @" j
date_format(date,format)    4 f4 x1 a3 h# y" R& _# o, ~+ `
 根据format字符串格式化date值  
: |5 g& J# m+ U9 `- e (在format字符串中可用标志符:  
) {1 S' f- E7 a3 `7 f, I) U8 e %m 月名字(january……december)    % a7 o7 W3 I8 |6 q
 %w 星期名字(sunday……saturday)   
7 ^3 O) s. P. A; F  I2 F; ] %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)   
6 b2 z8 B$ H, I: e: f$ o# w. ` %y 年, 数字, 4 位    4 E* g1 H! Q% o/ E
 %y 年, 数字, 2 位    ! Y4 }; y' m0 q6 a5 z' u' S/ O0 p
 %a 缩写的星期名字(sun……sat)    . {3 o0 `9 I, S0 l2 G5 w2 I
 %d 月份中的天数, 数字(00……31)   
( {9 x& E4 i1 N, \9 t7 k/ i$ ?4 e %e 月份中的天数, 数字(0……31)   
2 `) J2 y% h9 q %m 月, 数字(01……12)    , ?% i* T" e9 ]1 W  p
 %c 月, 数字(1……12)    $ R7 Q9 w# ~/ h: R* r% t0 q1 @* b
 %b 缩写的月份名字(jan……dec)    : d- H3 C+ X4 N/ q/ O+ O
 %j 一年中的天数(001……366)    5 R2 r1 F1 j$ ~* T$ p1 c; z
 %h 小时(00……23)   
0 R, s1 L# s3 i+ U6 y: D. G1 h5 E %k 小时(0……23)    : D5 Y8 g6 c3 C6 i9 b- \
 %h 小时(01……12)   
1 Z# {3 O% Z( r* y( c2 \4 n %i 小时(01……12)   
' C7 d6 C' e# t1 J %l 小时(1……12)    0 E: \! C# ^1 K  s; a
 %i 分钟, 数字(00……59)    * |& x: r& n- C8 t3 X2 m
 %r 时间,12 小时(hh:mm:ss [ap]m)   
: m+ @' u; B0 ~/ b %t 时间,24 小时(hh:mm:ss)   
  ^' R- ~2 ?5 i( {% X( x8 h %s 秒(00……59)   
$ @1 p5 a( A) {- b7 h: J: F %s 秒(00……59)    + w! \" t: r' k
 %p am或pm   
4 [0 }% t7 R5 T' E! ~ %w 一个星期中的天数(0=sunday ……6=saturday )    6 o( d! C/ a! Z. A  I
 %u 星期(0……52), 这里星期天是星期的第一天   
  `- Z1 b# }) q" Y8 ^" v# M %u 星期(0……52), 这里星期一是星期的第一天    5 J! M/ m8 c1 B6 d; r3 p
 %% 字符% )  $ x8 w& ]  H9 c2 @
mysql> select date_format('1997-10-04 22:23:00','%w %m %2 d+ G7 a" z& G
y');   
; @( _8 a* E2 H. W, k: N: M7 u  -> 'saturday october 1997'   
5 q: o+ {' ]9 g% z% T( d8 `mysql> select date_format('1997-10-04 22:23:00','%h:%i:%
! T3 E% ?$ j/ i/ u& Js');   
' H( }9 Q) I9 W# \# H, p& k  -> '22:23:00'   
& Y$ e1 A% x9 J4 p' Imysql> select date_format('1997-10-04 22:23:00','%d %y %a9 Q; k5 Z2 {+ n! p* z
%d %m %b %j');   
; j) e6 c# q2 T* M9 s  -> '4th 97 sat 04 10 oct 277'   
4 D4 O% T% `9 D" zmysql> select date_format('1997-10-04 22:23:00','%h %k %i
) t5 T. ~5 `# l1 k' H6 [; y%r %t %s %w');    3 M  Q7 C& K: ~1 R  _( M
  -> '22 22 10 10:23:00 pm 22:23:00 00 6'    & g/ a$ |5 A/ ]0 S5 K5 _

: Z9 {& |/ I* Xtime_format(time,format)  
  a0 z5 z1 P5 o1 P 和date_format()类似,但time_format只处理小时、分钟和秒(其2 g' Y$ G; Q7 o8 ~7 g- I, o) d
余符号产生一个null值或0)  
6 R- u1 I$ T) U/ z3 O ' }3 {, B* L2 s5 S+ Q' D
curdate()     9 t2 k! c9 ~- m) E
current_date()  
; M: ]/ e& |/ f0 ~6 |3 A 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
: `) A4 j5 g+ y  v- B. Q处上下文是字符串或数字)   
; I/ ?. G2 L. K2 c2 {mysql> select curdate();   
/ `& Y% M& _, L2 Z9 d+ x  -> '1997-12-15'   
, f& w/ k; x4 |1 O8 n$ m  ~mysql> select curdate() + 0;   
2 g% t3 p( d, B. K; B  -> 19971215   
# l4 |$ z, u8 o- K. e7 T   Y  \1 `4 R0 n5 O! m0 p
curtime()   
$ H. R, q( Y5 q" b( gcurrent_time()  " }0 [4 g0 g8 y: g& x
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上9 l5 B; T/ _: g4 m. A3 A8 T
下文是字符串或数字)      
% l: K5 M: q8 s) q, {: W# l# Xmysql> select curtime();   
+ K" D' c8 o; v) \. ?  -> '23:50:26'   
3 ]- f8 i" m' s) o; {mysql> select curtime() + 0;   
" I+ w% A  b# m, K% z  -> 235026    : Z/ f: r5 H4 K+ d) y6 }  W: T

8 y! C9 ]4 |2 Fnow()    
4 v! R' G5 Q/ U+ z9 Esysdate()    
# x" \/ {5 q  G# y/ Q$ Xcurrent_timestamp()  
$ G/ b# }! m) e+ ^) y2 ~3 m 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
1 w/ J4 U$ @7 r$ D: a时间(根据返回值所处上下文是字符串或数字)     
# J) Z; A, e5 r$ ^6 O) Y; wmysql> select now();    3 C( I( A* t2 u- w
  -> '1997-12-15 23:50:26'    9 N% P$ k+ s& D% P' U8 ]! E" L
mysql> select now() + 0;   
$ q, v% D/ l' d, n! D; \  -> 19971215235026   
6 |& _7 [. U( `2 t / j8 a' f7 D$ W  ?
unix_timestamp()    % m9 b; H5 ^6 @% d
unix_timestamp(date)    * I2 D) u2 M2 v! A  b& X
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
0 I0 w% A" J2 h. P: I6 O3 }数,date默认值为当前时间)  1 y6 R7 N1 V5 N$ ?9 z( d2 ^
mysql> select unix_timestamp();   
; m1 h0 ^6 m" \' k, C' O  -> 882226357   
5 i( Z) J+ R; J! Q/ d5 qmysql> select unix_timestamp('1997-10-04 22:23:00');    ) k& k( u# z3 W( ]4 ]) U# z
  -> 875996580   
7 h" T, e$ L8 g5 o
( m+ X/ J# c+ G# T# w4 B6 T: rfrom_unixtime(unix_timestamp)    1 B" U7 r* ~; a5 q
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的/ b3 d% }: w0 a3 g! v
值(根据返回值所处上下文是字符串或数字)     
2 n5 g) M3 \: P" ]- ?mysql> select from_unixtime(875996580);   
  W+ M+ G" q8 U% _9 }  -> '1997-10-04 22:23:00'   
- x& Y5 x" r* e) ]& q- R" x7 }" Rmysql> select from_unixtime(875996580) + 0;    9 G% X$ J6 L1 d2 Z. \
  -> 19971004222300   
3 v7 Y5 Q1 X1 Z* J! b 0 x! n1 w* A8 g- h) S. B( T( `5 M8 o
from_unixtime(unix_timestamp,format)    
" q. v) E6 U% y, N2 f3 T以format字符串格式返回时间戳的值  
* o+ ^0 |8 T) y2 Bmysql> select from_unixtime(unix_timestamp(),'%y %d %m %) C! s6 K/ ~3 A' x
h:%i:%s %x');   
4 \. C& \2 e# R$ Z0 r  -> '1997 23rd december 03:43:30 x'    . h; g0 f2 ~: a/ D/ ?4 u1 i. C5 X3 u! b0 Y
/ L' u- I6 u& d* X. S2 {
sec_to_time(seconds)   
. }& i! B9 v# `) r4 {) U9 A+ Z以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
8 p. S% t5 f8 fmysql> select sec_to_time(2378);    , }& N0 r7 i9 c" v$ X$ S
  -> '00:39:38'   
. `1 i# }- c3 E2 nmysql> select sec_to_time(2378) + 0;   
$ p8 c. o+ \* s) M" \$ Z3 U# |  -> 3938    7 C/ b$ {* U$ d" l" T
$ U8 I. O+ @$ D5 e. w
time_to_sec(time)    + Z7 Y; C, ^" B$ X8 u. M0 L
返回time值有多少秒    0 ]" ~( {  V8 u* D. q6 I* i
mysql> select time_to_sec('22:23:00');    7 R% V3 I( s: H! c. R% I: K( }! j
  -> 80580    8 r; X/ k2 z0 k$ u' N0 l! h
mysql> select time_to_sec('00:39:38');   
( P* }) g0 O' E( n7 }: A  -> 2378
8 ^, x- @6 g  g0 ^. |+ n: j$ f" U
* `5 [+ |+ {& d; j& I7 ^转换函数9 Q# ~9 b4 z0 O9 C4 R, ~: \" |( [$ ?
cast8 b( q% G! T; p
用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]4 a7 w% H' G! |
实例:select cast(a as unsigned) as b from cardserver where order by b desc;2 c. k8 d$ I/ L
convert:
' P1 G2 q9 ~* s. x) d& c用法:convert(字段,数据类型)( @' B4 B9 |! y& ~# j/ f8 t2 ~- r
实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
* ^& N( r8 I) p* `
回复

使用道具 举报

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

本版积分规则

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