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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数
2 ?' ~) |" J' F* r* f; D4 S$ gascii(str)   
; x* }/ z0 ]8 _! q- d8 q返回字符串str的第一个字符的ascii值(str是空串时返回0)  : L$ r( t! r& m/ \. x4 Q
mysql> select ascii('2');  
1 g9 Z% P3 Y" f& U) @4 ]8 _; o; B$ C  -> 50  
" T/ K3 [0 V3 ymysql> select ascii(2);  ' D# ?% m5 g% J0 v* v; q
  -> 50  
) U& K  h! {9 R* g! Jmysql> select ascii('dete');  
7 Z# w. g2 q5 W) {9 T+ t- M  -> 100
0 p0 a6 A" r+ G" Z" J
ord(str)   % j; u, a: }& f
如果字符串str句首是单字节返回与ascii()函数返回的相同值。  u& V" l+ ~% V- r2 b- g+ d

' S# {3 B+ P  _如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  " f% Z3 d  z( ~6 f+ R9 f
mysql> select ord('2');  ; @3 b) t! \8 D9 l
  -> 50  6 K9 s. K, E2 Z5 R' d2 ^/ v
   
( R) L( h5 o* b, w3 {* f2 R2 D- U+ `4 D1 Kconv(n,from_base,to_base)   ( f+ z/ K; n/ w! m! b# j
对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
  p1 ?. C4 i& o$ ?+ Q: {7 M9 |mysql> select conv("a",16,2);  
* k" s" G8 x- G, T  -> '1010'
# j: \6 ^5 f3 P& K1 h4 I; p, ^, cmysql> select conv("6e",18,8);  6 V; \% x! O/ S/ a
  -> '172' 4 D4 X! [0 V% E. o9 ]1 A
mysql> select conv(-17,10,-18);  
! ~6 I7 ]# N5 j1 q9 \, G8 s+ r  -> '-h'
  \  I; I6 n# i, W' u% }+ Gmysql> select conv(10+"10"+'10'+0xa,10,10);  8 g- s' d- Z8 Q- j; d- C
  -> '40' ) @+ _. N; u$ }% ^+ s
   
0 a: {. F: x& ~& Ubin(n)   
8 \6 j3 W9 E) t3 r( _3 p把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  ( K* P& b2 c- k! ~; l5 V# J
mysql> select bin(12);  
+ M8 M( J6 S6 f) h  -> '1100'
) T, Z3 Q& F; j" e / `  z. t8 ^' \$ W# k$ q+ Z; f9 M
oct(n)   " i( o: ^. y/ l5 X
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  0 H8 ~$ t, k: @4 l+ @4 b$ y( l
mysql> select oct(12);  
. Q: h& Y1 V% d  -> '14'
4 c* u4 m0 i# b% m& b, B   
5 M6 }' T# o; c( E5 q8 Ahex(n)   - I' \% |5 A. U; _5 n0 U9 i2 B
把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  . Q7 z9 j& m  A' E. ?9 v! K
mysql> select hex(255);  
0 @5 F7 o5 F8 @% p. n  -> 'ff' 0 v0 k9 b  j& c" I2 ^$ I8 ~& P
   1 j$ `' ?: w, u1 v
char(n,...)   
# d* @3 J+ @3 M: z2 k返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   / }2 V5 \8 y3 [' O9 u9 e- a3 W( G& r
mysql> select char(77,121,83,81,'76');  
2 u6 M2 N& w3 Q  -> 'mysql' 8 F: Q* X* P- H% d3 d
mysql> select char(77,77.3,'77.3');  4 L1 }1 J' X6 b! `" E
  -> 'mmm'
( M9 c% ?# n' F! ^) [- R   : i5 y' G% d7 ?! x* w
concat(str1,str2,...)   0 v/ m( n1 ~1 E0 X1 L+ M& H; t
把参数连成一个长字符串并返回(任何参数是null时返回null)  
/ S0 [/ A1 M& p% r7 F* z  H8 j, fmysql> select concat('my', 's', 'ql');  
$ P  y* B$ O0 n1 l) p, Z& U  -> 'mysql' ; j2 R7 K9 x0 W1 M" |- e
mysql> select concat('my', null, 'ql');  7 V" T9 X" z" u
  -> null
, q$ T! {9 ~) Y- ^+ [! p/ E8 Y1 O, Vmysql> select concat(14.3);  ' \" E' W' r+ E& i' P4 g" s
  -> '14.3' . v9 k) V! C! R" \, W

' ]0 H/ H0 O5 {9 q) Jlength(str)   , H; k: X, \1 z2 }  K' a8 q
octet_length(str)  
4 ~& E6 t) H) }char_length(str)  ; H* r- Q7 q1 W) q
character_length(str)  
4 ^% R1 r, O+ ~3 ~, p' `7 w返回字符串str的长度(对于多字节字符char_length仅计算一次)
$ {$ U! o" ?' U0 xmysql> select length('text');  
4 I% T: ~' L1 F. Q5 ^7 J. Y; v  -> 4  
  w3 b& }5 O( W8 fmysql> select octet_length('text');  
4 B7 r; f; w2 O1 E4 w1 @  -> 4  % ^9 S  k! O' @# e! l
9 X. p3 M8 e( K; W
locate(substr,str)   ; x, C# V, ?6 C/ m3 {' H# u9 R: S9 X
position(substr in str)   
9 I5 l8 I7 \2 t4 |返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
: y8 Y' l  G" i  z& {* emysql> select locate('bar', 'foobarbar');  
9 I$ Q8 }+ r6 [2 u  -> 4  $ r" C" ^' l6 y3 }( a; X: }
mysql> select locate('xbar', 'foobar');  ( W% S! x/ V0 @& g
  -> 0  
" \0 }3 U+ S* u) A. Z/ o! i! }   
3 K# a: r7 I  e/ Q$ {+ V7 n  vlocate(substr,str,pos) % j' V4 B4 x' C+ b
返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  ) D6 H+ F; E. G$ P* Z- I
mysql> select locate('bar', 'foobarbar',5);  
7 H4 {# s1 E. V7 R  -> 7  
8 |7 U* y( z/ O4 S- X) H
& h3 N/ E" P* J. O" t& h- oinstr(str,substr)  
5 I( J" @8 R1 k1 S4 O返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  4 \2 S, R& e' r8 N$ W5 Y9 \
mysql> select instr('foobarbar', 'bar');  , \! R+ ?$ E! p, K1 {- O" D+ N; ]
  -> 4  
! d* a8 Z; T. y: smysql> select instr('xbar', 'foobar');  
$ }0 N( w0 _1 e- t4 I  -> 0   
' s, O3 N9 n5 N- F4 x4 G" d  @* V
8 Z0 I* p7 b# l& }" P: P  slpad(str,len,padstr)   * \. I8 c8 q' s2 d* m* X1 O
用字符串padstr填补str左端直到字串长度为len并返回  
% P) d  ]) J" u" [5 k3 Xmysql> select lpad('hi',4,'??');  + [4 J9 O1 C0 H) f  |
  -> '??hi'
8 m( b' p( Y2 e( r: Q1 k1 W   9 E$ u& ?1 D& P) V/ ?# Z6 ]/ A2 Z
rpad(str,len,padstr)   7 L: f3 A& K$ k  @( {
用字符串padstr填补str右端直到字串长度为len并返回  ( t3 b1 j" X: s7 D5 [; q0 E1 b3 U
mysql> select rpad('hi',5,'?');  6 H. x9 L2 L# b; i( m2 q/ T' I
  -> 'hi???'
% g9 M$ O" O9 Y  s7 G. Y4 U% Z# Q' S * J. c( u: Y+ \9 U* A
left(str,len)   . J3 g7 C' l, M* }: J6 @
返回字符串str的左端len个字符  
. m0 U0 Z4 N9 Y# z7 z5 J  n6 N! bmysql> select left('foobarbar', 5);  - ^/ U7 g* H& V# L/ ~8 m$ s
  -> 'fooba' 2 ^8 W9 j' G  Y1 }" S
+ S: p7 a! @& ~
right(str,len)   " @. ^+ n& b3 a- o0 r! p
返回字符串str的右端len个字符   
# u& Q6 s8 E" L8 H3 _6 ymysql> select right('foobarbar', 4);  & H7 j% r' k& [2 G, m
  -> 'rbar'
* E8 B; \5 }$ n5 r. ^
7 x. V  r, ]' n9 csubstring(str,pos,len)   
# a0 S- e0 m2 W& rsubstring(str from pos for len)   
! l* h$ t: S" K0 ]8 ~7 Y( A9 Omid(str,pos,len)   6 s) P1 v- k7 Z- E8 y% V+ ^  L& Q
返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  / w- Z% m  Z9 x( D; R
  -> 'ratica' , u  E2 j. J* X) m) E$ d, X
  P1 e1 V; d# o2 Y* ^) G$ R7 a- N
substring(str,pos)   
/ y+ z8 y$ G" P$ psubstring(str from pos)   9 `1 L1 K' c& B/ g4 P8 E
返回字符串str的位置pos起的一个子串  " v& L" ^9 j. q7 J
mysql> select substring('quadratically',5);  
% K) s, `, o4 P6 k$ l3 c+ ]4 w) j  -> 'ratically'
+ B4 M! C4 H' |" v3 [2 Smysql> select substring('foobarbar' from 4);  
1 t8 h) j1 k7 ]- V8 b( e  -> 'barbar'
3 O- t. ~1 z! U* r- L
5 D5 W$ P; v" p- ?substring_index(str,delim,count)   
; p2 v4 H7 V6 _返回从字符串str的第count个出现的分隔符delim之后的子串
4 Q, M6 U9 N' s% r- S! |6 j5 t" p(count为正数时返回左端,否则返回右端子串)  8 x/ K4 @7 P9 m+ G9 i
mysql> select substring_index('www.mysql.com', '.', 2);  ' T- v  I* P- h1 t0 S
  -> 'www.mysql' - e! q" Z/ [" ^& V! r
mysql> select substring_index('www.mysql.com', '.', -2);  6 h. y4 k# Z: o) _& K$ Z
  -> 'mysql.com'
6 k6 `4 q* T+ p, Y  D1 M
& R0 L1 o+ m- C! a1 Altrim(str)   $ a# K8 o) f+ t5 S- I4 {
返回删除了左空格的字符串str  
% r( y# X8 i7 ?) m! W7 zmysql> select ltrim('  barbar');  
" B* M2 x$ X8 f0 C" b9 t  -> 'barbar' ' \# U& @  v/ U/ c9 _; r0 p
  z5 ]4 `  h* T. x
rtrim(str)   
6 l, c' h, B8 ~1 `返回删除了右空格的字符串str  ( V# d/ O1 x( @6 ]% b8 U% f
mysql> select rtrim('barbar   ');  : Z9 x# F! `3 k6 A( A! _4 C
  -> 'barbar'
* G& p2 w3 y, m1 y4 j0 Q, t: C 7 ^: u$ g3 s& B8 i4 z
trim([[both | leading | trailing] [remstr] from] str)  
( \' w1 W& m& }: x0 J返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  . y& M# H9 y& c4 J, j2 l( ~. S
mysql> select trim('  bar   ');  
+ `6 V: O+ K* Q: m; t  -> 'bar' ) U& O2 y! i; T% D$ b) S9 o# F
mysql> select trim(leading 'x' from 'xxxbarxxx');  
: t9 E  K& z7 ~1 S  -> 'barxxx'
6 {+ H% c1 P+ N* q5 Umysql> select trim(both 'x' from 'xxxbarxxx');  3 [# R  o+ ~9 V% ]2 X$ ?3 ^
  -> 'bar' 4 Z1 H" |. s  y. k: ]0 r: l
mysql> select trim(trailing 'xyz' from 'barxxyz');  1 H) E! E: ~$ w0 q& u
  -> 'barx'
9 g0 C5 @# `0 \6 {   L" ]/ N5 k' X; l7 ^1 f+ ]& i6 i( h
soundex(str)   
1 q3 T+ J# R: [! |/ p; j+ s5 ]返回str的一个同音字符串(听起来“大致相同”字符串有相同的6 o6 O7 T4 v9 O: k
同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  5 f/ b3 ?3 T# ^" z, ?- R
mysql> select soundex('hello');  
: D, P2 ?6 x0 S- c7 U) \  -> 'h400'
% f+ B% r; G3 p! c1 n- Hmysql> select soundex('quadratically');  
  S! @# ~& Y3 \2 |' l  -> 'q36324'
9 M# K, H0 [0 d9 b6 z0 n   
& Z% g7 ?, P: }  Lspace(n)   
. J5 [3 l6 n" `( B8 p返回由n个空格字符组成的一个字符串  % z$ n# i- G+ X9 c6 S2 S% ?7 D6 u
mysql> select space(6);  - W. z, p  |: }( s4 P# j
  -> '      '
) D7 H8 f' R0 F) `  o7 i   " z2 q+ O4 l' p% `" m+ ]
replace(str,from_str,to_str)   
1 M  q" O, I5 _, L8 V/ u用字符串to_str替换字符串str中的子串from_str并返回  8 L* c1 d! {  O# Z, U3 O" l9 d& ~5 D
mysql> select replace('www.mysql.com', 'w', 'ww');  
0 z6 d! U# }' n  -> 'wwwwww.mysql.com' * U  ]) O: H, l6 d; z2 [

& }& [3 U, _1 P7 j* X  Prepeat(str,count)   $ y3 k; k5 d9 s) k0 C9 ~
返回由count个字符串str连成的一个字符串(任何参数为null时) b$ K) `7 e- D1 o
返回null,count<=0时返回一个空字符串)  , y1 ^& j- Y. |; ^/ z4 g- u1 o( h
mysql> select repeat('mysql', 3);  
* A* z( F9 b0 |0 \' K! {* W  -> 'mysqlmysqlmysql'
, p3 C( ^  k1 g  t8 p3 i   # x" \# f+ L' d
reverse(str)   1 w3 P- {* n5 }$ x# v
颠倒字符串str的字符顺序并返回  
; B4 m- c8 C! y. M6 b. o, |mysql> select reverse('abc');    P& F3 S7 u$ A3 F  b  h
  -> 'cba'
' c  z* o; r  [6 r( A. `8 ?, g * s: i, B1 a( m& ^" U9 }; }0 s4 s
insert(str,pos,len,newstr)   9 [8 |7 h6 b5 @
把字符串str由位置pos起len个字符长的子串替换为字符串) [& c, F* ^3 i( ~5 W
newstr并返回  ( l; y* [, G- w7 b7 O
mysql> select insert('quadratic', 3, 4, 'what');  
5 ^: t+ @  G8 {/ ~5 s9 \5 k. {4 `  -> 'quwhattic'
. F7 |& g5 h1 w! y " P, e( g6 g* ?7 ]8 G9 m, B
elt(n,str1,str2,str3,...)   
: c2 V; T7 E/ g1 I. _% `返回第n个字符串(n小于1或大于参数个数返回null)  " p- b- e# X  r
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  9 B2 P7 s. p% V. s
  -> 'ej'
# O7 D2 b: I1 S" Dmysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  0 H# {- p# z( W! \2 M: ~
  -> 'foo'
5 ]/ o( S* |2 u) j% j/ ?
; q3 Q) p3 ?  x' `0 j  i- Lfield(str,str1,str2,str3,...)  
' Y$ V# W1 n. k0 e0 s) c8 r0 w返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
( v. L) o$ {( y3 T# v. T- Q" X! Amysql> select field('ej', 'hej', 'ej', 'heja', 'hej',) _3 k+ t! _8 Y" x$ r9 ^
'foo');  
6 R/ ^6 ~: m- j! z  H; \5 |  -> 2  
9 q- u/ z) o+ m7 C0 c3 f7 Vmysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
5 l* ?. X  F1 c0 K# G- o'foo');  1 M: L: E, E% T1 }) t' V9 O
  -> 0  4 n- W! Q- t* u

4 r! u7 J  M2 Ifind_in_set(str,strlist)     s7 P  g6 q/ Z. U0 ]
返回str在字符串集strlist中的序号(任何参数是null则返回
& q* u2 q4 z+ ~  i" [null,如果str没找到返回0,参数1包含","时工作异常)  9 \2 D8 m+ ^# ?' W
mysql> select find_in_set('b','a,b,c,d');  7 m; N% Z" J5 V! H8 J
  -> 2  2 e! Z' B# }0 r; }6 X5 s
   
9 @+ f6 C/ `/ I8 zmake_set(bits,str1,str2,...)  
: H& {  a5 A+ d7 Z把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
& f' E* l9 h. Y9 n) s位置的字串选入字串集并返回(null串不添加到结果中)  
6 [: l' Y% @/ T) ~9 B/ amysql> select make_set(1,'a','b','c');  ' P- ~8 I# J9 O3 |
  -> 'a' ( H3 V: l$ `9 _3 q
mysql> select make_set(1 | 4,'hello','nice','world');  * b' k9 s7 {! O7 ~) ^) ~1 q, M
  -> 'hello,world' # v7 I1 X: H' p* X8 w0 r. v
mysql> select make_set(0,'a','b','c');  1 j# I4 G0 p. ?, P4 d- f% Y
  -> ''
. E8 l+ ~: u( k9 p" Y + s  Q* H9 Q" M
export_set(bits,on,off,[separator,[number_of_bits]])   $ J# a) d% x; S0 D) _
按bits排列字符串集,只有当位等于1时插入字串on,否则插入
, q- s# }* q; _# g) Q4 G7 a- \off(separator默认值",",number_of_bits参数使用时长度不足补0
* Z( ~2 e+ m) e  S4 {9 P6 M/ t/ C而过长截断)   . J: `+ _7 m) l/ M1 C
mysql> select export_set(5,'y','n',',',4)  , I4 q+ D- u3 w. K' P
  -> y,n,y,n   
* f$ m# I6 V5 K9 t5 } ) r# u" ?6 \5 M3 u3 l9 {4 H
lcase(str)  # D. o! ]/ v  B# |; P% I' h% Q
lower(str)   
  S  u% `, z( }- z0 n返回小写的字符串str  
# d0 s% P; d% w+ `mysql> select lcase('quadratically');  * I: u/ S3 v$ d# F9 M: A8 y6 s
  -> 'quadratically'
6 T0 U5 m' c# [0 e/ q2 ~: s8 U* r   / _+ J& h4 F+ F. V
ucase(str)   
3 \( p( ]7 L5 K8 |upper(str)   1 m' O3 r; |2 \+ v9 F' X
返回大写的字符串str  
* e% }' d8 y# c/ G3 z, g' }mysql> select ucase('quadratically');  
8 l9 a* B' s0 a  E  -> 'quadratically'
+ N0 d4 u$ v" ]   q" z: z$ \! {; ?1 C
load_file(file_name)   5 }% I" }- ~: J
读入文件并且作为一个字符串返回文件内容(文件无法找到,路径, s/ I' O' G4 B
不完整,没有权限,长度大于max_allowed_packet会返回null)  
/ k" _* H- J. x( i, V$ nmysql> update table_name set blob_column=load_file% M! T; {+ v* ^( ~+ y% f
("/tmp/picture") where id=1;  
* R# u! f4 U7 _0 c
6 D9 M2 S* c' l7 Y, z2、数学函数
" W% @& U; W' x* {6 x% Iabs(n) 7 P; a, |- Y  Z$ _
返回n的绝对值  : [$ h/ r; C, v
mysql> select abs(2);   
0 q+ R& e7 h6 j! R3 z. s# e; D8 s  -> 2   
% H  \/ G! n/ F) K9 Emysql> select abs(-32);   
8 p- h! ]# U/ a% c$ l' [  -> 32    9 ~8 u1 M+ A5 r
   ' h# V9 Y" E1 m0 D4 A& O
sign(n)  ' V  |& T3 ?  U3 J
返回参数的符号(为-1、0或1)  
3 g. n. @! \/ s# Mmysql> select sign(-32);    6 @& y5 I6 e1 a
  -> -1    ' Q8 d2 A9 Y9 U7 z# ?! d
mysql> select sign(0);    # d+ x" M3 e. y' X" T4 f4 |
  -> 0   
4 l; ?# `' V4 e1 zmysql> select sign(234);    % e# T4 I1 E# n6 U$ O: {5 J
  -> 1    $ N+ L3 G% y4 Y1 b% |0 l* M

7 m- V' ~/ L% l; x' b8 [mod(n,m)    / e! S8 G7 B3 r! h$ @6 G% u* U
取模运算,返回n被m除的余数(同%操作符)    : T8 n6 f$ a# z) m
mysql> select mod(234, 10);   
- h" }# M# \7 M0 Y2 U  -> 4   
- N9 D; n: k8 p" [8 p7 W; k* jmysql> select 234 % 10;    2 [# {9 U$ e+ }+ V; F; D/ Y
  -> 4    - u* y9 R1 k& [/ J
mysql> select mod(29,9);    0 n* `. H6 C9 }  H7 U
  -> 2   
9 g) v& u" E# X, m  T ( x4 W  x$ t8 J; v& X# n  H$ Y
floor(n)  * Z# g. E% t4 O# l$ n
返回不大于n的最大整数值  
3 V6 |% Y) P- ?9 ~( [. Amysql> select floor(1.23);    . W5 n* t4 N) _9 x( I
  -> 1    / ?& f1 k/ l' E' j
mysql> select floor(-1.23);    # p- k3 P, ^( B
  -> -2   
. V  O! v$ N4 R3 Q! H # P% _4 F. ?$ y! @7 A
ceiling(n)  - R% l& ]; Y9 J9 `9 E
返回不小于n的最小整数值  
( F5 ?' e% Z2 J, _' Xmysql> select ceiling(1.23);   
, ]! |3 K7 @6 Y' h) t  -> 2    7 z2 p1 n& q: ^- @1 P# ?4 d) P/ @
mysql> select ceiling(-1.23);    - ]  f6 [# Z: h: N$ m
  -> -1    ( l$ C& E* s4 ^5 L3 p1 l; S
5 e7 s. C$ @3 F
round(n,d)  
' C6 L1 [2 o# h6 c0 x返回n的四舍五入值,保留d位小数(d的默认值为0)  
$ y/ d" C/ t4 L$ V7 ]+ Imysql> select round(-1.23);    ' [& V# I2 I! I$ i; c
  -> -1   
* I* H/ |7 ^, G) Vmysql> select round(-1.58);   
8 Z. {: c5 @& k$ `$ n& h4 \1 Z  -> -2   
/ |  [& g5 i3 Y3 k  {) K( B$ v' @: _2 Cmysql> select round(1.58);    * G3 d- l+ C! b8 E7 J
  -> 2   
1 u- }1 R% M3 j- L. z  i, h6 l& {mysql> select round(1.298, 1);   
& c$ S2 n) s% x# e  -> 1.3    ( Y! R; e+ i- O
mysql> select round(1.298, 0);    ' x2 l2 ]; a, n) U
  -> 1   
, d) i0 @' A7 {, I8 H " c: Z* h4 c* R4 R# D* u9 H
exp(n)  : e# S: Y- f+ h: v# d2 Z
返回值e的n次方(自然对数的底)  - O* S$ j8 g. n5 m  K% t
mysql> select exp(2);   
8 x2 K' Y8 C" \- N4 I  -> 7.389056    ' J# N, H3 t% H/ |) Z# }
mysql> select exp(-2);    " S2 @+ h0 @9 K5 w/ B8 k3 O# s
  -> 0.135335    ' L9 h0 n1 }% X6 H8 b
0 A; P" M/ D3 @  A" v% ^2 R/ B/ H
log(n)  
! h- `$ b  W. b9 V/ R返回n的自然对数  
9 H' u4 ~9 @, w0 F7 c+ o: f. G' a# Mmysql> select log(2);    4 o+ ?$ m" }# n4 {9 }' L
  -> 0.693147   
8 h0 m4 U4 E6 W, c, Zmysql> select log(-2);   
/ q1 N) X6 [% k  t9 b- h4 R% J& g" ~  -> null    ; u3 D* p5 |6 J

: a: T$ C# @4 \5 @log10(n)  
* r7 G: S- q. e返回n以10为底的对数  
6 d2 Z* s! G; ]1 jmysql> select log10(2);    7 i. n4 I! O# W
  -> 0.301030   
1 k! T' q$ O8 y3 ~# _mysql> select log10(100);   
0 c' |1 p, p/ ^( V5 Q+ N. `8 R  -> 2.000000   
  i. O, A, v( a$ l+ Q! fmysql> select log10(-100);   
$ {. ~8 ^3 d* W- {2 }- l9 v  -> null    # z# c- y! {/ Y; Y+ m6 f
; Q4 M4 K% f0 F0 B
pow(x,y)    5 W% g! D, M+ c0 K' @" E" w
power(x,y)   
, u" }: A6 R0 I+ Q/ v; x- ]3 O 返回值x的y次幂  
$ O& V/ _) d# d- Gmysql> select pow(2,2);    4 W4 S2 K. v# [% g+ X- b
  -> 4.000000    8 F  e4 ^$ @, a5 g& H
mysql> select pow(2,-2);    7 v$ j1 ]) z4 X
  -> 0.250000  
1 p- a0 k9 S  ?% j) s: l, _; ~: T+ ?" ?* y
sqrt(n)  
9 m- I. ^+ y' z; n) |3 l1 o# @ 返回非负数n的平方根  
, y2 d- V( G3 o2 x2 d8 ?2 K) ymysql> select sqrt(4);    ' r7 J, z8 \/ q% o; j
  -> 2.000000    * N" I1 q5 {6 N4 ?3 X) a+ K; @/ B
mysql> select sqrt(20);   
& R9 U0 V; i$ y# s+ B, g, T7 n  -> 4.472136    2 m) c& z( \. Z5 G; y( K

% g, z3 Q# L2 @2 y( q: _  cpi()   
- Q7 Z0 e" n- }2 P* Z5 U: C 返回圆周率   
  _0 ?' K  E8 v* N& vmysql> select pi();   
; q2 r6 u( I3 M% k0 K  -> 3.141593   
' n+ A' U+ @1 D9 d; z1 V% ^ - r, W1 {, X& b' `6 i
cos(n)  ; p5 L3 m1 U# l7 \2 L
 返回n的余弦值  9 t$ `5 C, b" F
mysql> select cos(pi());  
; I7 D9 m% [1 E/ a8 d& S5 ]( E! u1 l  -> -1.000000    / _; \% o6 j$ v# W1 n( }
& f' u5 W( v, T' p! t
sin(n)  
; i9 o! y% L+ {# J 返回n的正弦值   
1 d1 G" p% W, ?. R' u$ u: L" Q$ Smysql> select sin(pi());    4 L' P! N9 M& p3 u
  -> 0.000000   
; `" A& S% q9 d2 V0 H) H 1 |$ ?  n/ V- U  A- G. ~  g
tan(n)  # v1 M2 ^1 H$ h4 J0 K' Y
返回n的正切值  ; @; V- z# E7 s3 P# m. g# _, d
mysql> select tan(pi()+1);    9 q$ \9 Z4 e# t  G+ d6 o
  -> 1.557408   
) h* Q  q2 w8 Q; V3 H1 u , V5 n; z$ l- O" [
acos(n)  
3 c2 G1 L- v' X* u 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  
9 y2 M5 S5 T& H3 y7 }2 Emysql> select acos(1);   
  g2 {$ }( {( [4 i  -> 0.000000    ! n3 y0 F$ u+ r; b# D
mysql> select acos(1.0001);   
$ ?+ _# `& E  o2 a/ l  -> null    ; k- b0 g$ d+ `* U6 }5 B
mysql> select acos(0);    * |+ p5 j& E; N  N5 o3 j
  -> 1.570796   
0 ]( Y! L* l) w, E 3 O! m7 r5 {. n
asin(n)  / p( s' ?: N! i7 t1 H% h# H9 s
返回n反正弦值  ; w7 l7 C$ I4 e( G. C/ d$ e9 H, Z& O
mysql> select asin(0.2);   
  ~4 G- d- B6 I& y  -> 0.201358    8 p" \/ Z+ v+ c5 D, k& ~* N
mysql> select asin('foo');    0 G6 Y* y8 u( N6 Q/ {
  -> 0.000000   
* l& O8 ]' ^- g3 v
% k" l: c) Y" Vatan(n)  " c% x% f+ m+ e) N
返回n的反正切值  % m' C7 }+ C" H7 w
mysql> select atan(2);    ! F: S: T" I2 b6 N* z
  -> 1.107149    . c' ^  \; D: k6 z" g5 ^& ?6 U
mysql> select atan(-2);   
9 ^. z4 ~' u. F  R: b) E  -> -1.107149   
8 q# ^, A8 {' J6 J3 t" l# b* Watan2(x,y)   
4 z* @, _/ j. o* R 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  " Y5 E: a- C1 ~
mysql> select atan(-2,2);   
# U: l; n4 l4 c" C! {1 @1 ?8 Y' \  -> -0.785398    % K* O/ s% E" `# m0 a$ h) W1 o4 ~
mysql> select atan(pi(),0);   
" x2 E- y( z. @- Z  -> 1.570796   
. y& h3 l! ?2 [. I& k% R+ l 4 y8 X2 f3 J) z! g. k; _
cot(n)  * J. A; U5 }8 v' d, R
返回x的余切  ' a: s- F  d: y
mysql> select cot(12);   
( G) i4 H# [0 J6 R/ E6 L. B6 p) K  -> -1.57267341    " }3 o, {6 @/ j  i; u/ _
mysql> select cot(0);   
% Q3 ~/ G. D8 E/ C" U  -> null   
1 \; O, l# w7 L2 t- y2 x
( i5 \4 ~. n$ brand()  ' L: L  b2 p  h% d
rand(n)    / u. c, n3 @6 i4 x+ }- W
返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值) $ |+ I. k- m6 K( |% I

5 q" D0 J% N0 R6 q, s) {mysql> select rand();    " J4 f8 Z+ U: [' M' _) T
  -> 0.5925   
4 k5 J! q! [- V3 B& S5 k8 z) amysql> select rand(20);    ( C0 }- k3 d4 X# ?8 u5 O+ {
  -> 0.1811    8 R' _1 J4 A/ }; Y
mysql> select rand(20);   
% Q7 B; g0 ^. L, {$ b+ c  -> 0.1811    % A1 V5 v6 w- ]
mysql> select rand();   
! D1 S7 H9 |' P5 p  -> 0.2079   
- p) j$ M# O* dmysql> select rand();    ; t3 p- A% @6 Q+ y& _% Y+ ?
  -> 0.7888    $ _  q2 u1 o, N% F
0 `3 I5 ?/ z( I+ U
degrees(n)  
: a0 X2 [9 Z  R7 F! f, _) m把n从弧度变换为角度并返回  / M% O! z- n/ J, m8 Q
mysql> select degrees(pi());    6 {4 N6 }5 }$ r( \9 ~
  -> 180.000000   
3 w. i$ k8 u4 v# n* R9 R. U1 h ) X; j, ]1 k& k* x- A8 C
radians(n) . V1 g& `- k+ Y1 g# X. G
把n从角度变换为弧度并返回   
* \: |" C; }, m) q1 cmysql> select radians(90);    1 }0 M1 @) b3 z& z, n! M1 O
  -> 1.570796   
0 H8 d2 @' b7 u# S- n! n" D) r# X% {1 e2 L" {( [. X1 ~. E1 Z
truncate(n,d)    3 A& r* @) K. j8 i" w( D
保留数字n的d位小数并返回  
7 x& ~" k8 }) y3 ^: N8 k. }( jmysql> select truncate(1.223,1);    ' Z, w$ |9 `  T  v$ p) _
  -> 1.2   
% Q/ F- F  ^* u5 z/ Qmysql> select truncate(1.999,1);   
) [5 K5 e5 Q+ f) z  -> 1.9   
. b. N& D  N; N) ~mysql> select truncate(1.999,0);   
- V; a! ^# }/ I4 P7 b1 y  -> 1   
6 Y- P( y) B. G$ n( s- n. F* i
2 B* ]4 n. G: Z0 O  C$ a$ R6 cleast(x,y,...)    ) b; c. H2 s$ R
返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  7 A* V1 h$ c9 N! d
mysql> select least(2,0);   
$ k  ~5 Y! T$ V4 I  -> 0   
2 r  w, j9 L+ S) w6 W. f+ }mysql> select least(34.0,3.0,5.0,767.0);   
2 I4 ~& g# b: h4 i$ l2 b  -> 3.0   
! M5 d8 ~8 ]# u$ B9 K* Hmysql> select least("b","a","c");    5 ]# E- u6 W0 R
  -> "a"   
7 D+ S2 t+ E" R
2 {3 i- X! l% _! Y/ pgreatest(x,y,...)   
# H4 \6 L* c9 N6 q* i返回最大值(其余同least())  
" K. ^$ q1 @9 x: V9 c2 c; ?$ Amysql> select greatest(2,0);   
. z/ h8 F. R. P# T6 ^- Q0 T; d& c  -> 2    ( g/ @( F& }1 K# \7 i8 o% S: m: k
mysql> select greatest(34.0,3.0,5.0,767.0);   
$ A9 t' V6 E4 j- b0 s# o0 ?  -> 767.0    & Q6 h$ N/ f) R% K; G; N
mysql> select greatest("b","a","c");   
# l: F5 \9 f8 J  `0 {  -> "c"     
; g5 |9 Q9 u4 P9 F/ W" i8 `: l5 C! B' ?( G
3、时期时间函数 : N3 F  }4 ~/ b( H4 E! N+ N( s
dayofweek(date)   
, w: B- ~# p* M, t* W* ^  j返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  ) z1 h1 ~; C: r3 `9 m% w
mysql> select dayofweek('1998-02-03');    6 r' H% z3 z+ T* V' g3 e" s  D
  -> 3   
3 p5 ?; k6 s  J' |
" Q# r; Y' p$ P/ ~weekday(date)    ! M5 q; i: `5 T" R
返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 & e) Z7 `+ l. V, ?; C8 t
  
: f" n. c. M/ Hmysql> select weekday('1997-10-04 22:23:00');   
) H2 \& y2 o% P0 e  -> 5   
) r! i( z) q/ h! C0 C9 {( A) nmysql> select weekday('1997-11-05');    2 b# y& M5 B1 t, ~/ d& z( f5 I$ b4 ~
  -> 2   
6 N7 P2 v% Y$ z( `
- h% O- M  F% o! N" C2 edayofmonth(date)    
" a  R" N8 z! a  ?) H- m1 G( s4 B返回date是一月中的第几日(在1到31范围内)    ' T/ }& e: S* P% m# R! O, a
mysql> select dayofmonth('1998-02-03');    ' W6 ?  v6 @0 a( E( Y
  -> 3   
2 I& Q; _5 f! ?4 Q) k
& p9 w8 \" `' \0 B- w* v! tdayofyear(date)   
5 y9 r) g! `: h3 ]* M返回date是一年中的第几日(在1到366范围内)   
. e4 S$ n& m9 Z0 Lmysql> select dayofyear('1998-02-03');    6 ?& h9 X. R( \0 p" Y/ E
  -> 34   
5 j+ a. Y3 |: F- T" o 9 n! k1 Q5 N: ]$ k0 K
month(date)   
. s3 U3 r! A' \9 g( @返回date中的月份数值   
9 t9 X) }, K3 g% ^" o# dmysql> select month('1998-02-03');   
8 [9 [, @3 m  q  -> 2    & z0 W# ~- R6 N0 W2 w* V
" Z; \! k" Y6 }9 t
dayname(date)    4 ]' V' _. C, s3 p. c/ o5 k1 g+ Z; U) E
返回date是星期几(按英文名返回)  4 `+ e; U4 C: ]! o; R0 D+ X' g
mysql> select dayname("1998-02-05");    6 v" @6 J$ @3 G1 c- f8 @" X3 A
  -> 'thursday'   
5 [$ `$ B$ C1 W1 ?7 C
; Z6 k% b$ V' h1 F( D3 M, Zmonthname(date)    
( g3 P/ O! R1 R; a$ C# l返回date是几月(按英文名返回)  & T8 z. n. a  @7 B2 B7 B
mysql> select monthname("1998-02-05");   
, {: K9 ^. l- F! p, w3 g  -> 'february'    % k! J0 l6 a1 s# z

6 T+ W2 _8 ]! `5 U/ C: a9 Lquarter(date)    % r2 o0 o: Y1 \2 g6 o
返回date是一年的第几个季度    1 G9 ?/ u- j8 v
mysql> select quarter('98-04-01');   
( q: h1 W" A% s! v  -> 2   
3 |/ q1 V  x  A/ o
; D4 h- J$ d8 aweek(date,first)   - I9 j, Y: U8 \& f
返回date是一年的第几周(first默认值0,first取值1表示周一是& S1 b! P8 C1 h% ?% T/ B
周的开始,0从周日开始)  
; P& U% J- Z4 h) \mysql> select week('1998-02-20');   
# j  S2 D2 h1 W% d% S  -> 7   
, K" q4 x  w; c# F' jmysql> select week('1998-02-20',0);   
2 }; k9 l  e; i: K# [  -> 7    9 e* c2 X, F4 [& T
mysql> select week('1998-02-20',1);   
4 [0 q1 K2 y) W( M  -> 8    ( U% C# W, U- n: O! u
4 K& u4 |( y$ N- A" ~  H9 g6 r
year(date)    - T1 Z3 }, ~  V$ r0 ~: V0 ?8 [
返回date的年份(范围在1000到9999)   
1 I5 I9 S- L/ a0 _- Zmysql> select year('98-02-03');   
; z1 a1 g" |3 j0 v" h  -> 1998   
0 s% q7 i) m& F/ D+ @% K- A( r
3 J  b9 f' k0 L+ T# dhour(time)    , h/ q6 d% d3 h5 b: x1 k
返回time的小时数(范围是0到23)   & s- q( m2 w4 Y3 [& S
mysql> select hour('10:05:03');    2 r0 O+ ~( X& a3 |  D0 Z  o
  -> 10    " `$ s" c2 ^: W4 a! S/ n$ E

1 R& z3 T- t3 n% b- A/ y% Sminute(time)    & z0 U3 x! F* g
返回time的分钟数(范围是0到59)   
7 ~- ~7 h+ `2 d7 p. ]) f2 Lmysql> select minute('98-02-03 10:05:03');   
9 B% W: m% ^. T/ J$ |, z  -> 5   
0 o6 q, l4 H* K( ^
( p& p  d# B* c( Csecond(time)    . b& M, j, C' }/ M8 d9 ~; ]
返回time的秒数(范围是0到59)   
8 P" Y  w* _) M( P: |7 Fmysql> select second('10:05:03');   
9 I! l$ D, a- b0 R5 K: c! r- p6 E% c" P  -> 3   
& g  w) k  f' H
6 h3 P  x2 u2 z5 Xperiod_add(p,n)   
  _) _! B2 B2 U2 j# @6 n0 u5 O% ~增加n个月到时期p并返回(p的格式yymm或yyyymm)   
7 ~( D6 R3 Q# B9 ]mysql> select period_add(9801,2);    " g! f- e" w# T7 \0 P7 j; S+ J! p
  -> 199803   
2 L; u/ |# z# D( N1 f
6 `% x7 x5 Y1 |6 R6 m- e' nperiod_diff(p1,p2)    - Y! `; W! Q; i0 @/ u) ?: a
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  3 e. d1 m, H5 f* x2 s3 L6 @! |
mysql> select period_diff(9802,199703);   
7 I, V/ V' h6 O8 |' T& f  j  -> 11    2 t# X. F, _8 d; Y0 p/ w# ]

7 C) \3 ?. P  z. O; N+ o8 Qdate_add(date,interval expr type)  / F% T9 p# y+ C0 S  n' _
date_sub(date,interval expr type)   
: X% [! x$ B8 h( |% X% T4 zadddate(date,interval expr type)    ' w) T% V5 b5 t! ?6 S* L
subdate(date,interval expr type)  
$ H2 Z' [) A3 w& A! w% n对日期时间进行加减法运算  
% n7 @7 A; M3 r2 q, ~* h# W/ {(adddate()和subdate()是date_add()和date_sub()的同义词,也
( N# {1 |6 i3 X8 \. C; l可以用运算符+和-而不是函数  
$ j5 z; S3 O1 M0 cdate是一个datetime或date值,expr对date进行加减法的一个表: n' i6 R+ j1 W; u4 T1 j
达式字符串type指明表达式expr应该如何被解释  + R. L( w2 ^* \. Y0 L& a& X  Q
 [type值 含义 期望的expr格式]:  
3 X1 j" f4 U& H3 i% Z5 | second 秒 seconds   
8 o1 n" H( [- z4 F. j, o' E minute 分钟 minutes    1 H2 z9 c7 _, T: S1 a6 [0 G( }4 e
 hour 时间 hours   
2 v2 a6 s: H3 b( o% |) c day 天 days    , }, X! ^0 V, v5 a
 month 月 months   
; T- \$ z6 X9 S6 @, T year 年 years      z3 x) l, N; @) J# C: g- P
 minute_second 分钟和秒 "minutes:seconds"    ) x, s( R2 s6 o% c3 j
 hour_minute 小时和分钟 "hours:minutes"   
, _! T% S/ Y1 Q$ |& m4 U day_hour 天和小时 "days hours"   
1 P" D. f7 l2 i  J$ |4 d1 o year_month 年和月 "years-months"   
" I% K0 C- m$ [9 \5 Y% F& Z hour_second 小时, 分钟, "hours:minutes:seconds"   
( @$ Y2 Y& B+ W  n" N* R4 ~ day_minute 天, 小时, 分钟 "days hours:minutes"   
/ j" v2 I  [, ^' l1 A' G, _ day_second 天, 小时, 分钟, 秒 "days
/ G( t/ ], }9 [hours:minutes:seconds" 9 L6 b  ^- n% v4 ]/ ]
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个& g7 ~* L7 N3 X$ @+ R; H
date值,否则结果是一个datetime值)  3 o0 j" u# u$ U. o8 {5 h8 p
 如果type关键词不完整,则mysql从右端取值,day_second因为缺6 S" U# z( }6 G. Z# `9 ?' X0 a, r' J
少小时分钟等于minute_second)  , l. \9 C* n5 T- I8 T8 e
 如果增加month、year_month或year,天数大于结果月份的最大天
& L- u# ]& r2 N5 y0 U! @数则使用最大天数)    . s. a- U2 ~+ c- l  K6 h7 U; d
mysql> select "1997-12-31 23:59:59" + interval 1 second;  : p% o% D4 B6 j8 U

7 b) j  u, F+ w7 `+ g; d: F2 l+ \  -> 1998-01-01 00:00:00   
5 E/ g- }8 [) kmysql> select interval 1 day + "1997-12-31";    ) T8 r) b9 u9 A
  -> 1998-01-01   
+ m! j8 ~' H3 o& _& F) f1 I. v  k9 ~mysql> select "1998-01-01" - interval 1 second;   
; C7 U4 n& U1 Z! \5 B- q: J  -> 1997-12-31 23:59:59   
1 j8 }# s3 G$ t  ~. V5 Mmysql> select date_add("1997-12-31 23:59:59",interval 1
% P  _' m/ H/ zsecond);    ! R3 y* y. y, t( a/ s
  -> 1998-01-01 00:00:00   
  T: ?3 K3 l) D. n& ~mysql> select date_add("1997-12-31 23:59:59",interval 1! _+ j' g: X& W7 ^3 J& P8 p
day);   
7 a8 L. C; s- Y4 ?1 N9 Q  -> 1998-01-01 23:59:59   
( l  |# [) g2 h8 m% |+ x4 s; Smysql> select date_add("1997-12-31 23:59:59",interval2 f0 i6 Z8 n; r, ]$ W7 g- C
"1:1" minute_second);    4 R+ _6 P% N- U4 t3 u
  -> 1998-01-01 00:01:00   
- S0 ~2 l- D; W! jmysql> select date_sub("1998-01-01 00:00:00",interval "1+ H  _6 n" N  A' X4 W0 y9 W" s2 W
1:1:1" day_second);   
2 q+ _. ~1 ~* s  -> 1997-12-30 22:58:59   
& ^" d& O' Q" n2 Tmysql> select date_add("1998-01-01 00:00:00", interval "-1
/ A' J4 t: G) n, \5 X; h" Y" F10" day_hour);  / j1 p4 K1 X* I6 G, l% C1 g
  -> 1997-12-30 14:00:00    - X' D& h" b( [3 Q$ r
mysql> select date_sub("1998-01-02", interval 31 day);   
/ h# }1 j  T+ l7 [0 M! @  -> 1997-12-02    7 s) s1 R$ z6 W' {1 T
mysql> select extract(year from "1999-07-02");    6 B6 R" F/ M, K. p
  -> 1999    5 t' o5 c1 q. C& e0 w6 R
mysql> select extract(year_month from "1999-07-02" V% x; P* o. ?, N! R9 C) B
01:02:03");    1 ~+ O, U2 p: ?7 f
  -> 199907    6 d1 {$ K( b" o9 i) c, l
mysql> select extract(day_minute from "1999-07-02& d7 J2 F) w2 n1 ^* y  ~$ P/ T8 b% y
01:02:03");    4 @7 {% `; C! s
  -> 20102    1 t) M' y' O4 M; D/ [9 E. [
1 D; ^# @/ N) k) b
to_days(date)    + o8 ~* \+ C/ ^8 Q  R
返回日期date是西元0年至今多少天(不计算1582年以前)  
- i, M8 w+ X5 w6 [8 L$ @! L; ~mysql> select to_days(950501);   
: A' l* I. E, Q- I4 t; M  -> 728779   
, @( z  b$ K* e% @8 Q6 W4 Lmysql> select to_days('1997-10-07');   
" m" p  S8 X$ x- h  -> 729669   
& k6 h1 I! I" b8 B2 S, a& ?
5 i7 e, N, J$ ~* }- B0 Dfrom_days(n)    ! s& k1 {& J5 r+ ?* R9 [
 给出西元0年至今多少天返回date值(不计算1582年以前)   
" ^2 G. Z3 A; {* B0 m5 f7 }mysql> select from_days(729669);   
8 `; U- E2 {* u' o: s  c$ }4 ?# s  -> '1997-10-07'    ( ]  b' @6 G( G9 B  O( j7 Z

* O( X0 p+ ?. Y0 u* ~date_format(date,format)    ( P* i' _4 f7 q+ |. M
 根据format字符串格式化date值  
2 l! H  I3 ^  [: H (在format字符串中可用标志符:  ) x- ?7 _  `' U' _) o0 ]
 %m 月名字(january……december)   
( ^# r0 G( c5 }9 d2 `3 ^ %w 星期名字(sunday……saturday)    & E9 d9 k  c# w6 h2 Z6 }& t2 q% O9 W
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    5 G8 t9 k* N5 I3 |' ~% g5 [' u
 %y 年, 数字, 4 位   
. d# p2 V) L, y" j %y 年, 数字, 2 位   
: l$ ]& S! X, | %a 缩写的星期名字(sun……sat)    % B4 P2 g  E2 d' a/ C! d* e5 |5 D
 %d 月份中的天数, 数字(00……31)   
0 Z* |) g4 l( @" L %e 月份中的天数, 数字(0……31)   
1 H; s, H3 o: w: x* }$ I %m 月, 数字(01……12)   
: A- g" W1 X8 P0 E+ k: V, m %c 月, 数字(1……12)      }* a* [  q/ b; S$ H, ]2 V- V
 %b 缩写的月份名字(jan……dec)   
; e8 K; L1 j5 Y  i3 J& U %j 一年中的天数(001……366)    ( _* v$ p8 T. X( r. c5 @. M
 %h 小时(00……23)   
! l% u' x% @# S. ]5 p/ Z. ~) [! G4 S5 F %k 小时(0……23)   
  w, O7 o) X7 o6 ^1 Z" r %h 小时(01……12)    & ]0 D; F' T. {9 g  I1 p
 %i 小时(01……12)    : g0 H( h# z! }5 Q8 _; L
 %l 小时(1……12)    + V0 t4 a( _0 C% }- H1 {
 %i 分钟, 数字(00……59)   
5 q& q9 t+ [3 a' b# z0 r- g/ O %r 时间,12 小时(hh:mm:ss [ap]m)   
2 R* I5 u9 T$ o0 F %t 时间,24 小时(hh:mm:ss)   
) f9 e2 r6 O- K6 i %s 秒(00……59)   
- K/ x7 v4 {; J5 d; ^( O$ g %s 秒(00……59)   
! Z- |0 X7 G" @ %p am或pm   
: i. _4 q, j( s' V %w 一个星期中的天数(0=sunday ……6=saturday )   
9 ^% R: ?/ r1 W, S0 A* G %u 星期(0……52), 这里星期天是星期的第一天    1 I) l& _, C$ Q& d* F5 n6 `
 %u 星期(0……52), 这里星期一是星期的第一天    ) U+ a' ]1 U. J- C) U4 `- @, @/ m
 %% 字符% )  
$ W' z) m$ C% E5 A5 Smysql> select date_format('1997-10-04 22:23:00','%w %m %
) }) m! d, W4 Q: J' }7 y1 _& y7 |y');   
6 v* z$ t% B9 u+ _3 j6 @' U$ f+ @  f  -> 'saturday october 1997'    & v' Q- [- r, P
mysql> select date_format('1997-10-04 22:23:00','%h:%i:%
2 U, F, w# s" a0 c! N- S$ Ts');    . w9 M& G6 R! R* C* ^! i+ w
  -> '22:23:00'    ( y5 ?1 s# y+ T
mysql> select date_format('1997-10-04 22:23:00','%d %y %a, k( a0 }' U7 F" O: o
%d %m %b %j');    ) P- p+ e% G% S! S' \
  -> '4th 97 sat 04 10 oct 277'   
& V; o) T1 u% L: W/ g- `  mmysql> select date_format('1997-10-04 22:23:00','%h %k %i+ U1 F9 Z5 P0 W$ G
%r %t %s %w');   
( ?$ U# F  u* `8 D! q3 \7 Y  -> '22 22 10 10:23:00 pm 22:23:00 00 6'    , b1 q! L+ B3 ]) Z

' r* \9 x$ V8 S, x6 J/ i+ O$ itime_format(time,format)  
7 ^! v. I& [+ { 和date_format()类似,但time_format只处理小时、分钟和秒(其% v! o+ ^) f$ u' s' I6 h
余符号产生一个null值或0)  , G+ m" j5 b0 n+ X! ~( w
: O" `, o4 G' t
curdate()     
/ l5 f5 K7 s0 wcurrent_date()  3 C  C# ]) K) K# _7 g3 q) W7 p
 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
  ]3 Q2 M2 M" z; Z( `' Q5 \& ^# F  z4 s处上下文是字符串或数字)   
1 A3 ~) n1 A8 G. [mysql> select curdate();   
  {3 `3 H- H3 X  -> '1997-12-15'   
& G  T# E+ R% r! b( qmysql> select curdate() + 0;   
  M2 h' B2 L; v4 {/ ~  -> 19971215    . J' w7 P% V. [+ \8 S5 _

! Z# z1 n* z, J  Tcurtime()    , J$ G1 q0 i, V! x
current_time()  
7 Z0 s; C' _# d" U 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
# e# }1 G- R  B/ N下文是字符串或数字)      % {; o+ x' A7 }8 F/ K0 X
mysql> select curtime();    + Z& [4 k5 q+ d* B8 p
  -> '23:50:26'   
' `3 q" j' Z/ x7 ^3 Vmysql> select curtime() + 0;    : @1 W% F$ Q1 C* T/ T
  -> 235026    ! U3 e* \" n% x0 ]6 e! x/ N  A
" F* M7 y% @; L6 g$ c
now()    
8 q' {3 O  K. T$ |sysdate()    
/ b, r# L+ v5 a8 ]current_timestamp()  
; a8 X. O( E6 k 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
1 p' _1 m% Z% t4 X& Q3 H! a. O" h时间(根据返回值所处上下文是字符串或数字)       x; p& ]6 i  ^, Z4 Z, n4 P
mysql> select now();   
, Z. Y! e; }1 T6 y  -> '1997-12-15 23:50:26'   
8 r9 w/ \* M3 H) K6 a- bmysql> select now() + 0;    " h" D/ j% g2 q- D6 s
  -> 19971215235026   
2 i3 [/ s* z" I7 _! c& c0 d 9 \( A9 n: m" c1 x( S; i, u, J
unix_timestamp()    9 _$ @$ b* M5 g
unix_timestamp(date)    / r# F# p) p+ \2 X9 L& g8 [- v- T
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
) Z- B) \7 W. D) }  o2 }3 x* `数,date默认值为当前时间)  
4 T. w# J6 g* ]" H  t0 Bmysql> select unix_timestamp();   
: j! `; k0 [4 L# W; a& `8 m% t  -> 882226357    9 p2 _* }+ X/ C
mysql> select unix_timestamp('1997-10-04 22:23:00');   
( E! f' D+ s# ^  ]- ?9 a$ _  -> 875996580   
8 e2 U) @/ i& Z+ d* B6 _7 W. k
3 ?+ u2 r- `" gfrom_unixtime(unix_timestamp)    2 d* Z9 ?2 V3 [4 |  a
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的
- L8 k9 y+ L4 @: \, D5 s. x值(根据返回值所处上下文是字符串或数字)     
+ d5 T2 W9 j8 N  m+ J! l% u7 q9 Y, a9 ?mysql> select from_unixtime(875996580);    " @/ H% c+ s% i1 J/ W" Q" d5 Q
  -> '1997-10-04 22:23:00'    7 E; t  w$ h' }9 V
mysql> select from_unixtime(875996580) + 0;   
/ s% M7 u: J+ m3 i' J  D# h7 V  -> 19971004222300   
2 i2 W4 ]5 ^0 w/ w' L3 d
4 Q# H/ d9 L9 b1 @- Y: V: yfrom_unixtime(unix_timestamp,format)    3 I7 q$ B& }; D+ p* o  a; A  K- s
以format字符串格式返回时间戳的值  
2 j$ @! t" a1 U5 wmysql> select from_unixtime(unix_timestamp(),'%y %d %m %
2 ^( d/ H& }: U' _. R9 p: xh:%i:%s %x');   
- l6 T2 H" Q( h& W, s* `: J  -> '1997 23rd december 03:43:30 x'   
, r- G* b! Y4 U5 n$ u! m
8 U: Z3 G, i4 K. O! Ssec_to_time(seconds)    $ P0 s! q3 I4 u
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
9 j+ I+ M9 v7 B1 {) Z/ Hmysql> select sec_to_time(2378);   
7 @! L7 ?, }' Y- Y5 q. ^. s  -> '00:39:38'    7 O) V% [" ^) P  u7 P3 n: q
mysql> select sec_to_time(2378) + 0;    6 q( `4 U. s( l
  -> 3938   
' b/ j, f$ x4 F& x6 o 6 k. @" Q. T3 w. S
time_to_sec(time)   
  F; P" z" t$ @返回time值有多少秒    # \! g. H9 ?5 m
mysql> select time_to_sec('22:23:00');   
, j3 C' H$ B( i% N  -> 80580   
8 d- R/ b8 }$ Tmysql> select time_to_sec('00:39:38');    7 ^3 {' k9 Z# {% l: I1 o, j7 \
  -> 2378 - m, s; W6 r( Q+ O5 s! m, B3 r

1 R. S7 a2 X' ?转换函数
  f8 R* ]; `( M! S, |& Dcast
% {0 H* w/ Y& W  a' z+ T2 ^* V" F用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]
% B& g' S5 u0 l/ P3 k9 f" N) n实例:select cast(a as unsigned) as b from cardserver where order by b desc;* h+ Q+ ^1 H, a8 ?" a! e- J* e
convert:
" K2 \9 T7 X4 z- n2 t4 d: o用法:convert(字段,数据类型)  ]. A  A3 A, s
实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
7 B6 B" v8 W: F1 u' T7 ~- x
回复

使用道具 举报

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

本版积分规则

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