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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数- `( l2 ]+ {! E- c% ~5 r6 M
ascii(str)   
5 F9 C2 w, h* i1 C: j9 p返回字符串str的第一个字符的ascii值(str是空串时返回0)  " Z% F# E/ w8 J" b# d1 V* r
mysql> select ascii('2');  + f0 m; m5 {4 u# _
  -> 50  
  M& G4 q" A+ }5 G9 \0 k! i, L0 J7 Kmysql> select ascii(2);  . d6 ~+ V9 W6 a4 \
  -> 50  & _8 X, k) n. ?
mysql> select ascii('dete');  , r$ h: F3 i+ Y, J/ d3 B, \; \
  -> 100

2 f6 }4 `+ Y1 O/ p. }1 r8 Iord(str)   
' [6 R! _5 Z, ?8 X8 ?如果字符串str句首是单字节返回与ascii()函数返回的相同值。
6 V& P9 c8 e; J' S) L2 g3 c
$ O* y1 s) v% C7 S3 B1 W如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  
* V% v' a! I8 z" A0 M4 Ymysql> select ord('2');  
% ~' B+ ~# ]! y! F! F  -> 50  
* _. d9 b- u5 S" B. M     j* m' Q! B" h3 p6 ]8 x5 a
conv(n,from_base,to_base)   
$ V: c$ ]( w" d, i对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  $ V9 p$ [0 h. O% n
mysql> select conv("a",16,2);  
3 l; E/ N8 D* f' i% Q; X* K+ j  -> '1010'
9 a( f" v' ]! F$ u- q/ ^! C* Nmysql> select conv("6e",18,8);  
/ D& J5 _. |% P0 q; z7 {( c0 j  -> '172' # {: r: u3 p2 a* C( e
mysql> select conv(-17,10,-18);  
! T2 j6 h# Y& B9 l: K  -> '-h' ; ?" d* t/ P& v; x3 }
mysql> select conv(10+"10"+'10'+0xa,10,10);  
( Y3 L2 }" E5 C/ E: ^& H5 X  -> '40' 4 t( C. m+ X1 j/ i/ ~" e+ o8 f0 J
   
+ P  p0 a/ u4 Q7 b; d5 \" X+ ^" rbin(n)   ! A, Q) j% B4 k* Y9 ~7 u
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
9 W; q: k* F( O- i7 Pmysql> select bin(12);  2 f; ^% G( H5 P. K& T) I
  -> '1100' $ e/ i/ v5 V7 k6 |6 ^" }
: _; E( x: u' c) x3 S1 W
oct(n)   
5 d3 c: g+ ~0 f$ e  E* N把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  " l/ C+ b5 J1 ]( ]/ I
mysql> select oct(12);  
+ u! ?  c5 o3 e. {. ~- q+ K( S  -> '14' 5 g- B+ U( L0 l4 }8 f. M
   $ `- H9 ]5 n; M0 T! c
hex(n)     w4 L, B' k$ x7 N
把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  - U% S6 {) z$ f1 I
mysql> select hex(255);  
/ B' K( ~6 A" f" y9 `  -> 'ff'
! o0 T( l& T* _" S! L$ l   $ a5 Z, L5 s: p! m7 S* C: ?
char(n,...)   / I0 g: n1 P6 \% K
返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   6 s* b: G2 n$ s6 J3 T/ _
mysql> select char(77,121,83,81,'76');  1 o+ X! u8 N! w: Z3 U
  -> 'mysql' $ h0 a5 w. A2 P6 B) K1 c" j) _$ r
mysql> select char(77,77.3,'77.3');  % m5 b7 P8 j' }8 k8 T7 c8 w: ?
  -> 'mmm' 4 v, O! h; L! H' @0 D3 h! o! L
   ! r0 h( u9 O4 ?1 Q8 R- C
concat(str1,str2,...)   % n* J7 Z  Y! v* Z$ w% r" A* {' ?
把参数连成一个长字符串并返回(任何参数是null时返回null)  3 f* }1 ^& z' q1 F3 U6 a1 {
mysql> select concat('my', 's', 'ql');  4 e, f9 H9 m* j) D! g
  -> 'mysql'
. _0 w8 @- W; |  S' ]mysql> select concat('my', null, 'ql');  " E- P. z1 R$ h7 S. o. q
  -> null
- w( ?8 \* t! _2 Q# P. Hmysql> select concat(14.3);  
7 |3 v7 X; ?) e0 X! e) E9 _  -> '14.3' 1 u; M. Z- v1 D1 j, C2 f# H
/ Y( L- C" l0 Q/ i
length(str)   
8 d; X# r4 g" ?- d! q9 {" uoctet_length(str)  
' n& g) H+ R/ M/ s) n. qchar_length(str)  
# v# a8 h" L& |: d; hcharacter_length(str)  - R- b3 F  P( ^  W9 t0 H
返回字符串str的长度(对于多字节字符char_length仅计算一次)
7 A. [/ i. a. z" B- _7 }( ~% k6 Nmysql> select length('text');  
% |6 w9 j5 W7 i5 ]/ X6 L& k  -> 4  
6 O+ [# i# l0 l9 X$ c2 H: Hmysql> select octet_length('text');  / R3 V  g+ x) E' t1 ~  i9 @" D
  -> 4  3 u% V, e% T6 e. ?( b# `: i

! |( F& c) l. v& f; K" mlocate(substr,str)   
" _' g# z8 ^/ {" c1 Bposition(substr in str)   
& R8 U6 A+ e0 {' Q$ R返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
/ |7 N5 X3 P6 N5 v5 u# smysql> select locate('bar', 'foobarbar');  
3 A: F/ l3 p. V& o9 B( I! C  -> 4  
8 {: w6 a' Y& m7 Q2 vmysql> select locate('xbar', 'foobar');  
, q' Q) K8 k3 f0 i) A9 \  -> 0  
) N  T( W/ F0 `  R! ?& I# a    $ n4 \5 o4 S  x1 n. y
locate(substr,str,pos) ( e: e; a. B" o! _' l) x# P
返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  7 T: H* c3 X" B5 ~+ |& w, \5 c; d
mysql> select locate('bar', 'foobarbar',5);  
; Q. c7 d5 ~* A! ]5 R6 j  -> 7  
) l4 r  z1 x* v" m. T
, W; d5 i$ _" L* G( Tinstr(str,substr)   9 L2 v$ l$ O, @( \( S6 t
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
: H" w1 y: d3 i6 `7 mmysql> select instr('foobarbar', 'bar');  $ J3 t3 a9 J. [( j- a/ m+ `3 F
  -> 4  ( R1 w: Y, d* r! t
mysql> select instr('xbar', 'foobar');  
" h2 `% a! p1 h9 O& O/ Z! z. H  -> 0   
- t' V: F( A8 I2 b 7 s& d$ m' j# N) r# R# c( t& c
lpad(str,len,padstr)   ! X! }) T; L2 C" F2 |+ E  s7 C
用字符串padstr填补str左端直到字串长度为len并返回  
' T( n! M7 Z! y4 Lmysql> select lpad('hi',4,'??');  
8 u- O1 F# b5 _5 c$ @; G  -> '??hi'
# A1 K3 S4 `4 [1 Z/ {   ( L  U* f  d, M8 {* e: u& K& }
rpad(str,len,padstr)   
- k1 i* K& H1 ^5 ]3 [4 S用字符串padstr填补str右端直到字串长度为len并返回  * y. S5 Y1 y% E2 q
mysql> select rpad('hi',5,'?');  1 @$ ]& o  K6 \
  -> 'hi???' ) }  E' y9 k  o+ L: V/ b

4 i( _, q( p$ u" |; Jleft(str,len)   
: \! Z- m. f) z: p返回字符串str的左端len个字符  
2 h9 ]) B) B. k2 c0 ^' ymysql> select left('foobarbar', 5);  5 F, B# J% l0 l; K5 G; {
  -> 'fooba' 2 R2 O  \9 g8 k# g: H
  t9 E& O- }3 c  Q( V3 `5 x
right(str,len)   - f! Q6 C2 ]- m1 m, H
返回字符串str的右端len个字符   
) J5 G4 ], n: K- y5 p! Cmysql> select right('foobarbar', 4);  
# i( c* ^3 O4 K% j6 C* ^/ w  -> 'rbar'
" b" `8 E; I0 N8 K7 X) J" K3 L
3 l7 u) p! I2 Psubstring(str,pos,len)   
; q# `5 I6 n" ^substring(str from pos for len)   - G! m! s0 V3 c
mid(str,pos,len)   
8 K, O" A7 {: R& R- q, }! x返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
. w% {& e" i3 f  -> 'ratica'
/ l: ^  |! N5 a& H7 B0 \2 K 2 F9 w( _9 {5 Z! }
substring(str,pos)   3 G, R" n( k  y/ \
substring(str from pos)   
% _- D8 {- m/ s9 h0 K9 I返回字符串str的位置pos起的一个子串  
' d4 K1 w8 X+ b% ?mysql> select substring('quadratically',5);  
- F' E5 a* \2 n( Z  -> 'ratically' 1 ~- g2 |0 F& a; _8 C( p) n- \
mysql> select substring('foobarbar' from 4);  5 Z' M/ M) v* d, e4 {. d
  -> 'barbar' ( b* G+ D/ _8 `+ p0 `, R

( O# g  k8 [. \/ Nsubstring_index(str,delim,count)   
/ Z' |$ Y5 R7 M' |& r返回从字符串str的第count个出现的分隔符delim之后的子串
. m" D5 L2 H5 }  K(count为正数时返回左端,否则返回右端子串)  
/ B# R; F# \$ @. vmysql> select substring_index('www.mysql.com', '.', 2);  2 [7 v8 s# [8 ^) f8 a- y
  -> 'www.mysql'
4 X9 f9 b, \0 ~, g+ K: \: mmysql> select substring_index('www.mysql.com', '.', -2);  ) t9 c* m$ i0 Y  j% n: q; S2 c
  -> 'mysql.com'
  R# E& W, U4 i/ k  D7 o8 h
- \* w7 z& |) Rltrim(str)   
" O. i. |" S. k$ s4 l返回删除了左空格的字符串str  
0 F; k7 R# }- m0 K  p7 Z% ]$ Xmysql> select ltrim('  barbar');  + a& K! \- z& z
  -> 'barbar'
& Y, _3 @/ h( X- i, s/ @# Z 7 N2 O) z' j) U
rtrim(str)   : w2 g1 X& B& ?9 M; a* w2 D
返回删除了右空格的字符串str  
* O7 r, f5 i7 `5 emysql> select rtrim('barbar   ');  ; V$ h1 k$ S4 P: U" ]# j! \
  -> 'barbar'
# \9 T" |3 t5 A) s4 v; ] . Q3 v5 K9 |' h% w0 H# J
trim([[both | leading | trailing] [remstr] from] str)   # T* Y' K0 r- x
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  8 e# R, v4 x9 B
mysql> select trim('  bar   ');  
# s6 a5 Q8 f& P. [" u  -> 'bar' : v$ u+ L) k0 E# e3 D: Y1 O* }9 P9 ]
mysql> select trim(leading 'x' from 'xxxbarxxx');  
) W+ W4 ]5 K% l/ O4 [+ ]$ M  -> 'barxxx' ; I1 z8 R: `0 X9 w5 s% w
mysql> select trim(both 'x' from 'xxxbarxxx');  
* _: ~; n, a! s' \  -> 'bar'
* v) f6 I6 G& F* U/ smysql> select trim(trailing 'xyz' from 'barxxyz');  . Z$ ]& w" F. [& y
  -> 'barx' 3 J+ L  }+ p+ r" r: D. n1 t
+ K' ~% y, W; q/ f8 {
soundex(str)   , G7 F* V& Q' w7 R/ K
返回str的一个同音字符串(听起来“大致相同”字符串有相同的5 V: B9 u5 K9 R  s6 a
同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  
! t9 G& s' `) L, ^3 y% T$ g0 P5 Rmysql> select soundex('hello');  
, n2 w8 Y, N) v2 L7 y( h  -> 'h400' & C& X. l8 U- ]' H  C3 `) x" ~% s
mysql> select soundex('quadratically');  
4 e5 S% c2 A# C! w9 u# R+ _. U% v  -> 'q36324'
# g+ T- q0 ?; n   
, G* v& K( ?' T( K5 x/ Vspace(n)   
/ A, ~1 ~6 @4 t" b8 n# ^/ O返回由n个空格字符组成的一个字符串  2 h( M8 J* l+ V3 E* B# `0 U5 C) M
mysql> select space(6);  
; r. y  m2 I, i  -> '      ' ! [6 G! I0 [' |2 m
   7 D. [- _5 B6 e# u( \
replace(str,from_str,to_str)   # V2 k" G! J9 z9 ]
用字符串to_str替换字符串str中的子串from_str并返回  
+ E( o* k$ E  E8 I1 Kmysql> select replace('www.mysql.com', 'w', 'ww');  2 S4 Q8 s8 _* ?$ {) r
  -> 'wwwwww.mysql.com'
5 Z. s) t+ c9 j  m$ |6 [
9 m: g  n8 S! B. x$ c( m# ]  srepeat(str,count)   ( |) n7 ^( O0 W. |7 U
返回由count个字符串str连成的一个字符串(任何参数为null时
6 j$ x! g+ o$ z% s# Z* p返回null,count<=0时返回一个空字符串)  1 Z! i8 R3 ~% `. S% q/ \; F
mysql> select repeat('mysql', 3);  
0 @1 x3 H' F6 ]/ R  -> 'mysqlmysqlmysql' 3 S, R8 J- o( a7 N* s: [1 K* {
   % f8 M. h- J% D$ a0 @9 a
reverse(str)   % I3 j8 t  J% G; \) K
颠倒字符串str的字符顺序并返回  - o* i+ |+ J* j/ c, g& J' l% a' v
mysql> select reverse('abc');  8 T1 r- g) N! j
  -> 'cba' ) `: B' }8 I% ?" l! y/ Y

' [! ]& \: }* @* ~insert(str,pos,len,newstr)   : |; p# C- ?. y
把字符串str由位置pos起len个字符长的子串替换为字符串1 }$ G! e5 h$ r" @# O6 c4 w. E$ [: R# l
newstr并返回  " m8 D9 c( @9 e) F. m8 \' r% G; e
mysql> select insert('quadratic', 3, 4, 'what');  
5 P" m; G  g1 l  -> 'quwhattic' 1 v  m0 R( _& J

. b; \# |0 P+ [5 F9 e! U8 belt(n,str1,str2,str3,...)   ! P3 r+ m+ F2 g8 D: a
返回第n个字符串(n小于1或大于参数个数返回null)  
" `" I+ M. Z$ L, p  ^mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  ' r. r* P( N& Q0 ]1 U
  -> 'ej'
; S/ D* o$ I. _* R  T- T0 jmysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  
1 o0 j& {) e% C3 F  -> 'foo' - l& U7 l7 R! b/ |5 o

  L6 M$ w3 s- [& Sfield(str,str1,str2,str3,...)   , i( E9 l: e' h# _/ x2 c
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
1 B# Y0 j) F& v4 }/ E3 }3 Pmysql> select field('ej', 'hej', 'ej', 'heja', 'hej',' g8 C. o/ K" i* b7 ~7 L7 s' |. D
'foo');  
, q, x$ j  Q9 T" S  -> 2  
% w) L: q( W9 S- cmysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
1 Y) Q4 g' G' O9 [; d: N, i) N'foo');  8 t1 J9 x  Z- C' {
  -> 0  
, ]! o, u! w3 I; o! a1 P6 s
! l; e) h' E5 q- P  m: k, Jfind_in_set(str,strlist)   : w4 O# n' `7 u0 p; W
返回str在字符串集strlist中的序号(任何参数是null则返回. T4 k" A8 o5 J6 W2 m  j
null,如果str没找到返回0,参数1包含","时工作异常)  * _* E  Q4 k3 P, f7 O* q
mysql> select find_in_set('b','a,b,c,d');  
4 [) I3 R! l: w3 m* @  -> 2  * t& b$ x8 S  r- A2 X& p* H
   ' g8 T: V% Q6 x
make_set(bits,str1,str2,...)  
5 {- D, ?* E/ Z9 [0 s5 e把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
& h/ b+ O3 _* Z3 i9 K位置的字串选入字串集并返回(null串不添加到结果中)  
& y/ r# a" _+ H) i& C4 b1 _3 Nmysql> select make_set(1,'a','b','c');  8 k$ W; Q4 _( o2 m
  -> 'a'
8 [" p/ w7 _; ?9 R! X' rmysql> select make_set(1 | 4,'hello','nice','world');  6 j# @, y. R) l" `9 D% O" J9 d) z
  -> 'hello,world' 9 B- @0 Q) N, b
mysql> select make_set(0,'a','b','c');  
" M9 ~2 _+ C, b: V  -> ''
& G9 I* [1 K, T4 X' z! o$ Z 4 Y3 e: f, Q/ D9 m0 F) t* r5 L3 g5 a
export_set(bits,on,off,[separator,[number_of_bits]])   
/ |- c' U7 N6 o$ N/ M3 c按bits排列字符串集,只有当位等于1时插入字串on,否则插入
  ^9 y: Q- n* G; B6 ?: W* E% \off(separator默认值",",number_of_bits参数使用时长度不足补01 N: z) Y" p& _- z
而过长截断)   ( t/ H1 S/ A% m" V. c6 H
mysql> select export_set(5,'y','n',',',4)  - q8 b7 X9 E- t4 x" s# {
  -> y,n,y,n   4 ^2 ?& H! }, {7 \/ g, p
. V' O# E: @. ]% m3 }
lcase(str)  8 I& R$ z' R# T# G$ d+ C
lower(str)   , ^, h  O+ A- q
返回小写的字符串str  
+ P+ B( A  C' p5 g% Qmysql> select lcase('quadratically');  ( ]+ `  h. i/ O" Y: G+ f8 X. p3 B
  -> 'quadratically' % A3 V8 @' _% R1 t- Y1 H$ [( S2 y% u0 d
   
- }  t! _' ]: _& S/ Kucase(str)   
% g: C* B, C+ O8 Yupper(str)   - ^7 B# }+ L- V% A6 Z2 k/ Y; u$ L  W2 c
返回大写的字符串str  . J9 D: i8 c, e( z( |2 U
mysql> select ucase('quadratically');  : Z8 a# `5 N; C# E' o
  -> 'quadratically'
8 \$ z  F9 {5 `" j' e7 K 2 f6 {; x4 k9 I0 F3 H) Z' d+ D
load_file(file_name)   
% A8 t1 t' Y; h& z读入文件并且作为一个字符串返回文件内容(文件无法找到,路径
3 e, j, Z  t# X7 ?不完整,没有权限,长度大于max_allowed_packet会返回null)  & Q& j/ K0 [' h: |0 N
mysql> update table_name set blob_column=load_file
4 S8 T" E& Z  t% ]$ k" F("/tmp/picture") where id=1;  
, L0 Z1 z3 n7 r! u6 A3 @0 z" V & x) F6 T) S" K) a
2、数学函数
; [7 B0 ~$ Q  jabs(n) % p2 ?, E3 }  Z$ h+ Z. s
返回n的绝对值  
1 }5 L- M/ S6 Jmysql> select abs(2);   
3 m* c1 \, {+ x: o, @# {  X  -> 2   
) ?6 W2 F( A& k. Z$ a+ |mysql> select abs(-32);   
$ P" f  H# F6 _  -> 32    ) d0 j0 a( f6 M& K1 h. U- t% V$ E( ~
   
+ J' w* ~% o/ r. b7 Y+ A* Qsign(n)  $ P( n" R1 D" _$ |
返回参数的符号(为-1、0或1)  
% u+ C9 O2 F, y3 c1 qmysql> select sign(-32);    # |. _+ ~, q+ r" t% d
  -> -1    ) ?0 _4 P3 i& A: q. [, Q; b
mysql> select sign(0);    7 N/ R/ b: g0 Y7 T0 e. A; B# j- S
  -> 0   
9 E; a7 p( i" t% c, p: o4 y- n) xmysql> select sign(234);    % x! c: y  w6 S- B5 O8 S
  -> 1   
8 M. b( d9 l' }* f% z- L 6 I2 S( e2 f+ S" x
mod(n,m)    - i7 l/ L" f# E1 t/ n/ C! L+ C7 c
取模运算,返回n被m除的余数(同%操作符)   
( v. I0 G4 X# y# _8 ymysql> select mod(234, 10);   
; S* \" ?. K( h/ V5 {  T4 S, X  -> 4    & @& B6 L2 W/ a
mysql> select 234 % 10;    5 L* T9 l6 x1 ]& [6 L# U& ]
  -> 4   
  E/ I, q4 M; K% G7 Vmysql> select mod(29,9);    0 D& h4 j, J; ?; r9 F# ?3 l
  -> 2    - z4 M9 o; W1 a( ?- \
$ Z+ N( h+ U8 g* f. {
floor(n)  
0 S& N; @$ Y# k) i" e返回不大于n的最大整数值  
3 A8 X% n! ~; I' Amysql> select floor(1.23);   
4 u' S. A( p6 W4 V  -> 1   
1 H! M1 X" o6 c! ~3 x% {mysql> select floor(-1.23);    . K; Q& t3 i4 e' k2 q
  -> -2   
6 d0 i% r9 N- s6 b1 w8 n9 e
" b, |7 o' v) `8 }+ n0 B9 P5 |4 vceiling(n)  # y; w& H- K( c/ U" u: Q
返回不小于n的最小整数值  4 v5 o3 D; @' X% e1 x! y* p
mysql> select ceiling(1.23);    $ W* h% ~) e( J
  -> 2    9 Q( ~0 H) y# Q( P( Z( W9 V- v( S6 s
mysql> select ceiling(-1.23);   
$ Y3 ^1 J' u" F  -> -1    1 p2 L0 F3 n7 b

- ?) Y- u( @7 r  K- M6 n1 \! Dround(n,d)  
3 k! i' a: j2 d4 t# w2 m6 p返回n的四舍五入值,保留d位小数(d的默认值为0)  ) w3 Z9 h/ i0 [
mysql> select round(-1.23);    5 F- k. ~- J. j( o0 f
  -> -1    % Y" p; H+ r; H$ j; e- t
mysql> select round(-1.58);    ' u& ]9 n% t% W; z0 q
  -> -2   
, \* k2 N9 e5 n: Qmysql> select round(1.58);   
$ G6 Z  \! G* Z* `* W, L  d. H  -> 2   
2 ^# _7 a9 C+ N/ q4 N+ _4 V" H  \1 lmysql> select round(1.298, 1);    7 A7 m! z/ V4 R, ]& _$ s
  -> 1.3    " b/ r# I; G; I0 u) J8 s* t
mysql> select round(1.298, 0);    : _& h# V' h' J9 M- @2 m
  -> 1    ! ^3 o2 J, Z# H) K! J+ a6 z
* S1 u5 S& y/ L3 o& \: r0 c
exp(n)  
, C1 z3 [4 F! V4 E7 n6 H) L返回值e的n次方(自然对数的底)  
0 ]* E! z$ f; `7 C% ^mysql> select exp(2);    7 G! G. {; @/ D! q
  -> 7.389056   
' L* p1 |6 E- zmysql> select exp(-2);   
# W2 x- ^) j! l+ ]  o: S! \$ d) m  -> 0.135335   
" u6 \3 `" m5 k; B6 T; L
2 x3 Q( X* U  V8 Q: plog(n)  
  S" ^; V' ~" B2 p# w2 V" f  r! |返回n的自然对数  - T. h& U! o4 P7 ?! D$ R9 x, U5 e5 h, n
mysql> select log(2);   
# X& M. q8 r2 C6 I1 \. ^! R: e  -> 0.693147    ! v( `: B/ P, s# ~# F
mysql> select log(-2);    ! e, i+ ~  d# {8 n' s, D# k
  -> null   
2 P6 ~8 Z' c3 |9 [7 E ( z- a2 L& R9 ?
log10(n)  
5 K2 ?$ j  N- a' A6 ^8 N) N返回n以10为底的对数  * Z! w+ V0 R* @" E
mysql> select log10(2);   
: ]4 a9 ?! K$ y& }& g5 m1 }  -> 0.301030   
9 `8 ], F- Q) M3 m! mmysql> select log10(100);   
' {) ?* b: J; `0 \  -> 2.000000   
6 @! O7 E( c, c/ ^mysql> select log10(-100);      e) v/ M3 g! [$ |
  -> null   
1 B: |2 G) H/ H$ C$ _) B 5 J" q; U, F6 U3 [3 c* |
pow(x,y)    % H1 @/ A( B8 u9 f( f2 Q+ a: o6 N9 Y
power(x,y)   
. ]" }! t$ J  M3 B# X! G: C0 [ 返回值x的y次幂  
  W, D- f+ a3 P' V3 n" \6 mmysql> select pow(2,2);    & F9 T% u9 M0 x& I! Z* y
  -> 4.000000    ! @$ l+ Z2 n, o  y# I
mysql> select pow(2,-2);    ' j- L* y0 j: ]  E  U
  -> 0.250000  + v8 n7 |; [0 }0 _6 _( C9 }

* o, U$ j# t" m4 xsqrt(n)  
4 z- |7 G" P$ ? 返回非负数n的平方根  
. R0 d: R$ ?7 c% ?" r* I" y7 L; g/ L; Xmysql> select sqrt(4);    6 T" D6 f+ L0 s/ c" \8 M
  -> 2.000000    % }) s1 t1 C, P( L) ^
mysql> select sqrt(20);    # _' ~8 _  K% \; P3 [" T
  -> 4.472136    2 H7 N1 G+ \) m7 w" J* c. |

5 J4 ?6 B* [. v  h/ p4 epi()   
/ s% D& ^2 W2 z! f4 ~! c4 h4 Q 返回圆周率   
# p5 O' Z3 b8 t4 Q- G- Vmysql> select pi();    " k7 y5 d. d$ i1 D6 E
  -> 3.141593   
- h& t. I, t( m: y- X0 E / a4 Q+ Q5 L/ h9 y
cos(n)  
, H* C" U' @% W 返回n的余弦值  3 L8 @" G: N9 Y, D" l4 ~) B
mysql> select cos(pi());  - y  U, _0 z6 N) R& I9 F
  -> -1.000000   
' ]0 w7 z' h  U! z$ K4 S 0 G* I- r* U6 S, T6 T
sin(n)  5 n! k; I+ w( s6 G; L- _8 x, I
 返回n的正弦值   8 `3 R/ i) i0 h2 R
mysql> select sin(pi());   
% a8 S' m% g% M+ B  -> 0.000000   
' T/ |& _/ B0 f 0 |" T+ U1 o( V9 P- D" k' }' B1 |
tan(n)  
0 m8 e; z, s! n返回n的正切值  
. K4 {7 w  B: H, X3 Bmysql> select tan(pi()+1);   
4 [5 c4 w6 b9 f* K5 ]  -> 1.557408   
# m5 J: @7 h) y- l6 R: M2 A* n! g
/ }( G% q) Y" ~, `8 a* lacos(n)  
: c) i9 E+ y9 }0 Z! Q 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  , T7 B; L- i# L; g3 B
mysql> select acos(1);   
) ]5 h/ {0 Y, Z, W! I9 L3 r  -> 0.000000   
7 X; D" i* `0 z. ?3 N, W" r" qmysql> select acos(1.0001);    7 W) g8 T; \# O# o8 X4 m. l- R7 u
  -> null   
+ ]) L. q  Z# O6 h/ ^/ t3 _: @mysql> select acos(0);   
7 b$ e' |2 S9 y! i  -> 1.570796    / W7 ]4 k" v: M" f
* s: D: @9 z3 |. b; R
asin(n)  
- w  s0 V# z; u) f8 [返回n反正弦值  * [, H- `. R0 \% A; K2 H& {
mysql> select asin(0.2);   
  m: a# M8 @' z" f. C/ D4 D7 S  -> 0.201358   
0 P! {- G4 z9 `: Q4 z& e$ ]mysql> select asin('foo');   
' y( y) v% n- B  -> 0.000000   
1 t1 z& o* v- B8 R: C" E
# l7 j% c. Y8 n0 }+ k1 `atan(n)  
: h$ `" R; {. w+ t: j  _返回n的反正切值  
# v# z' f- u; J9 G" x+ Gmysql> select atan(2);   
+ @* `! e& P9 H" a. s  -> 1.107149   
. q, m9 Z/ n& W% J/ d' z# x8 y  Zmysql> select atan(-2);   
8 Z) q' x8 Z8 \3 p  @  -> -1.107149    % o2 d5 o  F7 A( t4 U* ^, L0 b
atan2(x,y)    ' n, H6 i) J( N! j$ i( h
 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  $ ~" X) ^* X% K5 F
mysql> select atan(-2,2);   
$ v& [0 y9 p5 V  w  -> -0.785398   
" ~- d9 K' S( t2 r' z5 }, c; Hmysql> select atan(pi(),0);   
! }4 I  G* O% `2 a  -> 1.570796   
- S, H- Q8 f( i: t0 H( Q 1 @/ X; p+ h0 {, ]$ |
cot(n)  
- f% n- n* J# a5 [( v  x返回x的余切  - A1 n1 K+ x% t" i9 e! G% W
mysql> select cot(12);    9 z2 `; R, t% U- c/ j# O5 i
  -> -1.57267341   
& q1 }: \# Z8 k9 B8 k9 pmysql> select cot(0);   
5 I5 N: c& f2 G! z4 I  -> null   
' ~6 p$ x6 C9 h
+ H) C4 V2 t- c, j7 J  m) yrand()  2 p. E) G0 J6 G& |
rand(n)    
- Y# j& x9 Y4 r% O$ u0 O返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
7 `; \- P: O5 @8 j 0 Z; S5 @' F+ ~! [) |9 W3 T- j
mysql> select rand();    9 n( ^5 d- T0 N! ^) x; C3 t
  -> 0.5925   
0 Q; _. O4 x1 N0 L6 [2 |8 Dmysql> select rand(20);   
* y$ i+ c! G; U  K  -> 0.1811   
( w% t% l+ N% |  bmysql> select rand(20);    5 s" k4 F/ T. A, r$ v+ p! n
  -> 0.1811    , N- y* h, z! c- w. {- k
mysql> select rand();   
5 z5 z: ?- L% `, b; z9 O  -> 0.2079    5 q) v3 s% y  F
mysql> select rand();    ' C$ ?6 A1 j+ F( U% o& T1 y
  -> 0.7888   
