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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数. s+ q. _+ d2 o% l( B
ascii(str)   ( Q0 F" t+ ~# `; v
返回字符串str的第一个字符的ascii值(str是空串时返回0)  3 @" j3 g, E% h2 g" h
mysql> select ascii('2');  ) z9 r) ?+ Z+ A- [+ N, T( o
  -> 50  
% `$ s' D$ a# J; H0 n' ~mysql> select ascii(2);  
1 C0 j4 X4 |: Z; C2 \  -> 50  # H+ n; {9 c! K  b
mysql> select ascii('dete');  
4 D; x6 B& x5 |' V  -> 100
9 ~% }2 k" s/ A7 L
ord(str)   
8 Q/ N9 p' j, u3 }  I1 L" h如果字符串str句首是单字节返回与ascii()函数返回的相同值。. W* o2 b1 X. h5 x

0 I" }$ R- ^4 l* X& T) b) D如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  $ y* f% e  w8 V2 n' O6 i) B2 B
mysql> select ord('2');    ]8 o# w- _3 f
  -> 50  / P5 I% f3 t7 l* c; x6 T
   
0 d" u% C2 z, h) w8 Pconv(n,from_base,to_base)   
& y9 P: \3 q0 j6 R5 [; W( h对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
  [, d: Q  e4 B( ^mysql> select conv("a",16,2);  
) G5 E- N1 E% u2 y, A' C. z  -> '1010'
3 G" @; u- p0 Pmysql> select conv("6e",18,8);  
0 x$ z- @+ P1 v6 h9 u  -> '172'
1 q4 g; C/ r  I; hmysql> select conv(-17,10,-18);  
; I3 ~1 f' A4 Y: j  -> '-h'
- ?& y) e) h, |mysql> select conv(10+"10"+'10'+0xa,10,10);  
5 |. t& S. L% X, Y  P! O  -> '40'
0 k& U, d! z3 E8 A3 E% n   8 f" P  J( K1 N- q. ?, q. h
bin(n)   
! |: v# M/ X" X! y把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
4 G7 W1 B: O7 D( ^9 bmysql> select bin(12);  5 Z, e0 Z' N! e+ e3 F9 c
  -> '1100' : _# N/ y$ W5 K4 S0 z0 K( y/ q
$ Q# E4 O5 z' [0 d
oct(n)   
9 }% ?/ W9 }- y, _2 R把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
; A! h) @) A2 ^& emysql> select oct(12);  
$ |: N$ b+ j. t, ?* `# _% f  -> '14'
& W# h; M: J3 d1 n- `. a' K4 D   
4 V+ H* v9 b9 n- ghex(n)   3 a0 `; Y. \; t& A
把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  ' ~& u! m. G6 h/ d7 e7 @. o4 ~
mysql> select hex(255);  , ^' ^3 D6 k7 Z& w
  -> 'ff'
$ ], a: u0 {/ }8 O; P/ e7 i$ @   
, n* D4 j2 {: M% u& d/ uchar(n,...)   
& }+ z5 {: S! V返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   
) h4 ]4 b9 \6 r3 Smysql> select char(77,121,83,81,'76');  8 r6 n2 I9 t# A* X* r3 G
  -> 'mysql' ) D' t1 N+ m3 j/ [. Z2 K- ?5 o
mysql> select char(77,77.3,'77.3');    W# S7 [# V; Q7 l3 F. P
  -> 'mmm' 0 h) R& v3 l' D" M
   
" o* S" T+ t% ]+ ^! Y/ pconcat(str1,str2,...)  
1 z! M5 t2 a- \/ B0 P把参数连成一个长字符串并返回(任何参数是null时返回null)  
$ I9 L+ K: s. E+ W. W& T% m5 a: ]mysql> select concat('my', 's', 'ql');  
7 e0 h% h0 n# G6 T  -> 'mysql' ; j$ [. D1 V; \# @1 Y
mysql> select concat('my', null, 'ql');  9 b) U5 j  N1 D( T3 l
  -> null
9 P- v6 }; S) d" c$ b& Wmysql> select concat(14.3);  
) P' @, W: O! f0 d7 L3 Y3 P  -> '14.3' * Y' F  [5 Z+ s: b  N4 h! R) s, e

1 X' j( F8 @4 M7 E7 v, K* Ylength(str)   
* z% K. ~6 E% e/ D7 |' ^: {% woctet_length(str)  
* V. h1 g" w7 L& i; D4 v! Achar_length(str)  . `0 ~6 m) v. A7 a% i) A. v/ E
character_length(str)  0 z1 S( L: B  k% r) I, E
返回字符串str的长度(对于多字节字符char_length仅计算一次)8 d; n/ N) j9 v* c+ f, w$ i, d' U
mysql> select length('text');  ; ~- _& ?2 X# t- ?8 q
  -> 4  6 q' N5 h. _: A$ [+ R5 D4 n
mysql> select octet_length('text');  % x7 N3 k; \% @0 q3 C, J$ g
  -> 4  # {$ I. |( u$ F/ w. A! m3 J- }
