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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数
8 k  u9 E% G/ l) }* aascii(str)   
2 G  W) }* N) b" c返回字符串str的第一个字符的ascii值(str是空串时返回0)  2 Y7 V2 u- L- s; P4 Z
mysql> select ascii('2');  2 @# W8 t3 q- t& w
  -> 50  ! B1 b3 {4 I. r8 r. K( ?
mysql> select ascii(2);  
9 y$ u; x3 x! E! d. D  -> 50  
0 ]9 R9 q9 ~! C! }1 K3 @% zmysql> select ascii('dete');  
0 z2 W) b8 x1 r  -> 100
4 ~& W1 r6 G( v& ?
ord(str)   % R: o" r# A% ]6 \6 o, _
如果字符串str句首是单字节返回与ascii()函数返回的相同值。
+ Z/ ?" s2 M8 Z1 p- l 9 I' Q! A4 A: w
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  " g! r8 O7 i( A
mysql> select ord('2');  * X2 d! j# J$ y. k" K
  -> 50  ! [. _+ t9 q1 ^1 X  {  c& z
   
9 O: j2 C) ]" _. R& @, q" {conv(n,from_base,to_base)   
" X0 H! d- U. \! I; F0 r对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  ) ^4 X6 E! Z% y- t$ I5 U
mysql> select conv("a",16,2);  
  |  P( ~" p) G! }: z  -> '1010'
& F7 u, }/ G8 f  O- u1 F+ m: G1 [mysql> select conv("6e",18,8);  ! c- R# ?% u8 T! f# A+ N3 Q7 E0 x
  -> '172' $ B8 v% x8 w9 ~8 W5 ^! _0 L
mysql> select conv(-17,10,-18);  
, c" E0 u" @1 V8 P( c9 r  -> '-h' , h; W' U3 f9 Z( w, x4 H. L
mysql> select conv(10+"10"+'10'+0xa,10,10);  
. X' e1 e. H1 r6 d4 b4 o  -> '40'
) m. ?" c* F. |& I   
$ d& G: u% o! b& o3 Hbin(n)   ' S* T' f5 N/ b3 m0 I
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  3 J( ^! m: B: ~$ V# T
mysql> select bin(12);  
2 I- ^. n7 N+ b. D  -> '1100'
8 q7 x+ T2 b3 R; H/ \7 @
  o, Z1 x4 F7 y% \oct(n)   
& s/ `( U7 B7 u3 `; U! c1 d3 Q4 E把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  - ?+ O( r% b1 s! f& `
mysql> select oct(12);  9 Q. h, ?1 a# _5 S
  -> '14'
5 L8 q' [/ j( @0 \   / u# C( {7 |0 f# k
hex(n)   9 d& L9 W8 ~( x$ C& h
把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  
& |6 `" y  O: ?$ E# Z5 d( }, tmysql> select hex(255);  % i' @( m% U. q
  -> 'ff' . P# I4 [0 a0 a" H/ g( u
   ; M# l- N0 {; C) }8 h
char(n,...)   4 `7 ~* g% Q' a' L5 f1 N
返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   
& R2 ?! v9 W1 L; ^, K/ fmysql> select char(77,121,83,81,'76');  
& {. V, v  u% I7 \  -> 'mysql' 1 _) p: m- `  s' R) }/ A! _2 i
mysql> select char(77,77.3,'77.3');  . k1 N; t) H# d6 U1 j
  -> 'mmm' ! c* c/ e( a+ l& Q  e$ t7 t/ A
   & q9 X8 b4 C. ]; D: S7 }
concat(str1,str2,...)  
' _( O3 M; N2 D把参数连成一个长字符串并返回(任何参数是null时返回null)  
6 q' g' @& |7 p  Z/ Bmysql> select concat('my', 's', 'ql');  
1 @* `$ h4 r$ g, Z' K% J  -> 'mysql' ; ?7 Q; L& ?! v& V% q& n5 y* Z
mysql> select concat('my', null, 'ql');  
8 @8 }& U! J: u0 ~& w, J5 W* s) }  -> null & _: K' T+ x. K! F+ x7 ?: M, W
mysql> select concat(14.3);  * }1 @4 V% S' z; ?" P' ~
  -> '14.3'
( Y: p3 i! q$ G: n1 k 3 ?. b6 A+ j& G) P" t
length(str)   * A1 u6 w7 p6 J) j4 d
octet_length(str)  
9 K0 \5 e7 i5 Fchar_length(str)  ; k  `3 ^+ u, m( B: O+ S0 u9 b+ H) ]0 M1 s
character_length(str)  5 f! y. l+ [5 U6 d
返回字符串str的长度(对于多字节字符char_length仅计算一次)& I% _! e* b1 M  |. ?
mysql> select length('text');  ) Z& {# ]$ k. {1 p/ z$ g
  -> 4  
7 k% h( Y* Z/ y. \6 d5 k  w. ~& t/ hmysql> select octet_length('text');  
0 C4 U" g6 U( U  -> 4  
4 T0 W$ f; Z8 @" f& h
' g) U& U5 [5 }4 a6 \  w- {locate(substr,str)   & j' G) X9 f1 |
position(substr in str)   1 }; O  g9 w. T( A5 G8 h, t
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
' S5 S1 F: z, k4 D7 A/ l8 X# B+ cmysql> select locate('bar', 'foobarbar');  
! X3 J3 [! O* C3 E7 I+ n  -> 4  
3 s6 Q% j. }' d1 Rmysql> select locate('xbar', 'foobar');  
$ e; W, a* D6 n* f% o8 J  -> 0  4 j$ D- b9 {8 u& c! V4 z
   
, e* q) L0 B6 b1 u7 v0 Q! ]& Alocate(substr,str,pos) 8 s/ Q7 i8 b( u- c- m
返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
, [- v' M* s& X+ c* K: ^6 dmysql> select locate('bar', 'foobarbar',5);  ' m3 W& [" B' I
  -> 7  " A8 j. i) ]- I! \0 a

$ P. ^) y, I* U6 O" yinstr(str,substr)     D' Z/ o% y" ]5 V6 v5 y. v
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
, w7 ^: |" Y1 ^( Smysql> select instr('foobarbar', 'bar');  
# S! P% T+ f+ @0 q. {  -> 4  
' k% A# L2 `) f1 \mysql> select instr('xbar', 'foobar');  # j, q5 h; y6 h
  -> 0   
4 O+ T, }5 s6 Z$ o) B6 H6 X$ y" J
0 ~1 \" X# N8 Ilpad(str,len,padstr)   
# \( e0 c' V( @! \* u7 E  q4 P用字符串padstr填补str左端直到字串长度为len并返回  % a5 `! N. E6 S9 }9 Y: X
mysql> select lpad('hi',4,'??');  / D8 U$ p9 E& V4 i2 j
  -> '??hi'
# p4 ~  b9 F1 m$ `( m% m   # [4 I) R$ F+ b9 G7 y8 `1 I, Q
rpad(str,len,padstr)     i4 s  P; ^. S
用字符串padstr填补str右端直到字串长度为len并返回  5 z5 J8 V+ Y% z! Q( F
mysql> select rpad('hi',5,'?');  
" e8 e3 k& G, z2 L! f  -> 'hi???'
; r3 ^9 V1 q- S& k0 O; O
1 _: ]4 @5 `0 [1 Oleft(str,len)   
4 }$ l, L- S8 E* Q8 p/ W; M返回字符串str的左端len个字符  1 S6 j" [8 a) Z7 ~$ Q/ [  r
mysql> select left('foobarbar', 5);  ; }9 N4 C7 s" c7 q1 ?
  -> 'fooba'
4 s% [# S- D( U. A, s 4 V/ ~- l, U' j6 r
right(str,len)   
9 k+ R% U3 @9 ?返回字符串str的右端len个字符   * C1 ^4 C* [$ m3 g. v6 _5 r. _
mysql> select right('foobarbar', 4);  ( C7 ?& B/ U; T; u
  -> 'rbar'
  v. j+ o2 I& h8 I- ?' l 9 A. G2 E) c) \: w, K& d
substring(str,pos,len)   
; a" R1 c, {$ G& Ysubstring(str from pos for len)   
. x# Y3 u+ y  ~mid(str,pos,len)   * o  |( N; U/ v& @9 ?+ ?8 v
返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  4 `; X$ A3 x/ U. k+ n* V# i9 H
  -> 'ratica' + U  S" A+ ^* E3 k5 r
/ ~6 U1 @0 |# v7 p
substring(str,pos)   $ u. l# I% M3 P+ N0 k" Y, f
substring(str from pos)   5 q7 E5 T2 E- \  ?; Y1 s% L+ M
返回字符串str的位置pos起的一个子串  ' l9 E: o% @# Q% H! }, P
mysql> select substring('quadratically',5);  
9 p4 m* o* ]# P3 [6 j% q  -> 'ratically' ' e1 U: a" I2 z/ |" _
mysql> select substring('foobarbar' from 4);  ' G% {) j) G% `9 P8 L2 G& }
  -> 'barbar' 6 C4 f4 b+ d! ?# t3 B8 U0 z3 o