% _# ^# y7 d% ?5 w- a& R
. E4 j: }+ z2 Z$ }/ \7 ldegrees(n)  
/ x9 G& W, s  W8 ], g7 s& ~3 Z* W( n把n从弧度变换为角度并返回  
6 Z0 c' o$ N/ R1 H7 y5 Pmysql> select degrees(pi());    & t# j3 P0 h0 r' v
  -> 180.000000   
& h/ o( a: y8 N; a7 Z& n. y0 C. U
! o7 {3 q. k  ^; m2 a" eradians(n) 9 U# z; T$ _6 _8 F5 \7 s5 s0 j
把n从角度变换为弧度并返回   
! A$ \. U5 e' E; z* Q  zmysql> select radians(90);    + G8 k  A$ z, r9 [
  -> 1.570796    " K) g# P/ J& N/ m

& e: i% I" v6 J3 t' Otruncate(n,d)    ! n3 {/ O3 u! m( f7 U: N
保留数字n的d位小数并返回  
- I8 d, K& Y2 mmysql> select truncate(1.223,1);    " d: Y% [9 Q4 g, N- F* T
  -> 1.2    & i  E3 E, K, p' h% n3 [5 _5 g" J  k
mysql> select truncate(1.999,1);   
# x# H) Y& w  m2 G  H" @% w  -> 1.9    % x0 _9 K3 ~: O
mysql> select truncate(1.999,0);   
5 X6 f5 n! [0 D9 p1 r5 u7 h' z3 s  -> 1   
' k) K6 n4 T& d" E( G + B, F- g, J3 W. J6 J& u) L1 I
least(x,y,...)    ' Y: U4 L' _+ i0 f; s7 R/ ]1 D
返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  1 b( ^) K; K# ~, u  a) V/ p
mysql> select least(2,0);   
  p1 J4 a# _8 r8 d& x. `  -> 0   
; A9 e8 ]! N" k$ \& B6 Y% Zmysql> select least(34.0,3.0,5.0,767.0);   
; G, Z+ [9 p' x5 o$ b  -> 3.0   
5 d6 c* [! v) Y  B+ g5 J" y' _mysql> select least("b","a","c");      N' k, L1 I: S% J1 i+ h# ^# s
  -> "a"   
  J- W" f& b, p% ^ 1 j# J& f" U) K: n5 @) ~
greatest(x,y,...)   
# V" r1 D+ L% r0 O2 x1 j返回最大值(其余同least())  
+ M/ @" m" {* F$ p) n. Smysql> select greatest(2,0);   
* @6 n0 G( c. g$ G* Q' v# F# V  -> 2    . p1 }/ c% X  e' s  s/ e$ j+ t# ?
mysql> select greatest(34.0,3.0,5.0,767.0);    , Q4 X4 {5 R" z$ n
  -> 767.0    ) S+ c9 i3 i7 b& s2 S6 z
mysql> select greatest("b","a","c");   
' \7 @' E- P9 w( k  -> "c"     
9 M" H- k" {  ?8 u% t! m% m& J$ E& o2 k1 @( a$ @. V/ M  Y
3、时期时间函数
$ q0 l+ ?& ?  ?, g% E. h# f0 Udayofweek(date)    ; L: x, N9 N8 c/ ^5 s
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
; c* p' F7 D. O. @* H9 imysql> select dayofweek('1998-02-03');   
" Q) |2 `. u/ f* n& v' ?; Q) b$ S  -> 3   
8 g5 x- \( B- s. N1 f) g# Y2 \* x: m 6 U3 `& Y3 h/ [, f; V; l! W
weekday(date)    - {4 ^( b7 u# f
返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 8 ~& ~9 n+ Q7 r3 i4 {# a
  2 f6 c, j5 p5 X. b9 `
mysql> select weekday('1997-10-04 22:23:00');   
5 _- o  P) V% B( n4 o9 o1 f  -> 5    8 Z( {: D6 \+ A' B$ x6 r
mysql> select weekday('1997-11-05');   
2 o+ o! u( h+ n! F# C7 b7 C  -> 2   
* k2 E9 [2 S% ~/ k5 f- m: j ' |0 T& o+ |9 ?  t7 m' d  B
dayofmonth(date)    
8 X/ Y2 B( `3 g返回date是一月中的第几日(在1到31范围内)   
# [+ X* ~# l* |# r9 v: Vmysql> select dayofmonth('1998-02-03');   
4 U# f, e. Y' w, L  t& x  -> 3    " u. N8 f0 O9 h, U+ V/ K$ k# L
3 X. f0 C. D" i+ d. [( K- M, M8 D
dayofyear(date)    # z$ P- V; W8 R" _7 y) M6 Z0 k
返回date是一年中的第几日(在1到366范围内)    , S/ y+ R- ]! o0 E# \1 q
mysql> select dayofyear('1998-02-03');    % i5 {! F8 H; p
  -> 34    # a! I3 r- X4 Z- {% ?, ~
- s/ S# f- w$ Q  F8 u! R4 R
month(date)    ( E& N4 q! H, S) y1 e
返回date中的月份数值   
0 v" i. W- |9 e1 X% zmysql> select month('1998-02-03');    & T1 v* j' t: {: r
  -> 2    - V+ M) i0 L6 V! \/ Z

+ P% u* }; y& I; A: Ndayname(date)    # ^$ E; a9 z8 H( c
返回date是星期几(按英文名返回)  4 `  c  ?5 u5 U0 p
mysql> select dayname("1998-02-05");   
. m& c) {% n. Q  -> 'thursday'    ' {# T* W: m( N+ B

; E2 ^' N! \# [5 [7 W: hmonthname(date)    
, N( l$ n# H" L8 U返回date是几月(按英文名返回)  5 _- J0 E) y6 |3 t9 ?
mysql> select monthname("1998-02-05");    + n3 L3 b1 n- S. @/ K
  -> 'february'    2 E: C. I& k/ t' d; h
7 D: D) \5 v+ _( x# V' c% L
quarter(date)   
6 }$ s- N3 E( W# ~9 ?# t& @返回date是一年的第几个季度   
1 Y* n' P: [) q' ~mysql> select quarter('98-04-01');    + r8 P. L$ ?$ W5 _$ L' Y0 P/ z  N: L
  -> 2    * V7 ?4 Y0 f# n

5 R/ d" |' q; pweek(date,first)   + _7 |4 Y2 s. H
返回date是一年的第几周(first默认值0,first取值1表示周一是/ o" h9 ]4 G3 V7 l3 }' @
周的开始,0从周日开始)  * s# t; C1 ?7 n
mysql> select week('1998-02-20');    - L: h! |6 m5 \2 a& g6 d3 y
  -> 7   
$ n* |4 }/ Q4 Qmysql> select week('1998-02-20',0);   
5 s: Z" l8 z9 L" O& V; W  e  -> 7    & d& n3 c# y+ K8 i$ X- h9 X
mysql> select week('1998-02-20',1);   
/ v$ R& V5 @/ {3 C' X  y2 l4 o  -> 8    " m/ q. w$ K( M6 V. k2 E! \
8 N8 x$ u9 m; ]4 Z' z
year(date)   
& ~' X* u. }: }# }7 ?! s返回date的年份(范围在1000到9999)    6 O: E  ?5 B  z' J( l
mysql> select year('98-02-03');   
/ i( D$ y8 z. H5 i. G* x$ R# i  -> 1998   
( r0 D8 i# @5 C! _) S
5 k2 E, [* u& j" N0 J: Thour(time)    $ ]! N6 X( R1 a) @+ W) M4 H
返回time的小时数(范围是0到23)   
2 [" ~* B$ G$ a# Lmysql> select hour('10:05:03');    + |( G' s( e5 _: Q4 q( m& T
  -> 10    & o. a: {, V7 C/ H% [
! T# b* a  ^5 B# x) D! O
minute(time)   
/ A' p) ^- o9 ^' c$ o/ ?0 {7 c返回time的分钟数(范围是0到59)   
) b, O6 g' T9 ^8 t* a* Gmysql> select minute('98-02-03 10:05:03');   
9 u/ Y' M; l6 a& J: U  -> 5   
! R& `" s  X, ?! e0 E) m 6 @* @3 B$ c$ V  K
second(time)    
- r7 F+ S) G0 V- Z返回time的秒数(范围是0到59)     p' _* E9 N4 E, S( g1 d+ s
mysql> select second('10:05:03');   
. P5 B# f7 H: g  -> 3    ) E' Z5 u! _; n' F9 W

$ P  }: L! I1 uperiod_add(p,n)    / R% F  `5 P- n% O( v0 p
增加n个月到时期p并返回(p的格式yymm或yyyymm)    9 V1 h" y, U2 O- Z" [
mysql> select period_add(9801,2);    & A: v1 s3 V( K0 P/ G+ d
  -> 199803   
' @" N0 [% N) X3 O6 i3 }( B . T9 V- A- e+ D/ U* O9 ^
period_diff(p1,p2)    $ B4 G, C# E4 h$ J' _  s3 s1 [
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  
: U$ Y0 E" e- c( ?1 t5 {  }! cmysql> select period_diff(9802,199703);   
/ z3 z+ R* O# A4 u  k$ ?2 s8 u  -> 11   
* \' M0 N5 o, B' k! k0 I
8 z0 a" L$ C' e* `: f3 \  d& pdate_add(date,interval expr type)  8 d' q0 }6 m  F- L& J! ]# f- p
date_sub(date,interval expr type)    ' F8 F) q3 R6 s, A7 B5 F5 ~
adddate(date,interval expr type)    ' }1 }- S& ~- E" c5 |
subdate(date,interval expr type)  
0 q9 h$ E& I7 v0 I2 n5 I( w对日期时间进行加减法运算  
" u6 b1 M9 G( t8 t# Y(adddate()和subdate()是date_add()和date_sub()的同义词,也
9 p% x2 e6 a, L0 S* V4 B: ]. o4 `/ n可以用运算符+和-而不是函数  8 _* c2 l# C2 C' j( [% M, U
date是一个datetime或date值,expr对date进行加减法的一个表' ^2 b5 d  w4 `& u0 E/ h2 ~; H( O8 m1 Q
达式字符串type指明表达式expr应该如何被解释  
, p# d# g. J) R- Q0 G& s* q% o [type值 含义 期望的expr格式]:  , C! S$ Z  p  D5 j! Z5 g" |2 g5 }! d
 second 秒 seconds   
+ F. u# Q4 m7 R+ A* B+ ?  E/ X minute 分钟 minutes    + L! F; Y7 V7 B3 {' m
 hour 时间 hours   
* T9 V2 D5 U: T! m9 J4 ? day 天 days   
" p% N9 X3 d  R3 } month 月 months   
. L/ S: H7 P- B$ k$ g+ h: g. } year 年 years   
8 c$ Z' W% t# l, [4 e minute_second 分钟和秒 "minutes:seconds"   
- X5 s: D; ]& `0 P hour_minute 小时和分钟 "hours:minutes"    * ?1 t/ {; \3 c2 v+ o
 day_hour 天和小时 "days hours"    5 C! b1 p2 }. \) @% c( m4 ]# z1 ]
 year_month 年和月 "years-months"   
3 ^0 {% q$ ?- `5 {$ ^0 o hour_second 小时, 分钟, "hours:minutes:seconds"   
5 J. R, D, I$ z, q day_minute 天, 小时, 分钟 "days hours:minutes"    / S- C. F* {7 \" a2 i
 day_second 天, 小时, 分钟, 秒 "days/ G+ f2 p1 @' d: I- V# Z
hours:minutes:seconds"
) L6 o* F1 h3 _- e* y/ K expr中允许任何标点做分隔符,如果所有是date值时结果是一个
( t1 y' U& D, q2 P: P4 xdate值,否则结果是一个datetime值)  
; R  F4 C  `+ r( [) U1 G% Q 如果type关键词不完整,则mysql从右端取值,day_second因为缺
" V, d$ K- N$ G8 n4 M少小时分钟等于minute_second)  
3 H& o3 V! m  R2 ]- Y+ @ 如果增加month、year_month或year,天数大于结果月份的最大天
9 ~# V. S: y) H; Y$ Y5 p+ s数则使用最大天数)   
7 t+ I2 S  |5 l5 Amysql> select "1997-12-31 23:59:59" + interval 1 second;  
  l- Q4 o' ?3 N % D1 W3 ^" C  I- H& q/ Q
  -> 1998-01-01 00:00:00   
! l' c: \, I3 K1 ?mysql> select interval 1 day + "1997-12-31";   
: r. ]4 y, g* [8 c6 \/ L  -> 1998-01-01    ( B! ?! M* D6 Y6 d
mysql> select "1998-01-01" - interval 1 second;   
$ _6 V9 p% K4 v  |  -> 1997-12-31 23:59:59   
: Z1 X  y- ~0 x% p1 e7 Zmysql> select date_add("1997-12-31 23:59:59",interval 1
) }0 y' _4 m5 X+ a/ b4 e: Nsecond);    & d0 j( P+ U0 F# F" A
  -> 1998-01-01 00:00:00   
$ m' ?8 ^- w9 w+ f  Lmysql> select date_add("1997-12-31 23:59:59",interval 1) Z+ i* |6 R8 P6 v
day);   
8 I2 D, a: x  j" F, A0 }# W  -> 1998-01-01 23:59:59    * \4 z/ L6 ^1 _( y+ C7 p" \% I2 n, Z
mysql> select date_add("1997-12-31 23:59:59",interval2 V' \9 v4 ^' S/ K. F" T# T2 R2 u
"1:1" minute_second);   
" @$ d, F% B& P# s+ R  -> 1998-01-01 00:01:00    " v# p! c4 K8 ?$ y3 e, {; Q: [
mysql> select date_sub("1998-01-01 00:00:00",interval "1! U, K+ r1 y5 }2 _
1:1:1" day_second);   
& {2 I, w2 j5 R( }+ \8 ], l, T. F  -> 1997-12-30 22:58:59   
" _; c( E7 W% b! j+ h6 kmysql> select date_add("1998-01-01 00:00:00", interval "-1
8 D7 h$ u7 u- h10" day_hour);  
0 Z' \, D! ~# f% ~- a% A! F: Q  -> 1997-12-30 14:00:00    & n8 ]" D+ }0 s9 }
mysql> select date_sub("1998-01-02", interval 31 day);   
9 y4 n( @1 m* k+ t% H5 ~  -> 1997-12-02    ( M/ W; L$ B  `, {5 V+ A
mysql> select extract(year from "1999-07-02");   
; R4 }, m! _, @5 h  -> 1999   
/ F. c4 J! B, Wmysql> select extract(year_month from "1999-07-02
5 ]& Q) @( T, C- G! Y01:02:03");   
# b3 j8 C& f5 f  -> 199907   
) k( }- z8 Y; _" y8 P' x% t. z6 @mysql> select extract(day_minute from "1999-07-02
+ t8 d9 u' k5 v2 Q: _+ j01:02:03");   
1 y9 Q7 c3 U  ]$ T  -> 20102   
& N2 k$ C) q# D6 T  J
$ v, {* h' S% r" `2 W+ x6 ^to_days(date)   
. t  Z. P; a" a返回日期date是西元0年至今多少天(不计算1582年以前)  
3 r/ N. t" d, J! E% p+ t) [. R, Emysql> select to_days(950501);   
5 }+ U7 V' F5 b7 T) _2 V  -> 728779    3 p; u4 {2 H+ l$ |7 @
mysql> select to_days('1997-10-07');   
6 h  }) B4 ]; ^  -> 729669    2 y* a0 i8 w5 V

