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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
1、字符串函数
5 @5 ^( b% O8 a) H0 gascii(str)   
% V5 T1 R+ W! d. D3 Y6 v+ X返回字符串str的第一个字符的ascii值(str是空串时返回0)  - p/ S) J( Q/ F" Q  N. X
mysql> select ascii('2');  
' B) ?$ B$ }% F7 R  -> 50  5 ]8 H- Z+ E5 w: o6 y) q1 R0 h
mysql> select ascii(2);  
) r* G% Q8 k  m% Q8 Y0 f" r* ~  -> 50  
7 o% k9 |1 f5 A' ymysql> select ascii('dete');  1 }7 M* H/ v' z( B2 ~" f
  -> 100

( q: a1 D3 T$ a4 `7 B2 {ord(str)   
4 m. a* U  m8 P# I1 j如果字符串str句首是单字节返回与ascii()函数返回的相同值。3 E. z) o& Z$ W0 ?( W. \; e, W

8 r4 u  j1 ]7 X* u如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  
+ n, H) v8 m& r9 ymysql> select ord('2');  , W' T; o2 n5 s" S1 m
  -> 50  # D! V2 L2 X0 v/ J
   
+ B5 }$ q; M% d: n/ d7 ~conv(n,from_base,to_base)   3 F( V8 g/ Q3 b: \. z
对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  , l% f' p5 E6 X: Z. Y# {1 `0 t# f0 a
mysql> select conv("a",16,2);  2 I* I7 l5 v/ k& a6 b8 s
  -> '1010'
1 L$ _& `# W3 D7 a2 |& nmysql> select conv("6e",18,8);  
/ {% G. [0 i4 _+ W( G  -> '172'
* @$ |  `5 @0 }$ Omysql> select conv(-17,10,-18);  
4 }5 C* A- l- [6 o  -> '-h' 0 i- u% ^8 E% \. z! r/ }8 C
mysql> select conv(10+"10"+'10'+0xa,10,10);  % ^5 ~4 a+ [' n9 l3 Y0 U. C3 ^0 Y
  -> '40' / F, _  {' J6 a5 v- [9 }& L
   9 @  o+ ~& t4 l; m" n7 I/ ~' Y
bin(n)   & L7 `8 V+ }5 `( U( b
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  - O( D: ?2 V6 v) g3 @
mysql> select bin(12);  + y* C6 E7 I% n2 y; _
  -> '1100' 0 }) `8 j9 c  t

0 b( f7 D7 h: E8 M) {: N! Aoct(n)   
, @  x1 U: ^  v! L- p) Z  J把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  6 X% _0 Z( c% x3 H7 H
mysql> select oct(12);  
( M5 ~1 |) D7 s. z3 J+ p# E- c  -> '14'
0 h6 A% ?5 r4 m3 t) L   4 e0 o* F$ j0 W" t: O: c
hex(n)   4 I$ h: U  S8 [) S8 K
把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  
  ^* [3 j1 j' @% t& t8 Ymysql> select hex(255);  6 ?% N2 a8 }" g0 r
  -> 'ff' 9 ^, P$ r' |3 N0 c0 \
   0 s; k3 _1 r6 M$ q8 l# r
char(n,...)   2 Z" I* s6 g- w' c
返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   
+ L3 v2 _( z1 H( \1 p6 Qmysql> select char(77,121,83,81,'76');  
( U$ M+ h2 p2 Q; s: R2 w  -> 'mysql'
) j  P' h( O# [' V( V. C/ smysql> select char(77,77.3,'77.3');  / r& v% T. S9 R' C
  -> 'mmm'
5 w7 q7 J8 B& U# ]* c6 Z0 D/ b   
; r' q5 x5 e0 Q5 ~) X! econcat(str1,str2,...)  
0 F5 q" z3 D' j& I把参数连成一个长字符串并返回(任何参数是null时返回null)  ) \8 p! b6 S7 l+ p
mysql> select concat('my', 's', 'ql');  
8 a6 S/ v* y$ l1 {& `$ P& {  -> 'mysql' 9 L0 W$ P( d  g6 }" J, m
mysql> select concat('my', null, 'ql');  % L3 k! Y; i+ J* `# E3 n
  -> null
4 U7 j* K5 ?7 z( m* o* ]+ \mysql> select concat(14.3);  . p6 |& o+ x6 G- S: i  [- T
  -> '14.3' 0 [7 y; G' g7 @, ]6 H# `

; W7 X3 k+ g* Y9 u- s9 L7 Wlength(str)   9 Y# ?+ R) d6 N4 e% \4 Y
octet_length(str)  ) V/ g2 s, N5 C( u1 s( [
char_length(str)  8 z" R0 j" \" w6 W) d
character_length(str)  
" D& i0 A( x  A  c- K' j  ~: W4 j返回字符串str的长度(对于多字节字符char_length仅计算一次)# ]& h4 ~! E% c$ U
mysql> select length('text');  
8 M% v5 P; r% x6 B/ M  -> 4  
0 E( ?- k' c- O! Q0 s- mmysql> select octet_length('text');  
6 e9 A! q9 F. _: W# d4 u* _% b- l8 F  -> 4  
( }% t) U( u. N   l' U7 A/ _* w" `" h; N# I
locate(substr,str)   
( Y% p' v1 _: W0 }, \0 \position(substr in str)   
; o8 w" ?8 ?$ d. `% O: r返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
. C: N1 _! \( C1 v3 w" qmysql> select locate('bar', 'foobarbar');  
  @! e0 L9 }7 \3 n) x  -> 4  
  Y. s- S1 G9 O) _0 ?" n: Emysql> select locate('xbar', 'foobar');    M7 Y  G$ Y2 [* |, _+ ~3 d4 C6 x. M
  -> 0  
0 n$ r0 h( e& ^, V    # i$ H/ }: ?, Y  i  S
locate(substr,str,pos)   q- [3 T$ {$ \! Y" ?
返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  " O( c! C/ F4 D- Q
mysql> select locate('bar', 'foobarbar',5);  
* d! s; d0 H3 u0 c  -> 7  
3 w. Z+ `; n2 H' q# n7 ]- v " s* ^" M! C8 P5 \( `
instr(str,substr)   / U% Z  @2 v: e8 S* G: x
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
" L* X" b3 \8 ~, p& Ymysql> select instr('foobarbar', 'bar');  
: x. ]: e0 b4 t* v+ y4 a7 V  -> 4  
, N+ Z1 C1 L; f2 s* H3 }# b) _mysql> select instr('xbar', 'foobar');  % `) y2 {5 ?) h/ O! D
  -> 0   $ M$ Q/ [. W9 f) |9 E% P( m

* J0 e4 n/ b% H7 g8 G: m! ylpad(str,len,padstr)   4 i2 W  V8 x& C! |
用字符串padstr填补str左端直到字串长度为len并返回  
# R+ p' `* C6 j8 M3 k$ {- Y  U: Lmysql> select lpad('hi',4,'??');  
$ A/ N  W" m0 Q2 F  -> '??hi' , n( R2 |8 C, a! X$ N/ J$ s, S; b# [* A
   
' L. j8 a, t7 h8 a. _( p9 ]9 jrpad(str,len,padstr)     x6 M. a3 r2 W& o" H- S
用字符串padstr填补str右端直到字串长度为len并返回  
* x2 P1 Y) a! W5 ]& o. F8 Wmysql> select rpad('hi',5,'?');  
) g( r- p" _! R1 S  -> 'hi???'
/ g  n* g7 f9 x2 \; K. D) V6 h ; _" i9 r# E7 ^0 |
left(str,len)   
4 o8 u7 K2 x0 l返回字符串str的左端len个字符  1 Q, c( q* _, w
mysql> select left('foobarbar', 5);  4 o$ Z9 ?( w( x$ s/ U$ I) B
  -> 'fooba' 1 {7 V' ?$ b& H6 i8 i. Y
2 Z  Y+ a) z" D
right(str,len)   : i" \* @9 Z* T5 h  }8 b8 M8 l
返回字符串str的右端len个字符   7 a; V4 B) j/ S: s
mysql> select right('foobarbar', 4);  : m0 o, W2 J. Q2 s6 H3 v
  -> 'rbar' 1 k$ y# H7 [+ C0 y: ?
8 O# z7 X0 e! ?' X) S7 R% f
substring(str,pos,len)   $ ~- H* L0 r2 q" x. O% S
substring(str from pos for len)   
7 Z) A/ J1 F- p. w8 m5 \mid(str,pos,len)   5 M+ F3 R. R( M" p6 E7 h- f
返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  # h1 U8 i: P% A9 H
  -> 'ratica'
. A9 g7 Z9 y: Z# m$ [ 7 C& r0 g* p! E
substring(str,pos)   
) E" K1 {* Z+ ]1 M6 [# esubstring(str from pos)   
. h" r" D9 n* p* q' d, p返回字符串str的位置pos起的一个子串  0 j# U% h! S* ]+ L2 \# z! U
mysql> select substring('quadratically',5);  
1 B& G, o' q! y) s  -> 'ratically'
0 m% b& X) M6 S4 Q: ^8 C4 t# ^mysql> select substring('foobarbar' from 4);    {# N7 Y% }0 [) W# i: j! e' ~3 F
  -> 'barbar'
+ e* Q2 t) L. @  H  h - L, R9 U. B6 y: d" P7 s* ~
substring_index(str,delim,count)   * ]. x: i, U, @$ U2 d4 p; s1 x
返回从字符串str的第count个出现的分隔符delim之后的子串# |0 \9 d$ X. N( [4 a7 G
(count为正数时返回左端,否则返回右端子串)  8 n* ~! m" g1 B0 {9 O+ P
mysql> select substring_index('www.mysql.com', '.', 2);  
7 f9 r/ ]6 ~" }3 r/ q) a  -> 'www.mysql'
8 ~: \& A; K% T$ J. f/ A$ Nmysql> select substring_index('www.mysql.com', '.', -2);  
1 H: S1 Y& t: I/ \( D  -> 'mysql.com'
1 m7 e9 n- d; R) |% ] ) r- P) T( G' E
ltrim(str)   
6 {+ f* k' q6 z: P3 c返回删除了左空格的字符串str  
% U0 a# l" c# S4 `3 K( W5 d. W. F- kmysql> select ltrim('  barbar');  
7 J2 g& X$ ~' u8 t3 ]; x  -> 'barbar' . _  Q. }# q+ G6 l; v/ s4 E

  w; Z' r  K3 n; Qrtrim(str)   $ A: `# S) O* U  Q: q6 L) @* g! D/ J
返回删除了右空格的字符串str  8 x& ]; u/ T! Q7 V6 i+ L8 m7 j
mysql> select rtrim('barbar   ');  3 I# J0 S/ b& G' d: F$ ?: r
  -> 'barbar' 3 p5 M  v9 E$ e: q" ?" o3 s
8 @7 G8 r1 t5 V" L+ G3 ^
trim([[both | leading | trailing] [remstr] from] str)  
; G$ ~- N: I  l1 p; F4 `返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  5 g% g$ G7 [/ J
mysql> select trim('  bar   ');  ; Y( C+ d; [( K+ K" L8 y7 B  B
  -> 'bar'
5 ?4 ~8 y& S, {! gmysql> select trim(leading 'x' from 'xxxbarxxx');  0 q5 L1 s( H: e& ~/ R
  -> 'barxxx'
% p& K+ z- h. {2 g" \# Pmysql> select trim(both 'x' from 'xxxbarxxx');  " X" Q, l* p( {
  -> 'bar' ; C, g: |6 Q4 |
mysql> select trim(trailing 'xyz' from 'barxxyz');  
$ d4 l7 l3 h- Q5 N  d/ O  -> 'barx' 7 ~" v& \9 e' l. [$ b, e
- [* |  C5 B) I) m3 y& C" ~- l- ^
soundex(str)   
" H! L2 s2 N+ {( j返回str的一个同音字符串(听起来“大致相同”字符串有相同的
0 I% I% \2 C1 p4 J同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  + [( x  v" y2 @3 ^1 K: D2 |4 Z  d
mysql> select soundex('hello');  ' {' M3 ~5 u5 ?- A, p5 K% F6 N
  -> 'h400' + J4 D" v' b5 V9 X
mysql> select soundex('quadratically');  
% ^, G; j: Z7 `6 i0 _0 j+ m1 U  -> 'q36324'
1 ?. U5 e" N' O$ H- K0 Y- J   
. c) @0 y& n. ?) jspace(n)   ) A* ~1 T! x8 S, Z8 b% d
返回由n个空格字符组成的一个字符串  & K" ~. R" c: y! a' O' G9 p
mysql> select space(6);  1 k# V: b  Z  j' V" k! o0 |0 F  h
  -> '      ' 6 O( K* }+ Y+ _8 A# \8 I
   2 d( X6 Z. j# |
replace(str,from_str,to_str)   
% r0 k0 s+ c. i. b用字符串to_str替换字符串str中的子串from_str并返回  
6 o* Z: \9 y' l% ], cmysql> select replace('www.mysql.com', 'w', 'ww');  
4 I% A3 [# }+ r  -> 'wwwwww.mysql.com'
& p6 J- N% m) e, R7 r
+ i  M; P0 j: p  Prepeat(str,count)  
3 ]3 H9 X2 a7 b/ o, J返回由count个字符串str连成的一个字符串(任何参数为null时
- ]& r* x6 L7 m返回null,count<=0时返回一个空字符串)  ; ^, T, j  e' A
mysql> select repeat('mysql', 3);  
; M5 K. B. e" K+ B4 I0 j  -> 'mysqlmysqlmysql' 8 c$ o  Z' _' D4 j  k
   
