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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
1、字符串函数5 l9 E' p6 z/ f2 M
ascii(str)   3 H. t& W3 p& ]5 y* V0 U* a" L6 k
返回字符串str的第一个字符的ascii值(str是空串时返回0)  
( ^; d2 Z8 _1 W  \3 n3 jmysql> select ascii('2');  
: \. A1 q; _1 ]1 b  -> 50  , {- O. G# w/ [
mysql> select ascii(2);  $ c! H; j; o4 S' E+ N7 l1 {0 l# O
  -> 50  
6 y3 W5 g" h; I( y: ]3 [mysql> select ascii('dete');  
+ D7 [0 s, h+ m, w( k- G  -> 100

. Q! m4 k) d4 \) V9 }ord(str)   4 X9 R8 q3 d$ d) |3 S4 H. _7 L( M0 V
如果字符串str句首是单字节返回与ascii()函数返回的相同值。  `9 ?, k7 B* k

0 F( |2 T( J" M- ]6 s如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]    @! b! ~% W9 r/ z, S% z& I' B6 a7 F
mysql> select ord('2');  * c) R  s* ?6 f! i/ I
  -> 50  * v% v) e, u6 |" S4 G4 C6 D( l
   
! d2 x' A, w5 G' e. @) N/ R% oconv(n,from_base,to_base)   
2 ^" s; d% b; w# b% r  ^对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)    E) F+ g9 b& W7 W
mysql> select conv("a",16,2);  
& d+ X2 B1 p2 i8 V  -> '1010' ' O. x! x* R1 }, g
mysql> select conv("6e",18,8);  
* k% {; U' k2 N# ]# `) s3 k  -> '172' : ]8 p9 ~2 J  U; M/ R
mysql> select conv(-17,10,-18);  
# j, i: I( e3 o  t, h  -> '-h'
0 z; G1 ~7 J4 N( ]* u; x- x2 Tmysql> select conv(10+"10"+'10'+0xa,10,10);  
+ e4 }5 [8 A0 E& A& Y  -> '40' ! L/ ?/ q% I5 \* [8 F" h
   0 E7 v0 M$ I5 `3 c4 Y* f5 a' s
bin(n)   
0 g6 ]* a, B6 Q/ G8 Y! l把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
9 b" g  G( x2 fmysql> select bin(12);  5 W: P5 |7 w/ H6 d* u0 w6 o
  -> '1100' 1 v: A0 R* F7 B

2 |% J/ S# Y1 h4 goct(n)   
1 {2 f. {5 v0 \1 x- _( G把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  3 R, @- c  E) b' ^6 G: |% W, u7 l5 q
mysql> select oct(12);  7 I! a" D" \+ o, g# ]
  -> '14' / j  H3 J* \# ^: v% H; \) K
   7 _4 h4 x6 u6 `9 n, o5 o
hex(n)   8 k. G2 o" S7 E6 Y2 Q5 \
把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  
+ {1 t2 R" ?. p9 ^mysql> select hex(255);  
) O% t, S. u$ F, t- k4 {  -> 'ff'
  ]# L6 ^6 @5 a7 \$ p/ ]. {   
" h) g. y+ P' A( Q. Q" E9 @char(n,...)   
. r0 G# }0 t2 {+ ?/ p  X4 l$ ?返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   
+ v1 W& P& V! Jmysql> select char(77,121,83,81,'76');  0 D9 V! x( L: e9 l: ^
  -> 'mysql'   ?8 o! H, v$ v
mysql> select char(77,77.3,'77.3');  / l9 a: c6 |! f) Z9 V6 x) B* Q
  -> 'mmm'
6 c" U6 f0 M1 t  f, |0 V   
% s& S! k; Y0 dconcat(str1,str2,...)   ) n, n& \/ i4 Y/ B% h1 e3 I! H
把参数连成一个长字符串并返回(任何参数是null时返回null)  
* t! q  L% q8 [$ b  C4 I7 {mysql> select concat('my', 's', 'ql');  
- T0 T( h) l7 {5 }" i6 v8 T  -> 'mysql' ' N* _6 q+ e# w. B. a
mysql> select concat('my', null, 'ql');  
: e" `4 U$ Y& r  -> null ! c0 l4 ]4 f6 q0 s* J
mysql> select concat(14.3);  / |% {+ D* A4 n, w4 M, t
  -> '14.3'
/ L+ {  x4 n9 W% z% Z
3 h( m, Z4 a+ P* h% q7 V$ Flength(str)   2 `# [+ h9 L2 t) l' q4 v5 T
octet_length(str)  
( l& ~/ L! G9 p8 J$ nchar_length(str)  6 X% e" M$ E7 ~! A
character_length(str)  
  M+ J4 D  z# h, }7 t! P返回字符串str的长度(对于多字节字符char_length仅计算一次)3 [. e6 Z# [: M8 E" {- z/ m' t) |
mysql> select length('text');  % z% d5 p! ?% m2 v9 J
  -> 4  ! m$ I. F% o4 g6 y: R/ y- p
mysql> select octet_length('text');  $ T  z! G! q. f( l, E
  -> 4  
; E7 O1 F/ m9 Y8 d
, N9 [8 D( b. q9 d* G& \1 P1 H3 R) Plocate(substr,str)   
$ R8 F  F/ N0 u* Cposition(substr in str)   
) Q3 ]: Z7 A6 ^返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
0 n6 `4 o+ H2 m3 H' gmysql> select locate('bar', 'foobarbar');  
- O" n4 n4 U- t# T* U' a  -> 4  
- q# d) x" K' omysql> select locate('xbar', 'foobar');  $ l! e6 ~! s; ], r" v5 f/ S; G
  -> 0  : @5 c) H: V) _+ i5 m# B
    7 P$ _9 m/ [. E! @2 d
locate(substr,str,pos) ) Y( ?, ~, x( {8 p
返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  5 x+ F6 f7 F0 r4 }
mysql> select locate('bar', 'foobarbar',5);  
  k" T, B" G+ x7 @  -> 7  
5 F& A7 c- k/ _% i 9 c( z# v/ g2 z8 P4 M
instr(str,substr)  
; N( q+ C9 R  |" d9 a8 u* _返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
2 v4 M: g) |8 z& W7 Hmysql> select instr('foobarbar', 'bar');  
" }7 v$ f7 h) L; d6 Y1 l1 l5 I  -> 4  ! f6 S) g9 N' G, |  i7 T
mysql> select instr('xbar', 'foobar');  / g5 h) H  H7 M* I0 B) L9 G1 u* l4 Y
  -> 0   & V* L3 o& h6 P* e/ u

- @4 A: Q) ^! D. z& G! rlpad(str,len,padstr)   
" c1 U5 H& x, r; s, N4 J/ Y用字符串padstr填补str左端直到字串长度为len并返回  
8 C0 y$ ^& ~$ r  T' N( `mysql> select lpad('hi',4,'??');  
8 e- H5 L7 ~. Q* k( C  g+ Q  -> '??hi' ! \1 E/ u4 E0 w; e+ V8 j% A. L4 u2 h
   6 {( p, s2 H, m! a. A" D% a: {
rpad(str,len,padstr)   0 l* I$ A. z8 J& J
用字符串padstr填补str右端直到字串长度为len并返回  
0 O" k, Q& {6 O( K) L4 E  X4 lmysql> select rpad('hi',5,'?');  
6 m( l/ {1 g+ y& d  -> 'hi???' + T) g6 W5 C" D2 N; S3 J" k
$ h. m( c8 {& `, j5 }
left(str,len)   . H1 y3 m6 o% [6 j# e/ T+ |# h) H5 |
返回字符串str的左端len个字符  + P, b+ P6 b- B. @0 M; V2 k
mysql> select left('foobarbar', 5);  & [: {2 A9 b! d: K) e  @# b
  -> 'fooba' : f9 {2 _2 F" D! f4 |+ P( u4 [

8 p. x2 l5 i1 j8 f  p& wright(str,len)   & k. c' n: l2 @$ Q/ c4 E) G
返回字符串str的右端len个字符   
  p# O0 y8 U3 y( U. u/ dmysql> select right('foobarbar', 4);  2 M0 M2 E1 v. P" y; H' r0 _( ~
  -> 'rbar' 2 `+ l# |  t6 M1 C1 U

8 }& |1 B$ x$ J& o0 c2 gsubstring(str,pos,len)   
4 W5 b3 I7 `: y! q( hsubstring(str from pos for len)   
- ?2 t) b8 ?5 N4 f& M4 E3 nmid(str,pos,len)   
% h, q. q2 J- ?& B& w2 \返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
4 u! |' C, ]9 k6 N9 c  -> 'ratica' 8 z- n# @. g: T9 {8 ?
7 y% H* g  i# e3 n. U
substring(str,pos)   . P' s5 ~' _, c6 m: f, g
substring(str from pos)   , Q  f, {# ^4 n2 v4 k8 H' _
返回字符串str的位置pos起的一个子串  
$ p# t# }8 a( R- C7 p9 jmysql> select substring('quadratically',5);  
, p0 [0 e! o( R$ X4 w: k  -> 'ratically'
" C6 D+ k+ B& F+ g: G# `$ X0 [% Hmysql> select substring('foobarbar' from 4);  
4 f  g* ^& O* l6 x% p* B5 q  -> 'barbar' ; @; B! T. g  \; i

# K6 ~: r! x# s3 rsubstring_index(str,delim,count)     z  y1 w; `* n9 B/ b5 O2 R
返回从字符串str的第count个出现的分隔符delim之后的子串8 a! W) }/ H1 w, \: z7 I$ ?. U
(count为正数时返回左端,否则返回右端子串)  ( l* j0 u' M! l# c6 \0 O: I) w' j
mysql> select substring_index('www.mysql.com', '.', 2);  " D) t) P8 c* m1 [, \3 ?% p
  -> 'www.mysql' $ p, X8 J& ~3 E$ N3 g
mysql> select substring_index('www.mysql.com', '.', -2);  * U: X5 E5 f9 `& k
  -> 'mysql.com' ' {7 K4 m& T; j6 ^* w# N
- O$ P: o  ]0 i+ s% }0 B& ]4 K
ltrim(str)   
' u; c$ J' W' A* ~7 l! S返回删除了左空格的字符串str  8 I3 r! f1 f  ^! B
mysql> select ltrim('  barbar');  
& z; N0 U7 G6 u, i% v8 _  -> 'barbar' ) V5 n! v0 c' k( t- n4 f
* b! n& \) K+ @. O- n3 m
rtrim(str)   
3 w8 a% |  X# _" e" ?返回删除了右空格的字符串str  $ M  v9 @0 Z3 i- j5 Z  n
mysql> select rtrim('barbar   ');  : z, h+ ]7 n  O
  -> 'barbar'
  i( f8 P8 i4 q* w ) a+ V" A  X$ @4 R3 g) |
trim([[both | leading | trailing] [remstr] from] str)   - D3 g% m# D# k7 }
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  & r9 X' x# t* I+ @$ R
mysql> select trim('  bar   ');  
+ |) B2 T. I2 q1 k" K. P  -> 'bar'
5 _9 i6 \8 p; @9 A8 {mysql> select trim(leading 'x' from 'xxxbarxxx');  
& q! W7 ^4 [; B' l4 n  -> 'barxxx' 7 g+ @8 d! E! b8 N
mysql> select trim(both 'x' from 'xxxbarxxx');  
6 M& \& n  P* d* |9 C  -> 'bar'
/ c! {% R5 h+ X) o( o/ cmysql> select trim(trailing 'xyz' from 'barxxyz');  
5 s) i5 H$ Y" ]" n  -> 'barx' - T* ~$ b! E/ C3 e! m9 s9 J

% ?7 F9 c4 M% Q" h! R; ysoundex(str)   * l) h7 f& J6 e( `7 \6 ^; P
返回str的一个同音字符串(听起来“大致相同”字符串有相同的; n% k7 O6 E! N, E
同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  ) h3 w# u/ x1 n2 T
mysql> select soundex('hello');  
0 C; h& Z2 R' D+ M( ~* i# j' I  -> 'h400' - i& B" a1 O7 p: V% C# Q
mysql> select soundex('quadratically');  5 {; |# w) L" h0 Y4 E+ m3 F6 F
  -> 'q36324' . ~) s/ y/ @  N3 G: m
   
/ z  j9 Z4 t% B( s+ bspace(n)   
  p" I  h: z$ H+ X返回由n个空格字符组成的一个字符串  
( K9 f/ n, {9 K8 f" R7 O0 J- Tmysql> select space(6);  ; m! B4 ]  K! Z
  -> '      '
* u8 Q3 K( `, Y' s/ N. ^' t  U   ( V4 r0 p- A9 G
replace(str,from_str,to_str)   
# f6 j3 T" \3 o5 p: l% C用字符串to_str替换字符串str中的子串from_str并返回  
+ n! z3 g5 h: e' O0 T6 U- Hmysql> select replace('www.mysql.com', 'w', 'ww');  % k8 m- {" A2 v, F8 H% b
  -> 'wwwwww.mysql.com' ' h! U/ ]9 K  m! \
2 i7 n- p# I5 w4 I: ^/ }5 y! p
repeat(str,count)  
, l! @- ]. a7 t5 V4 J2 C返回由count个字符串str连成的一个字符串(任何参数为null时/ H4 ~* w# A9 i0 P, W/ M
返回null,count<=0时返回一个空字符串)  
3 P5 z/ Q: ~* O, r- wmysql> select repeat('mysql', 3);  * Y# R7 S4 C. Z4 y( T  }9 F
  -> 'mysqlmysqlmysql'
9 C' s# X2 _& S9 c. q! o   7 i' Q; P6 _- b4 S  J- H
reverse(str)   
9 U6 j$ l1 y: L( L! z* v颠倒字符串str的字符顺序并返回  . i$ V* ]4 r/ j
mysql> select reverse('abc');  8 }8 V( ^3 Y) p5 l- `6 M9 F; L
  -> 'cba' 8 a) h: u: j5 ~6 T7 @; ^
7 G6 U. ~3 k7 a0 O; D$ k. p  ]
insert(str,pos,len,newstr)   5 E" t" W3 W7 w  k) U! z
把字符串str由位置pos起len个字符长的子串替换为字符串
/ W1 ^9 O+ G3 pnewstr并返回  
/ e4 D' s# F5 \. q/ c: omysql> select insert('quadratic', 3, 4, 'what');  
0 R% l- g. n: r/ ?5 n" B- ~% I  -> 'quwhattic' ; _$ o6 S/ t' H  t8 K
" K3 ]0 o: E+ N) W) Q
elt(n,str1,str2,str3,...)   ; B. ?- P7 v0 ~3 P
返回第n个字符串(n小于1或大于参数个数返回null)  & X, h% k/ ?9 }; c
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  # s: o. k$ f' ?. L
  -> 'ej' 2 c3 V: f8 N1 p/ [: E3 Y
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  
) w& O+ @( ]: w; |# _  -> 'foo'
& N7 s* H" ~! M* {* m( z/ D" q & B) n% f- j9 N  K9 q1 s, ?5 y
field(str,str1,str2,str3,...)   8 O  x4 }. F& ?0 B
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  4 {' f% o. o& J7 @7 V' {$ q
mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
  K) {9 N5 D" g: T5 ]! ?'foo');  
  @% O8 o- a0 X8 w! x/ m  -> 2  
. j7 w' _! b3 y2 J1 \1 N. U2 Rmysql> select field('fo', 'hej', 'ej', 'heja', 'hej',; o5 ?; U2 \) |- n2 U, c
'foo');  . }" d2 d  R/ U: [
  -> 0  
3 X+ I8 T, F& S5 B( o4 L3 J  ~+ Y ) n  a+ K: G" @2 E6 G! r8 D8 J  Y& }
find_in_set(str,strlist)   
% l* c# w3 r% O. Z( E0 b返回str在字符串集strlist中的序号(任何参数是null则返回
: k6 e5 v3 B! x$ @$ Snull,如果str没找到返回0,参数1包含","时工作异常)  
, r4 v# _& z# E* smysql> select find_in_set('b','a,b,c,d');  
% X/ g" f: l1 ]+ F- j  -> 2  9 Q9 z4 d) c& w! y+ ^! n6 M" L
   
* G3 e! o, ]% ~make_set(bits,str1,str2,...)  
. G. r& \3 o, b+ m1 |5 ~! y把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应% \  F: H9 E9 t* i( Y' h
位置的字串选入字串集并返回(null串不添加到结果中)  0 t! p# s1 Q' y! @% U* _! R
mysql> select make_set(1,'a','b','c');  0 F0 B# G+ a1 I% F( }2 |+ d9 r
  -> 'a'
: ^6 X7 J' i! q, K& c! k3 Smysql> select make_set(1 | 4,'hello','nice','world');  
. _) j( V# w" s- T  -> 'hello,world'
! E0 m1 f( z& d. ^; H- Pmysql> select make_set(0,'a','b','c');  5 M$ }) w/ w" @: O4 B
  -> ''
. U, I' C7 U$ z/ q
- L0 o  a7 N# {8 \2 X% t$ d/ q9 f4 H5 nexport_set(bits,on,off,[separator,[number_of_bits]])   1 J% s3 ]6 q2 X1 Q
按bits排列字符串集,只有当位等于1时插入字串on,否则插入
+ }9 v, G; s! j' |9 z3 g! noff(separator默认值",",number_of_bits参数使用时长度不足补0
' U7 s/ X! V2 A& t而过长截断)   
9 ~4 l9 L8 k" w% s  t6 hmysql> select export_set(5,'y','n',',',4)  ' R# Q- m. ?2 ]' _
  -> y,n,y,n   
  E! N0 }& W$ A% P) s5 _: C ; Q) p( q3 @% Z5 u; B2 Q9 v2 F
lcase(str)  
# e4 R- C8 X$ h- Y# tlower(str)   " m. e+ o% M9 g
返回小写的字符串str  3 h: j2 p+ {' X1 B" C( e8 w
mysql> select lcase('quadratically');  
6 [  H+ Q1 p  ]/ {; i* O4 S  -> 'quadratically'
& L2 I/ u) O: Z   
7 J7 N3 W0 u  h, L5 ~% f- Aucase(str)   
) f" ^! i) X1 f9 F* P8 kupper(str)  
7 t) W4 B. g, N0 l; D8 g( `返回大写的字符串str  
5 z: A& d3 r5 Zmysql> select ucase('quadratically');  # m5 [8 `6 \. K# h
  -> 'quadratically'
7 g- b: l9 k" n- f ! `& D2 N& V* k/ ?0 j' x* Y
load_file(file_name)   
/ O* J! b8 c9 [读入文件并且作为一个字符串返回文件内容(文件无法找到,路径
2 X7 h0 R) ^$ a; U6 a$ h不完整,没有权限,长度大于max_allowed_packet会返回null)  
1 h* _8 v+ n; N; p+ i5 U$ Xmysql> update table_name set blob_column=load_file$ H7 Y: @9 A- f7 g  T+ T2 G
("/tmp/picture") where id=1;  
- }  C: B0 ?, v9 ]9 K
2 x& e' t& z3 ~7 \4 o2、数学函数
- z, A: Z% s: ]% Vabs(n)
- ~* q! p6 Y! {3 }: ^, ?返回n的绝对值  : B5 H# l" a  V
mysql> select abs(2);   
" H8 y7 `& u$ S5 u, ]" Z6 u  -> 2    0 P' T' r* K7 F9 p
mysql> select abs(-32);   
4 B& c+ _: n4 t0 q; C" v0 D  -> 32   
* ~( r4 i" f- G/ y1 M   
, K; w; v) b! o" c( b1 osign(n)  
* W$ k# `$ G5 F( K# }, X, h! f返回参数的符号(为-1、0或1)  3 u5 b: I, |0 P
mysql> select sign(-32);   
$ W* J  M5 h7 ]+ E  -> -1   
* E' h8 t/ t* q& O. Z! V: `mysql> select sign(0);   
6 i/ u- z. B9 x' B4 S( t) C  -> 0    : [& Z8 ]1 Q' x( Z3 F
mysql> select sign(234);    7 l3 R1 V6 F/ p
  -> 1    : f4 E" N5 x" N2 \" \1 O* i
+ D& f9 i) }7 L
mod(n,m)   
, K3 Q& ^( l" P6 B# ^* C& Q取模运算,返回n被m除的余数(同%操作符)   
# w( q3 p$ l! hmysql> select mod(234, 10);   
# z9 @6 a+ c. i( O* h  -> 4    8 J, h0 \4 l# U1 W& h- y7 P; C
mysql> select 234 % 10;    + }+ [4 B  q4 S* p3 \- e4 s, t/ t
  -> 4   
) v/ r" `2 ]7 rmysql> select mod(29,9);    1 v0 L3 ^- ^8 C- q/ }
  -> 2   