# B' g! Z' A1 L- [0 bfrom_days(n)      s: ~. u. U; D1 I6 u
 给出西元0年至今多少天返回date值(不计算1582年以前)   . s) k- g4 M2 S+ ]4 x2 H7 h9 r
mysql> select from_days(729669);   
9 M: \5 P! C% K; i7 g, m, S  -> '1997-10-07'    ! X5 n" U" p% Y* k/ e2 A

. n0 G1 j( P: S' e( V9 w9 I0 edate_format(date,format)    1 o* }" o6 J9 {
 根据format字符串格式化date值  
+ }) Q5 S, ^' h4 {( D) F (在format字符串中可用标志符:  
0 s! R: B# ~  ?. Y! U+ k) r- m7 R %m 月名字(january……december)   
/ J7 B. U. G8 e9 \ %w 星期名字(sunday……saturday)    2 J- G; H( B( d2 q2 N) x
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)   
' k! C4 @7 _. A9 z, v %y 年, 数字, 4 位   
' c  |# ?; G( i) G) P %y 年, 数字, 2 位    " q' j! Q( T$ y6 h' [
 %a 缩写的星期名字(sun……sat)    & c) E9 q% R5 P" m
 %d 月份中的天数, 数字(00……31)    - m6 c. o" Q/ }/ L, |* R5 _
 %e 月份中的天数, 数字(0……31)    ) [8 N1 m/ q' [) {" B! D. c
 %m 月, 数字(01……12)   
) m0 X8 \( o+ D2 } %c 月, 数字(1……12)   
' `- j4 q+ u$ F7 T %b 缩写的月份名字(jan……dec)   
& W4 ?6 x% U5 y9 l' ` %j 一年中的天数(001……366)   
: J' c4 L: L+ K6 m3 \9 z %h 小时(00……23)    8 G# ~* Q; t0 P' t
 %k 小时(0……23)    0 G. i% ~5 B( u, p  B- y# D8 o, R2 Q* d
 %h 小时(01……12)   
$ S* x( P% w: J$ p %i 小时(01……12)    8 M( R3 s# s6 Q) j2 \* k3 v( _
 %l 小时(1……12)    ; }) z6 F5 X/ @1 n9 ~7 s
 %i 分钟, 数字(00……59)   
$ W: `# |- }6 `9 x, |) c8 e) { %r 时间,12 小时(hh:mm:ss [ap]m)    7 v+ H2 ~' D: v4 M( s, t( h
 %t 时间,24 小时(hh:mm:ss)   
$ i6 M4 b! b% { %s 秒(00……59)    . l- o. o, b' V  n' Q& c
 %s 秒(00……59)    ; T4 O+ q6 U) e
 %p am或pm   
) T4 Q, ^+ o- H, L2 i& T1 |/ N( Z %w 一个星期中的天数(0=sunday ……6=saturday )   
7 K! T* T- H  ]$ I. e' t& ^ %u 星期(0……52), 这里星期天是星期的第一天   
# _. [) h) s! L4 `) {3 Y8 P% F! P1 f %u 星期(0……52), 这里星期一是星期的第一天    * A( Q' n% o  P5 b4 y
 %% 字符% )  * B% y0 W( I# R/ d2 }
mysql> select date_format('1997-10-04 22:23:00','%w %m %3 p' ]- p8 N# l' g
y');    9 m& j5 b5 G0 J* q. i
  -> 'saturday october 1997'    - Z# H6 j- U& b; V, z' O, F  M  P9 _
mysql> select date_format('1997-10-04 22:23:00','%h:%i:%9 ~3 l- z0 [0 w9 x. j& R, r
s');   
' `0 h  |0 j3 v) X3 Z4 @  -> '22:23:00'    & r2 L) E/ L" z2 m; e: D/ c
mysql> select date_format('1997-10-04 22:23:00','%d %y %a1 [- B* g- q# |# k
%d %m %b %j');   
) T+ P; N! U/ V8 |  -> '4th 97 sat 04 10 oct 277'   
# L# {% L4 j+ l: _+ dmysql> select date_format('1997-10-04 22:23:00','%h %k %i
7 ~% l) q2 P4 _%r %t %s %w');   
4 u* u  t4 l. q; j) b* J  -> '22 22 10 10:23:00 pm 22:23:00 00 6'    0 x5 z. B7 z* j1 s. ^2 h
$ f( a9 l8 n. @8 n/ a8 Y
time_format(time,format)  
. ?: B/ G2 u6 ~/ c. r. b6 m 和date_format()类似,但time_format只处理小时、分钟和秒(其5 [8 Y5 @. }: S- M% ?3 s% Y8 G# v
余符号产生一个null值或0)  " W) c6 s5 N0 Z9 {( z

3 Z" L9 L; i# P( k) }curdate()     
8 t) o/ L- \! J0 L+ t& xcurrent_date()  
, K5 e- g- U+ Z' `# n' p 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
9 t" V+ r  `- F9 D" [/ o处上下文是字符串或数字)    ' f; @5 H+ m) R5 C
mysql> select curdate();   
1 b! u- n* x. n  N  -> '1997-12-15'    1 r0 J- x5 q" V8 f! d, D
mysql> select curdate() + 0;   
* C9 |" n' L! w" ?9 a7 x8 w0 _  -> 19971215    + ~/ c+ o; x9 S% N, ~