2 o2 G1 M/ A/ D+ D/ y/ y/ `; z* Wreverse(str)   
. `+ \4 h' ]3 V颠倒字符串str的字符顺序并返回  ( T8 R8 c% ~! {
mysql> select reverse('abc');  . F( j. m5 n1 a6 y2 l4 V- F: l) y
  -> 'cba'
1 |; Q' J0 L$ T, |# ] ) D' a! P0 C. q/ i$ n
insert(str,pos,len,newstr)   
! E8 w: _0 }; h9 I3 {% f把字符串str由位置pos起len个字符长的子串替换为字符串
" e6 J5 @& z/ O+ A# Cnewstr并返回  
! y6 y) R6 x; smysql> select insert('quadratic', 3, 4, 'what');  
# h& {$ L2 `% V: g5 X( N  -> 'quwhattic' 1 F7 K$ o: I' k. M8 j4 a  b6 p* o
' h9 q; i+ y# N2 Y2 `0 o
elt(n,str1,str2,str3,...)   
  {1 a  U/ t: b% z  d返回第n个字符串(n小于1或大于参数个数返回null)  
0 V/ x5 L+ N7 t, M# U% F$ ~mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  
& ^/ e) Q% n/ x" p  -> 'ej' ) |4 S  F9 |& B( j* d+ [8 g2 K
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  ) \: o, m, \, N  S& G! F5 K
  -> 'foo' 7 ?' K  E2 Q9 J( W+ ]: K2 A2 t

