找回密码
 立即注册
查看: 2847|回复: 0
打印 上一主题 下一主题

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数5 o* z" @' @4 k7 J; ^; c/ t
ascii(str)   6 z# i: j% E. o! k9 P( W* r
返回字符串str的第一个字符的ascii值(str是空串时返回0)  
! }% ?! I3 q$ h8 j, z4 l$ j* Pmysql> select ascii('2');  
! g9 ~4 T3 Y4 i& k  T6 w  -> 50  
9 D1 [/ E8 ], @% [6 I5 u' N1 smysql> select ascii(2);    m$ T! _* e% B) R9 C
  -> 50  
+ N' w* g4 R5 _+ E  n' S4 nmysql> select ascii('dete');    T" c2 c; b$ `8 j9 x: Z
  -> 100
& b9 o0 P6 e5 Q2 Y- c; `
ord(str)   8 A8 b" O, \7 c) }5 D
如果字符串str句首是单字节返回与ascii()函数返回的相同值。
) B& R; _. j* d, `4 f: L8 R* C. w1 L* P
- l* K. u$ _# ~如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  
* D/ f: B; m+ Rmysql> select ord('2');  
, }0 @* J$ l" {0 y1 v+ [: ^  -> 50  , z8 W& P7 V# r* Q5 J) B
   