: f( a# q! \$ g% Z& ^/ Y6 z! jcurtime()    2 j4 t& d0 `; _! p
current_time()  - q! ~: n1 S% g! h/ ]7 Z9 ~
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
6 j- y/ Z# z' ]0 M6 P: j下文是字符串或数字)      % A8 e' ~* p" p) m
mysql> select curtime();   
6 H7 [' U# c/ R) E0 A, V- b  -> '23:50:26'    ( I- Y$ I4 W. Q9 N
mysql> select curtime() + 0;   
. `; Y+ W+ y; H: z  -> 235026    ) w' K7 |! H( O% J: m% J

0 M6 i" G! u2 u. G8 @) G4 Q: }now()    $ ?! C% M5 ~( K
sysdate()    $ x0 P. V/ K% C; K* n  X
current_timestamp()  
( d' S* ]" P4 M6 a5 A5 P 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期1 ~% {  Y4 x, q+ ]
时间(根据返回值所处上下文是字符串或数字)     
' o8 \  D; j  |- Z. i- dmysql> select now();    $ o. S1 |9 v' ?8 f) U
  -> '1997-12-15 23:50:26'   
$ X) Z$ q% N; T5 h, w  b4 Hmysql> select now() + 0;   
4 G1 ~, ?* a8 ^8 t  -> 19971215235026    8 y# N' h- ?6 r& y4 c% ]# j6 R
/ z4 `' U$ M0 D$ ^" }, C5 x$ l
unix_timestamp()   
0 E9 B2 L& k4 s: h  funix_timestamp(date)    " I4 Y: z7 [1 B, A
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒; x; m8 T7 p' `2 c3 ~% c
数,date默认值为当前时间)  
  v9 H/ Z: F* H' j' }; L7 p- z# ]: k% o. smysql> select unix_timestamp();   