6 [4 O5 j8 g% T8 J+ z+ n& Psubstring_index(str,delim,count)   
! k) G1 J9 W. O# O* }5 t返回从字符串str的第count个出现的分隔符delim之后的子串
; e' ^* M/ `. I* Y" ^9 q. t. m(count为正数时返回左端,否则返回右端子串)  
7 c% a- M$ ]' ^, ]% C& w6 \' omysql> select substring_index('www.mysql.com', '.', 2);  
; x, v- p  f, C1 M; q  -> 'www.mysql'
2 C( _& Y5 X6 G& w) Wmysql> select substring_index('www.mysql.com', '.', -2);  . y. ?7 S( \  n3 g
  -> 'mysql.com'
- g& U3 v4 E% X/ X
, |7 s! D( y3 h1 J# Oltrim(str)   ) U; M5 Q. t" T: [: ~& C6 W/ l
返回删除了左空格的字符串str  ) ^9 ~3 j5 A! E- z) H# B6 H) e8 G
mysql> select ltrim('  barbar');  8 X  R4 P0 [: z8 P& `, s
  -> 'barbar'
" ^- \5 {, i: I) D6 ^( W & ^1 Q+ h% D2 v0 d
rtrim(str)   
5 z; d% D* I  y' @$ R$ j/ z4 B( e9 S返回删除了右空格的字符串str  ; m4 n) H7 p# Q+ ^
mysql> select rtrim('barbar   ');  , w9 y' p1 c0 m0 N0 U0 q' }6 Z; R
  -> 'barbar' % w3 f1 @% K$ U
! A7 ~/ v. c! [$ d5 w- y7 i" _& K( Q" B
trim([[both | leading | trailing] [remstr] from] str)  
& `+ l& |$ ^% H. r% A返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
6 w$ v  y% y# Bmysql> select trim('  bar   ');  ' \: E: v7 D  b
  -> 'bar' 0 _8 j" H; H+ ?
mysql> select trim(leading 'x' from 'xxxbarxxx');  7 a% O& ?! X  P! a) R
  -> 'barxxx'