- r- C- d! S: F. t8 e* A* e
6 l1 |3 C. H+ n8 wfloor(n)  % p+ b; r% k! L2 U7 U
返回不大于n的最大整数值  . ]  G+ C5 a$ M% N# w
mysql> select floor(1.23);   
6 h3 O2 E3 s. P! j6 G5 p. `! H  -> 1    % E" A+ |! [4 X7 r' R8 k
mysql> select floor(-1.23);    + b& f$ _7 y' l/ J, f
  -> -2    1 z5 _4 B+ A( x! i' L  x9 o- y

* _0 H$ x- k$ ]1 I$ i4 T4 {4 C8 tceiling(n)  
" K8 X, Z4 f7 O2 U返回不小于n的最小整数值  
3 {/ T' f) @1 c! _. v: \1 ymysql> select ceiling(1.23);    0 Q% h5 g: ?/ q
  -> 2    5 |, {% Z  o1 m6 t5 c4 e' [
mysql> select ceiling(-1.23);    0 i7 f; y/ @9 Y; k3 ~1 C  y6 i+ D
  -> -1   
& A# t+ N+ a# E5 A
: e! J2 H! R% Z$ U- w* wround(n,d)  ) ^2 M9 y2 y+ J) @
返回n的四舍五入值,保留d位小数(d的默认值为0)  $ y, a- c  B) o' z  F6 B6 u
mysql> select round(-1.23);    . M. Y7 {2 k* c7 d4 C& j4 k
  -> -1    2 L0 k( ~# O* l2 Y& E
mysql> select round(-1.58);   
! z0 b6 f3 |+ y/ a5 o; @9 p" Z9 W2 D  -> -2    ! _. P$ Z  ~/ n. A( o' _$ W
mysql> select round(1.58);   
$ k( o+ y0 S. z9 F/ H  -> 2   
  m1 r2 M4 w% V4 s; Xmysql> select round(1.298, 1);    5 a8 Z$ _) i! N5 m. ~7 K* ]
  -> 1.3   
" _4 f6 K! p$ }0 amysql> select round(1.298, 0);   
' h. b6 @1 \. ?$ H8 V  -> 1    / z8 b+ z% Y  ]5 l0 [4 |, g3 b
% ~1 o/ R6 t0 B
exp(n)  
# y" B  S% c/ ^: j9 d; B返回值e的n次方(自然对数的底)  
/ O' k! t0 Z& r7 m2 lmysql> select exp(2);    6 R% Z4 ?8 i" L* {# R" X& F! X
  -> 7.389056   
6 l4 B4 W/ o% A% O. l, U, Ymysql> select exp(-2);    - `" W9 n- n; o7 c" y
  -> 0.135335    8 \& ?. R7 @! r9 W6 h6 b- o4 T