: j+ a9 ?# `1 K  -> 882226357    $ |$ s3 z4 _/ s1 `! K! M$ N' ~
mysql> select unix_timestamp('1997-10-04 22:23:00');    & q( L' \9 Z' n2 N/ Y
  -> 875996580    ! P, e5 r: O: [) J5 m$ o( [2 ~$ k
) t) K$ _; |9 L) P4 X! T
from_unixtime(unix_timestamp)   
9 o! p6 G6 ]6 U以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的# O0 G4 T6 a' @! j9 C1 l
值(根据返回值所处上下文是字符串或数字)     3 ~) o; m' c# g5 e5 c; p- i
mysql> select from_unixtime(875996580);    / l/ i/ \- H9 w( w& ^6 R; O
  -> '1997-10-04 22:23:00'   
; u+ }$ e) u" o8 b- Amysql> select from_unixtime(875996580) + 0;    ' t  i; f: P5 M* }
  -> 19971004222300    : ]0 H- u3 ?  A# m

  v/ @3 v6 G" ]& P0 P! b7 {9 o6 A6 Pfrom_unixtime(unix_timestamp,format)    
3 ^' h$ G6 X0 O以format字符串格式返回时间戳的值  8 ^3 o0 B5 M$ |' F3 f
mysql> select from_unixtime(unix_timestamp(),'%y %d %m %0 f# Y  Q+ ~' v; o" Y2 G0 B# N
h:%i:%s %x');    & m4 M9 S7 K* k
  -> '1997 23rd december 03:43:30 x'      h* O, |. f, @! [
  S& n- w4 f+ P  U0 P7 _
sec_to_time(seconds)   
6 u% _( [- R+ y; Q以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
+ z' z( P' a; r: Kmysql> select sec_to_time(2378);   
% A! {& j2 J4 i* f5 H5 |  -> '00:39:38'   
" Q1 C+ u/ r; e$ p: Kmysql> select sec_to_time(2378) + 0;   
! O# N9 u9 C" @/ U9 ^$ I" l2 t  -> 3938   
, U: }! J) ~! F; X/ r6 l+ W
% X/ \' ^) ~- y7 b6 A$ |# Itime_to_sec(time)    6 Z: g9 i% M" z$ [6 p
返回time值有多少秒   
+ K  Q- c$ z+ p- Q7 amysql> select time_to_sec('22:23:00');    # I6 O8 d, L* P. t
  -> 80580   
$ b: a+ b( \5 h! \mysql> select time_to_sec('00:39:38');   
9 ]1 q, S' r; h2 s! F* w& s  -> 2378 6 I; K1 S1 b2 K2 b8 g2 A3 S: c" B( k

- \$ \" B- G& p9 \4 @转换函数
2 c& T8 Q; z, Z9 l+ |cast
/ V- @/ O8 P0 a: ^5 K用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]
% }& x. p+ P- w2 Z8 h/ n实例:select cast(a as unsigned) as b from cardserver where order by b desc;
8 F- t* V: b' _6 z& w- nconvert:; z- z' I* e$ k' p
用法:convert(字段,数据类型)
5 U( l7 y3 q' ^; y9 C! K实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
5 w1 F/ ?- T7 v( N% ~8 _/ Q. V6 g
回复

使用道具 举报

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

本版积分规则

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