; u- g6 K% \! _) q1 ?conv(n,from_base,to_base)   
' r) A  s& H( y0 D3 K- v; d) e对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  8 T' K3 z- @' U: P
mysql> select conv("a",16,2);  # i4 u# ?9 l5 T5 O" b
  -> '1010' ( N" k; t. P' G7 n2 |
mysql> select conv("6e",18,8);  
1 n4 s8 u9 u4 |7 V4 n3 J# ?5 A  -> '172'
4 n; D! T" K# [2 W* ymysql> select conv(-17,10,-18);  
3 X9 Y% l7 L0 Y7 T( Z6 p7 `  -> '-h'
" `$ ?$ z0 r% a+ Vmysql> select conv(10+"10"+'10'+0xa,10,10);  # N- {, d6 Z* \1 X
  -> '40'
1 e0 Q; F" F( V" ]) ^) {; i   
$ ~8 P# ~& j8 @' ?. ?bin(n)   & l- z2 K3 }6 Y. C8 c% i
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
8 C; u  c& w! q" f* b. xmysql> select bin(12);  + L0 ^1 C/ Q6 h/ @1 ]7 `% g
  -> '1100'
; L) ~8 r9 Z6 C' n- X7 x5 k& z0 a
1 @# ?; ]) V/ X. e8 E; E; g# h9 Doct(n)   
" n/ p: e3 P" i' w0 X8 J/ W! n把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  1 c5 B! i' O$ j1 j" g! u
mysql> select oct(12);  
4 {( ^9 ]% f! G  -> '14'
' p/ ]/ b* V: k. Z: ~) a   : I4 _9 K' h+ o$ I  _
hex(n)   8 p; J( _% c, ?& s. R
把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  1 `4 X; ?2 z  k! ]' ^( [2 \/ C
mysql> select hex(255);  & S5 Y& M$ }9 ^0 ?2 x
  -> 'ff' . K  [+ J  j( W
   ) r, O7 R6 B& _0 h7 a' ^& P9 f
char(n,...)   
- o& W- i1 c% r9 d- }* B3 b& E5 ]返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   ' ^1 |# R1 s, V9 {  t( z
mysql> select char(77,121,83,81,'76');  $ t8 }) F0 v+ a/ q! E$ I2 _6 c
  -> 'mysql'
2 L$ J3 s! Z' ~: ]8 F! }mysql> select char(77,77.3,'77.3');  
/ N$ G( V, }7 S( f4 J  -> 'mmm' ! b( }6 {: o0 N$ d  Y
   - E1 u6 i, x* s0 F1 I
concat(str1,str2,...)  
0 W, b3 f; b* Y1 C把参数连成一个长字符串并返回(任何参数是null时返回null)  
5 v( K5 l# A, umysql> select concat('my', 's', 'ql');  
* E4 }* U9 q) S2 _3 X  -> 'mysql'
# h  Z9 A# |9 n( Hmysql> select concat('my', null, 'ql');  $ c5 w# x% g3 K9 U9 Y
  -> null
5 r7 T, q% C" q1 r( p5 O3 cmysql> select concat(14.3);  
/ d/ \. x' m8 h6 u/ Q  -> '14.3' 4 m+ R$ K7 G) ]7 l  r5 z

- {. i' j4 t/ C+ R5 ?& olength(str)   ' L' f# z& I# o
octet_length(str)  $ j- B3 A) ~8 a+ j, a% |2 B
char_length(str)  
  E+ K* k; u, P3 }/ mcharacter_length(str)  
3 i: D5 R, |: u! a返回字符串str的长度(对于多字节字符char_length仅计算一次)3 c0 c/ k  V& K6 F3 q7 q' q  K
mysql> select length('text');  ' M* J/ g  m& S, t
  -> 4  , C7 Q+ B* Y! s; a8 ~6 w$ w: D
mysql> select octet_length('text');  : w  Q9 X- n# l8 J9 h
  -> 4  ( F$ ]+ _5 P* O8 j! `

' b4 R8 `' j9 I3 Flocate(substr,str)   
- C+ c, A' ]1 J. E6 n/ F- \position(substr in str)   
1 J1 x4 k4 ?# F- e$ `' s/ N8 c- Z+ K0 C返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
" v8 A# q, m; ?" F2 i* pmysql> select locate('bar', 'foobarbar');  
3 [; w- ?( z+ N/ u2 e3 E/ T  t  -> 4  
# I' I# U& K/ Pmysql> select locate('xbar', 'foobar');  
, d- W+ R, |/ ?  -> 0  " ?# I0 G3 C; b! e; c& j7 b
   
. F+ \4 @4 z% Xlocate(substr,str,pos)
3 u. D: Y; r; y$ d" T" B: P返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  ! |3 _& T# |9 F
mysql> select locate('bar', 'foobarbar',5);  
* t8 p2 u  O. r. g  -> 7  
: v, x+ Z" g7 f' Y& N % B+ n; Z7 U- e+ }$ @
instr(str,substr)  
/ d1 N, [, Q6 K, r+ P* s返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  % g+ g: W; U3 c( h
mysql> select instr('foobarbar', 'bar');  " g% N  r/ e$ z0 X; W7 z. m+ o
  -> 4  
0 X, o' `0 N  p7 E1 t; Y4 n# ~mysql> select instr('xbar', 'foobar');  
) c) g% ?$ ^4 J. m6 {  -> 0   1 X( M* x$ G& i% j5 v
) s$ v# D+ [8 W
lpad(str,len,padstr)   
* c( F7 U! N; \' T. j+ l/ L用字符串padstr填补str左端直到字串长度为len并返回  , p  f  S. Z0 c
mysql> select lpad('hi',4,'??');  - L" g0 }; f9 q7 Q: u5 Y% {7 Z
  -> '??hi'
) e; T: U# S, g! Z; o" {" H   + @  w$ {4 i9 V/ O7 N
rpad(str,len,padstr)   
2 w  O8 P( K3 W7 m+ G用字符串padstr填补str右端直到字串长度为len并返回  
* _# u( H  a# n& Q0 h8 c0 Amysql> select rpad('hi',5,'?');  % Z2 v" t' g) D$ |. N8 `' Y1 R
  -> 'hi???' 5 a0 {1 J9 V3 x* T+ q

* Q& C6 c7 h" ]/ |& l' I; uleft(str,len)   " |0 b, y* G  x
返回字符串str的左端len个字符  
& z! J$ N# V5 V! {9 g, X8 j) {mysql> select left('foobarbar', 5);  
! C6 E' v4 c1 f- C( D# n  -> 'fooba'
* ~' \3 M9 p. p# Y! v
1 a; \$ l' k* O% sright(str,len)   
0 R8 e8 l, _  z4 r% v8 B2 j$ `& H4 w# o返回字符串str的右端len个字符   
9 t- n* l: _# K* v0 d5 I# Smysql> select right('foobarbar', 4);  
6 E( _4 `8 p* Z" p! R* m& v$ ?  -> 'rbar' 5 K' |" n- Q/ r( [8 f$ }
+ c2 s, [5 |8 w/ a/ Q8 E: O
substring(str,pos,len)   " J* T& I+ `3 y* s
substring(str from pos for len)   
- M6 R& }0 c7 @4 T/ t/ q  t( X, }mid(str,pos,len)   
# r' M6 I/ T) \1 `4 l7 V( _" J返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  9 y0 \9 {2 w  j$ H8 r" O7 v; x1 G
  -> 'ratica'
6 @6 Y) t) Z: {4 C) ~! o
" X' l1 F" X; z: ~6 W: e  b1 Nsubstring(str,pos)   
% L6 M6 l- d! b7 msubstring(str from pos)   , n" K0 @! m2 u# O0 G$ g
返回字符串str的位置pos起的一个子串  7 M5 G) l+ z: Z' T/ I8 e( a
mysql> select substring('quadratically',5);  
+ M* d9 h. Y6 g9 U( O: O; ]9 \3 r: U  -> 'ratically' 3 D2 t8 I8 v& `1 B
mysql> select substring('foobarbar' from 4);  
: v! P9 }, M- W9 `+ v6 D6 n9 m, X& M  -> 'barbar' 9 V& [) Z# C( \; {- r# o" i
. g: Y/ X& `% q* M
substring_index(str,delim,count)   2 ?0 M3 G; P7 [
返回从字符串str的第count个出现的分隔符delim之后的子串8 B- j$ A0 ?8 g$ S2 t$ e2 S
(count为正数时返回左端,否则返回右端子串)  ! q1 J- o- V5 D2 n, e! y5 o1 N
mysql> select substring_index('www.mysql.com', '.', 2);  & ^7 O$ `, n5 K& S' U0 B
  -> 'www.mysql' 2 e& z* X' j0 H( ]( b- V
mysql> select substring_index('www.mysql.com', '.', -2);  1 H2 T, f% a6 i6 Y  g
  -> 'mysql.com'
; ^( c. c; q  q! ~0 E: @, n! r, g& p & N3 S  C8 n1 c3 r7 w$ O
ltrim(str)   
9 a3 ]8 r- U0 R8 L9 |9 z, [返回删除了左空格的字符串str  
3 g5 n! z  s& d7 `' r4 kmysql> select ltrim('  barbar');  
& V" f9 E: V) ~  E# i& U1 w9 h! K( |  -> 'barbar'
3 U9 Z( m1 ?8 @2 i$ @' L6 C. i ) q6 m/ Q4 V( t) _& }+ E
rtrim(str)   ( o5 o' Q) I2 h+ _' J
返回删除了右空格的字符串str  & ?+ Y2 O! w3 q) b+ K$ y9 }
mysql> select rtrim('barbar   ');  8 a4 @/ [. p7 Y
  -> 'barbar'
9 \+ F! D6 O* Q) ~ # G* h* y6 a/ n
trim([[both | leading | trailing] [remstr] from] str)   4 ]5 J! Y8 P" T
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
; h. r  o' m% q6 |5 K1 H0 l: lmysql> select trim('  bar   ');  
( y. q" n$ ^  ?  q2 }' L+ y# ~  -> 'bar' 5 [1 j7 a) |% W% r
mysql> select trim(leading 'x' from 'xxxbarxxx');  ! W$ T$ ?8 ~5 \4 G7 l
  -> 'barxxx'
7 i$ ^5 C' s7 imysql> select trim(both 'x' from 'xxxbarxxx');  
+ u# V& F0 C/ n2 r  }  -> 'bar' ' l! J# ]- r- ?
mysql> select trim(trailing 'xyz' from 'barxxyz');  $ C$ _% Q" ^7 h# C: n! F
  -> 'barx'   a* y, z& V( s2 b$ O: P2 a
1 \0 x% S2 l" d. ~' j) R
soundex(str)   
% p# Z, p2 N- f3 M9 N0 F/ y5 E* G& T返回str的一个同音字符串(听起来“大致相同”字符串有相同的( h% c( w0 |  D# v, `5 _
同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  * g! C3 K: o% s+ R) V. p) p
mysql> select soundex('hello');  7 e" Q( A  y' x1 g2 G& `+ R0 b! e
  -> 'h400' % w# B) |/ `2 {/ {
mysql> select soundex('quadratically');  ! \' h4 m/ [) o: l$ |2 K
  -> 'q36324' , t; c: _6 o+ m& O
   
. I0 x5 C1 ~: W% V6 T3 f1 _8 pspace(n)   - H& }+ k2 I" C+ m, t
返回由n个空格字符组成的一个字符串  - E. T: c5 a3 v- R5 ^9 [1 X
mysql> select space(6);  , ]/ l5 l/ X1 w# y! _7 x
  -> '      ' & I- g6 C( O/ h- }2 U( w5 |! n
   
4 b* Q  U+ ~; creplace(str,from_str,to_str)   7 Y# b3 ]8 W% [" K0 F
用字符串to_str替换字符串str中的子串from_str并返回  
! F- F3 l9 j& M' R& vmysql> select replace('www.mysql.com', 'w', 'ww');  + S2 ?7 r' |0 q8 S8 r. O
  -> 'wwwwww.mysql.com' + J& k, P/ t; K% j% d$ }8 R
' _* O/ [  N; w' K7 l" n
repeat(str,count)  
" P1 O7 t. |( i8 N4 I返回由count个字符串str连成的一个字符串(任何参数为null时) N8 x% }' L* [; M, }  |5 }
返回null,count<=0时返回一个空字符串)  ) T0 T+ g; M1 v4 n
mysql> select repeat('mysql', 3);  & D6 t1 z& t* T" V5 ?
  -> 'mysqlmysqlmysql'
' r7 s0 W1 o% K/ P- u   . t4 X* j: ~. T4 X! `
reverse(str)   
% N$ u! ?9 e, y9 t8 l' F& p颠倒字符串str的字符顺序并返回  
$ Z& b9 O" H: pmysql> select reverse('abc');  
* L$ i/ H. M  ]0 l) j  -> 'cba'
& a2 b6 o  u" ]1 c" P
8 R+ J* S$ M, r5 D  ^insert(str,pos,len,newstr)   
) H/ p; h% [' h; ~& k+ T把字符串str由位置pos起len个字符长的子串替换为字符串: A9 Y2 n* M% M
newstr并返回  9 o% {, G4 x3 O7 Y
mysql> select insert('quadratic', 3, 4, 'what');  
* }# A5 s0 ^- U/ }# k  -> 'quwhattic' 0 l. q& w* T- C' |& r# D2 ^
+ D5 T! x, C* s, g3 @( Q
elt(n,str1,str2,str3,...)   
5 D; g/ j5 @5 s4 M0 P' L; W返回第n个字符串(n小于1或大于参数个数返回null)  3 J! {) M6 X5 U9 E8 b' p7 a
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  
! \7 X. g$ E& i3 T+ U# b1 N5 F  -> 'ej'
7 R6 c) B. p; ~; n) C, f. jmysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  ) c* ^" }8 o1 O9 l& a6 s& U
  -> 'foo' : s+ u2 w' b4 G  Y# Z0 j  n- f