! o6 R; N0 H# Ufield(str,str1,str2,str3,...)  
/ k! n+ U- ]: Y7 X: S/ d. q返回str等于其后的第n个字符串的序号(如果str没找到返回0)  ( c7 L1 S9 R/ T0 O
mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',, c4 S* L5 |1 r3 c
'foo');  
; `/ P$ q5 I- V) A1 N$ X  -> 2  ; w9 J6 ]9 C9 c( r
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
; o+ ?) V) s! u& \6 d. s5 j: L'foo');  # _- I" j6 D. p6 ?/ `! c( R
  -> 0  6 b0 q8 f) Y# Z2 N

2 [+ {& k! Q5 ^( bfind_in_set(str,strlist)   
3 P! ]" J9 Y2 t返回str在字符串集strlist中的序号(任何参数是null则返回
5 ]5 ~! `. {, U. O1 j- K; k, b0 Anull,如果str没找到返回0,参数1包含","时工作异常)  
) {3 s5 U2 q8 |  E0 [+ h+ m8 Nmysql> select find_in_set('b','a,b,c,d');  
$ m) Q8 ?) J/ a$ l" F  -> 2  
6 J, h" Z1 y1 M; z1 n   
0 G) X, Q9 o% B9 b- p5 ~2 K( q( Amake_set(bits,str1,str2,...)  0 M" r$ t7 I1 K( Z
把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应, P8 I/ n+ p/ I: j9 `# Q
位置的字串选入字串集并返回(null串不添加到结果中)  2 t4 A& M5 ^8 l4 V( R- s: `) b' n- I1 P) Y
mysql> select make_set(1,'a','b','c');  
/ ]' Z7 G3 Q0 Z# b& X4 i  -> 'a'
# Z! @) b9 C/ r+ n7 U0 vmysql> select make_set(1 | 4,'hello','nice','world');  
% ~5 t2 X. w; Z8 h. @1 j+ `" }  -> 'hello,world'
' ~# r; H) |/ W) x6 s5 wmysql> select make_set(0,'a','b','c');  + o# W7 ]( D' y4 D8 w
  -> '' & V/ X9 @: y" l9 Z- q

' k' F+ N8 i3 z* Nexport_set(bits,on,off,[separator,[number_of_bits]])   
* B' M9 E( f+ b9 i6 R按bits排列字符串集,只有当位等于1时插入字串on,否则插入; R, L' B% ^) s2 }0 Y9 {
off(separator默认值",",number_of_bits参数使用时长度不足补0
! Q- Z! V0 J% V$ E. o而过长截断)   
* P! W5 R4 a0 h7 C3 Q4 lmysql> select export_set(5,'y','n',',',4)  
& h* E9 S8 x9 K  -> y,n,y,n   5 [" z" L9 G, M% u

$ {7 K8 c& ?& N, z. V" A( N4 Tlcase(str)  
  A4 t: h  ~* P2 f: Z# z2 v* r: G% Hlower(str)   ( j: [) a0 w1 C* ^- z  D
返回小写的字符串str  8 z% q6 J5 \3 f5 t6 S
mysql> select lcase('quadratically');  . |% e8 I9 k5 R# s+ g& Q! f
  -> 'quadratically'
; u4 z5 P- n/ ?& P$ U$ D0 g   
. l/ m& J3 @1 j4 }3 ?ucase(str)   + `, g" y5 Y# h) M; u4 p
upper(str)   2 ]4 g$ \1 ?. L$ L3 K9 G6 e
返回大写的字符串str  * W' ^0 g! O2 R2 k8 V* O
mysql> select ucase('quadratically');  
' r/ s( |0 @/ R. F# h  -> 'quadratically'
8 c$ p. h$ O8 Q5 q 2 p. W% ~  @( Y
load_file(file_name)   
, \+ \( h7 C5 A$ h  @  C. l! N读入文件并且作为一个字符串返回文件内容(文件无法找到,路径
7 ]/ `# h6 T% `8 s7 c不完整,没有权限,长度大于max_allowed_packet会返回null)  ' x8 z3 o& K, ]; {: F
mysql> update table_name set blob_column=load_file' g# G, g+ Z( c5 F( b
("/tmp/picture") where id=1;  8 h5 t6 Q; |: v

, F3 V; ^7 |- G; t  C: J0 F6 f2 X2、数学函数$ H$ b* S7 N* j9 A5 s$ h
abs(n) 2 @7 ?' {. `1 H( ?; n
返回n的绝对值  4 O5 U# U# W& `; F( r& ]% V
mysql> select abs(2);   
. G( m8 i: m+ ]+ C+ g  -> 2    . d8 x* R  {% N7 s. W; b
mysql> select abs(-32);   
4 O1 J. g# _* I% v/ j8 s  -> 32    , t2 I- S0 q( h' ]8 H
   
* R# ]- o% @7 g# c0 Bsign(n)  9 K" i8 Y7 S- X
返回参数的符号(为-1、0或1)  : H) D, y+ ]. x2 f* l* ?
mysql> select sign(-32);    8 ^5 r6 P" _" n( Q* A
  -> -1   
7 T* q4 K& c9 \# Tmysql> select sign(0);   
/ \5 f* |9 N% N8 ^2 n; l  -> 0    . P% V" }$ a* x9 m+ \
mysql> select sign(234);   
" \; \1 ?9 p. l8 U  -> 1   
# i3 R7 L6 Z- M0 _2 C7 L * P7 p8 W2 z8 j
mod(n,m)    2 y! Z+ C. K. A5 h. f% l! _" s" c0 C
取模运算,返回n被m除的余数(同%操作符)   
5 Q) H; F& ^% |; `mysql> select mod(234, 10);    7 L$ p& t6 C5 Z: o. L8 g) E, V
  -> 4    6 M  M1 z- ~& V# J/ }% ~; R
mysql> select 234 % 10;    0 K7 a0 \& N1 u! K) |+ a; a9 W; {
  -> 4   
7 W' y  W& f/ i6 n  x6 c0 Cmysql> select mod(29,9);   
7 F( W; X- H: s, D  -> 2    : e$ G  X4 p, m) e+ N4 x6 ^0 p( r

5 |$ I7 B8 o# L: f; D) g: R8 |floor(n)  
* h$ A; o3 ^) z返回不大于n的最大整数值  
: }, `0 J( ~3 F7 \% ~; k+ m6 v7 u* T8 Y) h& Kmysql> select floor(1.23);    % C. ~3 a1 N0 s  z1 a
  -> 1    # C5 w) z" q) i, F
mysql> select floor(-1.23);    # k7 z: j0 Y9 T" u; p2 u2 v
  -> -2    1 v6 F" Q- T" R
" ]2 k, o" i! O8 O* F( B
ceiling(n)  9 R% X& z3 W& m0 x" c
返回不小于n的最小整数值  5 f: Q/ ]: t7 W! _
mysql> select ceiling(1.23);   
4 W7 U  N" x, V. `5 g* d  -> 2   
% c! R% ~; F2 r% U: Q4 C# i/ Q: b4 Cmysql> select ceiling(-1.23);   
/ A3 E# F& }0 ]* F8 Z# p7 T+ l  -> -1    1 D- Q% {# e" ^& z. ^4 j1 {: n
  b% f& A5 K$ y, j! y$ b, }