7 P2 ^- [' C- K& K6 F
log(n)  
+ U2 _/ e" g" o5 C* s! K" o( q返回n的自然对数  
+ v, _4 q  i4 s' lmysql> select log(2);    7 j5 J( y# R+ V! T- f' l( b
  -> 0.693147   
- R2 o: a. G/ J% wmysql> select log(-2);    * [  o' y! z' U2 |/ q0 V
  -> null    5 f# `" q' p9 w) R5 M
$ x! f5 I. w+ @# [2 D/ o
log10(n)  
- w) D* K  J; ?# C) O$ _8 D& s返回n以10为底的对数  " t7 a/ q% W, d- P$ f
mysql> select log10(2);   
- d- k8 x5 c8 ]/ X. p  -> 0.301030   
0 r7 E# p. I) Y% Qmysql> select log10(100);   
/ X( |. @4 R) c3 O  -> 2.000000    6 q6 a+ w) l$ g5 V  R5 |
mysql> select log10(-100);   
. y) @  G; J- B5 b  -> null   
3 o. S4 O0 d# I
- n$ j. J% V  h1 F; V: e, Y# {4 Opow(x,y)    9 E6 H4 l% J5 M
power(x,y)    ! J( @  X, Z3 R! ~5 \$ v: P5 F
 返回值x的y次幂  
( z* T$ D2 ^( b4 o+ wmysql> select pow(2,2);    1 n2 B. P3 c6 g! h6 x
  -> 4.000000    . C' g: w( ]% g$ }9 g3 n7 _
mysql> select pow(2,-2);   
/ c# ^, [$ L+ N) L( W  -> 0.250000  % W; J! s! l4 T( w3 P

8 I0 }; M- z% V5 [sqrt(n)  
5 M* c- d- i# l) k7 l0 S 返回非负数n的平方根  
4 d& f4 s" K! ~) h# gmysql> select sqrt(4);   
! s& ~( K/ x2 w% M) B  -> 2.000000   
) q  J$ k+ ~  h5 _0 P% kmysql> select sqrt(20);    6 n) Q+ ^# u+ r- n8 j4 b4 L
  -> 4.472136      i- K, F7 v3 \' k' D) w2 c