, X, ^" I. u. c/ X
locate(substr,str)   
7 g  n& N4 k' S8 j. N/ mposition(substr in str)   ( i, H* d' `4 g9 w8 P! R
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
" e2 @0 o1 ~" t4 ?: e" n4 bmysql> select locate('bar', 'foobarbar');  0 e# q1 _# E# n: W
  -> 4  
% }# u& I7 j# Y6 Q. ?mysql> select locate('xbar', 'foobar');  
! x* a* T% l7 d6 o, k  -> 0  
' m/ @0 \1 `2 E2 C4 B7 i! L1 g    ; c' s/ ~/ w( m! R1 Y6 \* X
locate(substr,str,pos) % H: {7 v" d' N, J4 ~. |
返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  ! s/ t7 m7 w9 p7 X
mysql> select locate('bar', 'foobarbar',5);  8 [+ w  u1 T3 N$ @, [1 Z9 K4 _
  -> 7  4 s& h& b# W& f' j, R, g
% A; x4 r0 U9 e) o  A
instr(str,substr)   8 o& W# r* d, U* @$ _' d( Z
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  9 U+ {. Q) {4 m; S0 J8 g+ k0 z% U
mysql> select instr('foobarbar', 'bar');  ' I; e6 W) G% }8 _
  -> 4  0 {5 d' |) B" b3 @/ u1 e
mysql> select instr('xbar', 'foobar');  ! d  }3 {& b- l0 B0 H; A' u+ l
  -> 0   
+ D0 H: f( `  _- K, D # i: U; o1 K5 F% ^; H* m
lpad(str,len,padstr)   # A- C) D) `- C+ P
用字符串padstr填补str左端直到字串长度为len并返回  
! M" d$ P  ^. kmysql> select lpad('hi',4,'??');  8 y5 F, W) k4 k. m, W
  -> '??hi' 1 f2 |' m# d0 q' {7 ~
     x% N) M: @0 l& g6 U# k0 m
rpad(str,len,padstr)   ) R4 g5 Z" R! A( ~- y& p8 q
用字符串padstr填补str右端直到字串长度为len并返回  
% j! E2 a3 o: g' P/ Zmysql> select rpad('hi',5,'?');  ! g( _+ k1 R& L- n9 s
  -> 'hi???' " q4 M" v& c7 n2 W. i% p

# O, ]$ R9 c! ?# i- s3 ^4 Sleft(str,len)   : P0 P; b4 D; `8 ^& C: P; q
返回字符串str的左端len个字符  7 l  e8 ?- Q' `# p9 s5 M
mysql> select left('foobarbar', 5);  9 y, m: I: q0 k5 i# g. W
  -> 'fooba'
+ w0 H- E" f& `* [) q+ D
, Z7 N+ R) Q& E( B. v( ]& ]7 e  Iright(str,len)   & y9 s# B, M' e* \2 P3 f
返回字符串str的右端len个字符   
+ f6 l& y# f4 {6 |' g: G3 b, _) smysql> select right('foobarbar', 4);  0 ^' Z) H. \% T: C( F5 D* X3 R
  -> 'rbar' 0 g* l: O# y/ \1 ~1 f

$ y3 |: \) o; |4 O# Q- B& _substring(str,pos,len)   
/ E5 n* g  R+ W: c5 _; X- T& Ssubstring(str from pos for len)   
7 y! i" M, O, |( y7 [* _mid(str,pos,len)   
! {$ u6 u* f6 ^返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
2 j& k  L$ F# H7 i  -> 'ratica'
4 y; ]% Z+ w# ]) B
# U; t4 t& ?% |  xsubstring(str,pos)   
) G2 Y1 ]+ G- B8 ^: S: Ssubstring(str from pos)   
2 G: e, X. M8 ^4 h0 [/ m返回字符串str的位置pos起的一个子串  
, g' u' T: l& A6 v! b; L( umysql> select substring('quadratically',5);  " l, g' `7 i, o% u% y; ^1 |( L
  -> 'ratically'
; I9 ]) s8 E$ h+ X1 `9 ]) O& Dmysql> select substring('foobarbar' from 4);  8 A2 B2 d' X- h* z" v
  -> 'barbar' 2 e0 \( p5 v+ F; Q1 g
+ n+ e  O: r% q, U# D5 W1 C
substring_index(str,delim,count)   
0 L1 n0 F* c# g0 w! M3 d返回从字符串str的第count个出现的分隔符delim之后的子串( o5 A: ~1 i0 w" O+ A* @" [; f
(count为正数时返回左端,否则返回右端子串)  
6 P" u! Z9 |  _6 t6 _" B0 ymysql> select substring_index('www.mysql.com', '.', 2);  : s+ l+ s+ i) v) w9 V' D
  -> 'www.mysql'
5 T: }# a, }$ N4 c5 m$ e  Pmysql> select substring_index('www.mysql.com', '.', -2);  8 n. j7 O8 i' `7 U
  -> 'mysql.com'