round(n,d)  # x& r8 U+ T7 f- W8 T8 ?# w8 F
返回n的四舍五入值,保留d位小数(d的默认值为0)  
" H" A* a0 |! W- P8 Pmysql> select round(-1.23);   
1 ]. y( {% a" P) k6 a, L. l  -> -1   
6 h8 \" D7 Z$ M5 C" `) Gmysql> select round(-1.58);   
* W. N  h5 o1 G8 R4 h# E  -> -2   
+ Z) E/ z# S9 x5 t$ smysql> select round(1.58);    ! G. T% o" z; J( R# _; Y) {* |* d3 g
  -> 2   
2 p6 e6 I9 H* Z7 R% p  L, V  l, s. Kmysql> select round(1.298, 1);   
* U2 {- K. ^" x, h& l. E5 @  -> 1.3   
8 w8 S' D& ?5 [. lmysql> select round(1.298, 0);    1 C- c2 S" Z) A, H( c& x) G  Z9 r8 d
  -> 1   
1 C, I0 }- w! L: H4 V' }  I ! b, j2 a2 A$ B5 |: m- D& h
exp(n)  
# {" ^4 m: V. v- k) H2 x8 Z7 A9 K返回值e的n次方(自然对数的底)  
" W- D, s5 }. m' Z/ [  umysql> select exp(2);   
# f& Y7 g( z- n4 S; O0 t' k  -> 7.389056   
5 |( _; p+ }4 m  p$ t9 r0 jmysql> select exp(-2);    " {2 A7 u! K+ E! U" x; L% A
  -> 0.135335   
4 X/ b0 u# ]9 N- k4 m - c/ _% a: I, P! m
log(n)  
- {" [9 Q2 h- I1 G& t% q/ j返回n的自然对数  
6 q! H1 A# D# }' Xmysql> select log(2);   
/ W; T; E1 C/ `5 B  -> 0.693147   
7 L, Q( g* f# B% a, Cmysql> select log(-2);    + g; @7 l* M; F
  -> null   
6 w6 x' @0 x7 v  U / `& T% l  _9 H6 X- Y3 j
log10(n)  , L4 n& e6 `' b) W2 r1 N1 O
返回n以10为底的对数  
3 M- ~& \) a9 z2 L$ Umysql> select log10(2);    ! t# e. X0 [6 L+ _  y! Q) [
  -> 0.301030    1 z8 ~/ L2 _; K8 c7 P: b
mysql> select log10(100);   
8 f( h! x0 e4 W& a3 L' ~+ }  -> 2.000000      y( }: x/ s* t5 \
mysql> select log10(-100);    % k) F( n' H: ~) W
  -> null    % p. F+ ~8 F( i

* A- k) X1 _5 t) zpow(x,y)    1 q9 B" L* `6 b7 |9 U+ k
power(x,y)   
& p# H# V7 K& ^% D5 o 返回值x的y次幂  
- S" \  Z* ?; o5 ^, T: U7 Kmysql> select pow(2,2);   
' ~4 ~8 u. g  A" j$ L  -> 4.000000    2 b3 \( {: C/ M: H
mysql> select pow(2,-2);    7 U! V6 L7 w' k
  -> 0.250000  3 \& F+ {$ q- Q& N- R$ J& O
% m" {0 @  t0 ~+ x3 L+ K7 F( K* M
sqrt(n)  3 C+ ?4 j. z  `6 e) {( F3 R& P
 返回非负数n的平方根  ; ^! @. }7 w/ m
mysql> select sqrt(4);    9 m6 n" a4 D0 D$ d1 ^
  -> 2.000000    ' i! l" S" Q% V9 ]& b4 r
mysql> select sqrt(20);   
7 V# j- T) p# R( J/ d- v7 F" h% H" T  -> 4.472136   
6 C4 U  i( ~" ]0 X# k3 l
, x7 p: [' o9 z( T5 Gpi()   
/ H6 q, \! f) J 返回圆周率   + p/ A0 c- v5 Q# X* {! p$ A
mysql> select pi();   
" d" ^2 S# v9 A* a3 i$ m* z" s  -> 3.141593    2 m" x. S0 ^6 m) g3 i0 b  i
- B3 c6 C0 R! j
cos(n)  
: q5 A" X/ `' D0 [* W% K# } 返回n的余弦值  
/ t6 N4 P2 O- ^# V8 bmysql> select cos(pi());    f" K/ [2 f7 Z" C) A1 ]6 d
  -> -1.000000   
2 ^3 ?3 i1 p) `5 r2 \9 _& Z% O5 r
5 O5 h( w7 q3 {. o2 |; e5 msin(n)  
. S5 v8 p; A5 R/ p& M; |6 [2 ^6 k: E 返回n的正弦值   - H5 x. _; b; l7 Z
mysql> select sin(pi());   
+ [$ O6 k7 o- |1 H: Q; L  -> 0.000000    6 u( L, K+ X5 ]; K  \4 O! m
4 Y7 C7 L0 s4 F+ T
tan(n)  8 L# _4 b0 V2 r9 H: w* s
返回n的正切值  2 q. q7 S8 r" `  ?) }3 G1 j$ _8 H4 i
mysql> select tan(pi()+1);    4 k6 Q1 W) j, r3 Z- g% N. J$ Z' w
  -> 1.557408   
$ @4 z6 ^5 U" C, ^/ F $ t/ y  |3 r3 Q# X: k" k% X/ Y3 X
acos(n)  % `3 w2 u/ j( ]' T) L
 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  # D$ ^: C3 C( H5 Y, v' w
mysql> select acos(1);   
4 R; j2 B) L, Q1 c! B, b0 \  -> 0.000000   
. j' j% n: C1 A4 B  dmysql> select acos(1.0001);    ' n  q" r& O% T( u
  -> null   
( N& `# N( m9 ?$ j+ }- D& |3 Vmysql> select acos(0);   
% N7 n& e# S( d$ _5 q# }  -> 1.570796   
5 |, Y" r' B9 f6 A5 {
3 M% A3 ?% O5 E+ k4 A; aasin(n)  4 \- n8 w+ D3 Z) |
返回n反正弦值  - s, i  C; ]- G* ^
mysql> select asin(0.2);    " E- }4 }  Z( b$ v2 H
  -> 0.201358    9 c; \4 O( X6 z  c9 u0 D
mysql> select asin('foo');    3 d9 t6 ]) E7 s9 c& N
  -> 0.000000    # E/ _5 f6 s5 {& M7 z! U; {. k