+ H( V/ F% L: ^7 r- B" b% M# lpi()    ( ]  {) T& N  \
 返回圆周率   
8 y2 o- ~, l; Z8 d& D" z, Pmysql> select pi();    0 X  N* u. I, z; l/ L3 G# o" S
  -> 3.141593    1 m5 S, ?: v! b; R9 O$ B% S% i8 c

! M, e/ F8 k$ X4 x) Y! i2 H& Zcos(n)  8 B3 M' F) R2 W; X- ?
 返回n的余弦值  9 N) a$ I) L% C0 q0 |
mysql> select cos(pi());  
' V  A: Y5 f4 r. V7 o  -> -1.000000   
1 o$ ?$ W5 }/ a! t
8 `! J6 J' G+ v0 v+ n, v$ r3 Fsin(n)  3 \1 L$ y; x$ V6 e; @" D0 }
 返回n的正弦值   
3 {: Y+ v4 l" x+ Z# A. r. j: tmysql> select sin(pi());    ( m; t, B' W& G5 c" u
  -> 0.000000   
" |! }* ^. G1 h5 b1 k$ v* a& a - p4 u9 i+ s2 q1 q: x
tan(n)  
7 C  {8 [, P: h4 p# O返回n的正切值  3 ~; l+ }/ h& E9 E: M: ~# C* O8 u
mysql> select tan(pi()+1);    , \0 ~" C& x0 o5 W" A$ _
  -> 1.557408   
3 `: N) e6 u$ o7 D) P5 u* [* t
# ]0 @" P/ K+ M' s6 ^7 B' \  Cacos(n)  
! o( ?* o3 I! w6 ]/ v& g 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  
: g- k: K$ B" `" @9 o- b* imysql> select acos(1);    + r1 c  k: |+ x# p& N; M
  -> 0.000000   
# M9 J4 ^, z' F  G$ J) c6 ]& omysql> select acos(1.0001);    * x9 z, K' q$ J/ S: G
  -> null   
5 ]8 B- l' b0 y" wmysql> select acos(0);    / O; @: l) W1 G5 G4 r
  -> 1.570796   