" r; i0 Y! h9 k" l( x0 Q( [8 i% i. Pfield(str,str1,str2,str3,...)   7 N) {0 O! d4 ?" D1 e6 U  K
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
2 o; o- _- T9 [mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
0 n6 a) o* F& p'foo');  
8 ?2 z3 E. s7 `" n) }4 x! X7 {  -> 2  9 w, r! s0 ], s
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
! @) c' G' z) r6 }6 P0 c'foo');  & E/ X- _% m. v# ], J
  -> 0  - z9 I& v# A/ g' |
9 T0 R& }& B4 }, n$ x+ N: H
find_in_set(str,strlist)   
- s& ?' A1 x& {6 P* ]0 X% M返回str在字符串集strlist中的序号(任何参数是null则返回
5 G5 y. A' Q* l3 g/ g1 h: gnull,如果str没找到返回0,参数1包含","时工作异常)  
  S) x9 r( b, ^. @) @mysql> select find_in_set('b','a,b,c,d');  
$ e& v5 [, E3 {+ L( ?' i  r: a  -> 2  
: P3 z0 v! ]1 u  a   
6 c8 E1 u+ ^& x/ Dmake_set(bits,str1,str2,...)  ' s2 i; l3 R6 {2 i
把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应6 d. f3 p) J" P5 J
位置的字串选入字串集并返回(null串不添加到结果中)  
$ }# d0 u2 j% U) r6 f+ Xmysql> select make_set(1,'a','b','c');  
- ~1 w  C% N. C$ F1 D; I  -> 'a'
- p  Y& a; P% `# n$ A- W/ Nmysql> select make_set(1 | 4,'hello','nice','world');  4 `! e1 v1 ^: D4 _+ a9 Y+ I
  -> 'hello,world' ; ^) ~) }# U, f- A: |+ Z- k; l
mysql> select make_set(0,'a','b','c');  3 z- |4 ?  F% u
  -> '' & K( W( r& T! k) d) M) V; ~
9 l* C3 t8 F, X- d  ]7 r+ |: [
export_set(bits,on,off,[separator,[number_of_bits]])   * F! V: J) d5 t  _
按bits排列字符串集,只有当位等于1时插入字串on,否则插入7 G1 i* P7 L$ B0 \6 T. X/ N
off(separator默认值",",number_of_bits参数使用时长度不足补0! D# ^% v0 y) F
而过长截断)   ' O: O9 B/ B: }6 w" U1 J
mysql> select export_set(5,'y','n',',',4)  9 I, y  }* M& m, h$ U" J, ~0 \
  -> y,n,y,n   ; w) Q1 ~) H, @6 k) |
- c! w# B% C6 X9 z  n% ]# S
lcase(str)  * c* I. T. }! R6 q  w. `# z7 O' p
lower(str)   
4 }7 |1 y+ ^, a+ B! r3 [1 U2 H' x3 }  l返回小写的字符串str  
2 |' m" F# a$ |) F0 O7 U6 hmysql> select lcase('quadratically');  3 W! t, r" b+ U& I8 p1 R2 B! _# G
  -> 'quadratically' ( C: n* m) ~% K) `3 A
   
% C( [+ O/ J. t: P; ^6 A& Qucase(str)   2 k0 n- S6 U8 c  x
upper(str)  
9 |1 y% S, z+ Y( P返回大写的字符串str  ' k3 c& h* K) z% [1 B: M8 v
mysql> select ucase('quadratically');  
0 M* W' c- z. Y  -> 'quadratically' * F5 M8 a/ r) m

9 V! C3 z8 h( ]9 Uload_file(file_name)   
5 T+ w/ _# R+ c0 A' E& f读入文件并且作为一个字符串返回文件内容(文件无法找到,路径
/ z1 M9 ^+ u# A8 I不完整,没有权限,长度大于max_allowed_packet会返回null)  $ g  G! D" l; J0 @! `
mysql> update table_name set blob_column=load_file' I2 D) \5 `+ R" `
("/tmp/picture") where id=1;  
8 H1 N7 G( f2 H! i- ? & a# Y0 L+ M  L$ s/ e6 }. u
2、数学函数# d8 R! C$ i( e$ v( O0 n' C
abs(n)
+ U/ b9 T- n1 O1 o) _0 k返回n的绝对值  
% }+ M& l* g1 {% b) Omysql> select abs(2);    # T) b+ r- s, H! ~' V! B
  -> 2    % n* G, W2 ]  h
mysql> select abs(-32);   
" q6 F- p/ F. `1 i. t; A, n  -> 32    ' ?* C# ]2 h+ K% W8 E
   
2 [) [; D" K' m) M. Ksign(n)  
; u5 z" T! W6 o$ z- D' _返回参数的符号(为-1、0或1)  % \: T+ x% U$ H. c2 U$ d
mysql> select sign(-32);      @: L$ F) R- c, [/ _6 \
  -> -1    " m& j- k8 U+ p  f4 E* e
mysql> select sign(0);   
5 P. y3 Y- d2 b  D1 _  -> 0   
' G: X5 E9 Q7 |, }mysql> select sign(234);   
: `3 y: Q- A1 R  -> 1    * |7 c9 p: p$ ~) H3 n  q8 g

" z' q! [" z5 K/ o* f# S7 k1 @, @mod(n,m)    ! Y! r! K# t0 x" B6 Z* N
取模运算,返回n被m除的余数(同%操作符)   
: A: |8 R5 B" V1 A7 C: j" O" Hmysql> select mod(234, 10);   
* J  j: W8 B0 b3 Z: C- V" h  -> 4    " q$ |2 U* O; G0 s( j
mysql> select 234 % 10;    ) ^% |+ }+ j1 D, Q# g% \
  -> 4   
( w7 e: W: x# J3 D, omysql> select mod(29,9);   
' S; z: f1 b- f0 G; v$ ?  -> 2    : s. j. @0 J6 E% Z
) x2 P& i$ d3 u$ [2 w  w- `! S
floor(n)  
' \' S' B6 e: ?5 W% t& k4 P+ K4 n返回不大于n的最大整数值  
7 O/ ]" y. B) F% w- W4 {( lmysql> select floor(1.23);    7 T0 y/ v+ q6 S' h1 E5 K( ?" s2 x
  -> 1    5 Q  Y6 m+ A7 ]0 g8 E& _' C