& w8 N0 M$ B  |  G" ^7 patan(n)  9 i6 L( U# R$ g+ }1 J$ u
返回n的反正切值  ) s, b: \( @; K  x8 ^' S
mysql> select atan(2);   
7 C2 B7 s! U8 l& I' Y) V  -> 1.107149    / [  y! _3 e4 C1 O# t
mysql> select atan(-2);   
2 {( x. z8 Z! _0 ^9 p6 q  -> -1.107149    2 ]7 H, t- k& u
atan2(x,y)      u& _* p1 g4 z+ k: l$ V) M4 o* r
 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  + d9 m+ k- L+ S  n% ?
mysql> select atan(-2,2);    : u: A. R  M8 ^; x
  -> -0.785398    , |/ x4 P7 O; [- ]" r5 @
mysql> select atan(pi(),0);   
5 E6 d( Q; N- g; G# |2 d  -> 1.570796    $ ?- f- M% h" b+ X) U7 n

/ O$ ]+ [" G! I0 Xcot(n)  + f& Y) I. b9 G( D4 ]
返回x的余切  
8 _6 @% ^7 O6 S3 Nmysql> select cot(12);   
& g" Q0 O! g8 V7 w5 e9 r  d$ v0 f& P( B  -> -1.57267341    5 q% V; e+ U" e, P
mysql> select cot(0);    ! Y7 ^9 p( }9 k! A( K2 ?- s
  -> null    ) q# m% e& F2 y

2 n/ C7 h' x4 g8 E: qrand()  1 B0 W# h, G& p
rand(n)    
7 M- G" K$ q. Y  {0 [返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
# p6 ^1 x, P1 D
; a$ r0 j1 K$ g7 Mmysql> select rand();    % s8 Z+ h- c! U* ~) h2 e6 o+ h* P8 v
  -> 0.5925    1 ]( K; Q3 k3 w( x! j2 F5 t% A
mysql> select rand(20);    , \* e. O. R8 d- D5 j2 H4 E) C; g
  -> 0.1811   
6 i5 r; c8 ^1 H. E% Q9 omysql> select rand(20);   
3 U2 K  h7 H) O0 A5 b/ g  -> 0.1811   
# u  N! y. |* a7 g+ v$ ]! _& h; Wmysql> select rand();    1 L% e4 B; r5 l! D" Z
  -> 0.2079    1 k# |" \  c# o( h" F( f
mysql> select rand();    9 y2 v$ r4 `' ]9 j5 c
  -> 0.7888   
5 q; o% k- Y7 F
, L& r% B( s5 u: Adegrees(n)  . ?/ d# d5 u' c; \+ [2 Y# [7 s
把n从弧度变换为角度并返回  / f/ J1 @  m$ V3 U' d
mysql> select degrees(pi());   
4 m" ?& G4 l  q; ]8 \& S/ s- n  -> 180.000000    ! M" B3 L, H% y. v* f+ {) B
' |4 n( q% e1 e# N. F8 {: j* g, r
radians(n) ! N( n8 w0 F; p+ r; {! ?9 E9 b
把n从角度变换为弧度并返回   
$ y3 @' f$ [  A2 h0 }- Y* Dmysql> select radians(90);    " |9 m0 D, ?" S8 P) d
  -> 1.570796    2 k5 d# ?% _; m* O
0 y6 L8 r! [) B$ X2 A! L4 M
truncate(n,d)   
$ I  o9 l9 A9 w1 e) y保留数字n的d位小数并返回  
+ A1 ^6 C5 u1 k+ z' i0 I+ ^! Z* Qmysql> select truncate(1.223,1);   
5 P( i5 n" c# Y" z, s  -> 1.2    ! s# Y3 A! V* W3 R! |
mysql> select truncate(1.999,1);    ; m" Y  F" g! B8 y
  -> 1.9   
9 l( @- b8 `3 f8 m; T, Jmysql> select truncate(1.999,0);    + S: Q" @2 _' p& n% i, ~
  -> 1    : r1 v6 U- L& M& H
7 K! X7 e) R* H" z& A' H) C* a$ \
least(x,y,...)    % l! P, `9 Y! h- `9 n' K. u( G% U
返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
  u, V; g3 G' T2 f4 Z( n% j* g% bmysql> select least(2,0);    , ^2 h, V3 a/ l. ~4 z/ K
  -> 0    " U5 s8 D+ {  p' _0 `