( M8 M, c, Q9 h- M ' |' p; j0 L1 n& c4 B& [0 I4 N
asin(n)  
5 f1 ?# ?! \4 q) p7 S# b3 H0 l返回n反正弦值  8 z& i& c. p7 l$ t  x& m, L
mysql> select asin(0.2);   
& C" z( h+ G: k2 q# \  -> 0.201358    6 K/ \4 r/ G) [
mysql> select asin('foo');      `% V8 x9 M" a- T  r5 N
  -> 0.000000   
0 \' @! ^" L, H) D$ d" k " W% g) Q( g5 [+ M
atan(n)  
) o6 r8 h2 ?! d5 m4 Z返回n的反正切值  3 R: X* o# w7 u$ J
mysql> select atan(2);    4 J4 N( f- W0 e% T6 d$ j4 l( a7 M
  -> 1.107149   
# _9 T/ o9 B4 U# y: o/ p3 }mysql> select atan(-2);   
: ?( q( P; b' e2 y  G* `  -> -1.107149   
  i! L( c" l" k, _atan2(x,y)   
: w, L7 h4 D1 I) b 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  , w# _5 F# J/ Q- y" o
mysql> select atan(-2,2);    8 L7 Y+ {5 l, `; g; W
  -> -0.785398   
0 Z0 [  v4 o5 ?' o& Gmysql> select atan(pi(),0);    ; n8 n& f6 l2 n3 C+ w# U$ B
  -> 1.570796    5 y, i# B) V) t/ _
3 V2 g1 x" X6 t. `7 P: n
cot(n)  
8 y1 o+ V) j; p0 m6 f返回x的余切  % }' `" T# P" x" O8 Z5 a. P2 p/ p- b
mysql> select cot(12);    . O' o9 U  L. ]8 m& L2 M9 I; R
  -> -1.57267341   
+ e; l; R- i" pmysql> select cot(0);    6 U( H7 V9 r0 n) N7 Y/ ]
  -> null   
- g, F4 s) H  N) O' G2 K- A& n7 n . X! m' S6 ^6 R5 r3 x3 @0 K& r
rand()  9 x4 o& N  T% E5 ^0 s# P$ M! |; R' R
rand(n)    
5 t) F6 T- c1 ~6 C6 j# q' z3 q- Q; V返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
, S- R$ c: n; r' W) m" {+ @
( }, ^2 r" X4 C$ j& @( y$ n5 P# {mysql> select rand();   
, I) P# h3 H+ E9 T) u  -> 0.5925   
, }" w: k7 [$ d- a3 k" x; Emysql> select rand(20);    3 `5 t6 v( K4 k1 N6 f) f/ x
  -> 0.1811   
* {1 V: J/ S3 q- K0 ]mysql> select rand(20);    1 `5 z. L, H/ V, I& }
  -> 0.1811   
: s, E( u7 v2 q8 c3 V( Dmysql> select rand();   
- f! s+ e0 I+ l  -> 0.2079    ) j) u* B6 y( S+ o# q$ a: p) V
mysql> select rand();   
3 G, W# b+ i3 F, e; V3 i8 C  -> 0.7888   
6 k% A/ Y0 \3 z- k
- n" {) d: W7 m5 l: _! ]) sdegrees(n)  / a/ H- F1 p, O+ H( W$ w4 p2 m
把n从弧度变换为角度并返回  
! N) F2 D* Q" G& C1 kmysql> select degrees(pi());    / h( L3 M5 X( M2 C/ I" ~+ E
  -> 180.000000    6 N3 X+ ^  ?# z
! S. C$ W: k( u! T% P+ L9 Z6 \$ w
radians(n)
3 q  _0 H1 U: K9 q: ^. m7 D把n从角度变换为弧度并返回   
; g% y5 J% h" S6 xmysql> select radians(90);   
# ~2 w9 Z8 _& L& t  -> 1.570796    * ^+ N6 R2 k' T$ ^& ^4 v1 f
; q/ b. _( R) d
truncate(n,d)   
$ x: _. K) I" {5 h* B. S保留数字n的d位小数并返回  
" i. \+ {. t  F0 @( hmysql> select truncate(1.223,1);    , ~7 W8 R7 N/ A3 I1 I0 R. M* q
  -> 1.2    + p' ]6 Z4 `5 F3 o# H
mysql> select truncate(1.999,1);    2 C4 M. c9 G7 o
  -> 1.9   
8 m: e5 t, d! l  k$ m7 s) nmysql> select truncate(1.999,0);    ; q$ h2 B9 y3 f. B1 }* J
  -> 1   
5 j1 E5 |8 B3 c8 g 9 U+ _. V% i+ f
least(x,y,...)   
* \$ }3 k  u! Q' }3 U5 U: L返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  ( t  C0 J. i; n: l4 b# I+ m& @  B
mysql> select least(2,0);    ; G! U* K( i% n' T
  -> 0    $ w3 x& f5 S- X4 a
mysql> select least(34.0,3.0,5.0,767.0);    . i# A1 t* E( z0 b  c5 W8 u
  -> 3.0   
  i6 L0 W* v$ o) Imysql> select least("b","a","c");   
, U" {# L# f2 w% j  -> "a"   
" z0 x; \+ y& p: b8 a+ i % _  `* q5 n  q6 }; [3 W
greatest(x,y,...)   
# D+ o3 ^8 @5 ~' v% `) Y+ Y返回最大值(其余同least())  4 K& H% r- L% W. Q
mysql> select greatest(2,0);   
, _1 S; k, ?4 `* p* B. Z/ h  -> 2    4 `/ W& g1 B- f6 ^/ K4 R
mysql> select greatest(34.0,3.0,5.0,767.0);   
0 l- n" S0 i/ K  -> 767.0   
' W, w: T2 K7 q0 |' tmysql> select greatest("b","a","c");    * A5 `. c" A. X  \! u, p
  -> "c"     : y( B" H' _3 O) y4 t# D; C# z
1 r# ~, m6 g" I: Y& {, {
3、时期时间函数   b) W/ [7 P1 S/ V7 B5 `+ X1 z; v7 r
dayofweek(date)   
2 @  c( H9 E0 C: |" o返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
/ p4 V- h8 @4 [+ F2 g9 k( Xmysql> select dayofweek('1998-02-03');   
: H3 x! Y% S/ J  -> 3   
; [0 h6 ?$ V5 z! @4 I - _0 i% e4 y- ^  ~, O8 ], u
weekday(date)   
0 q* R1 h, A. J! l% l返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 ; ?1 l  x4 x( N3 k
  
5 L5 |* O9 j5 @* T6 mmysql> select weekday('1997-10-04 22:23:00');   
, t/ t( u) u7 w5 n6 k  -> 5    9 V% v" i0 b- A+ l$ z% Y) u; ^5 v
mysql> select weekday('1997-11-05');   
" E  W- H4 J2 `) i; h- i  -> 2   
" s3 j! r& q9 ?3 o+ V+ n5 c3 u4 W
9 d) b+ F1 i" ~7 A5 |; w% Gdayofmonth(date)    
6 v2 @4 K; E9 l! ^3 R. E返回date是一月中的第几日(在1到31范围内)   
& P: m0 l7 Y" z# x% `( h: `+ Mmysql> select dayofmonth('1998-02-03');    / ]* i8 Q+ ^4 N+ E+ p
  -> 3    0 ~% I2 Y) t) b; v. B4 c

8 P$ |6 h, |) y% [7 a6 \" j9 J- ?: f5 b& P* idayofyear(date)    & N5 }3 V- G4 c1 Z
返回date是一年中的第几日(在1到366范围内)    0 ~. v+ W. x# ~% s- Q: Q# e# q9 U
mysql> select dayofyear('1998-02-03');   
) |, U% D6 m5 b7 w7 {! C$ p  -> 34   
" V4 _% w2 u" J# M" H/ {8 C) P
3 t' _% s4 s  d8 C. h( Umonth(date)    1 P( A; I3 L0 N
返回date中的月份数值    ( X$ R( n; \) N, H
mysql> select month('1998-02-03');    : X  z2 @' p3 W3 }- O
  -> 2   
- \5 F$ R$ e8 k# N/ i  `  D
) M/ x% ~. z) v5 v( B! `dayname(date)    ) d- M3 ?0 S2 D1 ^7 b/ S
返回date是星期几(按英文名返回)  $ C1 p" A. Q# t, R8 D
mysql> select dayname("1998-02-05");    7 d. T% M! p3 z
  -> 'thursday'    8 e) n0 w6 w. [! R3 s
7 V6 q! T/ E# z8 u
monthname(date)    
( L: k- T# [( ^# U  Z: d返回date是几月(按英文名返回)  # M5 @: Q7 ~7 T, D) g
mysql> select monthname("1998-02-05");    - Z/ ~  r8 U2 C( A
  -> 'february'   
/ W& P$ f- X2 J
% U. @/ ]: H3 J+ F% v& Kquarter(date)    0 K( F( r8 u! `$ o7 E& ?/ U* f
返回date是一年的第几个季度    + a" N0 K' ~1 Q
mysql> select quarter('98-04-01');    / _5 O, f) p% f% ~8 a, b+ D
  -> 2    4 V; X% _7 k; t4 e) A6 [8 L5 g- ^

  C0 F" x) k! X! Y2 xweek(date,first)   
: x# K# a# x% Q) N5 A返回date是一年的第几周(first默认值0,first取值1表示周一是  x: y1 x- ^+ y! L, I) I
周的开始,0从周日开始)  4 l9 R8 j# J7 ~& V
mysql> select week('1998-02-20');    : ~7 L' h: t/ w' b6 u
  -> 7   