mysql> select floor(-1.23);   
9 O/ |* |) Q* ^  -> -2   
' \/ m$ J: s6 G. `5 o * A/ ]$ L) {7 I( f) q5 |9 S. B: y
ceiling(n)  , ]  Y' r# P; I
返回不小于n的最小整数值  
  Z' i1 m8 W5 T+ K# Cmysql> select ceiling(1.23);   
: `' E6 J3 [. @0 Y6 }  -> 2   
8 ^  G8 [$ Z2 o" M: imysql> select ceiling(-1.23);   
' t4 W: r. W% F8 t/ L  -> -1   
. [  L* n7 t) E% `" O- ^' i- T ) r8 C4 m( l4 Y
round(n,d)  
$ X+ P7 }: b: K( k- J, b返回n的四舍五入值,保留d位小数(d的默认值为0)  
4 ]6 |% o$ T& ]- k" C7 W$ o% p/ \7 Gmysql> select round(-1.23);    : Z- [1 l0 K' }' |3 N. w& s
  -> -1    % C! k7 `5 U% n% L6 B# e
mysql> select round(-1.58);   
& o7 k  S3 m6 G: h  -> -2   
* i% W  e8 D$ J' Cmysql> select round(1.58);   
# T  T$ u  R+ i7 o& C1 U  -> 2    " ?+ J1 `! }1 \9 ]: q
mysql> select round(1.298, 1);    6 x/ v3 ?/ ?6 U8 Y* `" q
  -> 1.3   
' u* f' m- C) f5 X5 \( D! z  xmysql> select round(1.298, 0);    1 c. d4 _5 |& p
  -> 1    0 F& W% [8 T6 m- p0 g( z; I7 L- K

- `2 z  Y$ `5 F5 Gexp(n)  - v& \1 H' b9 {8 D! h; @
返回值e的n次方(自然对数的底)  3 D9 p8 @3 u. p
mysql> select exp(2);   
# a# I: O6 f. O& z8 s. N7 g  -> 7.389056    ( Z  _! R5 v8 V: w
mysql> select exp(-2);   
( c# _, @2 {0 K% v0 g' W  -> 0.135335   
5 p7 L4 R7 x3 F8 e5 b& Q) _ 4 z1 w8 F: _: b& Y0 U- q
log(n)  
" W/ B7 R& T6 b- v返回n的自然对数  
: W& f2 [! @+ j5 u2 Nmysql> select log(2);   
; W7 t% ^; y$ k' i& f/ \3 n/ f  -> 0.693147    - I$ Q2 g+ C% B0 Z1 N0 _* g
mysql> select log(-2);    9 C: o; y0 `+ x! g
  -> null   
) m  n! W7 S6 n& }5 G# ]1 W " c" }/ o) t/ }7 |( F, J: q+ n
log10(n)  
6 t7 k$ v+ |, ]" j0 o' _/ e返回n以10为底的对数  
0 A7 A$ |  d/ Z7 Y# |" b& emysql> select log10(2);   
4 S! _/ b! C7 A2 l2 [9 u) y  -> 0.301030    % G3 j3 A' `$ s0 p7 q
mysql> select log10(100);   
% z5 L' B' `( U4 l. }' K- R  -> 2.000000   
/ y5 k7 R3 b+ C* Y2 T( Gmysql> select log10(-100);    * ~9 i' p6 l/ V7 B2 z$ k
  -> null    ; `$ E7 |# n; U+ L# P: k  d
. Z* w; Z1 X0 ]$ y) S* z0 _
pow(x,y)   
; z: C: c+ N8 _' t- G5 Q! _power(x,y)    " ^6 c  N2 @3 V
 返回值x的y次幂  
$ {; ]: F+ ^  o) D6 ymysql> select pow(2,2);   
- H( T  Y/ b3 t+ I! B$ \- z9 Y  -> 4.000000   
+ J4 O% G& {7 L1 }5 Mmysql> select pow(2,-2);    " V. Q- Y* _# N9 n
  -> 0.250000  
; P) r0 q) r! _' F5 J- j: Q. u$ n$ z# }" k( Q" y$ i% b
sqrt(n)  
7 L  v# y( _- \% x! \ 返回非负数n的平方根  ; ?* K2 m# P) g2 ~8 M- B5 e3 k" k
mysql> select sqrt(4);   
& L, C1 |" [! w) ~# A0 T  -> 2.000000   
" V+ S% ]5 E' i6 ~5 T: D/ q8 ^" @mysql> select sqrt(20);    - s. C) l4 s) f' M& \8 X0 Y
  -> 4.472136   
/ }8 p# U+ x: i0 k+ d+ J- G9 P
1 A* X5 I4 _- ~/ Q9 \$ t1 j' t& opi()   
: E, U4 T5 \0 J) R3 p- g 返回圆周率   " L7 O3 c. U$ L( S4 k6 P8 }
mysql> select pi();   
# B. l+ x  }; z1 w: k$ b  -> 3.141593   
" T: O: N$ L3 d& F4 {, j
/ h  C. }# G. f$ s9 L  Ycos(n)  
! V6 l5 A# ~( `2 y6 T 返回n的余弦值  
& ~5 k. J2 L2 B. |" L- c( Z/ f# E: ]mysql> select cos(pi());  
: l" t' k. i+ R- z4 ]  -> -1.000000   
1 k+ F8 j- B" m. i2 B) G- ?/ d
  n6 ^% k: T$ w) s& Vsin(n)  . {3 ]- P5 B$ Y/ `6 C% v8 n0 F8 \
 返回n的正弦值   
0 D: f* V8 c' n. Q1 ?mysql> select sin(pi());   
; D$ ]& ^/ \0 E# F  -> 0.000000    8 K  s! q% L5 H# d: v; P

1 J2 Y; F2 K# C1 K* Otan(n)  
( I- I9 H/ C8 D$ @! ^返回n的正切值  
+ E9 x- X2 ?4 ?mysql> select tan(pi()+1);   
8 j7 I, R8 D2 r! P# V1 s  -> 1.557408    6 J/ s; K% M7 m3 w% _, l) U# C
0 ?6 g; C! ^6 D
acos(n)  
, l- N7 f9 H7 h0 U. k 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  ( k, ~" e3 X: {, b' h6 {
mysql> select acos(1);    6 v. r7 v; N# I2 [$ ]
  -> 0.000000      D% p5 q( z' r8 I/ U. h; j
mysql> select acos(1.0001);   
( l2 C* x" w& j% R  x  -> null   
' ^2 T+ K, h$ i( f5 ?: W$ }mysql> select acos(0);   
4 W. `7 y; S+ V& Z  -> 1.570796   
0 Y7 K. E/ G* Q( T2 Z/ C
$ R' Q- v# \0 u0 P& J/ y4 aasin(n)  " ~/ P0 R" {& M- g7 ~
返回n反正弦值  3 n. e  m5 o! |; w8 g7 u4 Q# X/ Y
mysql> select asin(0.2);    ; z' U* t! `' h% |% r( K
  -> 0.201358    9 R3 Z& [* I! _9 u* N
mysql> select asin('foo');   
* f8 ^' ]; |' D  -> 0.000000   
4 w3 I4 r0 u& k" d' B & O2 i5 o( \5 X' [4 P+ Y
atan(n)  
" c9 b# k' ^" }) E返回n的反正切值  ; ~7 Y2 N0 z' _- s; |0 c5 K
mysql> select atan(2);   
6 W0 p+ B2 r+ ^: m6 r  -> 1.107149    , p8 |2 V9 Q" i/ Q: Y* l! I) @
mysql> select atan(-2);    ' U! X1 P/ H& z* j: f
  -> -1.107149   
  s9 t/ A) W, w+ }, m$ eatan2(x,y)   