mysql> select least(34.0,3.0,5.0,767.0);   
: a* T! X! D: J+ F& h8 P  -> 3.0    & s4 \3 a- h: d" R9 @- g
mysql> select least("b","a","c");   
# ?8 ?% B; v9 W, m  -> "a"    % Y& S# F, q; U+ [
$ O( c" e% J: i  ~* T7 p3 t
greatest(x,y,...)    " H2 _) |! V; g8 H5 a
返回最大值(其余同least())  , r* T4 t5 L2 y9 P2 P/ K
mysql> select greatest(2,0);   
: O& `* Y  S) ^& E* ~9 F' o  a+ g  -> 2    8 n' ?( R6 W7 [9 B% C
mysql> select greatest(34.0,3.0,5.0,767.0);   
4 o# I7 E6 B; V; R: h5 ^  -> 767.0   
  f+ ^$ o/ B  h9 N1 J  Dmysql> select greatest("b","a","c");   
, R0 P, _$ R5 {7 H( f$ E  -> "c"     : }# z6 w+ @: s/ h3 Y% ~( E8 D

* R+ S; e2 y  H1 E3、时期时间函数
5 k3 y: J$ z3 M0 C6 Ydayofweek(date)   
8 W% e9 \8 z0 f& y返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  9 N0 R5 B1 j3 g6 y- {% p
mysql> select dayofweek('1998-02-03');    ' U. R( w1 t5 Y* Z: G
  -> 3   
* ~9 [+ y* b; G* m9 j6 w  X
$ [  j3 W/ k* v- E2 dweekday(date)   
% g: d% v) v, t返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
- b9 {' n* _/ w% C7 i  ( j6 a7 d  L- V3 s1 `  M8 y, q
mysql> select weekday('1997-10-04 22:23:00');   
! L( f% `, x4 U6 T7 Y2 X  -> 5    ; Y% R0 v+ u, ^
mysql> select weekday('1997-11-05');    2 s$ ^5 p8 k& d& B3 B# S2 `
  -> 2   
5 {( O% l( t9 f# b. Z5 K/ D
0 |* a# `; y# k# j( X& }dayofmonth(date)    * b3 e  E. P0 Y& d( k* [
返回date是一月中的第几日(在1到31范围内)    ! S2 m$ B- a0 c- E* X/ X( B
mysql> select dayofmonth('1998-02-03');    9 `! p) e4 ]! i9 o$ R5 u- c
  -> 3    4 g: |1 t( Y$ g+ f7 H: m

* a# l# O, x% ~, \; _( gdayofyear(date)   
4 D3 K7 V$ E1 V  V8 [返回date是一年中的第几日(在1到366范围内)   
. t* G0 X: b3 C0 ~: @3 ?/ smysql> select dayofyear('1998-02-03');   
' g3 ~+ n% W. O4 D  -> 34   
8 C9 B" W) G/ }- P & Z: x9 f# N+ A0 @0 [1 H
month(date)   
+ C1 F! I. D/ s$ Y8 W返回date中的月份数值    : Y- r( D0 u9 r
mysql> select month('1998-02-03');    9 @3 O6 |' @5 h' E/ p- ]+ D
  -> 2   
/ G! z5 r  m$ o4 X" T
& M! v( m* w- s$ pdayname(date)    : k/ F4 Q3 ^: \6 z3 Z, ~; m
返回date是星期几(按英文名返回)  , J! F2 q5 \0 G5 d- d" F
mysql> select dayname("1998-02-05");   
+ v9 @% W! Q. q  -> 'thursday'   
$ a! z; z6 {0 R1 g9 Y6 X ; p2 k3 a) H1 V
monthname(date)    , `% n( j* ^" L- u0 }
返回date是几月(按英文名返回)  
2 T. K# r& t8 E; c. q* Mmysql> select monthname("1998-02-05");    2 A& B" F. n0 v0 ~8 x/ w! A
  -> 'february'   
/ j" X6 Q& V  @1 U ' L  p7 \3 p  u. C$ ^' b
quarter(date)   
! n# b4 Y3 {, W返回date是一年的第几个季度   
0 s; D* O+ I2 I$ ~- n7 x- Emysql> select quarter('98-04-01');   
% W# Q" V1 _+ \3 L0 O# D5 |  -> 2   
' Q( q) q# G6 d& Y/ M+ N
3 ~8 t0 R, I3 B. P8 ?, w5 j( Hweek(date,first)   
3 W+ \) }8 C0 G/ V返回date是一年的第几周(first默认值0,first取值1表示周一是5 \: z) d9 ^9 J  ]; y
周的开始,0从周日开始)  0 {& y) P& m* H7 O$ Z* v0 U$ s
mysql> select week('1998-02-20');    : `" F* d* `9 ^. {
  -> 7    + V. T( i/ b) W1 v- n6 L' Q0 r
mysql> select week('1998-02-20',0);   
: s( A% ^+ V. M  -> 7    * g: Y& m/ f% x& O% L  _
mysql> select week('1998-02-20',1);    8 n* _% |6 E& |: v$ M, d
  -> 8    ! a7 G" N/ A5 p: k$ i- b- b

- q+ R! z5 c" z! C9 Dyear(date)    9 j6 _- w) [9 \- C$ M. X$ N
返回date的年份(范围在1000到9999)   
" S, w& {- F+ B1 h) fmysql> select year('98-02-03');    " [6 Q1 O3 \: E5 m  p
  -> 1998   
3 N/ ~8 `, b+ s% e9 r5 Z & [& M, w  ?+ p; \5 Q
hour(time)    9 _3 W, c5 p; i* M5 v; |
返回time的小时数(范围是0到23)   5 K+ t$ f. m  @( g4 m+ C
mysql> select hour('10:05:03');   
9 A$ j3 {; m6 d. G. `  -> 10    7 _. T8 \" S: F- p

" E& H% @/ e, G0 l$ ominute(time)   
% i6 ~; v3 M% _- {1 Y8 U8 i返回time的分钟数(范围是0到59)   
/ [2 l7 u; J  ?# @mysql> select minute('98-02-03 10:05:03');   
# Z; M' @+ w6 `, L$ i/ ]3 @  -> 5   
: L& _3 M! D" M6 [! R $ a6 j. X: Z$ E3 \% c
second(time)    $ O6 W/ m/ E0 G3 k9 h1 K. L& a
返回time的秒数(范围是0到59)   
- c$ U& K- F0 \) a. \mysql> select second('10:05:03');   
" f0 |2 o! n  n3 [) u# ^  -> 3    # B' |  _- q; n4 ^# B3 T& L. V4 i/ R

3 s" R, E6 f. S7 E* r  R0 @! ~( J8 fperiod_add(p,n)   
" g  l3 E+ N1 X8 Q7 R5 T增加n个月到时期p并返回(p的格式yymm或yyyymm)   
5 w9 g1 s2 _' \" qmysql> select period_add(9801,2);   
" B: F/ U! L" f+ U- X/ f  -> 199803   
, B- B& E7 S( c0 G/ i0 s! z3 u 6 [' L) g- Z- `
period_diff(p1,p2)    $ h, O$ d& ]  @9 Q& ~
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  0 ?. k6 T: }( A
mysql> select period_diff(9802,199703);   
2 D3 @# y5 T- K0 e# c  -> 11    6 f, P9 m& d$ M5 i) Q" j/ M1 j- B  v
/ g6 Y: v$ U  a  U5 U! L$ t
date_add(date,interval expr type)  
1 }3 I' U. X) Y+ m; I, s/ udate_sub(date,interval expr type)   
3 A* A5 G+ _+ z# o7 O! \adddate(date,interval expr type)   
& M5 U9 N/ S0 e, b1 w- o3 Qsubdate(date,interval expr type)  & F1 c  V9 @8 I+ ?
对日期时间进行加减法运算  
' J% Y' f6 h/ u! U(adddate()和subdate()是date_add()和date_sub()的同义词,也
- \/ }8 w4 j# Y' _可以用运算符+和-而不是函数  
* n6 g# E5 t! B# J, w6 `: cdate是一个datetime或date值,expr对date进行加减法的一个表
) F6 a0 [% C) {/ T: B9 r达式字符串type指明表达式expr应该如何被解释  ! n$ t3 ]% M8 E  f3 @
 [type值 含义 期望的expr格式]:  7 }* B) b) m! h" A
 second 秒 seconds   
8 R5 \; ]1 y: j* B minute 分钟 minutes   
+ f1 U' p  m9 f% _ hour 时间 hours   
5 W  b' p4 J) R2 }4 Z day 天 days   
# _7 v2 }: \6 ^ month 月 months   
9 i+ B/ l- ~+ H5 {( q3 ]" Y year 年 years    & M0 v; F# p6 ~% u" V5 K5 k
 minute_second 分钟和秒 "minutes:seconds"    - t; x7 D* d7 _1 S
 hour_minute 小时和分钟 "hours:minutes"   
: A1 Y/ S) ^7 A+ v6 x6 G day_hour 天和小时 "days hours"   
9 i9 e1 a1 B1 F* z( }3 V year_month 年和月 "years-months"    . z: T# {7 N7 d# Q: p0 W7 M
 hour_second 小时, 分钟, "hours:minutes:seconds"    0 c" U2 Q8 T, u6 O
 day_minute 天, 小时, 分钟 "days hours:minutes"    5 H4 _) P  \0 D4 x4 t% K
 day_second 天, 小时, 分钟, 秒 "days  `4 t' j* ^# ?) D9 m' T
hours:minutes:seconds" $ G' H0 p$ t9 D1 u
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个
% E0 e, C; R" S/ ]" O% ydate值,否则结果是一个datetime值)  
2 I5 j/ X" Z9 ?0 w& i 如果type关键词不完整,则mysql从右端取值,day_second因为缺
3 L& C/ H5 O5 x1 s9 [% t: ?少小时分钟等于minute_second)  + r  ~, P! N* y5 W, T
 如果增加month、year_month或year,天数大于结果月份的最大天9 e2 V9 }1 t" s$ L' C