2 ~! b2 U0 l# h( P) b# u0 \5 ~ 4 V& s8 R% r$ ~* E1 ?$ ~* z5 X1 x
ltrim(str)   
2 @3 P( I/ ~' E# Z返回删除了左空格的字符串str  * D& C# Z9 S3 W, Y' F5 {9 v
mysql> select ltrim('  barbar');  9 B, ~3 U5 A0 \2 [  y
  -> 'barbar' & Q1 i( d$ [/ j; b: P2 r. u$ ^( ?
( ~% q+ d2 `- W5 _+ v& i+ g% A" F
rtrim(str)   $ f+ i, t) d0 d
返回删除了右空格的字符串str  , v  W7 q8 @5 a% S. n
mysql> select rtrim('barbar   ');  
5 @! q. x% P3 g! e  -> 'barbar' . r4 \9 F5 ?- I9 |1 u
- L; B; w+ v+ s; ^- b+ F
trim([[both | leading | trailing] [remstr] from] str)   / B: \- I0 C' H& r- Q) I
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  , Q/ ^' e$ `5 z  B& H5 }6 J5 q( l* m
mysql> select trim('  bar   ');  8 ?# n! _1 U5 c( C# T! x) v) E
  -> 'bar'
! x1 X8 j: L# j+ v  O* Fmysql> select trim(leading 'x' from 'xxxbarxxx');  ; ~9 |$ U  f9 q8 c1 l
  -> 'barxxx'
+ B- M4 z6 Q; r. vmysql> select trim(both 'x' from 'xxxbarxxx');  9 G( J+ X, y2 Z( o
  -> 'bar' , k: e) M1 f# t) ?
mysql> select trim(trailing 'xyz' from 'barxxyz');  8 k2 l3 e- S& N* B9 I' C5 Z. O+ ?
  -> 'barx' 2 _. n6 w  y# U. L' M

$ {+ z) I, N( T  f6 v# |soundex(str)   1 q  j3 U% A  D% M
返回str的一个同音字符串(听起来“大致相同”字符串有相同的( \  I/ b: H& E* _8 ?: }  q
同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  
% @$ d  V+ m( Z8 N% S9 Smysql> select soundex('hello');  
/ r; _  S, W/ Y* k  -> 'h400' 4 y! Z& B! j; u3 k! |
mysql> select soundex('quadratically');  * G# y; f) u. \! d8 ^, ^: k
  -> 'q36324'
& f6 `* R/ D2 a5 {- N   
# a2 }& N# w* i- t$ G# `% o- M6 `space(n)   
% z: C" y4 w- }5 r9 B9 d, S( e返回由n个空格字符组成的一个字符串  
" B4 B4 {. j% V2 U7 t* E+ Y$ V' amysql> select space(6);  
6 u5 f! N* s) D3 q/ Y$ h  -> '      ' ; H) r* Z. I  @  y! ]/ G
   , n: d% j* [3 Y* G& n) P
replace(str,from_str,to_str)   
# Y6 z2 n2 {  ~用字符串to_str替换字符串str中的子串from_str并返回    E3 c: p/ {+ z$ D: ~4 [+ ?' G$ q
mysql> select replace('www.mysql.com', 'w', 'ww');  & O' b( Z3 u4 ?5 {. T6 v
  -> 'wwwwww.mysql.com'
3 A' O4 f+ H2 p& D2 F3 P5 P
  A# ?2 P9 I) k" w" c7 ^# u! @, I1 frepeat(str,count)  
0 N( Y; T) U5 ~9 L8 [4 q返回由count个字符串str连成的一个字符串(任何参数为null时) V$ U/ E. V1 f: o2 Q: m
返回null,count<=0时返回一个空字符串)  
8 Q9 c: g( {0 v2 W+ g0 smysql> select repeat('mysql', 3);  
  H8 @9 |' f: o  -> 'mysqlmysqlmysql'
- |; ?7 o) X2 i3 e, p3 b   0 ^. R- }/ v6 X! X. ^: c
reverse(str)   
! n- a( l4 F$ e8 L颠倒字符串str的字符顺序并返回  
, ~& g( Q' Q: t2 \* V, wmysql> select reverse('abc');  . \8 |6 ?1 V4 a$ T2 h) b
  -> 'cba' 2 v5 @/ X" V" \( W3 w5 `! R
: M. m% c( j# m  b; w" n
insert(str,pos,len,newstr)   ; I+ b% e+ C! b; G
把字符串str由位置pos起len个字符长的子串替换为字符串3 A; }- o) a$ o; W) K# I% f# H
newstr并返回  
( N! [+ g# G; Q3 V: {  Kmysql> select insert('quadratic', 3, 4, 'what');  0 o; J1 a9 x' @; k* o
  -> 'quwhattic' 4 p( x+ t# Y9 u

) K/ D  e: u3 b& P, t6 Celt(n,str1,str2,str3,...)   
2 Z$ R, M' ~$ O返回第n个字符串(n小于1或大于参数个数返回null)  
9 @! T+ D+ Z' z& Y5 S, ~! [8 smysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  
2 L" q8 u0 m8 W' g0 R8 R* w3 O1 K  -> 'ej'
/ t, h$ N+ K  L8 {1 Fmysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  - y1 R$ {3 M! n; l( j; y
  -> 'foo' : R+ v7 G9 a/ Y

! Z+ |) ~" Q5 Z2 jfield(str,str1,str2,str3,...)  
% }+ i1 A) N- \2 B, ^' U2 u' I$ \返回str等于其后的第n个字符串的序号(如果str没找到返回0)  7 s4 D" E& J& F$ a' ]  }* f1 H4 {
mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',) ~1 \- ~' \/ K. _3 V) n
'foo');  
, {# P) I( z5 |9 z7 L; Y  -> 2  
" E1 B7 v. o; d4 c' I& L' J: [9 vmysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
. P4 p5 E5 O$ o2 r' B'foo');  ' k* [/ R& s  J) b4 n6 ~4 h
  -> 0  
  T, U/ I( R8 @( k! D$ J9 }
5 A- @5 e& X9 D8 z' s' e1 Ffind_in_set(str,strlist)   * t8 e: ^  X8 G" M
返回str在字符串集strlist中的序号(任何参数是null则返回1 c' z; |3 g( L: t6 c  y
null,如果str没找到返回0,参数1包含","时工作异常)  
- ]; i. B) N( a* _  O5 |mysql> select find_in_set('b','a,b,c,d');  
* u+ ^: \! O- c& p. z  -> 2  
4 v# N' |  V: j, X& e' h8 y   ! P8 \/ Y- y8 f+ E" x
make_set(bits,str1,str2,...)  $ K3 J/ R0 d& M! N& x
把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应' z# C  E1 @+ K$ F% j1 h* z  d
位置的字串选入字串集并返回(null串不添加到结果中)  7 }# }% a' N+ u0 `6 w& x2 S6 r
mysql> select make_set(1,'a','b','c');  : d5 E1 l$ e) g9 S7 T/ l' ~
  -> 'a'
6 @( k: m- f. ?& T( w: h7 p) m" c; Kmysql> select make_set(1 | 4,'hello','nice','world');  
7 N, h1 o- w* `' K, s3 [  -> 'hello,world' & j  s+ w: r' }1 t! f
mysql> select make_set(0,'a','b','c');  
: P  E7 ]) F# c: f% D! }  -> '' ) r0 ~. [1 P3 V

1 L. P9 Y& J7 ]" A" U. Rexport_set(bits,on,off,[separator,[number_of_bits]])   
& Q$ I" _7 N$ c- k4 F5 v按bits排列字符串集,只有当位等于1时插入字串on,否则插入
! x$ H" y# W: a% S. Moff(separator默认值",",number_of_bits参数使用时长度不足补0
/ ]/ m% d5 C5 x' Y$ b6 O而过长截断)   ' u/ X. t. Q5 H% G
mysql> select export_set(5,'y','n',',',4)  
- N! n0 C& q9 o+ x- C  -> y,n,y,n   
6 E( m9 N: E9 o- y/ g , q4 z$ Z7 p0 O- T8 X
lcase(str)  
, {# q) r4 z1 ]1 x5 X  Tlower(str)   / K3 x$ M* d- b6 z/ Q+ \; u
返回小写的字符串str  
4 t0 W1 E  A4 N# vmysql> select lcase('quadratically');  * w5 }2 T! N* Q! e8 E
  -> 'quadratically'
8 K# }% V- n7 C   - X) b- M1 W1 o9 ?# c
ucase(str)   
9 C0 M% j( P, G- K' d  cupper(str)   ) R& ^4 Z! p6 i; m+ d7 Y' ]
返回大写的字符串str  
" u! W, b: o$ W/ s1 J: Hmysql> select ucase('quadratically');  ( d; k4 d3 g  n% o5 a" G; v
  -> 'quadratically'
1 t0 @: X: I3 L  a5 F - i9 H4 \, i3 o/ c3 [. P
load_file(file_name)   
+ l; `; M  a/ h) T+ t$ W读入文件并且作为一个字符串返回文件内容(文件无法找到,路径  a6 ~9 Z3 c7 {4 k- ^
不完整,没有权限,长度大于max_allowed_packet会返回null)  0 W# [4 ~; \+ m! F' p" C  F
mysql> update table_name set blob_column=load_file
8 [4 R6 `4 k, l& n("/tmp/picture") where id=1;  
6 Y* M9 B2 n, c% F3 P, F  R! P ; e, ~' P4 c. f0 {
2、数学函数
8 U2 p- F# S9 c$ `4 dabs(n)
# i& L. k4 q$ C# A  B返回n的绝对值  . x8 D# j/ Q2 U' g) W9 E; d6 q
mysql> select abs(2);   
8 ?  M: ]( u# p7 f1 {$ D  -> 2    - k5 b6 {$ i  G+ k
mysql> select abs(-32);   
' N/ l, Z4 q0 {( s  -> 32    % t, b6 ^4 `5 W* L$ K7 h2 `
   
+ _- e  u9 f. g0 u, d' M1 y3 Asign(n)  / {6 A, t/ z- T: F8 y8 r
返回参数的符号(为-1、0或1)  
8 x  @8 I; x# @" [: W; W5 w, Smysql> select sign(-32);    $ A+ D" u' ^+ r; V
  -> -1    % C! p, p# U5 K+ g
mysql> select sign(0);   
4 a4 D1 T1 N8 j$ O7 l  -> 0   
, F( Q9 `+ v; W6 v9 kmysql> select sign(234);   
; D( i, t; T+ K% M$ x" D- T  -> 1    5 q  \+ |8 [6 t" I

# o* A8 y/ I% {% i8 b) imod(n,m)   
1 k: f+ y" q- P4 M) N6 n! B取模运算,返回n被m除的余数(同%操作符)    % B: b' ?0 e/ U7 x- }
mysql> select mod(234, 10);   
: u5 b2 ^) }* O' C+ t  -> 4      C3 W5 `% ?/ \4 R. q
mysql> select 234 % 10;    4 s$ B# w! B/ d/ W) @; `/ w
  -> 4   
: q1 L2 X% {$ t" J- C7 V; R: c7 R  Kmysql> select mod(29,9);    ( K! }5 d; y& v9 a# }7 V* O
  -> 2    ! g' L9 J4 m) O* |7 x: @

. H* z$ C5 c, B0 c: Q5 z  `floor(n)  
2 F; ^+ M, p6 o( @5 z6 F* A( W% z返回不大于n的最大整数值  6 h5 @/ q( `5 B: U; @3 Q
mysql> select floor(1.23);   
  s$ s5 p0 G+ `7 k  -> 1    % e4 A0 b0 T$ S3 m5 u/ j3 {
mysql> select floor(-1.23);   
* y. q1 w9 [: L4 Y# ]  -> -2    + g% p$ m; B3 I- P6 B; F

  Q& h8 M* k- [4 ^" H" ~ceiling(n)  8 c" x9 H5 O! y5 s' m4 z
返回不小于n的最小整数值  & r7 n- v2 z2 d/ z& e- S
mysql> select ceiling(1.23);    ( b6 g/ `) E( e& @5 `" j( _# r# {
  -> 2    ; @7 X, V( g( h' L4 r
mysql> select ceiling(-1.23);    1 f% |" x1 v3 F& k6 \. _7 |
  -> -1    ' {) Q) O6 F. |8 S
/ h) q/ l" b6 V) q* |
round(n,d)  
7 O% C* N5 ~: [: J9 A返回n的四舍五入值,保留d位小数(d的默认值为0)  / \* B6 n7 N% _/ [& o) \( s
mysql> select round(-1.23);    8 o* w+ u- t& n7 [
  -> -1   
0 ^+ ~" y9 x2 A3 Emysql> select round(-1.58);    9 X2 r/ P0 n9 R* O' {$ `+ r2 R4 d
  -> -2    , o' O$ o' \( l4 \: K, |. ~+ X1 i
mysql> select round(1.58);    " `" {' B6 n* l* L* ^2 X
  -> 2    - X# O" V3 i1 E+ ^; Q, d
mysql> select round(1.298, 1);   
- C" Z1 `1 j, f$ ~1 F$ G: j" K8 Z  -> 1.3   
  `2 Z' J# r. E) emysql> select round(1.298, 0);   
, ?- E, j" L- Z7 k5 b( |+ j  -> 1    ) m7 U7 |! h2 K
! `. {0 e4 k9 V& N! l2 i
exp(n)  7 H" |) ]$ b3 b0 K
返回值e的n次方(自然对数的底)  , t' [0 m  b* ~# d/ q2 Z$ I7 g8 J' l
mysql> select exp(2);   
, V2 j5 V$ k  [. h/ @. r$ s/ y4 {  -> 7.389056   
. H4 @7 Y" [4 U, \, ]8 Amysql> select exp(-2);   
2 S) j$ _2 M- L. N. D6 n/ R, h5 F) o* x  -> 0.135335   
/ z+ ]; W' W' A) f. s# H6 R+ i* m
3 }9 j' s4 d, C, w0 k. Q7 C( w3 Z9 {log(n)  
! v3 t( B' ~1 K& y返回n的自然对数  * Q4 ~) g2 j+ V
mysql> select log(2);    9 {: C" H" f7 {
  -> 0.693147   
0 I; Q) c4 k# k. g  Pmysql> select log(-2);   
4 Z4 M2 R5 Q+ d' A' w* j* {3 J  -> null   
6 B; E* P6 D2 S) b* V8 D5 e; ~
4 @" K+ r- F% f! @( i7 }# F8 mlog10(n)  ; H  s5 j7 U' m
返回n以10为底的对数  ( `4 n' `5 Z- c3 Q9 W' _
mysql> select log10(2);   
2 l' [5 w/ f2 s5 F' j  -> 0.301030    ( W2 s8 o7 {8 j
mysql> select log10(100);    6 Z1 J* @! K9 f/ ?- [+ Z
  -> 2.000000   
) r8 e  t2 [2 o" [" A. F/ J$ c1 nmysql> select log10(-100);    0 a" r. M/ k2 [# M# ^
  -> null    # B4 q. Q% ~: C* ]8 n  {
' n% `+ ~& V  K) ?# i
pow(x,y)    ' d$ m% h' i: T+ R3 ]8 J7 H
power(x,y)   
3 n, p% i5 H) E$ [2 h, F 返回值x的y次幂  
1 @! ~( S6 {$ U4 Wmysql> select pow(2,2);    / w# W( C8 U. a/ J6 T5 I
  -> 4.000000    " Y5 v6 B4 R7 _" d" Q; ^6 [( [  N' v
mysql> select pow(2,-2);    * D: m; M7 w  u& {# I8 D) g
  -> 0.250000  0 E+ ~- ]8 \+ O4 X9 U

) E8 y: J0 h: |% W$ u5 @& Qsqrt(n)  ; _. n# E' x- a- a' y' W' j" ?( j
 返回非负数n的平方根  
4 i" z! Y! G7 c' h8 B" jmysql> select sqrt(4);    ' Z3 F1 T. S, t/ C) j
  -> 2.000000   
# v, g( h: m+ `  I$ J) N9 ^mysql> select sqrt(20);    : x" `' {  _; R/ c6 M3 \' r
  -> 4.472136   
- Q8 J* P' W$ a# c 7 [0 O0 d/ o3 V7 B4 h" }- K% T! K% z
pi()   
: e$ r# Y( d9 h/ K 返回圆周率   
" q% k- B  K" Umysql> select pi();   
& g0 k) F; f5 D$ e' ?  -> 3.141593    % R1 J( W6 E: z3 a6 {5 l% d1 S# L

) P- A7 U* Q1 k$ Z- s; h+ M$ `3 wcos(n)  
  m# B. j% b* E 返回n的余弦值  . C% k) N& o, R" b7 u
mysql> select cos(pi());  * `( N, n" {6 y0 `+ T
  -> -1.000000   
  X, F9 m" A0 o3 j; n6 A0 X
, J3 O9 t3 m1 c' i  v" hsin(n)  * D) Q9 C" v- \6 M' k, ]: `( H
 返回n的正弦值   & v8 G% R3 `! F9 q
mysql> select sin(pi());   
7 Z- z) ]6 s3 ~  -> 0.000000   
; ^& L5 K$ J8 H4 u" r ; L) K/ D" f6 I1 a& j2 d  r
tan(n)  ( V& }, i: m5 B
返回n的正切值  
' B1 Q" j/ V3 X6 S+ E- G9 h% z  Umysql> select tan(pi()+1);    ( q& k, j, j: [. p
  -> 1.557408    9 y4 G1 O8 o6 N# m/ ^
% N( v6 Z/ m! ~, R8 M  m, ^2 r
acos(n)  
) l0 e: ^) g* ?0 M 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  ! j) ]( X1 c# `
mysql> select acos(1);   
' u% J. x* m3 L' X3 V& h% \* [  -> 0.000000    : K% z9 e9 u8 a. l
mysql> select acos(1.0001);   
5 Y0 j1 `6 k) m2 j. j* g+ o  -> null    * J6 {  ^( O: P- Z& L. g
mysql> select acos(0);   
& c$ W0 N9 F2 Y# k  -> 1.570796   
; t! m. |: x6 p" |# q4 A. C* S 8 F; N+ T  v7 P# J# C& ~  p
asin(n)  
0 r! {5 @( y: Q+ A9 q( t( Y返回n反正弦值  
# u" N9 d5 [0 pmysql> select asin(0.2);   
9 D4 ^4 U) {8 w4 E& y# X7 X1 U8 l  -> 0.201358    * d7 ]4 K- R6 i! q: F) H- s
mysql> select asin('foo');   
8 j+ B" p/ {! r( ~  -> 0.000000    . `7 `6 x2 O3 X! {0 v# K7 ?2 z; b

6 x3 K0 J2 w5 D* x6 Ratan(n)  
1 j: ^% T8 g( x# o0 z/ A& y返回n的反正切值  
0 A! f7 J) ?7 _: W/ P5 e( N% Imysql> select atan(2);   
0 Q1 z4 h- L! B- w8 K; Q7 D  -> 1.107149    * L0 k, `# b; F& Y; [. O6 E
mysql> select atan(-2);    + P# v; w+ y( A5 V' @
  -> -1.107149    5 Z& R4 F; m# A
atan2(x,y)   
5 E" h8 K+ v; {; M/ E7 R 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  
1 h  }" R2 s9 B( @+ P+ Amysql> select atan(-2,2);   
* I- _% k2 o1 R5 n7 e% a  -> -0.785398   
3 `1 i4 s  _( y/ M# `0 `: |mysql> select atan(pi(),0);    ) K( N+ W. ]2 _* }7 T
  -> 1.570796    , k% _9 m$ H5 i5 ~  N

/ s8 ?6 r& _8 d' q, N5 Ocot(n)  1 b$ Y/ q: K2 b1 }, ]5 o/ l
返回x的余切  . k$ A& P$ Q2 X" O; U3 U
mysql> select cot(12);   
/ ^2 {) u/ ]- x9 A9 C8 l8 {! L- o; q  -> -1.57267341   
  H0 D0 |# D" x& K9 A& dmysql> select cot(0);    * H- s  p( m, Q1 e$ V
  -> null   
: U# a9 M2 M/ b) Y0 t, C' X $ F0 N+ @/ E3 ]* x6 q
rand()  
& S. C$ J" F5 B& z9 e# u# f2 B' w0 Qrand(n)    . Q1 f0 U. K" @) K4 v' ~# g- S: G
返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
9 w* A) h! K, w: D 6 x+ E$ i5 a+ [" q$ m" u/ c
mysql> select rand();   
- F+ L9 Z5 U) k- p: ]( F) a  -> 0.5925    , Q4 G, N- d# F
mysql> select rand(20);   
, {$ E/ j! m7 g% t8 c* z# V/ P  -> 0.1811    : J3 V, J4 W0 \( N. u% Q$ E4 J
mysql> select rand(20);    0 z, l" I/ l& y7 q. h, `6 p+ V
  -> 0.1811    " n; }. O, p6 o! u4 G* ~
mysql> select rand();    & m1 O: j1 d7 `4 W8 F
  -> 0.2079    % `4 Y3 X8 b$ X& e
mysql> select rand();   
* r' E0 o* N/ Q8 ~5 [$ ^. `  -> 0.7888    / K9 Y0 x4 `, t4 K% H* e8 S7 i

; n# |  ^1 @2 H+ ]) R  \( P1 `4 w$ idegrees(n)  
% B; M9 j7 s$ ~" n: P把n从弧度变换为角度并返回  2 A; t) B' v6 f+ u! r* `; K) q8 Y
mysql> select degrees(pi());   
5 o  w  l5 x/ u  -> 180.000000   
; W- `2 f; L0 k8 ?( e
# M/ \9 j0 G' fradians(n)
/ Y1 b. r4 I) u, T把n从角度变换为弧度并返回   - T/ ?8 ^. B, n  `9 ~
mysql> select radians(90);    & v8 u) m" U! J
  -> 1.570796    5 ]; U" S: S8 N2 U

. ^. `/ P2 f4 _0 {5 I/ x% Ltruncate(n,d)    0 g. Q. X: P0 ^9 i9 }, E
保留数字n的d位小数并返回  
  Z* k7 ^& w# A) h! Imysql> select truncate(1.223,1);    / l' V9 J1 Q+ g4 @$ u$ {' d, l
  -> 1.2   
) I  |9 g7 e' Omysql> select truncate(1.999,1);    / h3 Q3 J3 Q8 `" c
  -> 1.9    , j1 I' p& U% I8 K
mysql> select truncate(1.999,0);    ( S2 J3 q" L, P/ h# i2 v0 J% x' @
  -> 1   
0 H1 \7 @) d3 a' L7 {+ i + e- L- N" |* r0 e  _" I
least(x,y,...)   
( v, S) E6 ^" O1 {0 a7 `, T! j返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  6 L$ ~( r5 S" u" V
mysql> select least(2,0);    ! R- R7 K; R, C& J- E/ ?
  -> 0    3 q! B: T7 m, {9 ~
mysql> select least(34.0,3.0,5.0,767.0);   
/ K3 _; E% K; y) v  -> 3.0    0 I  f3 t% |" N3 W5 n. s; p
mysql> select least("b","a","c");    5 X6 K/ y7 B* ?, M
  -> "a"   
" P& `5 n" ]" S' k! _% M
8 D% B6 O- f. wgreatest(x,y,...)   
2 m2 r3 |( Z6 m6 z" m% }+ C0 F返回最大值(其余同least())  
5 J& c6 m' e/ o9 a/ c: Dmysql> select greatest(2,0);   
. x2 U' G- {+ |; X9 H* }  -> 2   
5 G9 W: U2 x- x9 Tmysql> select greatest(34.0,3.0,5.0,767.0);    0 b% I) k. R# i7 _
  -> 767.0      Z1 K' O  X+ `4 K0 k- [
mysql> select greatest("b","a","c");    0 T. M9 s5 g) ?* M. _' M" F
  -> "c"     
! g3 n9 }6 ~  W" ?8 Y0 f7 a
. q: d; c, e5 }! [- F3、时期时间函数
( |9 }8 Z! B, o9 `. i7 k$ A4 ^1 b2 Ldayofweek(date)    0 I/ Q& N( c, K+ d; r
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
, d% I* s: K8 _# \' t) B) Kmysql> select dayofweek('1998-02-03');   
3 L6 t1 i+ V) L* X  -> 3    0 l: _3 F! L4 E/ |: g" G+ }+ S# V
* `/ x7 j7 i8 z1 `8 F
weekday(date)      T, [6 l! K/ E! F
返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
: v' R0 z3 ]! l  H  
6 G* M$ r- Y' ~) B1 Pmysql> select weekday('1997-10-04 22:23:00');   
7 R, s, O# i8 Y  -> 5    - @. A7 O; v% w( W
mysql> select weekday('1997-11-05');   
! ?* E3 G5 v9 f) x- a  -> 2    $ V4 M" h& q& a

3 R( Q0 P$ p) F# o5 _3 H  gdayofmonth(date)    
& _, \- E+ s: s" z4 w' Y返回date是一月中的第几日(在1到31范围内)    . q) I& `% p1 r4 f% O; _, [5 s# i
mysql> select dayofmonth('1998-02-03');   
1 I, Q/ ~1 o+ H, T* p8 F  -> 3   
$ N4 O# X7 M5 Y , w! L3 c, L. G+ y1 p$ J; F
dayofyear(date)    - T2 L5 r1 x! Q, \/ P
返回date是一年中的第几日(在1到366范围内)    ; g1 [, m0 ^3 p
mysql> select dayofyear('1998-02-03');    8 n' G# L5 g) \4 W
  -> 34   
+ b" B! o2 Y& k' J' j * V# i2 V3 s# f' t, K, K3 R
month(date)    9 W8 F. }( B0 y; E  x- w! D) q( `
返回date中的月份数值    6 `! z  s2 s# o( R: H1 W( ]
mysql> select month('1998-02-03');   
! {7 |0 M. Q- v2 g3 i  -> 2    ) G+ c8 @  h8 Y7 b0 u

7 c- T, z$ c' u; ~dayname(date)    # n: J* }( C" \! E! C
返回date是星期几(按英文名返回)  # e2 M3 h$ I0 @, L" _; ]  V
mysql> select dayname("1998-02-05");    . b3 V& P2 v: b' ~% w
  -> 'thursday'    1 F* o7 @9 Q0 Y. d
) e( T1 z0 R" v2 d, r" E2 T
monthname(date)    
  h- x. \5 B+ {# T/ }) [; ~" r% @返回date是几月(按英文名返回)  
0 ^$ W& T) h1 |3 w# N! Y) Y- mmysql> select monthname("1998-02-05");    6 y/ Z, J# |( J
  -> 'february'    $ c0 |9 n* y2 g0 e3 \

- p* u. u& V! H- Z' pquarter(date)    1 O- b: |. z7 W6 X5 U* M
返回date是一年的第几个季度   
; ~  }  j' |! K4 u- hmysql> select quarter('98-04-01');   
' g7 ?) f& c% o: i  -> 2   
" V; ?- I2 X2 P+ i, C: e # p/ [6 m1 N) E+ d$ n% V! j
week(date,first)   ; c# s# c' e8 }4 m) P' V( `. X
返回date是一年的第几周(first默认值0,first取值1表示周一是
% k8 z( J0 a  s2 o) R周的开始,0从周日开始)  + s4 H$ f" x" w1 E* R
mysql> select week('1998-02-20');   
6 T9 s, Z/ X, p! I  -> 7    ( R9 N+ d; _9 K; J
mysql> select week('1998-02-20',0);   
8 q# H/ k6 r! k6 W6 T; v9 b  -> 7   
7 r* S4 C$ R+ \* Amysql> select week('1998-02-20',1);   
" M. k; i$ P3 M4 S5 t. L  -> 8    ) r* T" `+ {7 z6 z( O+ h

! i6 z1 l* z8 C4 o, nyear(date)   
. p0 ^# a* k$ _7 L. d9 [  N/ ]返回date的年份(范围在1000到9999)    / Y! o$ T: I0 m- }2 k4 K$ M& I
mysql> select year('98-02-03');   
3 Y6 q. ~3 K/ K/ t& P  N; q  -> 1998    5 r  U" s/ C) G& P; A

  T3 H) M6 C: d: ?! {# ghour(time)    
- S9 b9 c3 B7 Y2 E# Z- [9 K$ p返回time的小时数(范围是0到23)   5 Z. Z: T. X8 R! L
mysql> select hour('10:05:03');   
2 K; q8 ~% z, I1 R) T+ ]& X+ S  -> 10    : H7 v% C0 ?. o/ n" \4 z2 Z

9 r, e& q6 o9 y7 G! Z  uminute(time)    7 W0 O8 B. w. O# D8 S4 r
返回time的分钟数(范围是0到59)   
8 F6 m5 g% {& D1 d4 nmysql> select minute('98-02-03 10:05:03');   
, ~1 Y% H2 k9 ^3 l) E: ]  -> 5   
& M) o/ p4 Q* K
3 e$ n$ @- M/ n! dsecond(time)    
7 c8 v! x# J& x/ k返回time的秒数(范围是0到59)   " Q2 e( u" G! M4 p# D6 i5 Y  R
mysql> select second('10:05:03');    3 i, \  s8 O* x% d6 P
  -> 3   
+ E+ _8 X% ^5 U/ E% [8 k3 }, M7 W
8 q; Z" k; x6 v0 x! F5 }period_add(p,n)   
8 y% n8 B. ^+ N增加n个月到时期p并返回(p的格式yymm或yyyymm)   
7 X+ H; K$ i. [! bmysql> select period_add(9801,2);    ; T  b1 c/ I% Q  ^2 _
  -> 199803   
& t$ Q5 d% [: t6 O5 |
' {) _% ?: k  @6 N+ lperiod_diff(p1,p2)   
9 n0 @/ k0 c( j% {1 }6 z* ?6 r3 T+ o返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  8 O9 y; t# k, @2 x: w9 k
mysql> select period_diff(9802,199703);   
+ t$ t  W. V* T9 s+ R2 P  -> 11    # W/ N* \- x6 J5 Y4 Q7 J6 U( t
. {* X3 J* m2 v
date_add(date,interval expr type)  8 B& E; W9 @5 V1 N1 {9 T
date_sub(date,interval expr type)   
" a7 n+ ^! P& Eadddate(date,interval expr type)    $ _' A+ Y, A4 ?) T, D: H: g2 u8 W" z
subdate(date,interval expr type)  
0 P2 Z) d9 ^. h2 n对日期时间进行加减法运算  7 n  ]- N- @: h0 l
(adddate()和subdate()是date_add()和date_sub()的同义词,也1 y' _; E( n0 A% d% x  T7 O5 s8 T
可以用运算符+和-而不是函数  
& r7 N3 s7 [. Q6 E7 ?! E: @* Mdate是一个datetime或date值,expr对date进行加减法的一个表* {. E8 n) F* |6 T
达式字符串type指明表达式expr应该如何被解释  ' ~# l+ {  e" B- ?
 [type值 含义 期望的expr格式]:  4 l+ s" ~( R* y/ r  H
 second 秒 seconds   
4 t; t2 h, ~$ R$ S/ l, G( C minute 分钟 minutes    + P% z& |9 |: r9 u
 hour 时间 hours    & N( O* O1 Y) n5 G/ V+ A
 day 天 days    , `$ R/ c( R6 [4 [8 }# Y
 month 月 months    1 W8 X5 H9 G& d, J; I. ?3 \
 year 年 years    # {% _" O% j1 V. _
 minute_second 分钟和秒 "minutes:seconds"    & }; {- G, d( g2 P# |7 k
 hour_minute 小时和分钟 "hours:minutes"   
- N6 y9 W4 ?2 V: ~6 h day_hour 天和小时 "days hours"    ' T* Z) @" C% n% E
 year_month 年和月 "years-months"    2 ]0 @0 C, K4 u7 M$ `. R
 hour_second 小时, 分钟, "hours:minutes:seconds"   
/ P9 d0 k' {8 X- ~4 i" o( ` day_minute 天, 小时, 分钟 "days hours:minutes"   
. S2 L9 {# \; z day_second 天, 小时, 分钟, 秒 "days4 L6 W8 |1 `& x3 Q2 H) ?
hours:minutes:seconds" * d& H2 S! D8 b( u
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个7 P. k7 ?$ q# N! d; p2 R
date值,否则结果是一个datetime值)  + U4 A9 f; W( {5 F
 如果type关键词不完整,则mysql从右端取值,day_second因为缺6 q4 @' Q1 p( ]$ e: V
少小时分钟等于minute_second)  
/ K6 e/ p4 _" d* n2 h7 Q: l 如果增加month、year_month或year,天数大于结果月份的最大天
$ @' ~# @9 K/ S7 G1 A2 {1 }+ D% U6 X9 o数则使用最大天数)    * d' {8 W& K0 y5 a3 P# X
mysql> select "1997-12-31 23:59:59" + interval 1 second;  
8 n- q. n$ _! M9 ^+ N
. m( t8 D& z4 h8 p  -> 1998-01-01 00:00:00   
) `# D  ]& z$ d+ D' U% R: [mysql> select interval 1 day + "1997-12-31";   
; t' N! j5 x( V- Q5 ]4 x( @- G  -> 1998-01-01    ; }0 F2 D% }/ ^; V0 L7 t2 N' g
mysql> select "1998-01-01" - interval 1 second;    ' Y0 q/ x. y' ^1 {* K
  -> 1997-12-31 23:59:59   
. {9 ?5 q% _. G2 ^; v7 fmysql> select date_add("1997-12-31 23:59:59",interval 1
6 I) L8 E) A$ Q; q: O* c/ Usecond);   
1 g/ \  M; A0 E  -> 1998-01-01 00:00:00    6 b9 ?. ^  y9 D' }3 Q' W; r: n
mysql> select date_add("1997-12-31 23:59:59",interval 1
6 {; u6 I, m* T/ Bday);    1 V) r; b: M. @; y* R
  -> 1998-01-01 23:59:59   
3 m) N2 V$ L1 C# \% z/ ]# C( a; F% D7 Cmysql> select date_add("1997-12-31 23:59:59",interval
8 _+ B% g/ Q* M2 H"1:1" minute_second);   
! h2 I% t$ b5 u  -> 1998-01-01 00:01:00   
) J2 N, w( l/ n( C. Xmysql> select date_sub("1998-01-01 00:00:00",interval "1
% }. t, l3 h* i- I3 P/ Z3 Q1:1:1" day_second);    : ?% G7 R0 z' i8 H; d
  -> 1997-12-30 22:58:59   
0 q2 f1 t; J  J! u! W- Y& B2 @mysql> select date_add("1998-01-01 00:00:00", interval "-1
+ w% m6 Z( b+ V. e* B10" day_hour);  8 w9 o9 f; p5 {! i# _! l/ x6 x0 [
  -> 1997-12-30 14:00:00   
$ X, u  W1 g$ R6 g+ ]mysql> select date_sub("1998-01-02", interval 31 day);   
# F# F' n8 A+ G  -> 1997-12-02    1 Z3 @4 @/ r! w
mysql> select extract(year from "1999-07-02");      D  g) \# a% _6 c2 z
  -> 1999    3 C3 p/ ?" J- ^7 h( Y1 ~
mysql> select extract(year_month from "1999-07-02
1 z+ j+ H0 w& T0 k9 H. S5 m01:02:03");   
/ X) g9 e  O% X! [  -> 199907   
5 O8 R$ b# X4 ?# N. e4 Gmysql> select extract(day_minute from "1999-07-02
+ `/ X2 r: [, f; u* W01:02:03");   
. m! R/ @+ N: g  v  -> 20102   
' l( i& o3 D" w 3 \4 g# h* x/ i: m5 P' s) N
to_days(date)    ) H7 F5 _3 o$ T' M4 u
返回日期date是西元0年至今多少天(不计算1582年以前)  
! O& n4 J! @/ T+ N' Wmysql> select to_days(950501);   
* m& r( r8 `7 e" p9 T  -> 728779    ; N& a9 L$ w0 O8 p- l8 W
mysql> select to_days('1997-10-07');    1 F  Z+ f. W. g6 }$ [7 Y0 J; a) z
  -> 729669   
$ [" r- M! Y  ^" b0 P: ] % J+ R" i, E, y: {: `0 D
from_days(n)    ! R' T4 S, [& X. j& o6 w  r( ?
 给出西元0年至今多少天返回date值(不计算1582年以前)   ' f0 C$ n! H' A3 a* c% }
mysql> select from_days(729669);    ( d7 b! |" J3 ?2 _, E# _- `% ?1 g5 Q
  -> '1997-10-07'    5 b4 B5 B. u* d5 f/ P; Z7 E
! U9 }: t, q1 q2 n2 R/ k
date_format(date,format)   
! Z: g0 D( K' i. R& L# o 根据format字符串格式化date值  ' t- n/ _/ y+ |, Q
 (在format字符串中可用标志符:  & }1 y  G% V+ Q" U- `) V% `; y
 %m 月名字(january……december)   
8 F  I( e( [' Y/ y: R- U6 i %w 星期名字(sunday……saturday)      u  K) d  ^/ i2 c. P0 d
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    + o1 n4 _+ Y; M$ ?' D" @
 %y 年, 数字, 4 位   
" @/ D6 Z9 c& R+ V9 ~, Y; j' w& K %y 年, 数字, 2 位   
2 [, x) `2 ^5 E  t* D4 f %a 缩写的星期名字(sun……sat)    7 e" t7 l& J7 B3 I7 `
 %d 月份中的天数, 数字(00……31)   
0 g) z) e% q, r7 p4 K %e 月份中的天数, 数字(0……31)   
7 F$ m# c3 b7 T9 b %m 月, 数字(01……12)   
* j7 K3 o0 M( Q9 m8 d- v# O %c 月, 数字(1……12)    / A6 Y; F& }( A, u
 %b 缩写的月份名字(jan……dec)   
1 L. f& g' [& I: x) S& C  c: Z %j 一年中的天数(001……366)   
5 j) Z; c& S* C- }% Q! I %h 小时(00……23)   
- S6 H2 _4 O) c7 f5 h" ^. L8 F %k 小时(0……23)   
+ U# ~; E  N  t3 O# t( u0 ~' |9 I" u %h 小时(01……12)    ) {/ \! h$ g3 l
 %i 小时(01……12)    + j6 ?, w& \5 f) T# x$ q/ A
 %l 小时(1……12)   
/ x3 R( v8 \9 Z! T% k! A9 \ %i 分钟, 数字(00……59)   
6 l% G+ O6 n# w; z% J %r 时间,12 小时(hh:mm:ss [ap]m)    : w9 L& d* h/ ~9 R9 r5 ^* i
 %t 时间,24 小时(hh:mm:ss)   
- c5 R( I) D: \# l %s 秒(00……59)    : P+ H* z0 Q  R1 h9 I0 t& h: _% x% f* M5 r
 %s 秒(00……59)    6 H# q& h5 R  e+ V% Q
 %p am或pm    3 d/ W- k, s" D6 D% p6 ?
 %w 一个星期中的天数(0=sunday ……6=saturday )   
# s9 g0 f; u$ l! m %u 星期(0……52), 这里星期天是星期的第一天   
  r5 K1 e8 d8 e1 D, N' k! X %u 星期(0……52), 这里星期一是星期的第一天   
0 D* n7 [# H( X1 ?; i2 L %% 字符% )  ! N/ F8 `  y! Y' {3 g
mysql> select date_format('1997-10-04 22:23:00','%w %m %
: o5 {1 k8 [5 l2 H4 l# {4 gy');    7 Q( f* C2 u8 f! d. {" k/ _' N" R
  -> 'saturday october 1997'      N0 i8 z* g$ e
mysql> select date_format('1997-10-04 22:23:00','%h:%i:%. v/ l: X$ _! c$ z5 j
s');   
" A7 [/ H& ?) A; y3 H  -> '22:23:00'   
4 b: K$ p  |% Y- _mysql> select date_format('1997-10-04 22:23:00','%d %y %a) y7 ^& x2 W3 C3 D5 x/ V5 x
%d %m %b %j');   
. G5 Q, d) F+ w; U+ v  -> '4th 97 sat 04 10 oct 277'    ' E& k/ Z4 U  j4 N6 a8 d
mysql> select date_format('1997-10-04 22:23:00','%h %k %i
& j( d3 `; V% c' Q/ k%r %t %s %w');   
- w% X% ~* U3 q% h  -> '22 22 10 10:23:00 pm 22:23:00 00 6'   
5 C0 X) c$ Y" F+ V* F' @1 r - f% ^/ ~+ q6 W& u' O, ]* D8 @+ u
time_format(time,format)  ( m: k9 z% G# b) \" K. m8 V
 和date_format()类似,但time_format只处理小时、分钟和秒(其6 W& O, R4 w  O% M6 \
余符号产生一个null值或0)  
- k8 n. [; `. X! X7 r8 v
. K7 @5 O% i. M. I+ }- Bcurdate()     
- G  r4 R8 s% `) H6 y# ?, `current_date()  
6 ^/ `2 g0 M, a( n 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
+ m" y: G" I( g7 E  B处上下文是字符串或数字)   
" C/ g( ?0 B3 ~# N0 ?& g' {mysql> select curdate();    9 }5 r: }; d& F$ Q. S  \$ q
  -> '1997-12-15'   
" j; a# J! z3 k3 V4 Y) e% u2 Gmysql> select curdate() + 0;   
5 H0 B8 \4 p% m4 F: o) a  -> 19971215   
' A) T9 [- f9 z* i+ ]
7 j0 [( E7 V; \: Z# h" X! N4 Zcurtime()    $ `. l1 q: _. p6 ^
current_time()  ' t$ M1 X% p. u3 P+ r
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上  o. M: h) |. v4 q7 P; T
下文是字符串或数字)      
, z- i  y/ j% o& \3 ?5 Qmysql> select curtime();   
( B) n: A/ o( S  J3 ^8 a  -> '23:50:26'    % J. D0 d5 w( ~( k; q) Q
mysql> select curtime() + 0;   
% M4 _1 W* n8 J0 h& I; G8 r  -> 235026    " q+ o' A8 s( ~8 E8 j6 ?

: l: D* P* a0 M, I6 ^now()    
( Q' v. k# z! b- W. B- c2 w$ Fsysdate()    * k7 M: b5 k( T" Z1 C8 \; ~
current_timestamp()  
) L! e, p2 R4 d6 L3 D 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
' d! m! G% }! e  s# ?) f3 w  M1 R时间(根据返回值所处上下文是字符串或数字)     
' e0 u, U1 J9 @' s6 N8 mmysql> select now();   
: r6 r& q" z* t0 l" S6 Y  -> '1997-12-15 23:50:26'    9 m4 }9 O% d- ?1 @& [, E) c
mysql> select now() + 0;   
' ]9 P) w' W5 b& Y0 m  -> 19971215235026    / Q* O% a# ]: B
% u. n+ N' l, s
unix_timestamp()   
( r0 V5 x! e4 e* G' s" Q8 Wunix_timestamp(date)   
) e+ j1 w: B) g2 S+ Q返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
* h1 v& n( `# \3 g数,date默认值为当前时间)  8 |" L0 P1 F: P5 P
mysql> select unix_timestamp();    % r& k2 X( ]  `
  -> 882226357   
, ^; t6 _1 x" x: s5 t- d0 tmysql> select unix_timestamp('1997-10-04 22:23:00');    ) w& n$ D, p) L6 T7 g$ \
  -> 875996580   
2 i1 a2 p% L) C# F! r
& [) m0 T+ j; U* @! P8 o3 G$ V4 O1 tfrom_unixtime(unix_timestamp)   
% g9 b: y, j9 |: T) V+ F, C以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的
/ `+ d  b4 N+ v6 V* i: @; [  |值(根据返回值所处上下文是字符串或数字)     
4 `% Z4 R  ~7 V! bmysql> select from_unixtime(875996580);   
8 m( H7 v7 y  b. @: h  -> '1997-10-04 22:23:00'    ( Z% g- H$ _) n4 r/ Q8 q- z$ N% o
mysql> select from_unixtime(875996580) + 0;    9 x) K7 n! X  f3 R9 n
  -> 19971004222300    - S7 Y) ^' D4 w4 q4 x

. k: P" W# u6 h% h4 h0 Zfrom_unixtime(unix_timestamp,format)    0 |7 K5 A* c- _3 W( n
以format字符串格式返回时间戳的值  
: i  M/ f+ w- [; ~: Y5 M, ?mysql> select from_unixtime(unix_timestamp(),'%y %d %m %
0 L# I8 v+ r! s  \/ j! Ph:%i:%s %x');   
" a1 x5 i# B. _9 @9 g  -> '1997 23rd december 03:43:30 x'    ( P+ i- c" [0 Y) ?; V

1 Y0 r$ ^3 X% Z7 |; R. C" rsec_to_time(seconds)    6 q; `0 z1 _% C5 k7 V! B
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
6 i) j2 r( |5 ]mysql> select sec_to_time(2378);   
- Z2 r5 p. }4 I' G  -> '00:39:38'   
  o6 m- ~. B/ L) v: w8 bmysql> select sec_to_time(2378) + 0;    ; Y" b5 w5 b' s6 Q
  -> 3938    3 Q5 }( r3 T0 L2 Q, i
  v; X' Y- j* ]& \1 D
time_to_sec(time)    0 r: D4 b, @! D* r% |3 Q
返回time值有多少秒   
" o* H, |2 ]" O$ T8 v5 amysql> select time_to_sec('22:23:00');   
% l: b. k- B  o  -> 80580   
1 K- {; W0 o" [( \( d" F# Rmysql> select time_to_sec('00:39:38');   
; a4 C! i" k& e# _8 r( ]7 d  -> 2378 - D' l; B& a' Y4 ~# g
4 u' R% b6 t: z. i# f$ Z/ B7 o& |
转换函数! B, w1 {; F& \& o4 P
cast( m1 \8 r7 U: t& p5 v
用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]  ?1 X9 m4 x" M9 F. q
实例:select cast(a as unsigned) as b from cardserver where order by b desc;
  @0 G! z6 S; t4 @" lconvert:
2 P$ u+ R. k8 [0 N' i1 T用法:convert(字段,数据类型)
' W, d$ ?7 B! @  J# ^5 r7 \实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

( q* K' E8 X/ {6 T( p
回复

使用道具 举报

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

本版积分规则

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