" c$ Q3 D& V; D6 j6 |8 Amysql> select trim(both 'x' from 'xxxbarxxx');  
  {! C  k6 o$ O. T  -> 'bar' 7 o  u( D! Z: \0 A( ?. g, q
mysql> select trim(trailing 'xyz' from 'barxxyz');  
% U7 l1 L' B6 a4 u# u+ s5 e  -> 'barx'
. u7 x; x+ b) I7 G : D8 q6 X. W) Y7 P5 V! G9 j# q0 f
soundex(str)   - Y! X% E& y( Q! d
返回str的一个同音字符串(听起来“大致相同”字符串有相同的/ U( q* T" A4 \4 ~! R9 Y" H
同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  
0 U0 w! }4 Z  f. Bmysql> select soundex('hello');  $ b( X3 n; C# y+ Y- m2 E
  -> 'h400'
) C, H7 L% E& K) ^mysql> select soundex('quadratically');  ) c" `! C, a, t
  -> 'q36324'
' v. D5 g, ^; V% K- J   
2 G% k  b8 D6 F2 S4 f4 a; ^2 Vspace(n)   
( H$ k1 W5 k  K3 I* D" s: a9 p返回由n个空格字符组成的一个字符串  4 m: d. P' u. b: U3 {
mysql> select space(6);  * i: W: y0 _/ `4 l  C! Q9 q& Y0 ]* @
  -> '      '
& T; i% }  T( K& q: {* U  ^     n: `6 v- U9 `% b& x6 V
replace(str,from_str,to_str)   ) n, y, p2 S  G7 T# C3 ~
用字符串to_str替换字符串str中的子串from_str并返回  
' O6 @5 N) ?) P  Cmysql> select replace('www.mysql.com', 'w', 'ww');  
8 U2 g5 I+ q, I8 S  -> 'wwwwww.mysql.com' 5 A! q% w+ K; N+ W- k. `4 O
' i7 M4 q$ E2 G
repeat(str,count)  
2 _, k! j5 g9 {1 B& F, c返回由count个字符串str连成的一个字符串(任何参数为null时
8 a( C7 P+ q" w- x: e4 q8 s返回null,count<=0时返回一个空字符串)  & v, y9 i4 V& [% b9 x- o  A
mysql> select repeat('mysql', 3);  $ K$ r# ~5 P% o" o, X8 s% t1 Y
  -> 'mysqlmysqlmysql' ' p. F1 m( c) t# O0 ~, B; L5 @" U
   ! `$ c" b% g( B9 u3 V+ S1 K
reverse(str)   ' o3 K8 R7 L# t0 B0 R2 A
颠倒字符串str的字符顺序并返回  + z, E2 O) O* X/ ?1 y. G3 I3 N. }
mysql> select reverse('abc');  2 Z  \2 s. M* z
  -> 'cba' # g: _; }3 I% a2 g8 h$ A

% O1 a( ]8 A2 C8 x0 rinsert(str,pos,len,newstr)   
4 i; _% K5 J" e! t2 U3 v把字符串str由位置pos起len个字符长的子串替换为字符串9 h& ~, ]$ N9 Q) ?# B/ X
newstr并返回  7 ^2 [$ q8 O. [# s
mysql> select insert('quadratic', 3, 4, 'what');  % W$ C' F2 ]% `4 q( y2 ~
  -> 'quwhattic' 6 n' U' G3 J1 @( ^* I% G

: C, O8 v% l( [8 }4 ?# qelt(n,str1,str2,str3,...)   2 O% v" @6 n7 p% {9 T+ a% @
返回第n个字符串(n小于1或大于参数个数返回null)  ( ^  _; I8 \! I. f
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  ; E6 R# Z! W1 T0 @, R# F
  -> 'ej' : Q+ a; `* W. v5 J
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  ) N" P+ s1 C1 n* m' |5 [
  -> 'foo' 9 Q2 ]  F- z/ |! |
7 f: ]% H; |% [/ W
field(str,str1,str2,str3,...)   8 j" M1 g$ L: N2 @
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  6 ]& ?8 z& y% ]& Q3 n; D5 I
mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',, ]8 u$ ~  y) k. r0 A$ v
'foo');  . a5 u  B/ K! w
  -> 2  
3 v; W% o& R4 i) P2 vmysql> select field('fo', 'hej', 'ej', 'heja', 'hej',6 M- L2 h5 N8 H) K! n
'foo');  
8 u5 [5 U. j5 {& G. o  -> 0  ' N* T5 K2 S6 H8 K
9 z: ]2 ^, O7 E
find_in_set(str,strlist)     R. }; @2 \5 E3 T' Y
返回str在字符串集strlist中的序号(任何参数是null则返回$ p+ \0 n  Y% s+ @
null,如果str没找到返回0,参数1包含","时工作异常)  
& y% Q% b- N1 ~& Mmysql> select find_in_set('b','a,b,c,d');  # H; S2 z* z8 k5 ?" {; l
  -> 2  
0 `7 }) I; D% W; E   " e2 l, b0 ^1 }+ x
make_set(bits,str1,str2,...)  
8 I, |# O- H+ ^7 r4 T2 ^把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
1 @$ c# P: v. X& S% H( u位置的字串选入字串集并返回(null串不添加到结果中)  
7 l# A3 J8 R" V1 T0 T  tmysql> select make_set(1,'a','b','c');  0 Z0 w7 t3 h7 h( h6 F7 V
  -> 'a'
0 }1 s9 i: t1 q, T( g9 Amysql> select make_set(1 | 4,'hello','nice','world');  
/ T4 e& x/ v3 z* h6 e  -> 'hello,world' 3 `, r/ F  m! f0 p! i
mysql> select make_set(0,'a','b','c');  & q6 C7 q- P6 T- P" S$ _& r8 {/ x
  -> ''   Y% q9 Q4 Y* k) @- m6 Q

4 W2 E7 A8 u% i0 _2 Zexport_set(bits,on,off,[separator,[number_of_bits]])   
, e: a* i; l4 o; k9 p! H按bits排列字符串集,只有当位等于1时插入字串on,否则插入
- w6 _! C7 s6 `off(separator默认值",",number_of_bits参数使用时长度不足补0
5 _& u4 T- l" ?7 ?而过长截断)   
& C5 O7 \# Q4 Wmysql> select export_set(5,'y','n',',',4)  ' X* q- a) Q7 o
  -> y,n,y,n   
% Y4 ^5 P/ K+ a! u. P( H; e, W
# z, c7 `/ s3 u3 M; K! P, ]lcase(str)  
9 }$ A) `. C$ d/ u1 B, E! Llower(str)   " b6 z* t6 A8 z5 p/ R' g1 i
返回小写的字符串str  1 x, y; d& f3 [, i) E
mysql> select lcase('quadratically');  " v' l) u0 F# D6 Z  Q
  -> 'quadratically'
+ M: k/ s) ], E+ f5 S3 V$ W   
- w6 _3 o3 }  u' v$ C* M  n$ Gucase(str)   + E9 R& Q) i$ `6 A* q7 c* w
upper(str)   / W3 F1 B1 p/ W7 I* Z/ }4 e
返回大写的字符串str  * B( k8 m* U1 ?( p- I  @$ H
mysql> select ucase('quadratically');  : [! x8 l. {# h1 r
  -> 'quadratically'
$ r% k# w7 K9 P/ Y: a3 S. v5 R: r
/ t0 a0 X. x& O* X* Q7 T% g- cload_file(file_name)   
. T! U9 a+ ~4 A& H# R读入文件并且作为一个字符串返回文件内容(文件无法找到,路径% e5 h8 c( G4 l9 |. m( r$ {# I
不完整,没有权限,长度大于max_allowed_packet会返回null)  
3 G" J" A: P1 S( O9 \mysql> update table_name set blob_column=load_file
  A4 w/ u1 M" u1 k2 }0 ?: T2 ~- I("/tmp/picture") where id=1;  6 O3 C3 X3 u* T" ^+ w5 W! P

1 n7 h0 s; r; N2、数学函数1 N: `- D: Q/ x2 D' Q0 X
abs(n)
* A; x6 ]" X. `. U6 H, B' P返回n的绝对值  
3 V- T6 D- Y7 c3 ~5 _& v/ n( {: Imysql> select abs(2);   
, E- }& \. [  p) S  -> 2    . _9 J+ \1 Q. L5 \. J1 J& Q  l
mysql> select abs(-32);   
, b9 E8 \/ Y. o9 Y: _2 [  -> 32    ; d+ i" L, @2 F5 l3 k2 O
   - Q% c  i$ ]1 q. m! Q2 E" U* g
sign(n)  
7 _- o) t" f) p0 Z& P返回参数的符号(为-1、0或1)  
3 }0 a% [" {- p. `& Y- ^mysql> select sign(-32);    3 {' u' C5 R6 T( f; e/ ~9 D
  -> -1   
9 P9 ~' r7 D/ O. `0 Amysql> select sign(0);    8 k; ^: l! X2 c5 L: @5 n8 \6 E: l. B
  -> 0    - z$ K: o, o9 B8 f
mysql> select sign(234);    7 G: K, e! P, P5 h
  -> 1    9 l/ ~/ @2 x7 f: A; _

& g. u8 E, s! W  Y- g: omod(n,m)    / b# l. B4 a% |: n) f5 O2 H
取模运算,返回n被m除的余数(同%操作符)   
. y- x. W6 b& x0 e' `9 x9 Y" {mysql> select mod(234, 10);    " I8 x8 C4 z; Z
  -> 4    0 B' f1 m7 x8 T2 ?' r! D( K( ?
mysql> select 234 % 10;   
+ ]  s+ A! x; |2 E3 ]$ U- Q  -> 4    ' t5 V: D- Q; p/ m9 ]. G# u6 w( \
mysql> select mod(29,9);   
9 R+ A! H& H. H. B+ s* Z  -> 2   
2 C, J( t4 A/ ?4 T $ U- Y, P) M' q6 v, v, _
floor(n)  
' x2 m/ [# }  r6 P9 p" x返回不大于n的最大整数值  
2 P4 Z# P" e% F0 G' gmysql> select floor(1.23);   
) }5 P( T; o; n, V( g" K/ l  -> 1    ) ?5 z3 O0 s9 `. ?# e! |0 w, [& Z! V
mysql> select floor(-1.23);    8 e7 X$ ~$ `0 Z, U5 g$ b) d
  -> -2    # P! G5 d7 I0 ^6 t

# J9 n3 I: l' j' A. wceiling(n)  $ G+ [7 M% x$ n" P, w2 ^
返回不小于n的最小整数值  ) A- L7 ^- B5 p) S  c
mysql> select ceiling(1.23);    # o$ S& ~, Y, k# D0 Y
  -> 2    5 q1 A! a( p5 S7 P+ u  @" m
mysql> select ceiling(-1.23);   
0 E) h: Y% `0 V3 ~0 R( H' A; q  -> -1   
$ V' f$ V# s+ l
, s# {9 F) j+ c9 Cround(n,d)  
% V7 Q  ~9 }8 T( m4 _" l: T6 q2 E返回n的四舍五入值,保留d位小数(d的默认值为0)  
. c) d; d+ m# t& T) t& gmysql> select round(-1.23);    ' @, ~! z2 u* i9 r
  -> -1   
; P$ g& l$ U- Z* Y% a% [+ umysql> select round(-1.58);   
) L: O2 `' z% r. f. H, Y0 p& @* i  -> -2    % \8 {3 b  Z) N4 p! ~! i# A- L4 g
mysql> select round(1.58);   
4 z% M8 q* _! X  k& a( [4 i/ C  -> 2   
4 H9 K9 s) Y0 R; Z6 f" amysql> select round(1.298, 1);   
$ J1 f& l$ \+ [2 B) ^  -> 1.3   
3 v9 L$ Q3 f3 Y; W! [mysql> select round(1.298, 0);      V% _, I8 h$ {- W, [% m* ^
  -> 1    - i: F& p' t+ H6 E- F
* O# t. P; t6 Z1 S
exp(n)  
+ @, L, |. Y& U返回值e的n次方(自然对数的底)  3 j1 U% g2 v7 X: i
mysql> select exp(2);   
! k" r0 ~: Y$ [- r# a7 P  -> 7.389056   
: J- {! w. d  R7 `4 |! S6 qmysql> select exp(-2);   
- `- g) N4 \' g" B% ^7 V8 l  -> 0.135335   
8 ^# F! A$ E/ X3 U
, F5 z! u9 D4 L: O- H# M0 ylog(n)  
0 o% E+ l3 H. P" v3 S3 `返回n的自然对数  ) r; o5 G5 U1 y9 ~
mysql> select log(2);    ) X, d* \# x. g9 U! u
  -> 0.693147   
. t7 o/ Y# i& c4 X) B, e) ]; kmysql> select log(-2);    - |! s- t3 f1 w( O
  -> null    7 f. s- P5 s* q, m' s) _

( |) E  \5 U. ~4 E3 U% h' h  tlog10(n)  
7 J. \  P9 S, }返回n以10为底的对数  ! ~9 B  I! _, w7 S5 D/ r; x4 `
mysql> select log10(2);    % x. Q6 u4 O3 o
  -> 0.301030    : d3 l- q( s$ B1 u/ k$ z1 l# L
mysql> select log10(100);   
' ~% G/ H0 m* V; K) b  -> 2.000000    5 j5 x6 P# S1 _  q1 v9 ?3 y
mysql> select log10(-100);   
; e8 T9 a2 ?$ i& v7 N  -> null    . S+ n. j+ B3 M( U

+ {9 t( f: v6 ^# F5 c. Q+ W, cpow(x,y)    , a3 L+ i" q6 b% S# |
power(x,y)    9 w7 D/ I& x- \0 q+ e/ f
 返回值x的y次幂  
' g( a, O1 A. V3 ]& z* _1 Bmysql> select pow(2,2);   
/ W  |4 w. a8 _" [2 o- |$ S* g  -> 4.000000    ! p) L8 ^! N  H; i# h3 L! a
mysql> select pow(2,-2);   
- y* _5 k  f7 l$ H' _. e. {  -> 0.250000  
/ I: i6 i% E# A: H& T! z: g
: o: F: ^2 b5 J) h6 @sqrt(n)  
& a! l0 S9 L1 g* Q 返回非负数n的平方根  
7 }6 e! N" Y" l/ n+ w; lmysql> select sqrt(4);    , _/ Y' U2 ~, `& ]% R" }
  -> 2.000000   
% A6 M0 R6 c# Y! `: zmysql> select sqrt(20);   
& N# ]5 y/ e- p; V& b  z  -> 4.472136   
1 N9 [1 c' s1 I% @3 Z9 n
* O6 f: p' }- d! z/ Zpi()    ( g( B: ?& z; Z+ i, r8 t
 返回圆周率   
9 k6 \0 f+ S% v9 Lmysql> select pi();    4 `+ [: G/ p' w0 R3 O
  -> 3.141593   
, o3 c! U& Y/ I
4 @2 Y1 H2 {, V$ x. Y% Fcos(n)  * {' J" [8 p: N+ X* E6 A4 s
 返回n的余弦值  % ]- m8 q7 o- F! |5 e7 q  i
mysql> select cos(pi());  ! O* f4 C- @" u% |3 Y
  -> -1.000000    7 N/ Y$ v% [* p8 [& W

7 k' s; G3 {5 l" Qsin(n)  + J1 ?9 c5 X3 c$ j- D; f4 P  Z
 返回n的正弦值   ; [& I% b7 ]3 ^) S& l/ h+ J
mysql> select sin(pi());    # [/ ~. t) M" m8 _/ S8 q
  -> 0.000000    3 O% @# [3 T& @3 U9 }/ y
- W) B  \) _% b
tan(n)  
' F+ V2 Y* @( h, K返回n的正切值  0 [. P9 z2 `8 m+ K8 R. k! e+ ^+ r
mysql> select tan(pi()+1);   
+ h2 z/ d$ T7 B/ t. D  -> 1.557408    ' i. g3 s; K- D3 R! D" l9 y

1 |8 ]- w! H6 P! h' ?) oacos(n)  6 }6 q7 @( X$ c4 }  p7 Z
 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  
: r6 Q5 i4 a# Y* H$ x+ lmysql> select acos(1);    7 v5 j# O: c( ?) J
  -> 0.000000   
1 h* Y9 I7 M& ]2 M5 O6 x# bmysql> select acos(1.0001);   
. Z# ?6 i) ]8 D7 _4 Q9 M" t  -> null   
5 A* }! X$ J. r1 I: imysql> select acos(0);    ! P4 Z) g/ n" A+ R
  -> 1.570796   
% M+ Y$ a2 L. N" X$ |* z( M9 ^ + w4 @6 t( p) \- E3 y) u
asin(n)  1 ^1 ~) v8 v5 w$ ^3 J" l" E
返回n反正弦值  
' |5 q9 [- P+ e* `; E8 C& umysql> select asin(0.2);    * \: i; s' d6 ?0 H* \, |
  -> 0.201358   
. a8 W4 w2 m8 hmysql> select asin('foo');    ( m9 P' O! k" D
  -> 0.000000    ( E. j3 H  g, w

1 z: J' k! k" t% G6 catan(n)  - j! N' N% D. }/ a; [9 X
返回n的反正切值  : D% c3 A1 P( y. d& X) \) u+ w
mysql> select atan(2);    # J. x0 h! E! u- i6 l; ]5 {+ K
  -> 1.107149   
: _' O4 B- ^8 @: b% ~" V  ~6 b8 A  Amysql> select atan(-2);    7 i. K; I% F; d: b- D1 z/ J) x
  -> -1.107149    ' X, g4 q$ S& H. D6 D; a' F
atan2(x,y)   
9 T; q$ |4 B' h1 F* k* u7 @+ ~ 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  0 e+ `3 O  B: o& t8 Y
mysql> select atan(-2,2);   
' o! K; P' a/ A% p: j  -> -0.785398   
" P: ?1 L: I! {$ W1 K1 [, Q* Z* Rmysql> select atan(pi(),0);    3 F( g  Z+ i( S0 w' _9 q
  -> 1.570796   
4 @9 S4 ]- Z; n/ e. \; w9 ]2 J- p
/ s/ {9 i, h& y' `' h3 Zcot(n)  3 c, H6 V% ]' x
返回x的余切  / _# d& P& u) J5 a. K
mysql> select cot(12);   
& C/ z1 `3 E" g3 l2 C3 {9 R- Y+ I  -> -1.57267341   
  n- H7 i7 H2 Z1 fmysql> select cot(0);    ! M' C! k/ n. i8 x6 d+ q4 E! x, M
  -> null    6 t5 ~2 L9 X1 J+ j: a$ J$ c! O
7 C  k7 Q3 W9 w6 a
rand()  
/ [6 z7 N/ \2 e6 |3 u! J) l5 c1 z9 [: Nrand(n)    2 f$ e. {/ Q+ n6 }, K' e" S0 E4 ^8 I
返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值) 2 ~. g2 b8 W5 E$ ~

( D9 y! i1 G8 c5 L( N( F5 e1 nmysql> select rand();    7 {$ y4 i3 Q6 ^. e, u
  -> 0.5925    5 C/ X! Y; {, q1 F4 a" ?( X
mysql> select rand(20);   
8 v. P$ U3 ~' w4 ^6 P7 I  -> 0.1811   
; @0 j; Q# ]& o5 h, F0 \" V( ^mysql> select rand(20);    3 W( v( E" X6 s' O) L) M. {
  -> 0.1811    : O' j* ?7 N. W! K
mysql> select rand();   
5 q8 [5 M) z2 B) Q) v" h) F  -> 0.2079   
( x( K3 B/ C& }! e. j( G: dmysql> select rand();   
# y5 O% ~" l7 \  -> 0.7888    : s' h$ h$ U- G( [, c4 r
2 T8 d" D- w, z: i, A
degrees(n)  1 `$ \) ]( W$ `  `
把n从弧度变换为角度并返回  
- H+ W* Q, {$ G* xmysql> select degrees(pi());    - a4 w* c! j* U2 w, F* V+ C5 r
  -> 180.000000    - u7 K7 e- Q; f; ^& A
( \6 y; `2 @  ~" R3 p  R
radians(n) 1 [6 i. a0 l/ I. w# D
把n从角度变换为弧度并返回   & O' ~2 k7 D6 _5 W, @
mysql> select radians(90);   
' v6 A  W2 H  C- m: e! x( Z  -> 1.570796    * k  G6 P; {" r& |- f6 F
+ E2 U, ?; G1 v- `! g$ x
truncate(n,d)    ) x! e0 J) j" i) d$ @
保留数字n的d位小数并返回  . G! G+ j" B4 B. a& i
mysql> select truncate(1.223,1);   
' c' B6 H, s: s2 T8 [- a1 T( r  -> 1.2   
& a9 r* `: i( H/ p9 b" @2 Zmysql> select truncate(1.999,1);   
7 j; L2 H4 Q  P4 w! W' P  -> 1.9   
7 \. ?+ d' y. f& Zmysql> select truncate(1.999,0);    1 ~5 ?; g! [, N) ?- t
  -> 1   
+ P2 E  y- N" H
$ j; b, H  d; H8 U8 k( U9 i7 Pleast(x,y,...)   
% t! }+ a  Z. r7 G; D9 ?) _返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
9 F0 m) M! y' X7 L& O- F1 t2 ^mysql> select least(2,0);   
+ o! W' ]1 h, c0 t- E( X8 H  -> 0    / C/ R3 ~# ?$ R
mysql> select least(34.0,3.0,5.0,767.0);   
- O( r  N; e; O/ G; s+ Z  -> 3.0   
: x8 N; }' c. ~4 Qmysql> select least("b","a","c");    ! E) ^% S9 |) ^* U4 _* v7 R3 m! {
  -> "a"   
# d4 a+ ~; J  `6 R) g ; Q) o& v7 _! u# c  @
greatest(x,y,...)    ; c' @! A- I7 L
返回最大值(其余同least())  3 a! v9 j* s% ~3 c% _3 N
mysql> select greatest(2,0);    : `- `. Y5 P3 w: A
  -> 2   
7 w% Q" h# q, E0 J# R- V0 z( ]mysql> select greatest(34.0,3.0,5.0,767.0);    ) o- F. X, \2 i; ]7 Z
  -> 767.0    / i* k+ d, ]# F. G7 {1 C# M