数则使用最大天数)    8 A  S4 ^+ v( @. _4 k9 R  G. A
mysql> select "1997-12-31 23:59:59" + interval 1 second;  
" W# ~1 J3 Y  l' ?# d0 G) r- ]: r1 _
" p6 a6 X: N* K+ a- [- S* z0 g  -> 1998-01-01 00:00:00    ( d5 u& [# O( v! J) U
mysql> select interval 1 day + "1997-12-31";   
6 e0 ?& Y8 n2 v& w/ S  -> 1998-01-01    ; K  {3 C0 U( K, F
mysql> select "1998-01-01" - interval 1 second;   
$ l( r' k3 W  n  -> 1997-12-31 23:59:59   
- M8 A1 p$ J, c6 X# imysql> select date_add("1997-12-31 23:59:59",interval 1" o' m" P) D! d, m! k- P2 H7 u
second);   
' {- k0 R) e$ k0 A' Q- Z" M7 U  -> 1998-01-01 00:00:00    . e  i5 R4 u" E2 ~, i% a
mysql> select date_add("1997-12-31 23:59:59",interval 16 I9 K: i7 B2 c0 {& g% n
day);   
, N% O4 m# r! f, p! s& q  w. e  -> 1998-01-01 23:59:59    5 @7 j' U5 e; i# K/ @) w
mysql> select date_add("1997-12-31 23:59:59",interval1 M. C4 U/ |4 e& W$ ?
"1:1" minute_second);   
- N( K7 K% q$ p  -> 1998-01-01 00:01:00    % [9 {* r/ A$ J. t% p
mysql> select date_sub("1998-01-01 00:00:00",interval "1
! d7 b; m. |8 J9 D1:1:1" day_second);   
. O; o; m5 x( }  -> 1997-12-30 22:58:59    / R9 Z& p+ ^- ?
mysql> select date_add("1998-01-01 00:00:00", interval "-13 r# ^! b) _- ^1 r
10" day_hour);  & ~/ q/ q8 X. A2 @9 x
  -> 1997-12-30 14:00:00    . J& ?: V2 l7 o/ w. j
mysql> select date_sub("1998-01-02", interval 31 day);    $ X5 x4 P# D/ C0 \' R& @2 F
  -> 1997-12-02   
! G/ B% g  w$ K* y- c) [6 ]mysql> select extract(year from "1999-07-02");   
* V; @0 t" c% x& H- R" n  -> 1999    3 B) _! C5 `) w1 k% c' }
mysql> select extract(year_month from "1999-07-02- f4 k6 Q7 v9 s# I* P) H
01:02:03");    . c9 ]# O% }; x  I
  -> 199907    : }: }  K) u6 u  F% c" `  ]
mysql> select extract(day_minute from "1999-07-02
: Y# x$ ?# ?. p01:02:03");   
- S/ _+ u+ {- _+ \  k0 B" }3 q  -> 20102    3 A$ X7 Z) ~: B6 E
$ Q+ Y$ D" k: x: w3 x2 M
to_days(date)    ; r$ v/ O" z9 U. I7 f3 r: A
返回日期date是西元0年至今多少天(不计算1582年以前)  
% @  m* ]& W/ h: ^mysql> select to_days(950501);   
: `7 P. _" N1 f$ w2 M. {  -> 728779    ! T! _7 j& n/ U. q) f
mysql> select to_days('1997-10-07');   
$ Z/ d) @- ?# U  -> 729669    7 c; ]" \4 K. ~) \& ]% c
) j- a( k- {3 o* G8 A
from_days(n)    - ?, H) _, r( s' C$ W0 D( r
 给出西元0年至今多少天返回date值(不计算1582年以前)   " j& q! X# ?7 H
mysql> select from_days(729669);   
( A: r& @8 m3 G- |- d# x  -> '1997-10-07'   
0 n7 G6 R8 _# a # M2 Q( ~4 c5 D9 C
date_format(date,format)   
( e$ @8 l/ s( `# B 根据format字符串格式化date值  0 ~1 k- J- i. \6 e6 t6 a
 (在format字符串中可用标志符:  
5 M8 S1 W7 K$ N9 O2 U& H; ?0 m %m 月名字(january……december)    - H5 N, E  v7 K# ^
 %w 星期名字(sunday……saturday)    ! D9 z# I* i1 t* B& a6 z& P
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    - U; ]3 Q, W- A( }! n
 %y 年, 数字, 4 位    7 v% X# ]( h! _! u
 %y 年, 数字, 2 位    % m5 ^' H* Y* c2 [
 %a 缩写的星期名字(sun……sat)    ' P- L1 j7 i/ C: i' j- S. `
 %d 月份中的天数, 数字(00……31)   
: X+ L: V1 {# l, b* u %e 月份中的天数, 数字(0……31)    3 g2 Q: u5 w- K4 k- Y) L
 %m 月, 数字(01……12)   
+ [! H7 w0 h$ i( ^: x %c 月, 数字(1……12)   
6 ]+ b8 n/ E4 v' Z. [5 x8 q8 P% M %b 缩写的月份名字(jan……dec)   
6 P' g, v6 o) s& A! D* y %j 一年中的天数(001……366)   
. ~! G1 u! Q" {* Z, H %h 小时(00……23)   
; V  T# y6 P- Q1 Q8 f %k 小时(0……23)   
/ J6 x4 p8 e; g" L %h 小时(01……12)   
' m& n+ D0 |) D1 i %i 小时(01……12)    , ?1 T% [+ Y$ z' o' I
 %l 小时(1……12)   
0 q. g( `( {. D4 B %i 分钟, 数字(00……59)   
- T8 {6 z2 b4 V* z %r 时间,12 小时(hh:mm:ss [ap]m)   
8 a9 s+ X2 [7 R( U( o %t 时间,24 小时(hh:mm:ss)    2 k/ l$ `7 i( b: m1 b
 %s 秒(00……59)    . v: O2 \" z) o" ~
 %s 秒(00……59)    / e1 i% X* i. k' J: e
 %p am或pm    : X2 o+ O" A4 b: U& W* r1 T
 %w 一个星期中的天数(0=sunday ……6=saturday )   
8 w! E( g+ C$ w) f %u 星期(0……52), 这里星期天是星期的第一天    * E( x" e- M# [6 S) B+ p
 %u 星期(0……52), 这里星期一是星期的第一天   
* m% ^9 L. O0 v* n) `7 @ %% 字符% )  4 C, r6 o" w9 n
mysql> select date_format('1997-10-04 22:23:00','%w %m %
: R7 D' i4 w: By');    % D5 Q5 I" S$ \8 U) Y8 e: t6 b
  -> 'saturday october 1997'    0 C8 k3 @0 I* G$ }8 a0 a/ ^0 w
mysql> select date_format('1997-10-04 22:23:00','%h:%i:%
: k0 y, ^. v2 t7 q, e# A4 Cs');    0 H5 _1 D2 @2 V: y/ d7 s
  -> '22:23:00'    2 d5 e4 \2 \- U) \9 f2 O
mysql> select date_format('1997-10-04 22:23:00','%d %y %a
3 j+ g4 v) P- n1 O%d %m %b %j');   
+ q  x5 s/ Z+ v4 F* D  -> '4th 97 sat 04 10 oct 277'   
! C8 q$ b/ l5 a* K$ E! ^mysql> select date_format('1997-10-04 22:23:00','%h %k %i; B' c& |( M) D" \6 R4 S
%r %t %s %w');   
! A5 \0 \6 ?7 }2 }' f* j  -> '22 22 10 10:23:00 pm 22:23:00 00 6'   
! M: ]/ |+ d3 Z1 M/ M& q
2 ]$ R2 E9 ~+ S# H4 A7 V3 `5 v$ {time_format(time,format)  
( B- p: |, [! c4 x* g 和date_format()类似,但time_format只处理小时、分钟和秒(其
# e2 ^. q/ X" f- X余符号产生一个null值或0)  
. o7 E. T7 \9 Z( u
, L1 W* k+ k, @: bcurdate()     
  H+ ?" G7 O1 f6 Ecurrent_date()  
! T; A" s. ^. L& F) ~ 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
- Q7 {, w' {* C处上下文是字符串或数字)    8 B. J# U+ w" j
mysql> select curdate();    ! S- `, b& k- i+ f" C7 o$ w3 [
  -> '1997-12-15'    , l8 q7 x" g* J0 ^
mysql> select curdate() + 0;    ) S- c2 v6 w9 _, e
  -> 19971215    % m: `( T- y9 \1 K2 N3 |
( L/ n6 l( ?- N/ o1 `2 Q& ~
curtime()   
4 W6 d' O' j5 y' p8 ^current_time()  
1 u' M, Q( |' L# } 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
! W" e5 f, t* s* x! m下文是字符串或数字)      5 b7 Z/ E% V2 g- ]$ ^7 [
mysql> select curtime();   
4 F/ Q5 R6 m/ |# ?$ b. f: N  -> '23:50:26'   
" a8 q0 O: _: X* ^1 c7 d- w8 ~2 ?mysql> select curtime() + 0;    % A& e# i% s( h/ Z$ M' M% V6 I
  -> 235026   
! _! {0 @% l7 |0 {/ ^- c1 @
& c% L: Z4 T" a) {2 h8 gnow()    3 v% ^# Q/ I: U
sysdate()    . i$ L2 F2 N' m- ~; i2 Z
current_timestamp()  ; k; R  {6 U7 F0 u2 l# X: ?
 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
5 l( Z1 t; W2 a时间(根据返回值所处上下文是字符串或数字)     
4 p9 z( Y1 `9 ]- `mysql> select now();    , T8 m- V2 f% _% ?# n) {* T% y
  -> '1997-12-15 23:50:26'    : ]! n! ^' p& m- R1 S' H: _1 `, N. J
mysql> select now() + 0;    : [6 _9 H/ B' }* w$ Y
  -> 19971215235026   
% L0 w5 e3 ]) B8 C6 `/ Q+ s
$ L3 k/ J+ _2 o' H5 J. I5 ounix_timestamp()   
* b0 G' Z# Y  l/ Vunix_timestamp(date)    8 H9 \. i) F$ p: m% w; t
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒2 h- d( W. C" L+ W6 J
数,date默认值为当前时间)  6 U: f7 S5 L+ V6 I" A' ^; J
mysql> select unix_timestamp();    / J, b6 F# q9 `/ j
  -> 882226357   
  |; R- Q# d% x, L; {$ Tmysql> select unix_timestamp('1997-10-04 22:23:00');    9 D- @" B4 c0 t6 M0 f5 h
  -> 875996580   
1 [' ^% @; ]0 P  M4 G   A; y: ~' N# V6 ~
from_unixtime(unix_timestamp)    . d3 |; I6 o! C: v, T1 z, _
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的
. g: B0 ^: K2 L5 W6 t& v" y值(根据返回值所处上下文是字符串或数字)     
7 E  b+ V( L( F, g; m% rmysql> select from_unixtime(875996580);    - \) n2 Y0 k! k
  -> '1997-10-04 22:23:00'   
3 p& K4 d$ R/ J/ T  g  bmysql> select from_unixtime(875996580) + 0;    " q) @! m# O5 A% M6 J& ]
  -> 19971004222300    7 |0 |) F' {: h! r) }; p5 A

$ F7 c- h4 K& H4 w8 ofrom_unixtime(unix_timestamp,format)    
# T; x! t# o3 _) L; k/ r以format字符串格式返回时间戳的值  
) K9 G8 n& Q. a3 l3 ?% ?mysql> select from_unixtime(unix_timestamp(),'%y %d %m %
! i! k, }* q7 s' k: Uh:%i:%s %x');    ; T4 q- K* P7 e  e
  -> '1997 23rd december 03:43:30 x'    7 u# i7 j( ^9 j( X

  i7 w# H8 W$ l8 dsec_to_time(seconds)   
/ H% B& X. u: s6 G! C以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
1 l* M1 s7 i6 y8 [$ t# imysql> select sec_to_time(2378);    8 ]6 I) J- f$ T4 K. ^; m' L' x
  -> '00:39:38'    * U* p$ M. `, R, F3 r' t5 ^$ D
mysql> select sec_to_time(2378) + 0;    ( r2 ]% e) Z6 M; y
  -> 3938   
6 y+ C- g3 a6 G5 p; S* `. k 2 ?+ K# l3 }6 Y" Y8 q
time_to_sec(time)   
: f( ?% }* d* g$ S. l8 X返回time值有多少秒   
0 q2 y3 [7 s  C3 smysql> select time_to_sec('22:23:00');   
5 U+ V% B  a% R  -> 80580   
* S1 p/ p' p+ e5 Amysql> select time_to_sec('00:39:38');    * P+ v- p2 B* k8 I+ q
  -> 2378
4 d4 V# n2 |' g4 s) n$ k& p # ^" X' N  @6 @7 z/ l
转换函数4 h. [9 m+ E6 m* ]* n
cast. ?4 |, w/ R3 G1 P2 U" I8 I0 Z2 f% Y
用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]1 |+ ]! n  o$ h4 L: I4 ~
实例:select cast(a as unsigned) as b from cardserver where order by b desc;
( K' ]" \* W/ o- o: N, V) O% e- \convert:
! O3 M/ Y, q6 |0 Y6 t; U用法:convert(字段,数据类型)
" E: p, d. b2 y. C$ B* `实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

$ G+ K1 x8 g2 U7 z* k
回复

使用道具 举报

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

本版积分规则

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