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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数
5 S* h/ e) o7 ^! q) |) fascii(str)   
% G3 C8 N. E9 }3 |) t返回字符串str的第一个字符的ascii值(str是空串时返回0)  $ ?( ?/ j8 R. Y% L
mysql> select ascii('2');  
4 O  {" l. R! r  c' u2 y  -> 50  & a- u2 k$ F7 _' b3 f
mysql> select ascii(2);  
, D- r( ]" A' [; Y, b; s. H  -> 50  2 z1 _; U9 y. d  I( V6 a9 A
mysql> select ascii('dete');  3 T8 ?, F/ C* F9 H8 |# ~8 \6 t1 z; o
  -> 100
( L* `% ^3 n: y0 x& h% E% m
ord(str)   2 {  }+ M" Z1 m8 m/ F4 x- D2 z/ i1 a
如果字符串str句首是单字节返回与ascii()函数返回的相同值。
2 j% R* Z/ w1 m+ S0 F1 |7 S5 {  `
& F9 b! }# q: h6 |/ T& k如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  
- {' K1 `& W) K0 u6 X# rmysql> select ord('2');  : e& y$ n1 j: G2 c/ `# z
  -> 50    a, p9 e+ z2 h$ O' }, G4 w
   % ^/ d$ Z" [) [. S* X1 r
conv(n,from_base,to_base)   
. {6 B+ U4 E$ G; J& f- l对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  1 h4 |5 S$ R  ^- L, r  M, U
mysql> select conv("a",16,2);  
3 [+ J0 q3 J, a  -> '1010' $ c3 W+ A6 M% m" j% }: T
mysql> select conv("6e",18,8);  
$ w8 b( _, M7 r* `  -> '172' ! {1 R1 G7 _, {! ^9 m+ ?
mysql> select conv(-17,10,-18);  
* ]& V* j* L3 _8 t8 }5 X- M  -> '-h'
: S. C5 O3 A; a1 Z8 Bmysql> select conv(10+"10"+'10'+0xa,10,10);  
; Z% d/ G4 F8 Q8 D7 c9 q  -> '40' & M. u  ?0 J7 ~. w( Q/ M
   / O! I! f+ @8 T' O) F
bin(n)   7 ?: E/ o( Y9 @: m
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  # N% a+ A+ m2 C  @. J9 l' K6 a
mysql> select bin(12);    [$ _3 t8 z" O" d' h$ a# ~
  -> '1100'
7 P! m% E7 ?1 I/ g * n2 R. b. ?5 l  l6 t0 D
oct(n)   
3 a3 C4 C9 l! ?" Y把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
: s( o/ |- Z; c$ Emysql> select oct(12);  + J+ L  H8 ]* E# H( c
  -> '14'
# d) e) `( @  f  {- }+ B; @   ) S% v% W2 J  t- |
hex(n)   * z) t. Z  g! l5 }
把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  ; c4 r" ]+ V! u9 c8 c% T, Y- T/ j7 F. t
mysql> select hex(255);  : }( ~1 Z! `$ ^
  -> 'ff'
3 t8 g/ G/ `; l   ' W/ [2 c0 z8 x) D; y8 i# a
char(n,...)   
7 B3 E# \  V# o返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   
$ p- j2 m1 L, @3 m- Xmysql> select char(77,121,83,81,'76');  
2 [. D1 d! ?6 k8 {8 Y  -> 'mysql'
9 x2 V2 R+ G- Z1 ^1 x1 W) jmysql> select char(77,77.3,'77.3');  
1 \+ o: D0 b) Q( @0 ]% l  -> 'mmm'
0 i2 K3 x5 Z+ ?/ T+ [( P9 Y* d$ O4 ~   # F) S7 Q' ^! O0 j0 J0 [2 C
concat(str1,str2,...)   + b9 a* O0 M1 `+ }" G/ G* y; U. T
把参数连成一个长字符串并返回(任何参数是null时返回null)  , T; e$ S/ z. F1 Y: p( T  S" P& W, z" o
mysql> select concat('my', 's', 'ql');    J  l6 v; k! T' }; O$ ^
  -> 'mysql'
6 _& C, |' H( N( P% F" Zmysql> select concat('my', null, 'ql');  4 @- g" T5 f7 X& R* o
  -> null
5 i7 [! h+ t: d# {: L3 Jmysql> select concat(14.3);  
5 v9 u6 E0 t. X  -> '14.3' ( U/ q% v6 n) d' J" d1 A

# q5 Y0 y! J  Xlength(str)   
& ~# }1 ^* t  B1 loctet_length(str)  
( o( B9 p# A* w  Y) T; {! D' mchar_length(str)  / A" y+ k7 n* f  j
character_length(str)  
( L8 z2 |: }6 Q1 x' q5 n& J( H返回字符串str的长度(对于多字节字符char_length仅计算一次)
$ U3 R' V0 C6 L9 d$ v+ T* ]mysql> select length('text');  
( ]. F: @: r1 w! N/ x  -> 4  
' T' u- b) \% @! x9 |mysql> select octet_length('text');  
4 t2 P) o7 R8 Y" ]  -> 4  
; h0 R3 N2 F% j! Z8 j, K
6 N6 V. G$ c1 ^( R- Ilocate(substr,str)   % K: s& Q" c2 D/ y) |
position(substr in str)   
3 Q& m  V* p6 }! [) ~& y- }: F1 U返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
' {' D5 A% M3 k% ]* e) |7 omysql> select locate('bar', 'foobarbar');  5 y1 f& E1 _+ |7 Y, z- w& g5 o. `
  -> 4  & I* d$ U. N+ r  H7 K+ n, E
mysql> select locate('xbar', 'foobar');  0 Q0 |0 P1 N3 U1 W# v
  -> 0  # X* c( M- {( E5 T6 N# G% n1 I- h
    # E9 |8 q) v: s! q
locate(substr,str,pos) 3 x9 d* d9 T! j" }8 g2 P- t
返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
! }/ |% Z! N; Y' Amysql> select locate('bar', 'foobarbar',5);  6 H8 E- k% `+ H
  -> 7  
9 @4 l) M! O0 E1 X8 I) n! ?, m 8 L' H% Z9 I9 t% a" [
instr(str,substr)  
! G7 r. P2 j! l: T8 T# c返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
# Q/ k+ t: F0 I2 x+ K( v: |. Vmysql> select instr('foobarbar', 'bar');  1 N3 N" F, ~# u4 K0 S, E
  -> 4  
8 s. c8 N. J3 N( V- a! |* vmysql> select instr('xbar', 'foobar');  # ?5 R, p8 k9 C0 P
  -> 0   
% t2 H, T& c, f. |5 S2 k9 n% l" H
7 ?$ ~1 t- h4 N' }lpad(str,len,padstr)   $ h% C! |7 X& R# p/ T7 P
用字符串padstr填补str左端直到字串长度为len并返回  
& s% j. c7 [( |, r3 r$ S8 wmysql> select lpad('hi',4,'??');  ( x7 r: V, e' ]/ K2 w7 v
  -> '??hi' 2 m9 U7 A0 |/ A0 f& M; C
   , u% I( F9 X, H
rpad(str,len,padstr)   ! e% b4 L7 t8 T% K9 x
用字符串padstr填补str右端直到字串长度为len并返回  
- z8 G  c, U/ |% S! S1 `mysql> select rpad('hi',5,'?');  
7 a# f' z& ~2 T2 `' ]  -> 'hi???'
. M+ P- V; s% d$ T, A1 A$ I
! m$ s* @- o  c8 b$ y3 F8 U: mleft(str,len)   $ [) d8 Y- a0 f6 L9 w
返回字符串str的左端len个字符  7 P7 t3 h$ h- T/ `5 f
mysql> select left('foobarbar', 5);  * J& W: R3 L  V; ^
  -> 'fooba'
( q6 P7 f% [( Q, e; ^
% j" j" L" L+ }/ ]: {" zright(str,len)   " z' F/ Q" Q$ S  a. O2 G3 @$ z) Y
返回字符串str的右端len个字符   
8 Q) A- M0 _. }/ p! \5 S* D9 l) Amysql> select right('foobarbar', 4);  
: W  d, z) i/ O) S4 T  -> 'rbar'
, Q3 J3 Q1 x$ O5 c! w" T 6 W. A7 l6 M5 u1 {+ O  J" |
substring(str,pos,len)   $ n  \0 v& _7 ^1 a6 Y0 [* A% D( b
substring(str from pos for len)   . p# M; M5 O; ?/ g7 ?/ r- N! L$ V
mid(str,pos,len)   5 a. q; w: n8 S; Q2 Q% `5 d
返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  - C0 w+ Q7 ^' g# m
  -> 'ratica' 6 o4 F( ^1 ?9 a: c! R4 J

1 ~. p$ v/ @+ V- q2 o; _8 H! ssubstring(str,pos)   
! b  ?* X! O& E( r2 psubstring(str from pos)   
0 C. u( R( G( X" `5 L返回字符串str的位置pos起的一个子串  3 v- `* O! H8 B, V; z3 r2 |$ X
mysql> select substring('quadratically',5);  7 p5 A* D1 R) v+ t7 ~1 H
  -> 'ratically' 1 g7 {# K1 H8 s4 L$ B8 ^: g
mysql> select substring('foobarbar' from 4);  
( M' T& ^/ l! O  -> 'barbar'
2 p7 x( g9 u- M2 ?% x ' r* `2 h% t1 u" v2 V: b" m
substring_index(str,delim,count)   
) T' I& D- u- G& V/ h返回从字符串str的第count个出现的分隔符delim之后的子串
6 L5 z. ~* a# [1 @& d9 w(count为正数时返回左端,否则返回右端子串)    U1 V! _$ j* r% [
mysql> select substring_index('www.mysql.com', '.', 2);  - Q+ O& f$ U% \$ b/ w
  -> 'www.mysql' ! c$ @/ U. a5 z& s2 r& E
mysql> select substring_index('www.mysql.com', '.', -2);  ) }7 g: I  T# {) u4 v4 K, R
  -> 'mysql.com' 7 W8 \& G7 G7 W/ b
- v# p8 ?, E8 u1 d2 E
ltrim(str)   
6 |9 g5 X& L" a6 z1 {1 I返回删除了左空格的字符串str  
$ l4 P' x+ v  Y7 `0 _mysql> select ltrim('  barbar');  
& h9 Q: j, @. w8 {; S9 S8 [1 e  -> 'barbar'
6 |* L% ~5 V4 ~$ R! `6 R 4 t9 M( G! H+ U' X
rtrim(str)   / |6 {; O% ^) ?5 t2 R9 u) w+ J( u
返回删除了右空格的字符串str  % W. ~" ^" V2 f
mysql> select rtrim('barbar   ');  
" P7 |9 W6 `+ N5 _$ K  F' T  -> 'barbar'
# c6 m7 S7 i( \0 M
* I, o6 ?; [& P3 B3 Ftrim([[both | leading | trailing] [remstr] from] str)   0 D1 E$ ?" U0 b
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  & l' U9 W& v; ~' E" X
mysql> select trim('  bar   ');  
1 ^. z  O9 L- [7 Y+ O. M0 z# n/ S  -> 'bar'
! U' |5 W; y; r9 C5 Q6 pmysql> select trim(leading 'x' from 'xxxbarxxx');  
( s$ M. y2 d. N7 }* g  -> 'barxxx' $ I5 E( E5 W2 F4 D+ }% q0 J/ G
mysql> select trim(both 'x' from 'xxxbarxxx');  . Q5 a3 k' q- M: T+ I
  -> 'bar'
9 X2 z' x4 s, _+ gmysql> select trim(trailing 'xyz' from 'barxxyz');  $ w+ V! a( I% m9 B# X0 }
  -> 'barx'
; z8 p4 v8 d4 x9 w/ X" e1 u" N; y
% R$ o: ?0 e7 I3 B! V( B, S/ lsoundex(str)   
# m  a* t7 }1 V5 y9 g  E3 n* \返回str的一个同音字符串(听起来“大致相同”字符串有相同的
  [1 V: v. c: I5 }同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  ' _4 @6 @* C% e# V, L8 x) Y
mysql> select soundex('hello');  
0 Z. k1 n1 b/ Z  [  -> 'h400' 2 m2 w% a; P8 [) I5 \( m+ O
mysql> select soundex('quadratically');  
% e7 O, q; t  S. j2 G. B  -> 'q36324'
' w' z& Z+ `* p! @   9 X& M" X1 w( `. |& t
space(n)   6 I1 v) A) B2 l' n0 I
返回由n个空格字符组成的一个字符串  ) l7 p2 v/ z* h' _5 F4 v% z' N
mysql> select space(6);  # z/ a: O: z. m* ?
  -> '      ' $ S. g: P, }% e/ c) n3 V
   # H6 l8 |0 B( W0 q& b
replace(str,from_str,to_str)   $ d/ C5 W: ]( ?2 @5 @1 ~3 e
用字符串to_str替换字符串str中的子串from_str并返回  7 q" K3 |" _" m: S9 p" m3 g
mysql> select replace('www.mysql.com', 'w', 'ww');  3 f0 f4 J. Z2 ?% D* w8 |
  -> 'wwwwww.mysql.com' 9 P7 _3 E% J' M1 ^
  e4 p$ U! g- H. u) f8 k9 X- [: i
repeat(str,count)   : F4 S2 S) l$ ^
返回由count个字符串str连成的一个字符串(任何参数为null时) J; l: g* G+ ?4 A$ d$ i# o+ S
返回null,count<=0时返回一个空字符串)  + a5 n0 ]# E) `$ v, M
mysql> select repeat('mysql', 3);  
( ~2 g5 ^; Z6 x6 ^8 f  -> 'mysqlmysqlmysql' ; D  O, W$ O) M' R
   
6 u) h" ?6 ~" y  O3 A2 Z+ jreverse(str)   $ }  r2 U; u( ~' q2 @
颠倒字符串str的字符顺序并返回  6 a' q- E5 ~5 _5 w* Z" H5 {
mysql> select reverse('abc');  ( _8 i. U  u% Z: f& y- ^9 R
  -> 'cba'
0 v: s" z) t2 z$ _) g % e# }" z" u  f- C: a
insert(str,pos,len,newstr)   / e  D0 a$ I7 @: c" w: E0 R
把字符串str由位置pos起len个字符长的子串替换为字符串
' c7 @5 R4 P: k! e9 Jnewstr并返回  7 f- [$ C& ]) R& X* h3 s
mysql> select insert('quadratic', 3, 4, 'what');  " l9 J' M3 w6 _4 C
  -> 'quwhattic' 2 y. Y- o5 u$ k. P
# s4 }; w* x" j" z" x4 O. O' C5 Q
elt(n,str1,str2,str3,...)   ' A4 ?. [* W# A
返回第n个字符串(n小于1或大于参数个数返回null)  
% H% E& B+ B6 ^" r* G' D5 hmysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  
; [, B# j; Q. w, l3 Z  -> 'ej'
, I; c+ [- Q/ y5 n6 ?mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  ! ?; G' c" x8 [! u5 G6 C
  -> 'foo'
, U% d7 m7 p: A- K
/ p+ P7 R. q$ j; d1 tfield(str,str1,str2,str3,...)  
0 ~0 M! Q1 N  Y返回str等于其后的第n个字符串的序号(如果str没找到返回0)  8 o1 v+ w' T0 K( i9 y% F
mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
7 E- J3 w) a% |0 S, N'foo');  ; u8 U5 z5 n; |" U0 ~
  -> 2  
) N# `  l! c1 h5 K: K& bmysql> select field('fo', 'hej', 'ej', 'heja', 'hej',8 J: F5 x( t, Z( @* R
'foo');  
; }. X. L, O" I# o/ W) T! q  -> 0  4 j# c2 E6 X( p+ U' E2 S
0 m; l! t+ z4 Q% o  u0 `; R: F
find_in_set(str,strlist)   
* v+ l7 v9 L  [* P8 Y# {返回str在字符串集strlist中的序号(任何参数是null则返回
: C+ h# l; E/ f9 E; h; Z9 g2 \1 E' Dnull,如果str没找到返回0,参数1包含","时工作异常)    i8 {" V7 \- g
mysql> select find_in_set('b','a,b,c,d');  
+ K; l5 o+ L  i' g. v: U3 D6 \' x* K  -> 2  
" S. i: n: N: x% e, p   
1 J+ q1 ^/ J* K+ @0 f. R. jmake_set(bits,str1,str2,...)  : n+ Z- R' k& B+ O. l0 ^, [
把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应4 {! \& }1 U7 ~0 E' b- l
位置的字串选入字串集并返回(null串不添加到结果中)  
, P, ^' R- a! p) D  i7 x" B( L: vmysql> select make_set(1,'a','b','c');    X8 m' P+ Q7 Z# j9 B6 @3 f" v
  -> 'a'
7 }1 H3 M' t+ _7 q, {/ mmysql> select make_set(1 | 4,'hello','nice','world');  
; S, e" h8 f/ ~' l* ~  -> 'hello,world' & X' F8 q# X4 G2 _) _4 K. U
mysql> select make_set(0,'a','b','c');  ( ~/ @0 I( ^8 D6 o
  -> '' . l$ U2 p0 C( H( N3 w5 ]
& w$ p0 \7 }1 C  w; d# ^/ r' w2 p
export_set(bits,on,off,[separator,[number_of_bits]])   
$ q0 h5 C7 k( `+ K, t3 M; c按bits排列字符串集,只有当位等于1时插入字串on,否则插入+ h0 V* Z9 a2 \4 I: Q' E0 J0 F! f: @/ f
off(separator默认值",",number_of_bits参数使用时长度不足补0
7 A. ?& c- \  k; A% a. \而过长截断)   
: q4 G  w4 L( e, y% q" c  @mysql> select export_set(5,'y','n',',',4)  
4 \! h+ ?4 B8 @3 `* w; T7 }  -> y,n,y,n   8 [9 c: u4 E: Y5 u

, n. _# y, p. r7 {3 U* W' Q  wlcase(str)  / n6 j$ P+ W+ F+ A1 i
lower(str)   
6 }3 k& {6 V8 q+ P8 ~6 K返回小写的字符串str  
/ o9 _3 \* ^/ R- S. C, `. w$ Y+ w) Gmysql> select lcase('quadratically');  9 `+ H0 O# w/ B- `  v; A) p
  -> 'quadratically' : ?# v" {: U* b9 z( ~( A
   / |1 ^  q3 g8 R
ucase(str)   
! T" n! [+ U0 z# ]# Eupper(str)   + @! y* S3 ^2 j' K, y1 z5 h
返回大写的字符串str  
6 `% o; ]& ?/ o( U, }% tmysql> select ucase('quadratically');  
0 B6 D% l/ s0 ^; F  -> 'quadratically' $ V% W% k5 m! i8 ^( w# g7 q& p$ M( ]
; q# C+ G% A, ]; ~
load_file(file_name)   
* G% E$ T: b9 \$ l/ H5 [读入文件并且作为一个字符串返回文件内容(文件无法找到,路径
3 K4 Z& r6 ~9 n8 n* y( X不完整,没有权限,长度大于max_allowed_packet会返回null)  & Y, Y/ E: i5 N
mysql> update table_name set blob_column=load_file
: c8 J; u/ `' t; `4 H' r("/tmp/picture") where id=1;  
  Q, w2 H5 U: O' Q+ E4 y
2 D7 v/ y: w' [! p- g# X1 S' T( k2、数学函数
+ I6 P. r+ Z) z+ u, r8 R- R/ S! Uabs(n) : F8 [  z/ N8 A; j0 u. R# \# W3 u
返回n的绝对值  6 t  Q+ d4 x2 O1 M7 G8 z0 E1 t$ j
mysql> select abs(2);    " ~- `" u  V) X( [
  -> 2    $ m' g1 d1 E6 ]8 s9 |! U$ T
mysql> select abs(-32);   
1 O( g6 M1 \& d& |  -> 32   
* f& O  E0 M. q; P0 w) M4 _: F   : r0 _, N. E1 \2 t
sign(n)  
9 \! \/ C$ L8 A$ L返回参数的符号(为-1、0或1)  $ [( i' ~7 a2 e9 Q- ?3 B) r0 I, J
mysql> select sign(-32);    * W2 _5 c9 a2 R# i0 l, G
  -> -1    ; |: }; }5 k8 ^5 o
mysql> select sign(0);   
8 M" i& O) |& a1 j0 D( s3 E+ R  -> 0    9 ~8 E/ m% L: T7 w* x
mysql> select sign(234);   
: O5 Q. n$ w6 f# n  -> 1    : _( L! B: ^: R. ~& v

' G. |3 a/ Y. G; k# h' J; J( I  \mod(n,m)    / x. w, z- O1 R/ S4 f
取模运算,返回n被m除的余数(同%操作符)   
: I* ^* Z( S7 I9 _2 L) E6 jmysql> select mod(234, 10);    0 `  C  Q6 _8 I5 j, c$ [/ @
  -> 4   
$ C& Y# {( ^: G. S) Xmysql> select 234 % 10;   
9 G. y& P( f% k: K  -> 4   
6 K9 D0 u, o4 b" U6 b: Umysql> select mod(29,9);    $ U# ]* {; A- Q& u5 M3 L9 v
  -> 2    , B. E5 J% L5 c' _8 m
- _# G" g6 @7 Y- s! h4 x" b
floor(n)  0 \! |, a. `5 Z( v. y, G
返回不大于n的最大整数值  
2 k4 l1 E  O- t# ]3 V3 F  v' t/ \$ y- jmysql> select floor(1.23);    0 Q9 W' f9 [* P6 P6 ]
  -> 1    ( `8 o7 L9 E5 I6 @5 c2 L% o  d
mysql> select floor(-1.23);   
! g) `, e. v2 L) l3 D$ ^( _  -> -2    8 ~5 C2 h  J( O$ d/ E# ~) I
% o; g4 T% a* [; C5 K
ceiling(n)  
& w1 w: L4 D* \$ {: f返回不小于n的最小整数值  
: M) {0 v8 f2 Q9 C8 M. fmysql> select ceiling(1.23);   
: m9 `% F/ C- `( e9 D3 S  -> 2   
1 C) _5 M3 _- ]  b4 Ymysql> select ceiling(-1.23);   
8 }  o! o& f; Z0 T7 H" |; v: F0 b  -> -1   
5 J! h3 Q" n9 |; W. C5 i
# K% b" {0 ?- e. jround(n,d)  
/ g  z1 N: Q3 f9 S" }返回n的四舍五入值,保留d位小数(d的默认值为0)  % O2 G/ x4 D1 m' @( |
mysql> select round(-1.23);   
% M6 C# e* }) `  W9 H& P" X  -> -1   
0 s- E* {& P% E9 o: w5 cmysql> select round(-1.58);   
# Q( s: M# {& y* W9 \6 }  -> -2    , G- b( G+ s) C: W
mysql> select round(1.58);   
! I- m! U' |/ B& S9 j# a7 g  -> 2   
3 F: s3 s; q- B+ V5 hmysql> select round(1.298, 1);    + b( N: |3 R# H9 i9 A5 Q
  -> 1.3    9 W, i' w" J. I- Z& h8 @, K
mysql> select round(1.298, 0);   
7 b& F- M& v% J, x' u$ w4 }  -> 1    ; d) h4 P; ?, ]2 |8 _2 @8 F
/ w# R! M- B/ C3 x/ c$ G+ y5 j
exp(n)  1 C0 {5 n9 e- G& H: T+ K
返回值e的n次方(自然对数的底)  
$ q% F* L% Y. g2 q+ imysql> select exp(2);   
1 K. u9 ]9 h; [5 U; B. V/ V( Z# h  -> 7.389056    ! m/ U, q0 T+ C( y) o! T1 B7 [
mysql> select exp(-2);   
! |% W1 `* d3 Y% _  -> 0.135335    ; u( G4 ]8 Q5 q0 I$ x
& a5 L7 c7 h" X, n
log(n)  4 I2 ~! g* [0 r. e1 E
返回n的自然对数  
; Q" w7 }9 l7 Jmysql> select log(2);    * |: V7 \5 k/ d
  -> 0.693147    $ k! g# P, h0 e3 l3 E; \* p# R
mysql> select log(-2);   
% u. n7 p/ _: J3 T  -> null   
/ X3 t* G, T* B9 ^
) W5 ]6 F  b( Q+ A8 G+ V# Qlog10(n)  
. N# @! j/ P% v/ n返回n以10为底的对数  . @5 [  Y$ C9 M
mysql> select log10(2);    : K& l# W8 _  \6 J' Q
  -> 0.301030   
& h$ `+ p+ m# V! H9 @) x1 \mysql> select log10(100);    ; W9 S; v- _( }5 S. S$ L
  -> 2.000000   
+ A# I& t2 `3 N# emysql> select log10(-100);    , M& X" \. o4 N$ S# B
  -> null   
4 p* L; S* a, G& n
" S" ^, F1 k) l& {pow(x,y)    7 B/ F& i) y6 p, M3 D( r
power(x,y)    ! M) z" T- |3 }4 R- V5 W& a$ f
 返回值x的y次幂  
/ H  p9 `3 U! ]- c- q( D$ X3 |9 `mysql> select pow(2,2);   
1 x+ R- E& Y5 i9 x# w& k5 S% U  -> 4.000000   
5 A5 r: r+ h/ |7 ~: b( S, x  T9 M% ]mysql> select pow(2,-2);    1 U$ s) h0 ^3 H- i9 U* k7 T$ n. [
  -> 0.250000  # D% c1 B7 z9 o

2 b, a; q5 {" e$ r6 Tsqrt(n)  7 Z- {( P# X8 W9 H3 E
 返回非负数n的平方根  # Q/ p9 r# |6 f0 j" L9 k2 C
mysql> select sqrt(4);   
( a9 e1 C1 l2 ^' W1 q2 [  -> 2.000000    / G3 \! j0 K. B4 e' V* I
mysql> select sqrt(20);   
" }+ T  b3 G0 L0 a' G" b+ g  -> 4.472136   
/ Z; o8 v8 }( X' [7 U & f2 q, g( R* s* W2 R
pi()   
" m! e. x; d* S 返回圆周率   # u: p) j# X+ o" r4 k0 T' x' d
mysql> select pi();    ( O# h, s+ z2 }/ O1 D, m6 D6 E9 `$ w2 l7 k
  -> 3.141593    9 S) t  q* e8 X  m( u# Z# A/ d
8 `0 a( ?- ~2 s5 F
cos(n)  
7 `8 f6 j9 F6 K 返回n的余弦值  , j4 X% X; [5 V" y# t- y& T5 G
mysql> select cos(pi());  
( Y8 l: [" I% A; O; B  -> -1.000000    7 o3 r+ d; u: j! ]6 D8 f

5 a9 W! S9 G' y: gsin(n)  ( ]0 v4 a2 E4 G( v
 返回n的正弦值   
- J7 i0 ?0 b  k- Omysql> select sin(pi());    5 U. t$ W4 {% }& [) I$ R  Q
  -> 0.000000    ) x( T: P; x) b) t8 L+ D1 S, N6 i

) F8 i9 V: Z5 p7 f' n1 ptan(n)  
+ K+ V3 F% ]& g* h+ L2 `) E* J8 C返回n的正切值  
. [' b( e" z# i- u& ~7 Xmysql> select tan(pi()+1);   
& C" h4 {! h: W, S/ j7 U7 Y( \4 Q' l  -> 1.557408   
- L' `0 w7 ?6 H
) V8 R; `2 b3 n" ^; b, U0 Qacos(n)  # E6 n/ k! `% d  O' y
 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  
* ^& N( X8 G$ n! J6 }, F$ u8 ]mysql> select acos(1);   
6 n( A& X( K* Q6 z  -> 0.000000    ' v  ]' M5 h: b6 j
mysql> select acos(1.0001);   
# \1 j. |3 ^* m" U- S1 J' `  -> null    ' d' |" h4 c- u* L
mysql> select acos(0);    8 o; }' z0 ?4 N+ l8 c9 T0 {( [
  -> 1.570796    ( r2 T7 V5 F  i9 S- l

4 t/ _6 T8 z/ l( ~/ B( K0 _asin(n)  ; v% Y9 C8 W. e1 A- |0 D
返回n反正弦值  
/ A9 E4 N8 i8 y- X1 Amysql> select asin(0.2);   
1 l7 h+ @8 G! f: \; D$ e: s9 _. C  -> 0.201358    ; M) ~6 H( n# ]5 C0 O9 O& Z7 B
mysql> select asin('foo');    + @; x  a) z- u; _
  -> 0.000000    3 |; y' c2 k1 _  X1 ]: {
" S4 `/ r4 S  x7 @
atan(n)  % ^+ n( I! a  s0 r+ K7 ~
返回n的反正切值  
- x- W! u+ o, ~  N" w; lmysql> select atan(2);    ' Z- Z' L" n( ?2 ?5 s9 E% l) T) S
  -> 1.107149    & x1 N: k) I1 J7 V3 i8 H: o
mysql> select atan(-2);    / X* \. ]/ R) }% ?0 Y' |! h
  -> -1.107149   
( Z5 L& a9 p1 N4 I# Watan2(x,y)    * s7 w; k% X5 {% f1 Y8 _* P8 W
 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  ' n: e+ ?1 [4 C# _0 p. N: y
mysql> select atan(-2,2);   
! p) x8 m9 Q0 `  -> -0.785398   
& R! j4 Q0 [: u0 o2 U% o/ \mysql> select atan(pi(),0);    # D& C" f$ e  }' v
  -> 1.570796   
* o& F! m3 i9 g
* q, v- r$ |: v) M" [3 Ocot(n)  
& Q) W9 p$ v2 V3 a! I" }/ d3 z- Z- k返回x的余切  
1 D" m; h/ d" ~9 u7 z3 }mysql> select cot(12);    " N) y0 s3 l( b% w
  -> -1.57267341   
8 H" e' F, i7 V$ S5 ?+ Pmysql> select cot(0);    0 e" u$ j/ `* u) l1 J- Y; D
  -> null    ' h. ^) L# v3 \

7 l7 u6 c/ K3 _9 [0 [' w) U" crand()  0 }5 Z* p: ]( j- e( k
rand(n)    
- E) `+ S9 g: x2 j. Z3 L7 ?5 I返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值) 5 A! E5 p3 v! {# A  h9 i- n0 f/ \

( c; ?, W- o, Z& {' r: Mmysql> select rand();   
4 t: d& i; W7 m7 u0 r  -> 0.5925    8 p# |) N5 T# x0 s) Z6 b9 `  M
mysql> select rand(20);   
" c: ^$ G$ w3 b/ f6 u  -> 0.1811    ; f  ^+ T1 l  ^9 A/ y
mysql> select rand(20);    2 e9 X' a# w' T& ~: X
  -> 0.1811   
& A. K9 F" ]6 L0 B: e; k5 kmysql> select rand();    * j% N0 \$ R( l" w
  -> 0.2079    5 T5 {/ K* f  X$ z, c& Q
mysql> select rand();    0 d- y5 t% O* v7 s% M% A
  -> 0.7888    3 \/ N9 I8 m3 o: c4 K
3 [" k. ]8 R1 v; K0 _. Q8 X" Q2 q
degrees(n)  ( J! f& q2 _+ V( e) a/ q
把n从弧度变换为角度并返回  ; N" Y$ k6 S* r7 Y' U# i% c
mysql> select degrees(pi());   
. R$ }" d8 Q. Q! a: Z; i  -> 180.000000    3 i/ a  m- Y) k' x
( W( ~3 c& c! a3 R
radians(n)
. H. Z9 u$ i" {" |- x把n从角度变换为弧度并返回   
8 G  y( }7 j! Q: Z( }mysql> select radians(90);   
2 m/ l! R# A% f' ]$ \  -> 1.570796    . Q* o. _( p% |- G- S$ A2 u. l% e

! v! Q, h$ U& h# J' @5 Qtruncate(n,d)   
  ]8 d8 e9 w/ l8 V( h: L$ j保留数字n的d位小数并返回  # V. [) S1 q2 w% a! U
mysql> select truncate(1.223,1);    , I, K3 e3 p) [2 i1 |& A
  -> 1.2    % |8 q! G2 ~) L/ q- f* K6 [
mysql> select truncate(1.999,1);   
! L1 G1 r1 N6 _( S  -> 1.9   
/ g6 z, \3 o) c7 ]mysql> select truncate(1.999,0);   
- G7 {* I! A& @* m$ `: Q9 E  -> 1    % _) q, a! z8 j/ \" ]

0 `9 E" Z) R) V, Uleast(x,y,...)    4 ]& Q6 L3 J. q0 b
返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  ' {$ L8 E# w$ c4 T0 b; y
mysql> select least(2,0);   
" j6 U& E8 b% B( {( ~5 I4 h  -> 0   
( r+ k: O5 g6 {% omysql> select least(34.0,3.0,5.0,767.0);   
. p  W9 B; L# F! I# w8 |  -> 3.0   
2 m! }& P, \: }mysql> select least("b","a","c");   
- p: [8 W" g0 |8 Y' q. O  -> "a"   
* B. J2 w1 X& a/ i7 K6 e7 R) ^
9 T+ M" I: t% V2 c# C" ^greatest(x,y,...)    5 N! U* y9 n* N7 m& \& b7 r
返回最大值(其余同least())  9 W/ W3 t5 E5 H7 J  _5 K8 s
mysql> select greatest(2,0);   
8 i7 I1 X  B8 ]! @+ F  -> 2   
& {3 e$ M: j# S) I$ A" Smysql> select greatest(34.0,3.0,5.0,767.0);    - e9 ^. b" d9 N" `* W6 v& V# X1 J% `
  -> 767.0   
" }, V7 [2 ?; lmysql> select greatest("b","a","c");    6 `2 D  A, [2 a6 H* Y0 K' A
  -> "c"     # [, b1 j+ j6 ^, [+ l

+ S- R0 _% |9 @2 u. C8 h3 X2 }3、时期时间函数
3 p; Q% Q. M7 M; S& Bdayofweek(date)    ' {6 n4 f' ?& \& v
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  : l' Y: h  W3 {8 U% q0 I/ _7 W
mysql> select dayofweek('1998-02-03');    " }  q& s; c7 |3 K0 {
  -> 3   
4 {* F0 M1 N$ t7 O" D& _   n! F) i. G* J- s( k
weekday(date)    1 @$ f& R- V7 s4 g6 M
返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 ! e  `% J4 l8 N
  7 Z; ?& L" \  m) j  Z5 L
mysql> select weekday('1997-10-04 22:23:00');   
7 L4 ^6 K" `1 z/ G& u% ]  -> 5   
6 V" h; W& E4 o" j3 P" Z1 smysql> select weekday('1997-11-05');   
  `" t& s- m: `  -> 2    * x" `4 }6 w) Y" p1 I
0 r& f% y& P: }7 R
dayofmonth(date)    5 Q% C. u# E& a0 s/ z
返回date是一月中的第几日(在1到31范围内)   
" V8 D7 w- q1 h1 }mysql> select dayofmonth('1998-02-03');    1 c% v4 L& m( i2 H
  -> 3    ( i( c, M6 j. E) @9 ]; [

+ a9 c$ |1 m3 B, d+ Y4 i+ w" pdayofyear(date)   
. l+ z" e% C! c3 V  Q' Y. e9 H  w" o返回date是一年中的第几日(在1到366范围内)    3 B6 A2 i1 A. f* Z( o+ x
mysql> select dayofyear('1998-02-03');   
3 S; C% v0 N- c. B  -> 34   
2 |% H) c; U  \% L
! x! F. z: i* U/ Tmonth(date)   
* p! n7 L# L- k: E5 Y7 i返回date中的月份数值   
# o* X; ^+ ]$ f) }mysql> select month('1998-02-03');    5 v7 d! V9 N5 s  E3 ^1 M
  -> 2   
+ C" a& |4 @* E6 Z7 `9 U - V5 B" G# h) Y  b5 G
dayname(date)    1 `8 s. B! p/ s; G" ]8 X  b
返回date是星期几(按英文名返回)  7 F5 s& W  J. ?$ ~0 j
mysql> select dayname("1998-02-05");    % F; J- e8 z# |0 ^/ h+ h
  -> 'thursday'      X4 ?/ }# T+ d5 n/ ~0 R( l

3 q" O2 u! ?* a" \, w0 q5 @: mmonthname(date)    
8 W# r, @2 |" W1 c& f) G返回date是几月(按英文名返回)  
* I; t7 `- c9 P) ~1 p0 Vmysql> select monthname("1998-02-05");   
& i' ^2 m& k# m2 V3 B  -> 'february'   
+ d+ j/ A5 H1 u+ N) ^
5 W0 F; W8 w7 {5 }9 o" H$ hquarter(date)    % W5 G  e2 X5 t; V1 L
返回date是一年的第几个季度   
( O2 C' w2 C, h  w( x. j' Kmysql> select quarter('98-04-01');    5 ~1 y4 h! j) K) w3 m9 g9 X" |# r
  -> 2    $ |' a$ F) f0 l' Z

! g" }3 T& v: Z2 a0 v, s! F$ ?4 dweek(date,first)   
* k1 @9 s$ Y: F( z* {" ?返回date是一年的第几周(first默认值0,first取值1表示周一是
  }1 g% q: ~7 {1 k/ ?5 V# G周的开始,0从周日开始)  
, k1 P% L9 S! n# H5 Y8 P4 L% Amysql> select week('1998-02-20');   
4 v, u& l7 P' m5 {  -> 7   
+ |% e7 N- l2 Omysql> select week('1998-02-20',0);   
0 S7 I3 e) Y2 G  -> 7   
$ j# e6 M6 ^/ H$ f+ cmysql> select week('1998-02-20',1);    $ U! k1 ~- o" f6 ]8 j3 T
  -> 8   
% j/ @' }% I9 ?9 l 2 _# L' b) z2 h/ [
year(date)    ! @+ c2 a3 @+ R- l. E5 E
返回date的年份(范围在1000到9999)    % S, a; T2 a' R
mysql> select year('98-02-03');   
" Q& h8 z  \- h- c  -> 1998    : E. I. }0 p) l) Y$ p, w5 ~

9 g8 ?$ g9 x+ d& |3 R  p+ q& U8 shour(time)    
2 J4 E& z4 g; w" X0 T返回time的小时数(范围是0到23)   
) E2 G3 @* e+ p$ P9 H1 Mmysql> select hour('10:05:03');   
0 j4 m5 S7 I! C# r  -> 10   
* I5 {" C# y& }5 ?! ` . `7 E8 ^1 H" ^% o
minute(time)    % p3 ^6 W! Y$ r' o- T! g0 y
返回time的分钟数(范围是0到59)    5 H- ?& S3 q) O( [. k
mysql> select minute('98-02-03 10:05:03');   
& T4 C5 b. C/ X- |" o3 u  -> 5   
  D4 v% k) H! p  a- F# R& \
1 _- J8 B: @- Z2 G2 F) ?second(time)    ) M0 t( k2 F, m6 s* U1 B+ [
返回time的秒数(范围是0到59)   : v1 n% r  J( j* A" z5 I
mysql> select second('10:05:03');    5 v( f. v3 M5 y+ Y" y* p" I
  -> 3   
$ v# O4 c  c  M" M- E6 J4 g+ }4 M$ p; N
/ U$ C/ h  Y7 T& A, Vperiod_add(p,n)    1 g( K; P; K- T, m
增加n个月到时期p并返回(p的格式yymm或yyyymm)    : M( o( B0 O* h$ R9 S5 |0 ?" ?, ~
mysql> select period_add(9801,2);    / i  Y# f# B2 h3 k
  -> 199803    - e6 ?$ [7 K" |5 U+ K6 B

. R. H+ T: b1 n, y! Speriod_diff(p1,p2)    ! O3 {9 c: P. r9 |: j" m
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  
: R' `$ t5 f7 J" Lmysql> select period_diff(9802,199703);    & K8 Y7 o; D; F1 k- |: Z
  -> 11   
' _# H# V1 d8 b 7 u% r+ _& \! Y- {4 u. d- A- ^
date_add(date,interval expr type)    ]+ k' M  [( R# B
date_sub(date,interval expr type)    4 ]3 B/ U6 z  C
adddate(date,interval expr type)    ; b& M/ q/ _4 s  v1 i
subdate(date,interval expr type)  
! ?+ K* m7 \- v4 W3 L6 Z. ~对日期时间进行加减法运算  ( {$ f3 T# ?9 K0 O, ?- L% f
(adddate()和subdate()是date_add()和date_sub()的同义词,也
; D: m  F2 u8 g3 z6 V4 h可以用运算符+和-而不是函数  
. X& |' U8 z, f' ?! udate是一个datetime或date值,expr对date进行加减法的一个表
6 O, `. q: x3 Z4 g% r达式字符串type指明表达式expr应该如何被解释  * k8 S; |& X/ o5 n8 R) X. r
 [type值 含义 期望的expr格式]:  
5 x1 H1 w. N7 o6 R* x second 秒 seconds    , c9 T# g* E+ Z7 A& L
 minute 分钟 minutes    2 d6 T& e  T7 ~8 ]) [3 h! @
 hour 时间 hours    , y' x4 i3 `. E% h- ?; ^
 day 天 days   
. W' I( a# |# m/ p month 月 months    . H+ u9 X& D6 R3 L0 U" z
 year 年 years    % O% P4 t# v6 A- H) G: _* {
 minute_second 分钟和秒 "minutes:seconds"   
& F/ V  h) l1 Y! k hour_minute 小时和分钟 "hours:minutes"   
& r2 B, F# n8 F. F/ ]0 O, s day_hour 天和小时 "days hours"   
" v2 ^" ?1 u7 D! B8 D year_month 年和月 "years-months"    2 c+ C3 D) {6 m- m6 }( t
 hour_second 小时, 分钟, "hours:minutes:seconds"   
9 u, A8 q; u/ e day_minute 天, 小时, 分钟 "days hours:minutes"   
. K- \. @/ H7 H& b0 T day_second 天, 小时, 分钟, 秒 "days: W' }1 q( `2 |5 h) K
hours:minutes:seconds"
" H6 C$ M0 M: a! r; Q expr中允许任何标点做分隔符,如果所有是date值时结果是一个/ O" O0 ]# i$ x1 w
date值,否则结果是一个datetime值)  
0 U# f3 h2 z0 X2 c3 d1 z 如果type关键词不完整,则mysql从右端取值,day_second因为缺
$ d+ T/ a7 ?6 K少小时分钟等于minute_second)  
. T" v3 [' G. ]. T7 O3 {/ t 如果增加month、year_month或year,天数大于结果月份的最大天" n1 d" |( Q# U6 {
数则使用最大天数)   
4 n$ H! ~  p: l+ G( smysql> select "1997-12-31 23:59:59" + interval 1 second;  % N) P" T+ @$ k$ w+ S, M) `1 B

: i0 E& q6 \6 }1 ]" G4 h" H  -> 1998-01-01 00:00:00   
) b' Q0 E- r# h4 Z$ Z( A+ lmysql> select interval 1 day + "1997-12-31";   
. I7 g8 G5 q! G! {; P0 T7 Q  -> 1998-01-01    ) k) V& B1 \) |5 M' L& P+ h
mysql> select "1998-01-01" - interval 1 second;   
( H2 R7 R5 d* f0 G" A4 I3 b+ z  -> 1997-12-31 23:59:59    , I4 h  g9 k/ i0 G5 `
mysql> select date_add("1997-12-31 23:59:59",interval 1
9 x) S- m  t; p: ~- p2 A$ b5 Qsecond);    : _1 h/ s: p+ I" t! R) N' [
  -> 1998-01-01 00:00:00   
2 O- U. \2 r& N2 {% B% Pmysql> select date_add("1997-12-31 23:59:59",interval 1, r; G, X! B# W0 u. N
day);    4 y4 `0 ?# L1 w' j0 {' W
  -> 1998-01-01 23:59:59   
/ U+ {  V  }& Kmysql> select date_add("1997-12-31 23:59:59",interval1 Z1 j! J" @6 {' v" U. Z) `. d
"1:1" minute_second);   
* z( `, b, W1 s/ q8 l4 y- x0 {  -> 1998-01-01 00:01:00   
( p5 Y3 p! H3 I$ G) ]mysql> select date_sub("1998-01-01 00:00:00",interval "1
3 Q; k2 h7 ?9 y. R+ l7 k7 v7 v2 L1:1:1" day_second);   
: l& y0 Z7 j, \  -> 1997-12-30 22:58:59   
7 _) |- U- w- T7 O6 Zmysql> select date_add("1998-01-01 00:00:00", interval "-1
( [" p& |6 L- S10" day_hour);  & N  c0 V7 D) m" ~1 d
  -> 1997-12-30 14:00:00    5 t! b, j. z  n+ ?  C/ D
mysql> select date_sub("1998-01-02", interval 31 day);   
7 T9 H& @. \- w9 ~3 Z  -> 1997-12-02   
: w. V# E: k' ~2 gmysql> select extract(year from "1999-07-02");    , O: S/ w8 ^0 X/ d. K5 A' S/ h
  -> 1999    / t1 h5 u$ }7 ^  g" h  {1 J7 Z
mysql> select extract(year_month from "1999-07-02' Z" |  ?: j- c
01:02:03");    5 L6 L: T9 m1 V2 r( N
  -> 199907    % i$ @) V- j: C9 e: x
mysql> select extract(day_minute from "1999-07-02
0 G; S7 z& `% G7 }1 \; ]01:02:03");   
, O- d% V8 D* T+ o# H  -> 20102   
! j- S2 J& E8 C+ ]  G$ | : @# h3 c0 @( B6 j: L( o
to_days(date)   
( p8 K" [+ `) A9 f2 M% W1 Z, D3 a返回日期date是西元0年至今多少天(不计算1582年以前)  
" d; ~9 d, @8 C0 f9 fmysql> select to_days(950501);    2 F! {( G7 T: I, `$ _1 X- ]1 k! a
  -> 728779   
5 [4 g* Q" s$ o$ _. Z5 P- rmysql> select to_days('1997-10-07');    ! z. E3 ]' t6 M5 H  u" E! N3 W
  -> 729669    & Y" R7 B+ I( C& Q' E: N

* o4 i+ k" W' X" |from_days(n)    , a7 o3 V: j# D; {
 给出西元0年至今多少天返回date值(不计算1582年以前)   
9 z; O# Y4 F- A' `2 Umysql> select from_days(729669);    ' r$ s( G5 ~* }7 C5 v
  -> '1997-10-07'   
! S3 Q0 ~& N7 D3 X  c 5 `3 L! C- j. B
date_format(date,format)    7 r: s; o+ H' ~
 根据format字符串格式化date值    A, P- D6 k8 _5 L( S% ~
 (在format字符串中可用标志符:  
% ?. \; h3 j( F# W9 b% J* t3 O) m0 n %m 月名字(january……december)    % v! g+ @. @7 T1 k. ~5 M
 %w 星期名字(sunday……saturday)    " r* v3 ?8 p, \) ]& r& v/ @
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)   
, }% t+ l0 }( y; S! `3 B. ]) }5 C %y 年, 数字, 4 位   
6 r" g6 I: [9 ~9 F5 Z& H- q %y 年, 数字, 2 位    ! p: L1 X1 |0 w0 z9 i, A5 ]9 S! y
 %a 缩写的星期名字(sun……sat)    ' I+ |: ^: j( e$ h6 |; b% U
 %d 月份中的天数, 数字(00……31)   
; r' W' x2 P/ Y  ]+ L+ ^# `8 V %e 月份中的天数, 数字(0……31)   
& {# B$ J: q2 |" e( p; l' o& O %m 月, 数字(01……12)   
" F5 j5 S- J' [6 p' S, t# f %c 月, 数字(1……12)   
7 @5 m  _/ m' x/ s; L4 n %b 缩写的月份名字(jan……dec)    ' u. s3 o. `7 J+ N7 D; l1 @8 Q3 @
 %j 一年中的天数(001……366)    * j7 A, W3 d. u& K
 %h 小时(00……23)   
; l) C' k" d! y( L %k 小时(0……23)    1 a0 o6 J0 P% Z3 ]2 [/ O
 %h 小时(01……12)   
3 s" k4 ^8 U- A9 i4 S: [ %i 小时(01……12)    0 R! `9 L( Q6 t8 I" @# A
 %l 小时(1……12)    * H' S0 X- e. ?6 [/ x6 c: ~, \
 %i 分钟, 数字(00……59)   
. I* i8 k$ e5 U) I. L8 R %r 时间,12 小时(hh:mm:ss [ap]m)    ; k9 d  B7 `2 Q* p8 c9 V8 o  A
 %t 时间,24 小时(hh:mm:ss)    " _' ~1 k/ P7 _  M) H/ H
 %s 秒(00……59)    : ?& t. ?5 n0 n  l
 %s 秒(00……59)    # S- T1 J' r, i' W* s1 ~4 D! ?& ^
 %p am或pm   
" O) r# ?# ~" ~- G* X6 W %w 一个星期中的天数(0=sunday ……6=saturday )    " N, b# {: e5 u; y/ x
 %u 星期(0……52), 这里星期天是星期的第一天    3 V, y, Q' K( A* m
 %u 星期(0……52), 这里星期一是星期的第一天   
- \  Y/ F8 m- e; u( K2 r' Q %% 字符% )  : T0 N7 Z: R$ r( M0 K& Z. S' c/ ]
mysql> select date_format('1997-10-04 22:23:00','%w %m %
- P+ ?7 g) x: s; {" _( d- S3 jy');   
3 _# W7 b, Z5 ^( e! {  -> 'saturday october 1997'    ( L0 h$ ]' w- P4 c8 e2 p+ r& ]# v. w
mysql> select date_format('1997-10-04 22:23:00','%h:%i:%: y6 x* B% Y( [; z1 [  @; F7 ^
s');   
! v5 g! W. x, S! r% d) n5 d: X" H  -> '22:23:00'    ' u( U) b% H# u* \
mysql> select date_format('1997-10-04 22:23:00','%d %y %a- H' Y* l( h$ ]
%d %m %b %j');      D1 b" ^& `# V0 L' k7 o
  -> '4th 97 sat 04 10 oct 277'   
* N( @+ L& G; F9 c! ^3 cmysql> select date_format('1997-10-04 22:23:00','%h %k %i7 X% q9 h+ S7 w! q
%r %t %s %w');   
6 m9 a9 `! E0 U9 N  -> '22 22 10 10:23:00 pm 22:23:00 00 6'   
: q9 K) m& b8 l
- j5 D; K! L; p7 ?  rtime_format(time,format)  0 [, ^9 I: K$ P  q
 和date_format()类似,但time_format只处理小时、分钟和秒(其- @, |) {/ p) O
余符号产生一个null值或0)  
) S1 r) U' B7 `, R
, a" s. |; a% W: Q+ m% R3 a- {curdate()     
: S0 I& ~# n& ]8 A% x4 ucurrent_date()  
/ n3 k5 l, z! `8 C% M 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
% v) ^2 z3 L# O6 {* n0 H; L处上下文是字符串或数字)    * X9 {% z0 r1 x2 S
mysql> select curdate();   
( d' x% g: O4 H) c; s  -> '1997-12-15'    1 e6 f; ~9 |0 @+ e' \
mysql> select curdate() + 0;   
7 o; E( }2 O! L5 O! l& |" J  -> 19971215   
- x# ?4 o' y4 {+ Q5 _0 a
$ z9 m3 ^% U* B3 i' b" U, K- r5 ~curtime()    ' `* b# v6 T) J
current_time()  
6 w& s6 v' ?" S/ R 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上9 B4 i( W  u' ^
下文是字符串或数字)      ! D. t  F8 q+ L9 e) U2 e' U+ C
mysql> select curtime();   
  u& f; }# M7 g  -> '23:50:26'   
! s+ Y8 d5 O6 d- O& I6 u* zmysql> select curtime() + 0;    3 d+ l9 Z/ Q( p# k. K  Y2 e# d( g
  -> 235026    6 P( p" L1 v- \6 H3 h' M% h

" W9 x: t" u+ m5 Q" C1 Snow()    : L, m7 y$ d- ^; }
sysdate()    
& m  M6 p# r/ T1 n$ j# V  m- l$ T6 jcurrent_timestamp()  0 o% g$ K+ `1 k- P8 v2 Y
 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
3 d* f- T0 |- M  I. P时间(根据返回值所处上下文是字符串或数字)     
  V0 t. ~+ D- @mysql> select now();   
6 ~# e! v* x- g( _  -> '1997-12-15 23:50:26'   
$ N0 e5 n7 n2 B; U" C( Smysql> select now() + 0;    5 J; ^; w) X, D
  -> 19971215235026   
9 y& {4 F+ X) l) h0 j2 ~. }
0 b2 U* O8 k6 J" Q5 e7 |unix_timestamp()   
9 H' t, F$ y6 Q& c& u( J) n4 a( hunix_timestamp(date)   
  M6 z) R" t( l; V5 o返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒0 u5 \8 J* Y& e2 H8 S  b, h
数,date默认值为当前时间)  : \, _0 I5 k6 N$ n
mysql> select unix_timestamp();   
6 _) ]0 K0 w. ]$ V3 f  -> 882226357      M, d- Q* C  H7 V9 N5 l. v9 c
mysql> select unix_timestamp('1997-10-04 22:23:00');   
* Z4 F  y3 F! M: o2 [& u5 G7 h6 s+ J) G  -> 875996580   
/ H2 I: x6 x/ @2 Q3 x& o/ A $ m! W& s& [  `
from_unixtime(unix_timestamp)    # _" u$ J! S! J
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的
4 S8 T3 d9 r* g+ U  U' C值(根据返回值所处上下文是字符串或数字)     3 t+ C# _8 Y& G0 f9 b5 N$ m' E2 R
mysql> select from_unixtime(875996580);    2 E. H: n' J8 J, r
  -> '1997-10-04 22:23:00'   
' }: q4 |2 R* M& Nmysql> select from_unixtime(875996580) + 0;   
7 \& X- N% u6 E  -> 19971004222300    + ~  k3 [  K7 g. l
4 E+ T% o6 h( \- J8 J0 h2 |6 p! d
from_unixtime(unix_timestamp,format)    $ Q. ]: A% e0 e* r4 j4 ^
以format字符串格式返回时间戳的值  * l5 _: q8 t2 p, }( V% n& b
mysql> select from_unixtime(unix_timestamp(),'%y %d %m %$ H9 j% d) b; e( H
h:%i:%s %x');    $ M, l& ~- P* R
  -> '1997 23rd december 03:43:30 x'   
7 T; B' K* Y& `; t8 {  p# \+ z5 b
4 v9 y" u2 ?+ x' j0 m1 r; isec_to_time(seconds)   
" ?' y: x% O. a' i+ j$ U# ]以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
8 h8 X# Z/ m/ `: e! Pmysql> select sec_to_time(2378);   
* |* ]2 p( d( ^" W: }  r/ I  -> '00:39:38'    2 e) u" ~, p) y" J9 n9 H
mysql> select sec_to_time(2378) + 0;   
6 D& f1 Z3 B3 A  -> 3938    7 Y( m2 y& H) a/ A

- d7 \! N) u5 O' Otime_to_sec(time)    $ R! {, h' Q$ T! D
返回time值有多少秒   
) P1 C1 G2 O7 h3 C( R+ U. pmysql> select time_to_sec('22:23:00');   
+ _' b. e% t: D  q  -> 80580   
7 v0 \! {% s8 f3 o2 Bmysql> select time_to_sec('00:39:38');   
1 s2 {2 R* k$ T  -> 2378
# C9 V! N, c( L " U! o  \/ C( I, j* _9 k6 J6 C
转换函数7 M0 q* a4 c# n5 Q$ C' k
cast
; a/ x* a) {! B$ \: M+ s用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题], [* K, R& J% T- P; L
实例:select cast(a as unsigned) as b from cardserver where order by b desc;
; W% X0 I' y6 n) K! ?! G5 Fconvert:3 b; z6 F5 G% J$ y
用法:convert(字段,数据类型), S  B% ^9 Z+ l' Z( z+ A# ^
实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
. I- `# h* g1 c0 E
回复

使用道具 举报

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

本版积分规则

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