+ |8 D7 x  k1 c: V' W7 H1 M" gmysql> select week('1998-02-20',0);   
: P" d4 N3 O- C7 d; I' j  -> 7   
- l1 ?6 K" W( ]mysql> select week('1998-02-20',1);    ' S& m' W* g( n
  -> 8    / G! ^- a3 U! q5 A( U& p
, Y2 O" K# O9 V. r' ]
year(date)    , N" t" u; V, x# h/ D
返回date的年份(范围在1000到9999)   
% {( O0 r  j/ ~. G+ zmysql> select year('98-02-03');    " M8 H7 g0 R8 b9 [+ C1 _
  -> 1998    - h/ g) b$ q, @8 b- v- O

, m! E0 A+ o; i+ E/ L' o5 Phour(time)    
0 g% i( C  G( b; B3 t0 |返回time的小时数(范围是0到23)   ) P/ ~* j7 V6 J: D
mysql> select hour('10:05:03');    1 T5 |/ x6 Y5 H! F9 F) H
  -> 10    7 W- `5 ~) ?/ B. C3 o

9 {" n8 R5 F7 A/ S' Rminute(time)    & p4 z( F+ C3 u& z
返回time的分钟数(范围是0到59)   
; u% m, I( w1 G7 h" j4 L5 c8 hmysql> select minute('98-02-03 10:05:03');    % @2 @7 v" A0 Y: P$ ^0 c  r- C
  -> 5   
* z/ i7 n  [" h. K  M) H
- S" l) T0 Q8 U* w5 d) E) g) Jsecond(time)    ! W+ I' ]2 G; \0 }" h' D
返回time的秒数(范围是0到59)   ! z: j  n; c5 Y& F+ b" R/ W% \
mysql> select second('10:05:03');   
! m# P8 l8 }  @7 [$ p# Y5 m  -> 3    : W  Y. @& q# }" o

1 m6 u6 T! w- f8 G4 x; mperiod_add(p,n)    2 e) K0 S2 B$ J( h8 a, M  \4 y) D& r
增加n个月到时期p并返回(p的格式yymm或yyyymm)   
# r$ P7 c2 W8 o! A" ymysql> select period_add(9801,2);    ( k! ^& D  O8 N  [3 D6 K% k
  -> 199803    ( _: v" Z( V" I2 h& F

/ m. D4 z, F/ D. W! Jperiod_diff(p1,p2)    * z% ]7 y; k% x1 a! w8 n2 x
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  
, N0 \. Q, ^) d$ O) {, ^/ V* Omysql> select period_diff(9802,199703);   
& d( {9 U3 e. d' j4 n/ |8 f7 L  -> 11   
# B/ P1 ]$ G% ]' y) i/ t7 X
' c+ O1 G. Q. P9 X- J% pdate_add(date,interval expr type)  7 x: O3 b8 g* l. ]
date_sub(date,interval expr type)   
1 ^- r/ y" V) \* ~adddate(date,interval expr type)   
. O3 l( o7 i# w4 esubdate(date,interval expr type)  
" K' x$ t" o/ B对日期时间进行加减法运算  
. g0 H# y: u4 R6 X+ b1 m(adddate()和subdate()是date_add()和date_sub()的同义词,也
3 Z, k9 ]- t* Z, x" h, X$ }可以用运算符+和-而不是函数  
3 a/ J" @9 S, @+ x! z$ W9 {+ I  Adate是一个datetime或date值,expr对date进行加减法的一个表
& y/ c' b  N) N. p达式字符串type指明表达式expr应该如何被解释  
. U* W1 j/ e, V! {+ k9 M [type值 含义 期望的expr格式]:  9 F) [' @$ s+ a/ y1 k
 second 秒 seconds   
5 v* ?) _: h, c' }7 E9 w2 U minute 分钟 minutes   
4 }" T2 @/ \4 r3 n8 [: t hour 时间 hours    9 J* p( ?. k" ~$ j$ F+ @# V
 day 天 days    " e1 ?3 b' w* E
 month 月 months    8 _0 N* M- |2 r( j6 V: T
 year 年 years   
: O; s$ d0 S# d$ B% o6 v8 {3 y3 h4 J3 S minute_second 分钟和秒 "minutes:seconds"   
) E/ c( u$ s# H, ?4 F- r# q  O hour_minute 小时和分钟 "hours:minutes"    $ n4 ^! R6 |2 T+ r2 C4 N8 a. T
 day_hour 天和小时 "days hours"    % K! C1 R8 s. W/ H7 k  B
 year_month 年和月 "years-months"    / g2 t. _: O& K' [! }
 hour_second 小时, 分钟, "hours:minutes:seconds"    8 `  F9 b4 q: V" I( U9 Y4 q" u
 day_minute 天, 小时, 分钟 "days hours:minutes"    + v  b9 \  V. T3 [9 o0 ^6 w* I  \
 day_second 天, 小时, 分钟, 秒 "days
  |" \3 X8 X) t% a% zhours:minutes:seconds" " y6 D; S' t6 Y$ Z
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个6 d$ X) f' F+ D9 C4 P; E
date值,否则结果是一个datetime值)  
& s: R* Q# J6 w; d7 j1 I 如果type关键词不完整,则mysql从右端取值,day_second因为缺
$ o6 a& H8 s' V4 y$ G# {少小时分钟等于minute_second)  ' f7 O- u6 z% H8 ~
 如果增加month、year_month或year,天数大于结果月份的最大天5 N3 U# y8 Z+ q' ^1 s/ O/ t2 }
数则使用最大天数)   
% q: k$ `' Z( q" z0 O' h; g4 |mysql> select "1997-12-31 23:59:59" + interval 1 second;  
( [3 K* N2 H3 ^; U5 X! @ 7 b: z3 O5 s) R% K1 l4 l
  -> 1998-01-01 00:00:00    3 V$ k: I4 s, }+ p+ k) G
mysql> select interval 1 day + "1997-12-31";    + \3 f) H5 K; U) u3 Q- w& d% k
  -> 1998-01-01   
1 u0 P$ R# j: s  _# s6 Amysql> select "1998-01-01" - interval 1 second;   
' I6 s7 p; r3 `0 S8 J; c  -> 1997-12-31 23:59:59   
' C0 c; [- S+ [* R* W" ]' j1 ^# Gmysql> select date_add("1997-12-31 23:59:59",interval 1
0 J$ T; R6 e; _" |9 Asecond);   
% }4 ]1 M5 Z5 \' y  -> 1998-01-01 00:00:00    - G+ B# t. m5 S( @1 `5 n9 D
mysql> select date_add("1997-12-31 23:59:59",interval 1
+ c# h& l: u6 [1 T! ~( kday);    : }5 {4 ]  w/ p; h
  -> 1998-01-01 23:59:59   
( m3 h" B" f& w- H7 ?4 }# S0 Mmysql> select date_add("1997-12-31 23:59:59",interval9 r& `3 @! G: a- m
"1:1" minute_second);    - \! v: a- Z. Z8 c
  -> 1998-01-01 00:01:00    % i* q) B3 k$ F0 j  H2 W6 V* X4 _