mysql> select greatest("b","a","c");    6 G1 F" `& I1 ~6 b* d
  -> "c"     
3 j9 l5 B+ W, F- z) n( [3 G/ P( Y$ @0 M% S8 z$ c
3、时期时间函数 6 T1 R0 y4 ~4 s, K" }' C1 c- ?
dayofweek(date)   
* F% d8 ]/ B9 u/ i5 E返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
8 ]2 O! t6 V0 |. V+ ]mysql> select dayofweek('1998-02-03');      ~5 E# Q6 H* k5 q7 y8 Z+ H6 o; T
  -> 3    ) @$ e+ c1 l- G; h  h
. O. v) m4 n8 l) c5 H0 R% m! z
weekday(date)   
4 J6 V! a9 o0 e" M9 S6 g3 S返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 " Z9 O* b5 t$ L
  
8 T; j# w/ \, F  bmysql> select weekday('1997-10-04 22:23:00');    + A! _$ z/ r  W' w1 c$ `
  -> 5   
) l9 I# u) T; y+ A/ ]7 z: F( Tmysql> select weekday('1997-11-05');    , m- f/ O5 H* M+ f' K' w! l
  -> 2   
% W% e; }5 e" _  \ 7 }$ x9 K/ o2 C* p
dayofmonth(date)    
2 U' g0 q* ~' `5 V' {3 i返回date是一月中的第几日(在1到31范围内)    / j9 D' }! ?/ V; q" f* T3 y  F
mysql> select dayofmonth('1998-02-03');   
) C4 K+ M/ T1 j  -> 3   
4 d# h# X0 I3 p# u; s 9 Q6 _+ q/ e! [0 D# c: Z! u5 Y
dayofyear(date)   
0 o4 `( \7 A* N9 _* R: q返回date是一年中的第几日(在1到366范围内)    6 E6 E1 D7 O& h1 Q# A# x
mysql> select dayofyear('1998-02-03');    . M6 o( M( G% _% m3 k3 p
  -> 34    # [% E" {( V+ n9 P8 `; X! ]4 e

+ ^$ }; a- D4 }! n+ Amonth(date)   
  I% Z6 U; \9 A' Z1 E返回date中的月份数值   
3 ?& M% @1 v2 l. [1 z/ }) Lmysql> select month('1998-02-03');   
* f6 r9 @% {2 c( s  -> 2    4 I5 f: j0 X- a( K# Q' o

0 |: Q: n; C$ ~2 M" ~4 Q" [1 idayname(date)    ' P; D$ l- v# S& V- s4 P
返回date是星期几(按英文名返回)  7 ~3 v: l0 X) g( c! J1 z
mysql> select dayname("1998-02-05");    6 o  ^8 J- Z6 e3 }7 F) k
  -> 'thursday'    + [$ I6 W/ I) r  B6 K! w" i

* S4 E* R9 o7 ~/ `* g8 Hmonthname(date)    
! h7 p; v1 R; K  g' f返回date是几月(按英文名返回)  
8 |. y  n5 S" |. t# z( Ymysql> select monthname("1998-02-05");   
8 w- i$ H# T' s# }; u  -> 'february'    . n' o% i2 t4 R" f% P! W4 ]9 o2 y

0 ]' O9 n' R4 r  Tquarter(date)   
- y! L0 F/ x2 V) J7 z( u. \返回date是一年的第几个季度   
9 L2 l2 `; ?8 N5 U7 Qmysql> select quarter('98-04-01');   
, p2 Y' a) \/ Y) Z3 Z% q0 M  -> 2   
+ W# b0 l, k$ E
4 x8 T- |* H4 w( C( ?week(date,first)   
4 p/ v2 A1 ^2 V4 b返回date是一年的第几周(first默认值0,first取值1表示周一是
4 v% B$ V0 h3 `: R7 p- r  S周的开始,0从周日开始)  
" f. C/ m) u  q; z5 n, n3 omysql> select week('1998-02-20');    ( j8 F' e; j4 [0 _! j% R" n- E
  -> 7   
. m4 n: G# e4 i. F! X4 |mysql> select week('1998-02-20',0);   
5 @1 n/ W& l* e4 c" j  -> 7    9 [3 |7 a& u2 m% ?
mysql> select week('1998-02-20',1);   
& j( G1 b% D, Y. g% }( b: P& o" u  -> 8   
; T' m+ }! P, O8 J! @9 I/ ?
" `% v. v$ V' _year(date)    ) y+ j7 h+ f% C; w
返回date的年份(范围在1000到9999)   
) O8 f- U2 S& B( R) Mmysql> select year('98-02-03');   
  |( L2 r$ Z! Z6 [& F: y3 g5 V9 d  -> 1998      \8 `) R+ i; N( K

* Y, U4 V# ~0 [' u9 G) F9 n1 Lhour(time)    
# b0 B' @/ i0 W0 b返回time的小时数(范围是0到23)   
- Z% s  ?# q2 q: omysql> select hour('10:05:03');    ( x0 e6 P& [7 F
  -> 10    9 i2 B9 ~  _/ e! E
& \' b% n- E, i; L* F# G8 _' n& k+ x
minute(time)    $ A1 P" p1 u( Q
返回time的分钟数(范围是0到59)   
1 Z# C: B. h; B8 ^/ U. ?5 u2 z0 f+ emysql> select minute('98-02-03 10:05:03');    / {# {, {  O. O* Q
  -> 5    9 ^* r  }6 ~& |  }1 e) D! B/ _- p, d5 j! H
, j3 T6 g" o1 F1 p" _3 v* O
second(time)    ; u0 b# O) a1 |. Y7 b7 ?: n+ C" C
返回time的秒数(范围是0到59)   
! F7 y) \, D- u! V' ~. Zmysql> select second('10:05:03');    8 Q# a! i; N5 X( X
  -> 3   
9 ^3 R! @% S+ }8 X: _! D 1 D' N+ \* V3 D0 V1 B
period_add(p,n)   
8 c0 o- E" F% I, Y& A增加n个月到时期p并返回(p的格式yymm或yyyymm)   
+ T0 P. L, O* \$ L; [mysql> select period_add(9801,2);   
) e: {' b7 b/ F. U" ]; u  -> 199803   
; u9 N% A) o  F+ X0 u 7 `% }2 p! H! g! a6 ^* q! W
period_diff(p1,p2)   
, J" ~9 J7 @/ A6 \返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  
9 `1 _7 t: T8 D* ^mysql> select period_diff(9802,199703);   
. ^6 e& J. `4 q; }" D* X& a  -> 11   
0 c5 Y- y/ p, Q3 X$ j. C) U ' n4 V! G- L( _% L
date_add(date,interval expr type)  " p& R! ~) ]; I, K; j
date_sub(date,interval expr type)      Y; S5 ?  z# d% q
adddate(date,interval expr type)   
1 n" r7 j. N7 _+ S9 g7 `subdate(date,interval expr type)  " y  H9 }  ^  l0 H
对日期时间进行加减法运算  
* }8 q6 ?& n- s(adddate()和subdate()是date_add()和date_sub()的同义词,也2 j  N' l% X- M5 p7 U
可以用运算符+和-而不是函数  : @; ]' v0 }1 b' i! o, {
date是一个datetime或date值,expr对date进行加减法的一个表
/ a7 G+ r' A, p; \% f2 r达式字符串type指明表达式expr应该如何被解释  
6 |$ L; R5 H* @ [type值 含义 期望的expr格式]:  
  \/ U* f. B$ q2 L+ o9 A2 A second 秒 seconds   
6 a( k+ z5 ^, q2 m3 U+ o minute 分钟 minutes   
$ U$ x; M( s" N+ @9 S5 a) i hour 时间 hours    6 Y2 L2 D7 D% o' z& K# m
 day 天 days   
7 R& Q6 d: ]. R( }* D month 月 months    , {0 C; }8 M* k7 S: P
 year 年 years    ( R# g- M3 E+ ]
 minute_second 分钟和秒 "minutes:seconds"    9 O; U2 X* U) F$ `
 hour_minute 小时和分钟 "hours:minutes"   
# F  L2 _" @; o' H4 \: S: d day_hour 天和小时 "days hours"    , z, \. T8 v' @* Q7 Y  R1 d
 year_month 年和月 "years-months"   
) `: W- ~; r0 Z2 U+ i% b% c hour_second 小时, 分钟, "hours:minutes:seconds"    . K* B9 d" t- |5 O$ q
 day_minute 天, 小时, 分钟 "days hours:minutes"   
9 f' Z1 q/ \6 I day_second 天, 小时, 分钟, 秒 "days
( g: B. ^0 ^! q1 N$ j3 E1 Shours:minutes:seconds"
0 C- X/ O, U/ v* x. e& P% a expr中允许任何标点做分隔符,如果所有是date值时结果是一个' p6 c& F7 g" a% j5 B5 ]4 m
date值,否则结果是一个datetime值)  1 n  ~, d1 U1 K. _
 如果type关键词不完整,则mysql从右端取值,day_second因为缺9 r, o/ K2 P6 W; X5 d/ {% |
少小时分钟等于minute_second)  
' ^6 H) [0 d1 o. W" K7 W 如果增加month、year_month或year,天数大于结果月份的最大天/ E) }  c, ~) z
数则使用最大天数)   
* p+ z7 ]$ g: D4 Amysql> select "1997-12-31 23:59:59" + interval 1 second;  
3 u" W2 j) {, I4 I0 O ' q0 [* r5 p9 ]% p- G& {
  -> 1998-01-01 00:00:00    2 r! |2 i; l& H5 n1 g. M" P
mysql> select interval 1 day + "1997-12-31";   
5 G8 r4 Y. H7 k+ E9 o  -> 1998-01-01   
$ M. k7 o( c. v) m7 Z  Rmysql> select "1998-01-01" - interval 1 second;    4 a$ s  J' I# D6 r: j
  -> 1997-12-31 23:59:59   
. d  w# i" \5 R% u8 Q$ {3 X& Kmysql> select date_add("1997-12-31 23:59:59",interval 14 C  l5 c- x- f1 h) m$ v
second);   
, A& \& @& d- T" i. E" w9 S& T  -> 1998-01-01 00:00:00   
/ m8 f% d. m2 g6 k, c: amysql> select date_add("1997-12-31 23:59:59",interval 11 ]3 y0 _- p( h& i
day);   
! J  ^, Q1 U6 f( k6 d8 o  -> 1998-01-01 23:59:59   
0 p  d# K; f$ ymysql> select date_add("1997-12-31 23:59:59",interval
# A( v2 R9 ~. K( I9 R/ H" D! P1 k"1:1" minute_second);   
# m& L# ~& |6 W8 n* d  R" G; K  -> 1998-01-01 00:01:00   
! J( B4 ^7 X# n# s' J+ n: E- hmysql> select date_sub("1998-01-01 00:00:00",interval "1
8 f* s8 F; t3 L9 A# d  T1:1:1" day_second);    7 W: ]$ @! K% G4 S  r/ M
  -> 1997-12-30 22:58:59    9 _' G9 T- H8 b+ f/ |1 F
mysql> select date_add("1998-01-01 00:00:00", interval "-1+ ^  Y$ K: `3 K5 I
10" day_hour);  9 N9 R- R6 K% T* c4 b- M
  -> 1997-12-30 14:00:00   
2 F4 z2 @1 ~$ w+ S; o, J( ]mysql> select date_sub("1998-01-02", interval 31 day);    1 d1 ]. c0 F4 }, f5 y5 ]
  -> 1997-12-02   