* v# T0 K9 ^% v( T3 r' n- v 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  # A  J9 M& y" ^/ m1 x6 P; K
mysql> select atan(-2,2);    6 `$ ~! R" {! q# J9 U
  -> -0.785398   
+ T% b! P& S  ?  P4 Y" {% mmysql> select atan(pi(),0);   
% a0 N3 r4 w! {$ S. s2 R. A0 M, \  -> 1.570796   
% v0 B. Y8 f$ J# j 8 b. R" u1 I. @) H+ h! m
cot(n)  
0 M: U2 S0 Y0 }+ M. a' a  y返回x的余切  9 N( W% b% }  `* h# s/ p5 t
mysql> select cot(12);   
) Z& b0 a$ O8 ~/ f0 M/ \9 r  -> -1.57267341   
9 @; D) O7 b1 J- Amysql> select cot(0);    * ]6 I' ]7 z* p6 M# S: O
  -> null    ; P$ z( S* K  h: [" x8 t

" m/ V0 t# }$ W( G& drand()  , {, K$ i/ E3 j! y# J- E
rand(n)    
, B' [3 p$ u) }6 k; Y7 s返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
3 @5 g# G( I! u9 t$ o ; U# A: l, n, l5 B9 p+ `1 K
mysql> select rand();   
+ x- I$ Z5 q2 i  -> 0.5925   
( E; N) H; r8 _; |mysql> select rand(20);   
$ p/ r# g; E% w5 q/ r8 _7 ~4 {& W  -> 0.1811   
0 B2 H/ c& E+ k2 }0 mmysql> select rand(20);    , Y* y8 u. P' ^8 A8 g
  -> 0.1811    3 Z* D/ U! D# |( T' l
mysql> select rand();   
( l; l( i' `8 H3 |& L  -> 0.2079    % X8 e7 u& D. Q$ S4 J
mysql> select rand();   
9 {$ Z6 s4 I+ `- p; Y  -> 0.7888    / j' ^  g5 Y# H+ |. o' }. C; }% z4 X6 Z
$ e- f' P* q8 L( _. H% C6 P+ F* T
degrees(n)  / d! A$ \( v( y; `; ~2 {% O& V$ u
把n从弧度变换为角度并返回  8 I3 [3 X! d# C- t8 Y1 |
mysql> select degrees(pi());    ; k' k$ _0 q: O2 c
  -> 180.000000   
4 w- k0 ^( Z& h 0 i' n. |& `6 L7 t, v+ I
radians(n)
' H( K4 W5 a2 e把n从角度变换为弧度并返回   / t% j( l5 [# r6 W, I2 R
mysql> select radians(90);    + V/ P: }& j8 l/ g/ X( s
  -> 1.570796    9 ?4 U. L" l: G8 G# R7 a, H

( b1 |& a- H) htruncate(n,d)    ! N) }3 w- R; A" l! y  }" _% b
保留数字n的d位小数并返回  ' h) v# ?. b7 M/ `
mysql> select truncate(1.223,1);    3 R' [3 G7 [* A% q6 P
  -> 1.2   
; @2 g$ I5 G. omysql> select truncate(1.999,1);   
) g8 q9 r+ s9 O  -> 1.9   
3 H& w1 W& L! h) f* Xmysql> select truncate(1.999,0);   
1 V" v$ h+ }5 i& c9 l' g" Q  -> 1    7 H& k' H* W6 V) D

) d6 q' m& p1 Rleast(x,y,...)    9 I  E5 \& w9 u1 b" i
返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
: D4 Y4 J( h+ l( Q5 Rmysql> select least(2,0);    - z# p, h/ p8 a- X( c3 F% J
  -> 0    2 R' J+ V+ R6 _5 r4 k/ A  F
mysql> select least(34.0,3.0,5.0,767.0);   
9 A7 V1 K' z) P  u: H8 w  R  -> 3.0    : N3 Q6 d+ y3 V' s
mysql> select least("b","a","c");    : e* h4 R$ N! q2 }- l
  -> "a"   
. u/ o! i, ^& \5 m; w
# X, S# e/ N2 B0 R( V- Ygreatest(x,y,...)    ( ^, n% K! p2 U+ @9 [& e# u% w
返回最大值(其余同least())  - D2 r  D6 }( B4 F9 @5 U
mysql> select greatest(2,0);    1 J% M8 }4 N  l! `7 c8 V0 C
  -> 2   
) @: U& s' V: u, O; j. Qmysql> select greatest(34.0,3.0,5.0,767.0);   
/ O1 P4 h! b; N' w  g" T% p  -> 767.0   
: ], B4 _  \- z& smysql> select greatest("b","a","c");    6 D: P- g. G7 S, T/ L& h. l* L9 ^
  -> "c"     4 {% O' O0 r% C+ b
1 W6 M+ [( ^! x# {! k8 q; G- j
3、时期时间函数
7 t5 R; I8 {3 i3 e' v) {dayofweek(date)   
  _6 L+ M3 J9 C1 d, P  O9 v/ e返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
" o0 L* z3 e) u6 G2 p9 cmysql> select dayofweek('1998-02-03');    , T' ]5 h8 T! k! f8 \6 W4 M
  -> 3    % D/ u6 S$ O1 \; t

# h1 M! Z0 E; j: R1 d8 Aweekday(date)   
" ]6 ]' ^7 w; M返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 : v3 T, H" V; G" `* v* c
  ' ^. Q' i) U) H3 @: ^6 B
mysql> select weekday('1997-10-04 22:23:00');    ) U5 p* ^5 z$ h* H
  -> 5    3 r# i# `3 V7 e
mysql> select weekday('1997-11-05');    : D. s1 u" @6 p
  -> 2   
9 }4 H& D2 \( t8 P+ O! N# G
! Q! G4 A; Z. d2 T% ?$ B- ldayofmonth(date)    $ e5 @% {% f3 j8 H. b9 ]4 s5 M7 Z- J
返回date是一月中的第几日(在1到31范围内)   
- G. j% L) I6 S' m/ X: r3 {, \mysql> select dayofmonth('1998-02-03');   
+ @4 U% z0 n% p- \  -> 3   
( q2 ]: a; E6 |( v
! Q: d" g+ q7 C0 H- S, }dayofyear(date)    7 `* h# S9 s# p) P1 C/ O3 d
返回date是一年中的第几日(在1到366范围内)    $ ]2 a0 F, g9 R( D7 B* ]
mysql> select dayofyear('1998-02-03');   
, l$ @4 j% c2 |( w7 ^7 s  V& A  -> 34   
; v" s/ R8 ~' K; }
8 ]! ^! o, V2 X$ Umonth(date)   
8 F: X2 b$ F0 d" A# V返回date中的月份数值   
7 P& ?/ l" `9 Kmysql> select month('1998-02-03');    9 X1 C! _' N) l& @; X9 `4 t! b
  -> 2    + a  y7 N% z/ R$ D+ I