mysql> select date_sub("1998-01-01 00:00:00",interval "1
8 Z: _, T5 T% [- X+ g4 C1:1:1" day_second);    + j7 G. E9 e2 B* [# {* v' A
  -> 1997-12-30 22:58:59   
9 D* b$ n0 H/ l# `mysql> select date_add("1998-01-01 00:00:00", interval "-1: b/ h- |# t+ {
10" day_hour);  ; L- e! @: J7 t0 a* r6 b( ~4 F
  -> 1997-12-30 14:00:00   
/ o# v- g  F3 J1 a; U( umysql> select date_sub("1998-01-02", interval 31 day);   
- d1 c! C0 U! {" x3 O7 K8 H  -> 1997-12-02    ' J! {* h% u+ b5 @# r
mysql> select extract(year from "1999-07-02");   
$ O, o' Z6 I$ x  -> 1999   
: I) [1 R9 [( X  ?, m" imysql> select extract(year_month from "1999-07-020 n. I9 v, ?. d% x9 y, ^# z
01:02:03");   
- V- n) ~; i1 E5 W, l) q1 W  -> 199907    6 D8 F0 h3 P" T# {* q) P. K
mysql> select extract(day_minute from "1999-07-02
+ ]7 K- {. ~) Z9 U" T1 e01:02:03");   
8 |+ R- e+ _/ z' G' C  -> 20102   
7 i, O5 H2 Z2 O2 r  B$ f
3 E- b+ p/ Z) `( @* ~to_days(date)    8 I; }1 E6 q) d. K1 T  J: c  g- ^% I# w
返回日期date是西元0年至今多少天(不计算1582年以前)  
% ]1 S" {" u* b5 S5 H* N* j" mmysql> select to_days(950501);    : B  C  t4 e: f8 X. p3 U
  -> 728779    6 }. W! m6 `) h7 |0 Z& E) S4 \( k! a
mysql> select to_days('1997-10-07');   
3 J6 n; \, ~4 `/ c; g8 P& T  -> 729669    7 i( Q' \/ ^( e2 R

9 M0 ]6 Y! P0 {from_days(n)   
2 O8 ^/ [$ ]% j7 b  |0 P5 @6 g 给出西元0年至今多少天返回date值(不计算1582年以前)   * |3 H2 C+ @) V& K% n& H+ N5 n
mysql> select from_days(729669);   
' b5 G6 M4 b  H) g9 H" R  -> '1997-10-07'    , f  ]2 K% \. T+ o( H. F
6 d: \6 t, j0 l4 q- s* J2 M7 L& L$ O( `
date_format(date,format)   
; {4 j/ s7 E* l" [& p 根据format字符串格式化date值  
+ p5 k9 c$ q8 d (在format字符串中可用标志符:  
- b! \- \" \# e" }' t7 j %m 月名字(january……december)    3 q$ E" w, t) O' s
 %w 星期名字(sunday……saturday)   
/ g; L$ ~: K2 W* ?, f( P %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    2 X7 C8 _* q3 V9 `' X' g9 F- G9 `
 %y 年, 数字, 4 位    * q9 a2 a  l* ], J  y) c  U
 %y 年, 数字, 2 位    ) \! v. X" S  @! ]' C
 %a 缩写的星期名字(sun……sat)   
5 E! f) c$ u! \7 a0 Y %d 月份中的天数, 数字(00……31)    ! [9 p% P) N; v8 g4 z" \1 u
 %e 月份中的天数, 数字(0……31)   