9 k# M0 |+ I. F; n2 }mysql> select extract(year from "1999-07-02");    # ?4 h  r# H  i6 B' V! _
  -> 1999   
3 N  o, I2 Z; W; |. b5 ^mysql> select extract(year_month from "1999-07-02& m5 Y4 w8 ^  |; U7 r7 h
01:02:03");    & ^% O5 C" t% n- X/ S
  -> 199907   
) [# a7 ^# G* l( o! m" P' i- |- Rmysql> select extract(day_minute from "1999-07-027 h, ~, h4 `/ H9 t, ]& H9 y
01:02:03");    # z6 X, s$ h/ J( w% ]
  -> 20102    6 T! q) N2 h5 ?0 {# ]& b5 Y
% z! Q- |2 G; U3 l
to_days(date)   
/ e& Y* L9 E& {2 p3 x返回日期date是西元0年至今多少天(不计算1582年以前)  . ?& _+ W6 H* ~# H2 D
mysql> select to_days(950501);    - D8 c2 y( C1 X) R9 E
  -> 728779   
9 J' a/ Z; M& o- B# t5 @4 Hmysql> select to_days('1997-10-07');    / W3 y. }8 b+ V! p+ `, ]
  -> 729669    5 b2 l( E# J# Q: y/ V+ W

  F- Z! j! T! K9 j- ifrom_days(n)    / n5 D4 j4 s6 j2 e! r8 l: r
 给出西元0年至今多少天返回date值(不计算1582年以前)   
' }& \# A' @. k) n* Zmysql> select from_days(729669);    5 V# ~6 r; p/ X8 {) A& Z
  -> '1997-10-07'   
: ^1 w* ^4 \' D7 S . F) g8 w* y7 n0 G, B* Z
date_format(date,format)   
0 t" G; K* m* ~ 根据format字符串格式化date值  
# R/ C9 A& D+ W/ M! k (在format字符串中可用标志符:  : Y4 e* C  h9 o! G5 D# j
 %m 月名字(january……december)    + f1 q# V& i" b0 j* w
 %w 星期名字(sunday……saturday)    / D' q9 {0 ]- i6 v6 T! O5 ~: s
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)   
. j/ p9 l9 R" l; s %y 年, 数字, 4 位    - o# v! J# q0 O  K+ D9 X, h+ Q
 %y 年, 数字, 2 位    ) i: E2 H! s. I4 @; k- m( L
 %a 缩写的星期名字(sun……sat)   
( t$ e  c: q& `& }$ ?( w4 I% N %d 月份中的天数, 数字(00……31)   
$ Z  k$ y- s9 S# m& h %e 月份中的天数, 数字(0……31)    . n! f$ }4 a: `/ T
 %m 月, 数字(01……12)    $ D, n9 i, s- X! D1 ~( v. n# O
 %c 月, 数字(1……12)    ; r% ]3 _% \$ s! v
 %b 缩写的月份名字(jan……dec)   
; k! W) \0 ?# T" U5 n! r %j 一年中的天数(001……366)    5 e9 A" s3 K8 P& Q, n/ n. ^9 U
 %h 小时(00……23)    1 `% G9 l( o' D
 %k 小时(0……23)    1 U: I& L) @/ v, a% |3 ]
 %h 小时(01……12)    * l% `; k7 O  {* J- `; u8 U/ t
 %i 小时(01……12)    + y0 f' Z" @1 u' J" a
 %l 小时(1……12)   
* n& b+ m, Z: }& F %i 分钟, 数字(00……59)   
8 d) E. K2 o5 \ %r 时间,12 小时(hh:mm:ss [ap]m)    $ I" P/ }/ v2 T
 %t 时间,24 小时(hh:mm:ss)    ; T" {/ A9 a, T1 p0 ?& I
 %s 秒(00……59)    " c8 D6 |6 V3 g! W8 S
 %s 秒(00……59)    7 {5 M7 P/ I1 I9 A2 B$ |
 %p am或pm   
. `( Z* b; `" ]# U9 n %w 一个星期中的天数(0=sunday ……6=saturday )    0 D/ G0 w. ?2 y( y1 _" ?
 %u 星期(0……52), 这里星期天是星期的第一天   
: @8 Z1 A+ R2 y# |7 ^3 M %u 星期(0……52), 这里星期一是星期的第一天    ) u$ X4 m7 R3 p+ O5 h
 %% 字符% )  
1 n% F" z, u/ D, emysql> select date_format('1997-10-04 22:23:00','%w %m %) S1 ^4 b. u8 C+ z# s
y');   
5 u7 [. \5 l/ f; i8 e$ ?: b  -> 'saturday october 1997'    5 Z' P. [6 }! d( l; L; w
mysql> select date_format('1997-10-04 22:23:00','%h:%i:%( A6 I2 _& R3 X& `% E" \; g
s');      c" Q) P  J" s
  -> '22:23:00'    % p2 K8 `  b0 D) g3 s# c
mysql> select date_format('1997-10-04 22:23:00','%d %y %a
2 o% T2 l6 m2 x3 u+ s* Q% ?%d %m %b %j');   
6 d! N; [! N% N* u/ G7 V  _  -> '4th 97 sat 04 10 oct 277'   
/ i5 [; P- o; Z9 ^5 e8 Gmysql> select date_format('1997-10-04 22:23:00','%h %k %i
, Q# ]- y' v8 ?( s# R, `6 {%r %t %s %w');   
) u8 t* I, I; i4 o/ R$ R% l  -> '22 22 10 10:23:00 pm 22:23:00 00 6'    : _7 L3 R' r. M2 e2 ~5 J- L. X7 E5 q
( c+ @% e4 j: S& g0 x
time_format(time,format)  
$ f: j- \7 X7 q) y 和date_format()类似,但time_format只处理小时、分钟和秒(其4 j4 g9 f% X: [0 Z- o, ?
余符号产生一个null值或0)  
0 T/ }. A1 Z3 P
7 Y! S0 k- `' H* W$ h9 ?curdate()     3 }8 `: {# l  U" L
current_date()  
' \0 E& i% _7 ?5 C$ E) ~ 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
6 T( u' V. t, \3 ]& _处上下文是字符串或数字)   
& b; F; [$ G  V# C( ?8 M! C. x! d5 Mmysql> select curdate();   
& B% n2 @4 K  r7 h8 F6 d1 d' F  -> '1997-12-15'    , Q' o4 q$ n7 F* C; E! \
mysql> select curdate() + 0;    5 a, s! Z0 @6 v0 U! t8 U
  -> 19971215   
# |9 P# }6 d5 R& H+ X" [" D9 V6 w - C, L  b* s/ B# P
curtime()   
1 h; E  X# ]8 kcurrent_time()  + h+ R, @) h9 l) Z) [
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
. w* R, O# d! C" T2 n) r) Y  Y' [下文是字符串或数字)      
; F/ v$ p0 o6 H" _8 G& T, mmysql> select curtime();    ) w+ Q0 W; [3 m6 ~; ~) r
  -> '23:50:26'   
: a4 j- P& |7 {' `/ f+ hmysql> select curtime() + 0;   
% b1 l6 t8 U6 W  -> 235026   
  x. ^3 n7 ~9 ~$ m2 L4 a
! _0 S# ^' Z* Z3 G3 E6 Dnow()    
4 X9 u0 o1 {$ D) Gsysdate()    , ?. I, }" z1 ~3 ^+ O% k1 s* z4 j- `1 K
current_timestamp()  
' g* r& I/ F8 k: A% K9 ]& I 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期0 |0 y0 G6 |$ x6 Q8 L' N
时间(根据返回值所处上下文是字符串或数字)     & U' U) ]/ B4 m: [
mysql> select now();    $ g1 C9 R. u6 X1 N  q4 P! O: q
  -> '1997-12-15 23:50:26'    " O2 g$ c% N5 {( Z3 t. x1 F9 L5 H& m
mysql> select now() + 0;    / _+ g) F: w5 o* k2 W- |
  -> 19971215235026   
% ~& I3 b% X; K/ O0 q/ l ! J  p+ W& U' C% }
unix_timestamp()   
. a% l" f5 w3 ]$ D; ~unix_timestamp(date)    / g. b" V; Q! x
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
7 L! U& H. [' o) x; e# r数,date默认值为当前时间)  , ]( g: o8 i8 r5 e
mysql> select unix_timestamp();   
( _9 T4 l$ h9 _  -> 882226357    # y" y# ]1 Z" d1 U  z, _  f
mysql> select unix_timestamp('1997-10-04 22:23:00');    ' |: |6 }/ E- M+ w' v4 C
  -> 875996580   
1 N2 {0 R; c) P: x3 L+ { " ^0 U% u6 Y; {9 |
from_unixtime(unix_timestamp)   
# t) r2 |5 d2 U9 p以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的0 C5 b  c8 `( I2 S5 H& ]
值(根据返回值所处上下文是字符串或数字)     8 E1 r3 V" y4 K( H- M" }& V
mysql> select from_unixtime(875996580);    ' e4 G8 h) d) j% J' O
  -> '1997-10-04 22:23:00'   
2 |+ k: t) b4 {; U' Y4 xmysql> select from_unixtime(875996580) + 0;    8 C$ ^& r6 ^# [' q: ?
  -> 19971004222300    ' H4 `. N/ B' j# G2 R$ u+ m
3 [9 `( x3 q1 o: `* J. c
from_unixtime(unix_timestamp,format)    6 }1 u. W5 B1 C& h
以format字符串格式返回时间戳的值  
( r6 D5 t7 u. A9 m" k# |4 Dmysql> select from_unixtime(unix_timestamp(),'%y %d %m %: u( j6 J3 |7 |/ r
h:%i:%s %x');   
2 I: M& ^. a0 U5 [1 e- Y9 O$ k  -> '1997 23rd december 03:43:30 x'      j7 f9 B5 o7 A/ U$ `1 G

& F4 J$ Q2 o. W. _6 O7 vsec_to_time(seconds)    ' D6 F0 [+ R% @  x1 d2 R
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     & f8 l% F; W$ x7 V" a4 z% U
mysql> select sec_to_time(2378);    * B5 u9 _+ ^, K8 ?; U0 R2 {
  -> '00:39:38'   
# M8 m' Q. f4 I" kmysql> select sec_to_time(2378) + 0;   
$ V& j* A# r) T0 ?) N  -> 3938    . P5 Z/ d9 r% x9 E4 Q

1 I6 N' @+ r- K3 S8 V9 Ctime_to_sec(time)    & v: u6 p; m; B4 Z2 r2 x; D
返回time值有多少秒    4 h& R, _9 i4 d/ u( d
mysql> select time_to_sec('22:23:00');   
5 G8 x% E( d% i# v* s6 u* J2 G4 T) r. D  -> 80580   
" F  n/ @- D$ W7 j& pmysql> select time_to_sec('00:39:38');    4 I- {6 k% r# ?* j1 L& q( Z( x
  -> 2378
* i. X2 A2 O) g. d3 |" u% G" X8 l - @8 ^3 N/ d6 |
转换函数. m4 B. ]% u6 O: ?( ?: N
cast/ Q4 z& R& x  T
用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]7 A5 \& ]+ n1 q4 K
实例:select cast(a as unsigned) as b from cardserver where order by b desc;5 U3 W0 @  s, S
convert:0 D  [8 h1 T, b
用法:convert(字段,数据类型)
7 b0 K! f* D0 j' d实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

+ z6 U$ B: f) u; m* z
回复

使用道具 举报

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

本版积分规则

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