7 k; U9 s  c8 I7 L  A! d: v0 \
dayname(date)    4 r8 j, M( i4 F
返回date是星期几(按英文名返回)  4 `# |7 ~7 A% U- q6 k
mysql> select dayname("1998-02-05");    2 _  x" B  {( G+ t7 G
  -> 'thursday'    ; |/ g' B6 F& P
8 c7 t0 i( d3 ^6 N
monthname(date)    : j3 K9 J! M: F9 t/ Y0 c; m& E4 I
返回date是几月(按英文名返回)  , d" W" Y: ^% S# ]
mysql> select monthname("1998-02-05");    ' Y6 u2 f( S; y' z( r0 T
  -> 'february'   
- ?! @! A7 E* Q2 P , ^+ t* S6 P% {; K
quarter(date)    " h! b, w) Q1 ]+ _8 P: d
返回date是一年的第几个季度    / }( R. I0 K% b: K; F
mysql> select quarter('98-04-01');    7 o9 w! `) o/ _% X$ K
  -> 2    2 y7 X: u# \+ I
2 p  \, Y( {9 L8 H3 F
week(date,first)   ; c+ \& A+ T6 E- z3 _; J- c9 ]
返回date是一年的第几周(first默认值0,first取值1表示周一是- E* @  \; _+ P5 k
周的开始,0从周日开始)  
$ A- G) F/ ^' Y7 }! dmysql> select week('1998-02-20');   
9 I. z" C% n. a) x/ w4 q( z4 P) U  -> 7    + F5 z0 J4 ~! {+ D
mysql> select week('1998-02-20',0);   
$ `' s3 u4 a( k1 ^4 L2 V  -> 7    7 ?  g5 Q( @) V2 C1 V
mysql> select week('1998-02-20',1);   
2 u% h6 c1 A1 }  -> 8   
/ h1 c9 U- n; k& h5 q% @ 1 a! L" Z+ X3 {+ v$ O* T
year(date)    ' {5 `! l4 F% T" \, G; F  D
返回date的年份(范围在1000到9999)   
- N! Y) `& w/ jmysql> select year('98-02-03');    8 A. y- a6 ]0 ]( W5 i! _3 _. d
  -> 1998   
7 B+ G; Y& m! h# Y  U
# \* j7 g/ W" ?& \9 zhour(time)    
+ J* t& T: {# ?* O返回time的小时数(范围是0到23)   3 Z( P1 E5 `, i2 O' V# A
mysql> select hour('10:05:03');    2 [( j3 E  M$ \/ C6 u2 e
  -> 10   
/ J  Z8 n9 [' K4 V3 `) V ) Y. }0 ^# I/ Q9 s& x$ h1 Z; D" v
minute(time)    1 X5 C$ \8 i$ t) O
返回time的分钟数(范围是0到59)      P' t) `. {; C: c2 o
mysql> select minute('98-02-03 10:05:03');   
' P2 i" o) W* R; l7 z  w$ H4 @: Q  -> 5    8 `. o* f5 m, n, s  I3 t2 s
2 o) Y% W" L+ X. |
second(time)    6 o! q  o. B; J8 Q5 x7 z# I
返回time的秒数(范围是0到59)   9 I5 G9 X: |8 B9 R
mysql> select second('10:05:03');    1 z* g! l- b: l- S; b: }
  -> 3    ! E  K7 s7 M% W/ P  J8 s0 x
4 e9 [- y1 H0 S! W, F6 U- h* u1 m
period_add(p,n)   
1 r! j& H5 S/ N2 D增加n个月到时期p并返回(p的格式yymm或yyyymm)    4 \. p& u) [, F3 X
mysql> select period_add(9801,2);    - s2 _& X7 s3 {; T3 @1 z) n
  -> 199803   
9 D. F* S! l0 V5 t. i
6 }+ e9 j8 n4 \8 j' k9 wperiod_diff(p1,p2)    , M6 P$ g' r/ x7 \+ M
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  ) F+ v* v; s, X$ |6 l7 ~
mysql> select period_diff(9802,199703);    ' i+ c$ U7 Y" k: F, h
  -> 11    ; C& k, X; m* F( u+ R8 Z# s3 i

# ^8 L& c( b8 O. X6 v8 b: ndate_add(date,interval expr type)  
- K. f* W! e: o$ Hdate_sub(date,interval expr type)    * ]7 }& Y9 e9 M. T7 n! z) M# w
adddate(date,interval expr type)   
. _; B3 I4 p9 Psubdate(date,interval expr type)  7 ]5 r$ B: L  v0 |
对日期时间进行加减法运算  
$ j! P7 C6 c% Y! E. _! V% [4 r(adddate()和subdate()是date_add()和date_sub()的同义词,也
# W4 N3 O" S) s1 K& y可以用运算符+和-而不是函数  2 n: T. J( {$ |+ }4 C0 c* f# J
date是一个datetime或date值,expr对date进行加减法的一个表
6 \( d+ y& m  z2 q; k5 O9 g5 @达式字符串type指明表达式expr应该如何被解释  % P. g9 l. |' E" U2 w  s2 x  ^
 [type值 含义 期望的expr格式]:  ; s) x: ^0 r/ o- V
 second 秒 seconds    0 Y: o% L0 v6 ?/ i
 minute 分钟 minutes    ( d# n% o3 E  v7 N, g
 hour 时间 hours    " n6 |4 f- h  C$ [
 day 天 days    ; w) K3 O) a, f5 y, @6 Z
 month 月 months    8 L: y! y* r6 t
 year 年 years   
% r6 Z3 s4 i1 Y( \; t1 o" z minute_second 分钟和秒 "minutes:seconds"    # O$ K- o& B$ D/ v9 n
 hour_minute 小时和分钟 "hours:minutes"   
' D/ Q8 x: t$ U3 F day_hour 天和小时 "days hours"    % _, {3 j2 ^, W
 year_month 年和月 "years-months"   
$ U% Y* K; E: a0 q, G: @ hour_second 小时, 分钟, "hours:minutes:seconds"   
! H+ d! R/ ^! p: F" ^1 s day_minute 天, 小时, 分钟 "days hours:minutes"    ) w1 x/ T; p* ]9 {+ T
 day_second 天, 小时, 分钟, 秒 "days
" b/ w- D0 M+ t9 M$ @  v2 jhours:minutes:seconds"
' Q" s3 U4 n5 W) g1 W expr中允许任何标点做分隔符,如果所有是date值时结果是一个
: s% W' H+ B& s3 Zdate值,否则结果是一个datetime值)  5 J* Q- |5 i# [7 N, Z8 b; D. E
 如果type关键词不完整,则mysql从右端取值,day_second因为缺
- q7 c# ?  v* t, E: B: B6 J少小时分钟等于minute_second)  : k3 ]* D, |7 u1 a9 ?* V
 如果增加month、year_month或year,天数大于结果月份的最大天' j1 s; _9 H: K9 J+ s- O" Y
数则使用最大天数)   
) C/ O' t( H! W& m8 c" @0 Vmysql> select "1997-12-31 23:59:59" + interval 1 second;  
: c; o/ R* f# u3 d: F9 A/ `+ { 4 @  L9 Y/ n9 e( X7 }) K6 x
  -> 1998-01-01 00:00:00    3 f: `1 g) {% u2 i
mysql> select interval 1 day + "1997-12-31";   
: T1 U8 h  M2 F" j  x  -> 1998-01-01    + u' g/ [5 ^) P# ~
mysql> select "1998-01-01" - interval 1 second;   
. I  b' _+ E9 F& i- @  -> 1997-12-31 23:59:59   
8 h9 @2 b1 i2 E4 rmysql> select date_add("1997-12-31 23:59:59",interval 1$ v. n" W( m+ L9 ]3 P2 m0 B5 c
second);    1 m! L- G1 r- q7 W4 |
  -> 1998-01-01 00:00:00   
0 {2 u  i6 }" n/ D0 e$ amysql> select date_add("1997-12-31 23:59:59",interval 1; v5 ^) _* N2 ]: R; R- t  {
day);   
/ O5 R3 M# y0 W) Z9 k# b  -> 1998-01-01 23:59:59   
" P' O( @" n3 h9 Z! Lmysql> select date_add("1997-12-31 23:59:59",interval
$ u% V, ]% N, w  x0 u"1:1" minute_second);    + Q3 X6 o3 A: T2 R7 \- \9 _
  -> 1998-01-01 00:01:00   
" ~5 [; M2 K$ w7 ]) o8 K8 ^+ ~% jmysql> select date_sub("1998-01-01 00:00:00",interval "1
7 h' M/ {, x6 ?1 n1:1:1" day_second);    * d0 Q  [: y" P+ |, j+ j
  -> 1997-12-30 22:58:59   
0 S6 V8 w, N# }# f, gmysql> select date_add("1998-01-01 00:00:00", interval "-1
) P/ u/ ]. j! R" ?+ x10" day_hour);  
6 ^. v& `5 A. z0 s  P  -> 1997-12-30 14:00:00   
" d6 \& {$ W9 U+ U2 \$ Kmysql> select date_sub("1998-01-02", interval 31 day);    . t0 s6 K' ?: q" @' f
  -> 1997-12-02   