5 D  U  x8 f$ ^) ]& U* [2 \) q %m 月, 数字(01……12)    8 ]1 K1 t  {/ M  J
 %c 月, 数字(1……12)   
, X, a/ a! G9 e" i- ~5 X %b 缩写的月份名字(jan……dec)    0 ^- d& P3 ?6 w& Q, \; C1 U
 %j 一年中的天数(001……366)   
2 p( S* W$ o0 |2 b/ p4 n2 D %h 小时(00……23)    / K3 ?3 Z4 A6 P+ G6 n
 %k 小时(0……23)   
; K# r. ^; }. w( b  w, z7 v %h 小时(01……12)   
" v0 g# O. y3 X %i 小时(01……12)   
( J( S$ k! ~# U" [ %l 小时(1……12)    " C: |3 E7 {2 S4 v3 p6 Q
 %i 分钟, 数字(00……59)    3 ~: w3 ]* q- C- k" l% {2 w
 %r 时间,12 小时(hh:mm:ss [ap]m)   
! A" e3 q9 D8 k  B; P0 r* l %t 时间,24 小时(hh:mm:ss)   
! B" n9 ^; p, B5 D3 V, J %s 秒(00……59)   
% N; t2 w; I* Q* X" F %s 秒(00……59)    & L! K2 G; e. O. Z  }1 ^
 %p am或pm    ( f8 U8 c' B/ v# q1 h2 B* z
 %w 一个星期中的天数(0=sunday ……6=saturday )   
9 I/ z4 U0 _. c9 K" b. I4 l %u 星期(0……52), 这里星期天是星期的第一天    4 u+ Y/ ~% c' O4 L' ?/ r
 %u 星期(0……52), 这里星期一是星期的第一天   
1 p9 G4 x  T8 D3 ?+ l %% 字符% )    \5 U1 P2 S2 M( e/ m/ {
mysql> select date_format('1997-10-04 22:23:00','%w %m %$ z7 ?4 f/ z5 y- |4 {0 V
y');    1 u7 h9 Y  ~3 _  k, ~+ l- r
  -> 'saturday october 1997'   
$ M& o0 u+ \  G7 c; x! o2 ]. {4 Tmysql> select date_format('1997-10-04 22:23:00','%h:%i:%
- ^4 A- `" f7 @! {! Z+ |8 Is');   
; R3 ?" L- @- {* }6 }1 M  -> '22:23:00'   
0 l: a5 h% H" ?mysql> select date_format('1997-10-04 22:23:00','%d %y %a
7 K6 [8 C5 }) C% j! q& a2 S- @8 O1 i. h%d %m %b %j');   
% H' Y+ J: ^" Y: T/ E/ B  I! k6 \  -> '4th 97 sat 04 10 oct 277'    ( |: A, b! i  r
mysql> select date_format('1997-10-04 22:23:00','%h %k %i1 V9 i+ q4 j7 a9 l" G7 S
%r %t %s %w');   
7 K& f! v$ E, {& ~0 z  -> '22 22 10 10:23:00 pm 22:23:00 00 6'   
+ E0 B' m% ]* r- Y) R5 G
- ?- g0 y" o6 W$ Q" A/ m: w' Vtime_format(time,format)  " k& B  _( l: r  k' V% L: |
 和date_format()类似,但time_format只处理小时、分钟和秒(其$ c9 W# t) K$ c% }) |: [" O' u
余符号产生一个null值或0)  + ?& d0 t  |8 d! L6 i

; ]4 g3 Q8 M! a+ ?6 mcurdate()     0 ~9 q3 [3 T5 y1 P& y& F# J3 d: u
current_date()  
! q- j4 n( [8 E 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所! e* x1 y! V5 Y/ S+ E; j
处上下文是字符串或数字)   
7 k$ |, i7 N# Lmysql> select curdate();    $ ^) J  q, n( I  u/ v* ~
  -> '1997-12-15'    - E8 b% A# [# v8 P2 b
mysql> select curdate() + 0;   
  R+ G& e) m$ Z# n  -> 19971215    ) u( \& u: x1 ~: _1 P' @3 V
; Q2 e9 @% `/ u) @+ B" H
curtime()    # \* {9 A: _# K* B* N
current_time()  " J/ ]% k! G- ]) O, V* S) [
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上# Z* {& }, T  G' `# Z7 @
下文是字符串或数字)      
+ |" u) {' U9 P- lmysql> select curtime();   
4 h- A9 [' Y8 D5 N, q  -> '23:50:26'   
& @9 [  [$ c2 a3 h' w$ imysql> select curtime() + 0;    % u1 ]& }5 D9 u7 x
  -> 235026    ( T8 E  T( A  U1 F' \

4 I, |, z% i$ r! F3 s" q. z2 }- ynow()    
( N" b6 v) _4 ^" rsysdate()    . z# r2 d8 N& H; H% `2 {( p
current_timestamp()  
/ s! t) J' O& t 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
- n2 {8 v2 ]3 \时间(根据返回值所处上下文是字符串或数字)     
7 C$ i/ b! e2 o8 f: W% T% j. Ymysql> select now();   
1 z7 K: f1 \1 y8 |8 v# p6 f9 h  -> '1997-12-15 23:50:26'   
/ O+ {0 H/ S7 V# T/ Omysql> select now() + 0;    7 M  ?1 p8 }7 c# R% |- k
  -> 19971215235026    ' F  r4 d& v; y' v& ~/ N

4 v( c5 J% ]+ {# L) x. g" @unix_timestamp()   
  J4 H9 ?( l% h; P7 v4 J2 J3 {) Hunix_timestamp(date)    8 m/ P- a  U( x' \# E6 A7 }
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒" r+ p, h4 y% }0 o- d! r
数,date默认值为当前时间)  7 ?) E; n9 S  E/ G3 s2 t& i
mysql> select unix_timestamp();   
% h3 v9 z0 N" L4 V% U5 @" A  -> 882226357    * h/ w4 C9 x$ x
mysql> select unix_timestamp('1997-10-04 22:23:00');   
2 E4 m6 G4 {: ]$ J  -> 875996580   
, P* X+ O: W& X+ y+ w- `# i: c 0 ?- \& v4 }$ A. u! g' Y
from_unixtime(unix_timestamp)   
1 g- G3 w, e+ k, s0 Z$ {3 O. q% O1 B以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的. w& D  y; v" f' ^7 u2 O, e
值(根据返回值所处上下文是字符串或数字)     2 {0 h2 a/ W6 u
mysql> select from_unixtime(875996580);   
7 A0 c! A, Y. H( w0 V+ C$ p8 D  -> '1997-10-04 22:23:00'   
$ |& _  n' T7 d/ L9 Gmysql> select from_unixtime(875996580) + 0;    , I, ]+ s! N% ~! O9 D) S0 C
  -> 19971004222300   
$ `  J* O+ s3 P1 X6 e3 H7 m 6 h  l6 q1 u  I) {" D: |
from_unixtime(unix_timestamp,format)    
  B: b/ \4 t9 q! o9 R5 t以format字符串格式返回时间戳的值  ' S' G. a4 a4 C
mysql> select from_unixtime(unix_timestamp(),'%y %d %m %0 H4 E8 h& {' v: m
h:%i:%s %x');    . T; p! l, r6 Z
  -> '1997 23rd december 03:43:30 x'   
* q$ H3 z5 [- U6 F- \! H& c 3 }0 g' g) @  ?8 Q# U! }- J7 W; w1 o& b; D
sec_to_time(seconds)   
7 s- F( Q8 E$ [以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
8 ?& d  v  K7 ?  g- ?mysql> select sec_to_time(2378);    ' r" q7 X" R7 h, c/ S3 q7 X
  -> '00:39:38'   
+ w7 @5 _5 n% m4 Amysql> select sec_to_time(2378) + 0;    ! A  c+ q2 D1 a
  -> 3938    8 M( Y: l2 s8 m% r( e4 I$ q

5 D- ^& W/ _1 p) Ptime_to_sec(time)    7 x7 r# m8 v& i# g: j
返回time值有多少秒   
8 S& N) m7 s4 C* g: Bmysql> select time_to_sec('22:23:00');    2 x* i' ?$ L: ~3 z
  -> 80580    . H6 Q0 E% B- }' p2 T
mysql> select time_to_sec('00:39:38');    ) ^) n$ }, Z3 d4 F: E
  -> 2378
( e  l( k) ~* c% C/ A. s
% I5 r2 t' m7 S' |* H* {转换函数/ T0 s. k$ i; ]$ |
cast
- n" O8 B. }& |, _* [% l+ u* W用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]
  n3 _, |) q1 ?# h$ M# P实例:select cast(a as unsigned) as b from cardserver where order by b desc;) L7 ?' }: l, n% B3 ~+ W* B
convert:
0 a5 E2 g$ q: Q4 [' M1 w. U用法:convert(字段,数据类型); @: N, h: D  |7 A/ F
实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
  V/ g3 V" I5 P: R. [
回复

使用道具 举报

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

本版积分规则

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