! ?5 D! H1 h6 n4 N. {mysql> select extract(year from "1999-07-02");   
- o) J) U, p& S8 z! O& _2 [+ [  -> 1999    2 o% e- Z( M% g  g
mysql> select extract(year_month from "1999-07-023 v0 q  x$ b- f) M* [, t
01:02:03");   
7 l( H$ I% X2 B4 \; K$ [/ z& I9 v  -> 199907   
$ Q% ]: [. P( e  u' bmysql> select extract(day_minute from "1999-07-02
! Q  k2 |3 n$ q7 o: M% |% T01:02:03");   
+ [& K' k' L, [) H) s% g4 P& G$ o0 d  -> 20102   
3 ^; k8 g; ~* |4 m + `# L9 O5 E; G  z0 d& b7 ?
to_days(date)    3 ]1 e4 p* r& Q! E! S
返回日期date是西元0年至今多少天(不计算1582年以前)  
4 e$ \4 g- A+ k3 t1 tmysql> select to_days(950501);   
% I6 A- q- q% ]2 [" q  -> 728779      k5 i1 i0 x8 O! |' V; a) ?3 a
mysql> select to_days('1997-10-07');   
( q8 Y4 r4 `% C7 y! w4 ?5 ]( I  -> 729669   
0 h2 Q- a- x! _' j( |
9 K. ~; c, V* \6 S. ]- F& ]7 ~from_days(n)    ! @4 _& _& {7 I
 给出西元0年至今多少天返回date值(不计算1582年以前)   6 E! F; m4 u4 H
mysql> select from_days(729669);    , Y$ x  y% C( b5 L# E  U6 s; M
  -> '1997-10-07'    ( a. t2 }' k: {. B: c/ H
' m" X( ^0 Q, \4 d" J" H5 R
date_format(date,format)    / |0 F( {: H" J& b; C
 根据format字符串格式化date值  
7 z2 _# ^4 v% e* h. q (在format字符串中可用标志符:  " ^  }/ m: Y4 g' R; M! r; Q. P! @
 %m 月名字(january……december)    8 E# c) v7 o; p' K- J+ t
 %w 星期名字(sunday……saturday)      W  ]% T& t3 I; N
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    2 Q2 M$ y" y$ o& x- b. ~
 %y 年, 数字, 4 位    , y0 [9 |" q; `. J% W6 c2 Z0 M# D
 %y 年, 数字, 2 位    : }1 H+ W3 h' I" C# h
 %a 缩写的星期名字(sun……sat)    ' m( i' _) v' }4 s4 T9 w
 %d 月份中的天数, 数字(00……31)    4 B% N8 r& v2 v" [8 |! T8 `
 %e 月份中的天数, 数字(0……31)    8 ~5 q0 `) a% p2 r$ }3 `. O7 \
 %m 月, 数字(01……12)    " J5 G2 j% ~. T/ k
 %c 月, 数字(1……12)   
0 g( g, e6 F3 J  [) e6 x %b 缩写的月份名字(jan……dec)    2 L- t# ]5 F; }
 %j 一年中的天数(001……366)   
5 C4 b$ {' d" }0 z7 y) C %h 小时(00……23)   
/ i8 z6 O6 z* l- T. V %k 小时(0……23)   
6 D5 X2 |" `& I5 X %h 小时(01……12)   
8 `4 H& U8 I5 O9 K) D2 N, X %i 小时(01……12)   
) r1 D4 R$ u# C %l 小时(1……12)   
6 s3 O+ h; Q) B# j( r0 k2 d %i 分钟, 数字(00……59)   
4 k/ Z& n3 {& f/ E! A9 r %r 时间,12 小时(hh:mm:ss [ap]m)    1 F, d  p) M9 |- b# ~. m
 %t 时间,24 小时(hh:mm:ss)    / x! F7 N( Z: l+ R& A8 j+ n
 %s 秒(00……59)   
3 v) d* ]" h5 p6 Y: u! Z %s 秒(00……59)    . G" m2 d! x0 M4 q9 C
 %p am或pm   
' O0 l  `9 z* [# j/ \% L %w 一个星期中的天数(0=sunday ……6=saturday )    ! ~9 w7 e; i/ _  x
 %u 星期(0……52), 这里星期天是星期的第一天   
  @* j; p# Z1 z, B5 S3 u5 f7 X  D %u 星期(0……52), 这里星期一是星期的第一天    + P4 f' D" A/ Z- V& H" I
 %% 字符% )  1 d" |. E6 `# e
mysql> select date_format('1997-10-04 22:23:00','%w %m %! @! T, r  F, O
y');   
' @' t* I% k7 N5 a# v3 ~7 A1 h5 x2 v  -> 'saturday october 1997'    2 r# _" p/ H* q: n9 y
mysql> select date_format('1997-10-04 22:23:00','%h:%i:%1 `  s! z7 z3 J' t# ^# n5 L
s');    1 ~8 H- p+ |: `) g; ^
  -> '22:23:00'    ' D! f7 Q- ^- l  t
mysql> select date_format('1997-10-04 22:23:00','%d %y %a
) w& g! W" r8 N# m%d %m %b %j');   
7 V" b5 P; Q! L( [: l9 q  -> '4th 97 sat 04 10 oct 277'    ! l! q6 \% P% S6 C
mysql> select date_format('1997-10-04 22:23:00','%h %k %i
* z2 s. d# K) ~) v%r %t %s %w');    ; Y. h% c) A: z' w6 R! T+ F
  -> '22 22 10 10:23:00 pm 22:23:00 00 6'   
9 ^3 Y  j' e! r5 A0 c3 V
+ G- Q5 }# T7 `0 ?# etime_format(time,format)  
. t# @3 X6 U5 }* ~ 和date_format()类似,但time_format只处理小时、分钟和秒(其
+ k* Y: v  _. Y6 e: F' g1 n余符号产生一个null值或0)  
  W( Y) Q% x6 M% H: c3 ^ & m0 e6 V% W3 T9 J' d6 d3 p
curdate()     1 ^7 F- Z) R$ w4 \0 Q
current_date()  ; L4 e5 J/ C' [, i" S6 V. w
 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
8 ]2 A  F) @; k! M: p3 ]( f处上下文是字符串或数字)   
6 F  x* _; D0 Vmysql> select curdate();   
! B7 s. [  b. d2 Y& b$ S( O  -> '1997-12-15'    . s6 w% z; a  ?
mysql> select curdate() + 0;   
; U! X8 d1 z* D6 G  D, p1 E  -> 19971215   
+ s. R1 u% x" W5 o4 I8 g! u  q
8 U& h4 }% l( a6 r4 A: m2 e! `curtime()   
. c/ a- `" R- _current_time()  & q6 w+ t, I5 o7 Y& k3 A: ~
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上- [" _! P; K- q( Z' E4 Q
下文是字符串或数字)      
* ~" d8 g4 u' K+ `9 g( U9 [+ F+ jmysql> select curtime();    - @0 Q$ H2 w) C; w
  -> '23:50:26'   
) [9 I6 @2 s; o# `mysql> select curtime() + 0;    ; `$ j$ `/ p$ Z+ H. |. ^( S9 P
  -> 235026   
8 w% T1 g' v# L: I1 j: O* |
* z5 m/ L9 |. ~: [4 S6 P8 w! K- W6 znow()    " D: \0 R* d+ Q4 O6 }3 V( k
sysdate()    $ A7 e7 V1 Z! V- u9 A% B4 ^$ L
current_timestamp()  ' p8 d; Y7 U1 q$ l
 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期! n. w- s- d1 e2 v4 q
时间(根据返回值所处上下文是字符串或数字)     ) D" ^- R( q" Y
mysql> select now();   
6 i- i5 P: ^# f* W7 R  -> '1997-12-15 23:50:26'    & h# A& y; D) K! T8 R
mysql> select now() + 0;    & J5 G" l+ U, Y, d
  -> 19971215235026   
* i4 m& @$ U1 O) J" i
2 D! Z* @. }2 P4 n3 i. S; @5 xunix_timestamp()   
. Y9 h9 @3 L0 G* z4 [8 }. p7 Lunix_timestamp(date)    ' d" h. o9 c: Q
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
& S3 J4 [% l& |. z数,date默认值为当前时间)  
7 i4 [6 L( H. Y$ J& R7 t+ {mysql> select unix_timestamp();   
5 ]( h' D( `8 _$ f6 C# b9 t  -> 882226357   
3 l# b4 T# t0 C6 Smysql> select unix_timestamp('1997-10-04 22:23:00');   
- g3 H9 ?  X2 O1 W6 n  -> 875996580    7 b! b. k' J! b) X1 v' i8 V! `) q
: M" {5 B( h7 x( ]0 o5 g- G( C
from_unixtime(unix_timestamp)   
( {% ]& x: |9 X4 c以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的
2 {8 r3 k7 b  A& n值(根据返回值所处上下文是字符串或数字)     
. F. {0 z+ o3 z( }; {1 h- Fmysql> select from_unixtime(875996580);    5 W- G4 O2 C  Y1 R! v& j1 ~  ]; o
  -> '1997-10-04 22:23:00'   
2 p8 T7 T: u, U  Z! p% Omysql> select from_unixtime(875996580) + 0;    / o' Y" h. G/ @# J( r0 k. }' y
  -> 19971004222300    2 z& c# {- r" F2 [: U$ T

& U# s! n& L. d4 vfrom_unixtime(unix_timestamp,format)    ! T) j! ]+ M  t) l- F  [- F: ^
以format字符串格式返回时间戳的值  5 v3 q; D* D# Q9 Q
mysql> select from_unixtime(unix_timestamp(),'%y %d %m %
1 _: y  v8 P" M7 i8 D7 D3 hh:%i:%s %x');    % a: A4 o8 U! n* _
  -> '1997 23rd december 03:43:30 x'   
9 M) D& i: Q2 P$ t/ {% i2 `! q 2 {0 h6 R/ g* \0 h& ^- H5 D. w/ R
sec_to_time(seconds)   
- S5 ~+ c% b' G: m9 S3 i! u以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
3 _* i$ U- i3 @; l: \' h* jmysql> select sec_to_time(2378);      \5 K3 v" g/ \9 y1 Y+ M1 P  p
  -> '00:39:38'    8 X! l7 D$ ^2 `5 e
mysql> select sec_to_time(2378) + 0;   
: U. C' |% j" v: A! F8 m  -> 3938   
9 o% ?0 d3 b2 i1 F' j& S * r6 ]" c9 E4 U$ e1 R/ i# w
time_to_sec(time)   
9 f3 y: V( N' Q: r: X0 P3 g0 q2 h' o) Q返回time值有多少秒    6 j  e" [# a, U) B( x
mysql> select time_to_sec('22:23:00');    9 u6 l$ Y$ U- o0 ?
  -> 80580    ! k* i; i3 D$ G, K8 x8 A
mysql> select time_to_sec('00:39:38');    ) [; H5 m' V+ X. K1 w$ O) V
  -> 2378 8 }8 A9 z. A2 k; R: G$ y

0 F+ V2 Y" s6 K, i4 m  H转换函数
! D4 X: L# s  n8 U  R& h. A7 B8 tcast+ z4 }9 |, b- l: @
用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]! |2 e0 n2 ], f* u, S
实例:select cast(a as unsigned) as b from cardserver where order by b desc;* D( Z0 @! R- ]3 [7 y
convert:
2 x' s' }8 r0 z0 o! ~+ t' I用法:convert(字段,数据类型)6 h6 D* M3 |2 m7 ]
实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
8 J- I" @2 M0 \( Q# t. P9 h
回复

使用道具 举报

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

本版积分规则

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