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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数. n! D8 [4 H. B8 O4 d
ascii(str)   : o' F6 u3 _4 u9 {' ]5 o; A
返回字符串str的第一个字符的ascii值(str是空串时返回0)  
9 G# C& ~- B8 Imysql> select ascii('2');  . L- B4 q$ B5 m/ u
  -> 50  
" S  ]7 {$ B9 K6 _4 `% [mysql> select ascii(2);  & I2 W5 [- L+ @& X
  -> 50  
: d- Y, X0 `3 O* }mysql> select ascii('dete');  
9 d4 r( I- q0 [; D0 z. O/ S  -> 100
5 G! T- I) N1 J
ord(str)   8 h0 r0 }* l, _3 p
如果字符串str句首是单字节返回与ascii()函数返回的相同值。
; ~$ X  C! l, E3 w  G7 O; u ! _& C* |- O: z. p4 _
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  
* _' H6 j# _8 p3 D1 Gmysql> select ord('2');  " c4 Y% U' {) [0 c# z/ D$ T
  -> 50  
% o( |. m; ?& ?   9 M) D. u/ C/ L& ]
conv(n,from_base,to_base)   
) B) o& J; f; |0 {+ \/ d对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
& m/ s" J. y. ~0 ?4 a! X( ?mysql> select conv("a",16,2);  " L  u# Y5 C: M# [2 }9 ?
  -> '1010'
: _4 v, R" H: h) T. bmysql> select conv("6e",18,8);  
) A5 V2 O8 c3 v; S8 Z" ?3 V+ X* Q  -> '172'
+ g! q. q2 M9 s2 Q) ^3 nmysql> select conv(-17,10,-18);  
1 H0 \$ F& D% u7 b! \; ^  -> '-h'
4 _- e0 E2 d9 {/ m. ]mysql> select conv(10+"10"+'10'+0xa,10,10);  
9 v: `8 v2 A% |9 Y  -> '40'
0 o; p: J0 S1 b1 q6 C4 r   
, Z+ Z& ^; @# Z3 Rbin(n)   1 R8 p5 h1 F) i; f5 w
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  $ b) g$ ?2 W& e) f( \
mysql> select bin(12);  
2 M1 M. v. b' }8 X3 |# T: P  -> '1100'
' k3 g+ \& s# D' X5 B 3 H% O+ I* {# [3 p: Z; C1 B
oct(n)   . W6 m0 |( a& }$ Y' F$ H& H2 o  x
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  & X/ K/ d$ f" z6 S/ |: i
mysql> select oct(12);  
, x/ ~! U9 W6 `; ^  -> '14' $ U3 g' e, @2 @
   
7 C/ j1 Y6 G7 Uhex(n)   2 a* L' [" W7 b1 P: f
把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  
) l4 X. {) g8 |/ h/ Dmysql> select hex(255);  4 D# y# C2 n- I# ^, h2 s; v3 I
  -> 'ff' ( n! L5 ~, u- |1 ]
   
- F  r: ?1 \+ Schar(n,...)   
9 @( l; g: [/ L/ a8 G返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   6 }! p/ a% x1 i$ h& K8 ?" e
mysql> select char(77,121,83,81,'76');  
- ~$ r0 o4 x, S8 q6 H  -> 'mysql'
+ V/ e& B- B1 p5 b+ lmysql> select char(77,77.3,'77.3');  9 }. {9 v! n% O' E# K
  -> 'mmm' ( q( v, M) k: k: V- _3 B) I
   $ Y5 {+ y2 s- t
concat(str1,str2,...)   1 @- \1 ?) V! R+ j& @
把参数连成一个长字符串并返回(任何参数是null时返回null)  3 n9 B0 {8 n8 H0 f% C/ o
mysql> select concat('my', 's', 'ql');  
5 o9 E5 j' u! _  y) Z2 U& n  -> 'mysql'
, t- w/ r6 K2 f& L" w1 c$ smysql> select concat('my', null, 'ql');  ' T' I( Z* T, }7 |- R6 Y
  -> null
. ~5 c( e5 w8 m1 Kmysql> select concat(14.3);  
- b+ p1 r) z; k" a" |  -> '14.3'
" G- O" ?8 d, V' o 4 z$ A# H+ g' b) q: z2 X3 ?
length(str)   
2 I+ H- o) t- }) Toctet_length(str)  2 k3 i1 D. V( ~/ q  M) J
char_length(str)  . _9 S& A$ V0 o
character_length(str)  
+ N! W+ j7 d1 r! B+ q返回字符串str的长度(对于多字节字符char_length仅计算一次)) k. B+ `  p6 M$ ]7 m9 H+ U
mysql> select length('text');  & ?  v/ W+ {+ r' P3 P5 ]
  -> 4  ; z' F( \2 ~9 @' [
mysql> select octet_length('text');  7 i7 A2 F, `- S
  -> 4  ) u4 v2 ^" v$ ^$ v8 ~2 j, J; G

7 f6 Y/ b8 N% C  dlocate(substr,str)   6 P4 f9 u  E/ q, ~& n
position(substr in str)   
% Q% p% h+ B1 W7 W返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  9 n4 ^2 X/ e' I* |$ j7 y! l  e
mysql> select locate('bar', 'foobarbar');  
4 V7 N4 G* W* w. C  -> 4  ' G/ `9 N0 U3 e" c- g/ H
mysql> select locate('xbar', 'foobar');  
1 @; }1 r$ h, {  -> 0  
' O% E1 X% g( }# r! l7 ?    2 T# Q& [4 K1 ]+ `1 q( |3 p
locate(substr,str,pos)
& e! P& t* ?9 R/ }7 N: i: [返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
0 a/ X- @0 V: U2 T/ y  ?- _mysql> select locate('bar', 'foobarbar',5);  
; ?: h0 B" f# H# ?  -> 7  ! f; ?4 H: c. R- I4 W
5 j. x, e) M+ r; G' P
instr(str,substr)   ! Z0 A; S5 q0 A" }. N# h" C9 v6 I6 q
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
9 ]' |1 p5 z0 o  k2 K; d* O8 Rmysql> select instr('foobarbar', 'bar');  6 y" s- D/ O1 K
  -> 4  
3 c# w% h) ~4 `/ F1 i( pmysql> select instr('xbar', 'foobar');  
# j( T$ [- P, a  -> 0   , f4 Y( J+ u7 g4 c' F9 o9 U

7 \- x- Z' S$ g+ V" n! ulpad(str,len,padstr)   
3 f: k) U/ }" a2 H' }. j用字符串padstr填补str左端直到字串长度为len并返回  
- H# ]3 }; }7 p) E3 tmysql> select lpad('hi',4,'??');  
9 S% m' e/ q& I: o  -> '??hi'
# C6 H) S. d0 Z' q8 I9 P" ?   
2 C" f: A7 z- I6 l, Wrpad(str,len,padstr)   
$ I5 c  ]' I4 o8 B用字符串padstr填补str右端直到字串长度为len并返回  ! E; w0 s: y* N; b; s  |
mysql> select rpad('hi',5,'?');  9 s  E" y( B  N3 z8 J! l
  -> 'hi???'
+ s8 Z! a; H& q) A1 t
7 d' m/ A8 e# c# b/ mleft(str,len)   
+ N, K2 {# k0 }& P8 ^返回字符串str的左端len个字符  / b  L* j: U, m0 |4 N0 M; K
mysql> select left('foobarbar', 5);  
( k& t$ f3 }( I( I1 W  -> 'fooba'
: r) m  y( c! D: I7 P 8 \3 Z) R7 _- I4 z: `) _( s, ]7 Y6 i
right(str,len)   4 n1 O% W2 X! Z0 T$ s' a" E
返回字符串str的右端len个字符   
+ ~  g# O, R  E6 Qmysql> select right('foobarbar', 4);  
; j/ D; v+ z. r$ H  -> 'rbar'
0 H5 f+ S( Y3 Y  a
' E3 c2 M0 x0 `substring(str,pos,len)   
% A' d; D; c% I' `substring(str from pos for len)   
8 F4 G* W! r' s* y% S) m) umid(str,pos,len)   
: Q1 t2 A" ]3 G$ D8 j返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  : f4 _+ [) t& @: A# @
  -> 'ratica' $ n' J% O$ Z* z
( ^! T. a  v" R2 F% l
substring(str,pos)     V4 L( J9 j+ I  a8 N8 r8 b; X0 V& T3 ]
substring(str from pos)   / l8 S- x6 S% y  `5 u6 d: i2 G! j
返回字符串str的位置pos起的一个子串  : R! m' \* Y* b- F8 p% G
mysql> select substring('quadratically',5);    A- K; ~5 r6 ~7 e3 P/ H& D
  -> 'ratically' 6 j/ ]! U( A$ L5 }9 M& i
mysql> select substring('foobarbar' from 4);  $ e% W9 H  _5 d4 K' ~2 ^2 [3 n
  -> 'barbar' 7 }" |: ]3 R$ b! n7 l* ]- G% X& X. X

; I( B! Z! B5 n' Z* P8 ?substring_index(str,delim,count)   
1 O. a2 O. ~* J  }返回从字符串str的第count个出现的分隔符delim之后的子串
( ~6 D$ ~6 N* I$ D7 Q(count为正数时返回左端,否则返回右端子串)  
3 r9 p" ~( e$ j& P* t% Rmysql> select substring_index('www.mysql.com', '.', 2);  
3 f3 s6 r! P0 h* ]  -> 'www.mysql' ( R; K+ m# d# x3 X
mysql> select substring_index('www.mysql.com', '.', -2);  % C$ P* ^- j/ x* m
  -> 'mysql.com'
# P' h/ A6 {  }: I 1 a6 q* j9 S! z8 R8 j  I" k
ltrim(str)   
; g$ w( {! `5 Z6 M' F. w返回删除了左空格的字符串str  
* u' A$ W& M: a! fmysql> select ltrim('  barbar');  
$ f7 E: B, V$ s+ t8 Z* i. U  -> 'barbar' : s( N5 i: p! B' x
7 l  I8 E. p+ R
rtrim(str)   
$ B! d; r1 h5 N6 n* o1 B/ Z返回删除了右空格的字符串str  
9 F- p6 ?! V$ ~, J( K* e# Fmysql> select rtrim('barbar   ');  
( v) Q* C: [) B9 C" Z5 [: v  -> 'barbar' 5 v9 V0 ?, e% d8 U) X( e# w9 j

) G0 A. c! F& r% g3 g1 V4 htrim([[both | leading | trailing] [remstr] from] str)   . z, ^/ t4 B& \" X$ M
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
+ S; g( ?. X1 e2 o9 N, B2 emysql> select trim('  bar   ');  8 _- ]2 U5 G- C8 b0 f* W
  -> 'bar' ) p+ S" K1 M& x( h. C7 Z2 a
mysql> select trim(leading 'x' from 'xxxbarxxx');  
4 y; Z. @5 i1 u  -> 'barxxx'
1 w! T8 D# f# bmysql> select trim(both 'x' from 'xxxbarxxx');  # o' @3 H' k5 x' B- {" h
  -> 'bar'
" V! W% i/ m1 o- l& kmysql> select trim(trailing 'xyz' from 'barxxyz');  
+ p' c3 }4 M/ v- K( p* k  -> 'barx'
' l  s+ w) Z( Z3 w) r6 Y
$ g/ o0 o& q# F+ e- tsoundex(str)   
) G! L% |- w8 a返回str的一个同音字符串(听起来“大致相同”字符串有相同的
. h: B: K' r7 X8 v1 u. S同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  
: l7 B$ O5 {& K# J1 A  jmysql> select soundex('hello');  
- `$ [; l2 n! z5 Z* q  -> 'h400' + z. R2 i! M7 j+ N$ M* M2 ?, p
mysql> select soundex('quadratically');  
3 u3 I0 l/ P4 i- K* r  -> 'q36324'
; w/ X" K. @7 M  i; O: |3 E! A   9 ], V- c$ N0 W4 H& J$ x! {1 x
space(n)   ) N2 {) Z$ S' s5 i# R! B& E
返回由n个空格字符组成的一个字符串  
/ e, N2 x. d2 H  cmysql> select space(6);  
( v5 D% \" K% z# h  -> '      ' ( k% T+ y) d; l- A
   
9 q! R4 X& j2 r6 hreplace(str,from_str,to_str)   & C- r- J( X5 e
用字符串to_str替换字符串str中的子串from_str并返回  1 C/ e5 W0 `, p3 u* }
mysql> select replace('www.mysql.com', 'w', 'ww');  
3 g. P! ?6 |& n5 J  -> 'wwwwww.mysql.com'
; b4 K6 l7 U+ o' C: ^, A% G- \* l
3 z: ~* N8 g9 lrepeat(str,count)   1 X2 w, j- w2 m. N3 a  B5 {
返回由count个字符串str连成的一个字符串(任何参数为null时
5 k8 O" d" O# Z; j返回null,count<=0时返回一个空字符串)  9 {/ n6 O& Q# p, f1 G/ M" G
mysql> select repeat('mysql', 3);  / C- N6 T1 C" e% U* {" `: V% a' {
  -> 'mysqlmysqlmysql'
6 A8 R1 q' y% y, n3 E8 }: X     V$ P% k6 y  i; l
reverse(str)   
% v7 O3 m0 ^, D% g0 Z0 L# Z颠倒字符串str的字符顺序并返回  : t4 w6 N0 O7 N" H8 `% l) [6 g, W
mysql> select reverse('abc');  
) M  N! y* G( @2 U6 b7 `9 ?  -> 'cba'
. K7 Z) f7 `, ~/ E3 {  h7 @; m, f - F% v( B  Y2 M1 c$ K
insert(str,pos,len,newstr)   
2 J/ X7 G3 }2 F0 d" s1 T6 W) U; [把字符串str由位置pos起len个字符长的子串替换为字符串' ~0 k( J+ {/ d& {+ {
newstr并返回  
' O* O1 v0 y, v; P, I0 hmysql> select insert('quadratic', 3, 4, 'what');  7 E1 {  L. h8 Q/ c% w
  -> 'quwhattic' ' [$ k2 l. Q6 }2 _7 Q7 ]5 r

6 e" @1 G/ L& K# e1 Telt(n,str1,str2,str3,...)   . F+ m+ b+ c3 _& o% r* J
返回第n个字符串(n小于1或大于参数个数返回null)  
( l" W. z2 [  h/ Q" e0 Umysql> select elt(1, 'ej', 'heja', 'hej', 'foo');    P! {6 z- O; U* T) h
  -> 'ej'
  g: N: x$ C7 t  E; L9 Q- [mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  7 _7 o# [1 ?" @: {
  -> 'foo'
/ \$ N% S/ i4 g1 m9 d" {8 ]1 z; |
1 i& k: U1 b3 p' ^8 zfield(str,str1,str2,str3,...)     N+ `0 z$ U" E8 h9 ?' q. C( g
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
: ]& i. ]3 s$ ^5 `2 M/ ?$ h& ^mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',- E- O* m! j2 r9 v* c; V( c
'foo');  
1 O  `; I' ^, E7 F' T  -> 2  
+ I" t! s) d  Z# v5 a& H% }mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',) s, R2 d6 A. E
'foo');  3 ?% T: y8 `# }( f1 ?5 h
  -> 0  7 T1 e3 q. K4 H& Q$ R. X

% ~" Y4 \: j6 d7 I% ?find_in_set(str,strlist)   + M$ W6 |  g" \5 b( n, x
返回str在字符串集strlist中的序号(任何参数是null则返回/ _- E/ X% c+ G+ _& W9 a" u
null,如果str没找到返回0,参数1包含","时工作异常)  # _+ [' B# @$ {4 z. }
mysql> select find_in_set('b','a,b,c,d');  
+ r$ [! n. |6 Z0 K  -> 2  
6 A) p. b7 k! t1 Y   4 T$ p3 b- t$ f9 S4 }
make_set(bits,str1,str2,...)  
% _; H9 J2 m1 ?! K( T把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应8 @" R' r5 x9 ]8 a: R
位置的字串选入字串集并返回(null串不添加到结果中)  
! \8 |1 H& ^( O5 `; H8 omysql> select make_set(1,'a','b','c');  5 O2 X" O0 W- ?* r0 ^
  -> 'a' ) |9 G2 t# t  n! N, F' J0 P
mysql> select make_set(1 | 4,'hello','nice','world');  / D* `% B+ M! y' \# n2 \8 p
  -> 'hello,world'
) [2 k5 g9 O; S  X2 k/ ~mysql> select make_set(0,'a','b','c');  
1 Y4 o" a: G7 M- V! l- y  -> ''
. i6 y# n: e+ ~$ \: a
; E+ p! |! K2 G; }- |9 eexport_set(bits,on,off,[separator,[number_of_bits]])   . S: J* n! y$ m3 O+ c
按bits排列字符串集,只有当位等于1时插入字串on,否则插入3 A6 K& z+ L  a" D) c
off(separator默认值",",number_of_bits参数使用时长度不足补0
& i) H# Z- u9 D1 N$ y而过长截断)   
" c6 b' R  I. E3 M- d2 ^: b2 Ymysql> select export_set(5,'y','n',',',4)  % v+ Z  X, [: l( \9 H
  -> y,n,y,n   
9 ]+ W4 M9 `) Z& I' E
% P( p. _3 W6 S" flcase(str)  % ^+ x2 e. p2 D; ~) W0 ^8 A1 i: Q
lower(str)   + c( g8 j9 `+ I- N& ~
返回小写的字符串str  $ Z( U0 S# _( G, E
mysql> select lcase('quadratically');  
  y2 j4 ^; h/ I6 G; C  -> 'quadratically'
5 D1 b: T, r  ]8 P9 y% a0 `' G   
, N) O, z+ D8 a. t1 d% eucase(str)   
7 A+ O, ~. R' l0 W; wupper(str)   $ G+ p! o6 S9 a0 `7 \4 K9 \0 `
返回大写的字符串str  ) o# }$ D3 V+ k7 E/ l1 g
mysql> select ucase('quadratically');  ! e: U  R8 e8 O7 \1 A) h; U7 b- y+ H
  -> 'quadratically'
1 y9 `- J! {8 q- D4 s
; o/ c5 t# r) i8 s5 {load_file(file_name)   
3 r1 ~: i3 E9 B4 g读入文件并且作为一个字符串返回文件内容(文件无法找到,路径3 d8 p5 O4 V% u# \8 O- z8 \
不完整,没有权限,长度大于max_allowed_packet会返回null)  - K8 Z3 U1 u2 `) g
mysql> update table_name set blob_column=load_file0 b% u  ?8 @5 \* Q% x5 T& e
("/tmp/picture") where id=1;  
/ E' P6 v; g9 a7 ^% Q3 w 5 O) O2 n! Y" q; I# v
2、数学函数" u; B5 G4 ^( ^; u% m' f
abs(n) 1 ?% \4 y  z1 i5 l
返回n的绝对值  
/ \/ b5 Y. w5 p! h; Bmysql> select abs(2);    $ l3 _1 g! f: \# |
  -> 2   
5 m: |4 }! t6 q, e# lmysql> select abs(-32);    ( p/ d- P/ ?7 `5 `8 O
  -> 32   
- D! {7 m  M( Q6 S& Q+ t   
- r% l* H7 A) ~  h8 j- Ksign(n)  ( J" V( ~/ j8 l- c9 Z
返回参数的符号(为-1、0或1)  
4 j9 l+ I# [  @0 amysql> select sign(-32);   
' A/ r3 [' C  o- j" G3 G) Z  -> -1   
5 ~) g) y& G: \' Y4 f0 Imysql> select sign(0);    " @3 Z. Z0 {' B. S$ ]- s3 r. @. T
  -> 0    6 `* u6 j8 s& `
mysql> select sign(234);   
: R& {. ~( M5 q9 u  -> 1   
$ W8 x: g( R  ?4 h6 Z: M+ I- w   i# [& @* ?7 \" |8 ?
mod(n,m)   
7 G& x( J" ]% D' l取模运算,返回n被m除的余数(同%操作符)   
; b' x( T. s6 Q8 O0 A$ \7 dmysql> select mod(234, 10);   
& {0 \1 u) R1 x  -> 4   
  Q+ i; u" L: }) J& bmysql> select 234 % 10;   
: }6 M. g- Y9 ~5 |0 x% i7 @4 b  -> 4   
& i" o: l/ w. c% gmysql> select mod(29,9);   
' c6 H$ P  |6 ^- ]$ m  -> 2   
; a8 E. s4 q4 P: ]/ W: ?2 W: G
6 C. U/ H8 l0 x1 |$ `floor(n)  ) u/ G0 R) l+ u8 f; Z
返回不大于n的最大整数值  - F9 o9 V6 ?0 Y! Y
mysql> select floor(1.23);   
1 J$ c: f9 D3 r8 e+ z* t  -> 1   
2 ~1 W+ F; o- T( ^- |7 x4 e. tmysql> select floor(-1.23);    - p5 P! x: l/ J8 L+ A( ]6 V0 R
  -> -2    7 N2 v; ^1 [1 g. ~
" F# E1 s! ]/ P# ]& M( n' x3 s! s( |
ceiling(n)  
0 i% k% ]' ?2 \1 L6 }返回不小于n的最小整数值  ' T2 [$ p& W; B/ L, d# p0 k
mysql> select ceiling(1.23);   
* F; U6 c" E* V/ G8 {  -> 2   
' h, c) o% p* bmysql> select ceiling(-1.23);   
/ o: {5 l. J; B0 E: s1 Z# k  -> -1    $ l/ W: V( m) X' a
( K; K# D8 y3 a+ I" ^8 _
round(n,d)  
, j' ^" n8 _8 a4 e4 W# I$ ~返回n的四舍五入值,保留d位小数(d的默认值为0)  
$ h& b5 V4 M3 K. K3 T# {! Tmysql> select round(-1.23);    2 x% t5 J. }8 g+ S7 v0 S
  -> -1    & ^2 n8 V( z1 i" T
mysql> select round(-1.58);    $ R6 P- x" n6 a! C9 C* x) U8 F
  -> -2    " I( F; A0 e4 u' t. E
mysql> select round(1.58);   
- X: R# v/ U* T  -> 2   
% x1 h: O, y; W7 zmysql> select round(1.298, 1);   
7 x6 T- x6 l  s. k7 A# Z, Q  -> 1.3    2 W: E$ g6 A) l3 S$ Z9 y
mysql> select round(1.298, 0);   
& R% x3 P7 s+ x$ E  -> 1    ) n% S, ?  D9 D# \" U9 E$ d# C, S

0 ~4 j2 a6 D# m" u1 zexp(n)  % o# E: k1 i: h+ u% R
返回值e的n次方(自然对数的底)  ' T* d( `/ V/ `* v4 ?4 d
mysql> select exp(2);    7 r1 n. I: y* y9 E8 p9 G
  -> 7.389056   
; ^, a2 c: u. [mysql> select exp(-2);   
; v4 O% A2 e, n: b4 H, I  -> 0.135335   
9 L/ \" d. X4 ~' L 6 N% F' u  j) \& g6 ^& z% X
log(n)  ) b  x$ J( B) ?1 V- P# i
返回n的自然对数  
! I! K- P; G( g( Omysql> select log(2);    " f9 A# U# {6 q$ E+ t2 t2 ^5 L! `
  -> 0.693147   
/ c' V0 w: m1 V& hmysql> select log(-2);    + |5 x) g  f2 M8 t
  -> null   
3 X1 T; i3 ~# C7 a6 E 2 p5 O( r1 q% @! H8 D
log10(n)  
" M& s+ L6 n0 \  `* A0 S. L返回n以10为底的对数  
4 Z7 V3 \! @+ n& o& Fmysql> select log10(2);   
. {( U* Q1 Y- ^  -> 0.301030    " ?- ^. z, n1 I
mysql> select log10(100);   
5 U  Z5 ?) d! K1 g  -> 2.000000    : P5 M+ p2 {+ ?- h: C( m; A- ^1 P& F
mysql> select log10(-100);   
6 \5 L" I; C# p+ {* M  -> null    3 _" |: R6 ~& F" P- u5 N  W8 {

& x+ B# U# \. x" f, i+ _pow(x,y)   
) c0 H; p3 u- c* _1 q2 U" }2 jpower(x,y)   
( i2 q% A1 W; J: k0 G/ m0 } 返回值x的y次幂  + k# B7 w6 I0 S% E! C
mysql> select pow(2,2);    , E4 I7 j( \; ~" F3 I0 x. m! \
  -> 4.000000    & P# a* N( Y1 C3 j8 z9 u
mysql> select pow(2,-2);   
* B- A+ S. o& r3 }6 S( u) L  f  -> 0.250000  / S9 s/ s" S* ~" @, @, e. M
* L2 _7 q4 ^3 {/ Q4 x- F& D
sqrt(n)  
# H+ e8 `2 `& h9 S/ D5 C' O 返回非负数n的平方根  * a4 a& G1 p8 p* ~
mysql> select sqrt(4);    4 l3 K% R0 U0 {% X8 H. U) Y7 Q  @& h
  -> 2.000000    ( p" _: L2 l6 K& s* Y" o2 B7 J
mysql> select sqrt(20);    7 M. B$ i7 B* ^! f
  -> 4.472136    / f0 Q. M8 Q! {8 I) R

  A( w5 u0 M& Xpi()    $ z3 v8 O: e2 M; c3 Y* d
 返回圆周率   
8 E* K1 k' b4 I6 R. dmysql> select pi();   
! e2 b% I  y- H2 x3 x! W  -> 3.141593   
4 M3 k# ]0 ~2 J+ X/ s 0 R7 [8 }5 m9 e  O7 ]3 ~7 s1 P" \
cos(n)  
4 m. A5 }8 i% S% O' i+ g 返回n的余弦值  4 I, h3 R; e# {$ t
mysql> select cos(pi());  8 V; }2 v7 {6 V0 n' V' a9 g
  -> -1.000000   
) v. q- p+ `6 _$ P" _' q+ p
' ]5 x9 A' o7 n: {5 L4 X3 Wsin(n)  
( T5 u+ q. p/ u( F' {" X 返回n的正弦值   
6 Q" A, |. m& K: Smysql> select sin(pi());    6 `8 }! H5 G1 k. x* ~/ Q. Q; J& m* P
  -> 0.000000   
3 r2 \. Z) h+ {2 `  L 4 b7 l1 n4 }+ d% f. `# p; J9 l3 O
tan(n)  
: F- Z4 C+ i& Q8 M5 f1 K4 C8 n返回n的正切值  
$ z& `" Y1 O# X( W% u) T! c5 dmysql> select tan(pi()+1);    ! p! v: p# p" }! B' N
  -> 1.557408   
: f( W7 G# e3 Z+ l& m
' ?! B9 [5 k& c' ]. Sacos(n)  
0 E8 v9 N5 Z8 n 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  6 H5 y: g% e, M+ i
mysql> select acos(1);    - B/ t. w( Q( k6 A! q4 P
  -> 0.000000    * X, `6 ]( E7 T
mysql> select acos(1.0001);   
7 R) n& \+ U( m  -> null    " ^9 F- }' H; N
mysql> select acos(0);   
' i8 U+ q$ O% @6 h4 r  -> 1.570796   
& z  Z7 D/ \) R+ i/ q - m, e- d. i& _$ D5 z
asin(n)  
4 V3 A0 E7 T0 X5 z! w返回n反正弦值  . s' \, l& n: a3 `7 q
mysql> select asin(0.2);   
  \3 \. z6 P3 ^  -> 0.201358    ) L, o) f  \& [. N6 m
mysql> select asin('foo');    / l  I" @4 G& I) G+ J- H
  -> 0.000000    3 v- ]0 y7 n( N* c; E! \/ _, ~" f1 ?$ c
4 }# c% [  U* E
atan(n)    t+ d; V' B/ ?
返回n的反正切值  9 r  V9 V& ]* V+ H, \
mysql> select atan(2);    6 I- U3 {4 W$ Q; z; x0 o$ z# b0 h
  -> 1.107149   
% n/ D" ?8 @9 k* Q% Y, gmysql> select atan(-2);   
6 `9 _+ Q& \: S9 C: i  -> -1.107149    5 R+ H# O- d3 `8 }+ p/ j% }
atan2(x,y)   
) g4 |* T7 l+ ?( t) h: w 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  
" V" W3 N- [  x- ?4 y9 P6 Amysql> select atan(-2,2);    2 }0 |5 C/ r( D/ R- @
  -> -0.785398    # H+ W) e/ ^4 \
mysql> select atan(pi(),0);   
! @" Y. X8 C% @* m5 a" m8 M  -> 1.570796    0 j" _# L6 A% w. o* r
5 B. n! k7 }5 z0 t: I3 z2 S
cot(n)  
) R* b6 D7 E; N" a0 Z返回x的余切  * z. f( q0 U- b: m( i! ?4 T
mysql> select cot(12);   
! a0 I2 T0 U  \4 }1 N! W$ k/ \  -> -1.57267341   
0 J( U* b: h* k, H4 a# }mysql> select cot(0);   
. ^' y+ Z" e5 G; b  -> null   
) R- B* z% \* I% Y : f$ Q$ b% z  o1 J% q
rand()  , c! n" g  _' a" v
rand(n)    
. w# d" K% w4 O返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值) ' y+ \# G$ ~, m9 k2 v: g9 F

! b& H; Y4 Q& a: l5 ~  R! wmysql> select rand();   
3 d/ V+ C( B9 z6 \6 g6 h  -> 0.5925   
* Z) k4 i! E. I6 s& omysql> select rand(20);   
, n! ]4 ?& ~: H  -> 0.1811   
- J" m7 M& J, x5 umysql> select rand(20);    0 r+ `0 H- }3 l$ d' V
  -> 0.1811   
' i: `: d  ?7 B* Kmysql> select rand();   
0 Z3 Q! N8 U0 O5 o9 @+ K9 B- h  -> 0.2079      _. R9 @( m  O8 O6 p  Z- |
mysql> select rand();    ( s- d* c. p9 G% A% u% f7 X
  -> 0.7888   
5 E$ I; K0 ?. y! t1 y7 z  W. F3 G/ E   d" ?1 R" X" _& U( F
degrees(n)  4 F9 O* z2 h- B# W
把n从弧度变换为角度并返回  6 z, t$ H# b  f% i3 j
mysql> select degrees(pi());    * X6 y6 m* x& n5 e! w2 W# N
  -> 180.000000    2 Y; ?0 s+ D; Y1 ?& E) J- ]# }6 \2 a' X

, g, w/ Z8 [& r* q4 bradians(n)
( N8 @1 L8 e& ^0 K+ A3 s把n从角度变换为弧度并返回   
+ `4 w& L) r; I0 ^. n0 {6 Cmysql> select radians(90);   
5 v% m3 H' T( H8 L: \  -> 1.570796    ! A* v& ~5 n5 W
( U2 s/ C% I( D
truncate(n,d)   
. D! U, @% h6 n7 r/ s保留数字n的d位小数并返回  * E8 z& g; b3 N6 t! |& I7 G
mysql> select truncate(1.223,1);    # K* y2 a8 _* A. w6 Y
  -> 1.2    $ x1 h8 M2 k. {% z: r
mysql> select truncate(1.999,1);    + O' S/ N3 L* R
  -> 1.9    & s# s$ W, h9 u! K
mysql> select truncate(1.999,0);   
6 R% T3 g5 }( G  -> 1   
* A( w. e1 [, x% ~) O  x 2 p8 t7 m% }' f
least(x,y,...)    4 `+ ?) t; A: x5 w
返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  - e) a" O9 T% q; @; Y7 z$ y+ w
mysql> select least(2,0);    5 R6 C; c3 M+ K9 y7 R& R  M
  -> 0    9 r0 U7 U" f0 I. U4 j
mysql> select least(34.0,3.0,5.0,767.0);   
) a3 E1 l+ c7 A3 i( m( w7 g  -> 3.0    ) }& d1 e* o: m( ^; ]
mysql> select least("b","a","c");    . g3 n& G' D0 ^- [+ C6 m- }
  -> "a"   
9 Z7 L% e( f1 L( w- O# i( V8 y # w& q+ q5 ~  r. l
greatest(x,y,...)    . x' k" {7 _$ `
返回最大值(其余同least())  ) f" g2 }: E) W+ M6 b
mysql> select greatest(2,0);    " x7 s- Z$ x* q# V" Q4 H
  -> 2   
6 u: x& F0 J/ ~* X7 d7 `! dmysql> select greatest(34.0,3.0,5.0,767.0);    1 C2 o1 V: x; }) c* H
  -> 767.0    : U0 L7 @+ |3 u- \0 a
mysql> select greatest("b","a","c");   
- Y, r6 O; S  M. M6 a/ z  -> "c"     
( W, j/ C/ v# P
6 t' I) w" Q0 Y* c3、时期时间函数
; E# B4 m( j7 m, {4 P; s, h* m' R  }dayofweek(date)   
8 Q/ b3 C- D: r+ D# T0 B返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  5 I  S: y+ b1 W4 i
mysql> select dayofweek('1998-02-03');   
' U8 M9 G) d% O8 k  -> 3   
; h0 ]0 W* b# j6 u( w : ~% p5 s* ]; [, h
weekday(date)   
4 C! ^3 P5 |* o' ~1 Q返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
2 h: h1 h  c' M+ w' T1 A# @+ C8 V  
. p" u9 ?$ Q. Umysql> select weekday('1997-10-04 22:23:00');   
/ m2 G" K# _0 \: }$ w  -> 5   
3 i5 v: v" l5 A2 x5 N( Wmysql> select weekday('1997-11-05');   
+ Y" `: C) Y+ x- D5 X  -> 2   
5 s4 d- f' q' f" q
( S7 D' h/ d) f" S' wdayofmonth(date)    $ {: l" ^9 U" z! d: ^) `  [, i; t
返回date是一月中的第几日(在1到31范围内)    " X2 }5 k8 F1 ?, B, N2 A
mysql> select dayofmonth('1998-02-03');   
- X( k- `% h5 S2 |  -> 3    5 y/ M9 _+ g- J
* ^! J8 o6 K% V" g8 i6 I" Y; A
dayofyear(date)    % P+ G( E. u6 X% Q
返回date是一年中的第几日(在1到366范围内)   
* K/ Y& w1 h" c8 R: K5 h7 Vmysql> select dayofyear('1998-02-03');   
0 c$ l' K3 w% F# c  -> 34   
" K. T5 C4 p: R$ g9 F6 d2 r, H 5 M9 O6 M, w# X" u* c
month(date)   
: z/ w* Y7 j) J8 ^5 R1 m返回date中的月份数值   
' M1 k! x9 j- x! i$ \mysql> select month('1998-02-03');    6 f# S' C' I. L. i5 x- K7 W
  -> 2   
7 h5 ^+ [, y  V4 p& r
; m# p8 L. S! B  @% tdayname(date)   
) r$ L; v' O2 j1 `; F返回date是星期几(按英文名返回)  9 T; r) p/ y( S$ l
mysql> select dayname("1998-02-05");    + C/ u8 Y8 l9 G- p6 [
  -> 'thursday'   
  w! T3 i6 b: x  b; d  f: j
0 X& A! x: \" P6 ]+ k% Smonthname(date)    # t1 [# [0 R5 U1 ?/ g  m* j. j3 O
返回date是几月(按英文名返回)  % I$ y+ Q4 I% L0 b, M) {# P+ z
mysql> select monthname("1998-02-05");   
. M% f5 [& y$ e$ H8 p/ R/ v! B  -> 'february'   
4 Z. i8 B) ]- I2 ~2 ~0 b' K: Z 4 q* z* z# O& M& L' |3 w" H
quarter(date)   
% m8 J: v5 M/ E, J返回date是一年的第几个季度    ( |, x: k6 ~& E( n5 L
mysql> select quarter('98-04-01');    3 b+ O: g6 \4 |$ j8 N4 S& V. k
  -> 2   
  D4 F( E1 ?1 v# } " V. m7 I, f- ]7 U% s9 e
week(date,first)   , g5 d5 l5 e5 \9 v: \1 Z
返回date是一年的第几周(first默认值0,first取值1表示周一是5 W' q9 Z" y- `
周的开始,0从周日开始)  ' d7 d. ^+ [- C: z/ D, [
mysql> select week('1998-02-20');    ) i" `% l* q  N( p! ]
  -> 7    5 p0 w! ^& W; p1 x* ?2 ?
mysql> select week('1998-02-20',0);    8 z1 E5 b' u+ u' X
  -> 7    ; j, @6 x" S/ x% n" [0 l! g6 o
mysql> select week('1998-02-20',1);   
9 a1 k0 G' k2 Z4 @  -> 8    , @5 v, R2 [3 M; j  p8 i

9 l! H& H* i( M! Q5 i5 |0 _" d* |3 {6 F2 Lyear(date)   
$ R, q1 i$ }+ m/ V返回date的年份(范围在1000到9999)   
" ]" T/ E1 ?7 c* _/ Xmysql> select year('98-02-03');   
) i4 O+ ]; h( R* p" Z& G  -> 1998    ( E, \4 m/ _. V! `" _9 o' W
: n" f, h6 l  d- V& G3 e% S9 y" }) k1 C- ]
hour(time)    
+ s. c* |4 ~5 M+ D5 i. W7 i返回time的小时数(范围是0到23)   
. ~2 P! u' j5 {  V9 \5 p+ ~7 N# Lmysql> select hour('10:05:03');    + t% {* S3 F+ p4 a) }
  -> 10    ' S4 e( D2 ?- J) B9 J, M8 j7 p

5 L9 {4 M  M  S7 c. \minute(time)   
6 J" W. s' K$ t4 U) @! t  L: N/ S6 ?5 b返回time的分钟数(范围是0到59)   
% @* S( a2 t; b( Vmysql> select minute('98-02-03 10:05:03');    # `  d  w# A: ]5 Z
  -> 5    , j' I3 q% m9 d

6 H3 Y6 U% [3 [4 E. Bsecond(time)    
' v2 M- B8 i. E8 ?- M5 Q1 N% m返回time的秒数(范围是0到59)   
! f% n' Z2 m: z# P' e/ ]# _/ Emysql> select second('10:05:03');    " X4 X0 V- E- x
  -> 3   
" e, n$ m- [- I2 j$ V$ D5 `# ]+ L( b & T: C5 x( A4 ?, Q
period_add(p,n)    : x+ b4 V7 p4 J2 o7 ?9 }" G7 _
增加n个月到时期p并返回(p的格式yymm或yyyymm)    3 f& Z0 q" R9 y: T
mysql> select period_add(9801,2);    0 m/ Z$ E' n: y' b; _
  -> 199803    . N: q: S" r* i% r/ S
2 `0 E& W# Z( ^' _1 Y7 X4 ]
period_diff(p1,p2)   
( y# Z4 v9 M7 `) f; [3 @返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  6 c- {( ~7 v6 c% ~- C( U
mysql> select period_diff(9802,199703);   
$ |- o4 z2 ?1 i5 N: a$ p  -> 11   
& e# |5 ]5 Z* r" I; U( V; f
2 Q% N" k9 W& idate_add(date,interval expr type)    H% [' O  g4 C
date_sub(date,interval expr type)    : j- d$ ^* Q4 e0 }4 j
adddate(date,interval expr type)   
8 E& L2 A7 F1 [! L3 K. w, usubdate(date,interval expr type)  
. n& j7 Y2 C$ P- w1 J对日期时间进行加减法运算  
6 i' A% i, t# q(adddate()和subdate()是date_add()和date_sub()的同义词,也$ l" n- P* O, k# h/ N9 H! |5 `
可以用运算符+和-而不是函数  
3 b( t1 r( c; F$ P& u+ l' z6 }; ]date是一个datetime或date值,expr对date进行加减法的一个表: _0 J' B' D! v* B6 m( g. i
达式字符串type指明表达式expr应该如何被解释  - ?' Z7 W+ ^! c! [# |0 Y& B" A$ I: j
 [type值 含义 期望的expr格式]:  / v  I- c$ Y: n. D- @7 Y
 second 秒 seconds    4 s3 w+ E3 b, o3 B7 y+ y8 `
 minute 分钟 minutes   
4 y6 i! d4 I8 E+ C4 n* R* i) F/ d; { hour 时间 hours    5 V8 D/ ?. `, F4 w+ K
 day 天 days   
/ h: L- O6 t" R: t$ p" m month 月 months   
; I! `! \2 C: I; j" Y year 年 years   
9 Z( H! b6 O, B7 b minute_second 分钟和秒 "minutes:seconds"    6 X$ e9 Z! {) n0 e$ D, B. p
 hour_minute 小时和分钟 "hours:minutes"    + B! w0 A( y2 G9 f5 C3 P
 day_hour 天和小时 "days hours"    # z; I( _! C1 S# R" g
 year_month 年和月 "years-months"    - ^& V' G$ A0 y
 hour_second 小时, 分钟, "hours:minutes:seconds"   
9 N+ g+ `0 d) _9 i% ?2 l) r6 [ day_minute 天, 小时, 分钟 "days hours:minutes"    5 x0 W$ v8 i9 {4 ]4 k" |
 day_second 天, 小时, 分钟, 秒 "days
. t2 m$ Z% P8 C$ u3 `  C7 U' thours:minutes:seconds" 8 @. d9 j% q8 `* c; X- j; ]
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个
! e8 S1 s# a" U6 Gdate值,否则结果是一个datetime值)  
0 m7 Q1 P* H% b; t0 ^# \ 如果type关键词不完整,则mysql从右端取值,day_second因为缺8 M9 B2 y" a% e5 z
少小时分钟等于minute_second)  1 }! r  R7 j% V" w9 J1 H
 如果增加month、year_month或year,天数大于结果月份的最大天
( Y4 L* d' P; g/ G' R) o1 H数则使用最大天数)    % x( ~# ~) `! e
mysql> select "1997-12-31 23:59:59" + interval 1 second;  3 K. Q2 X. e! K0 P  x
3 U; }# ~0 ^% ]6 y" P; E
  -> 1998-01-01 00:00:00    " S: p+ u7 n, i, a
mysql> select interval 1 day + "1997-12-31";    5 `, E: z# ]' E; O$ r
  -> 1998-01-01   
2 e; _: S# _# q0 mmysql> select "1998-01-01" - interval 1 second;      b+ H( X, v% L: E  Q
  -> 1997-12-31 23:59:59   
& x7 A( h: }4 |+ o, W, {7 vmysql> select date_add("1997-12-31 23:59:59",interval 1
- T, [7 z3 d' b+ i9 hsecond);   
4 c. U+ H0 }7 W7 H5 g  -> 1998-01-01 00:00:00   
8 ~) R# j, H* p# Q8 G1 [mysql> select date_add("1997-12-31 23:59:59",interval 1
# B8 w  B2 j5 ?day);   
# K, t& w0 R) v; L0 r  H7 N  -> 1998-01-01 23:59:59    9 h2 f1 |9 A* c8 y2 X  W6 w
mysql> select date_add("1997-12-31 23:59:59",interval
1 ~/ \6 U7 a+ ]0 }) A"1:1" minute_second);   
8 W6 {! H% e' U( c  -> 1998-01-01 00:01:00    . p: t6 B- z" v; _5 ?6 M: Y. [
mysql> select date_sub("1998-01-01 00:00:00",interval "1
8 V  z" j+ J8 ^5 o1:1:1" day_second);   
0 G3 V' a5 r- m8 @5 @* k  -> 1997-12-30 22:58:59    + b+ {! W! y" @! d% h/ t
mysql> select date_add("1998-01-01 00:00:00", interval "-1
3 E+ @4 x' C6 w4 X4 s, u/ S10" day_hour);  
* L. T8 U! q- Y  -> 1997-12-30 14:00:00   
8 G- s7 i0 y4 l  o4 ~& C/ C% pmysql> select date_sub("1998-01-02", interval 31 day);   
* V6 \2 T; A, j, x3 R: s  -> 1997-12-02    7 P+ G( P. M8 J- C9 z
mysql> select extract(year from "1999-07-02");    7 r( j( u% _' T7 F5 A# _! p
  -> 1999    " Z# l" o( S! h- F! Z" q2 j( F8 s
mysql> select extract(year_month from "1999-07-02
" z  J! z1 L+ ]% C8 P; _4 I. z# Z01:02:03");    : Z6 L6 c0 M% u" }9 _5 ]$ j0 X. [
  -> 199907    - r# g5 d$ d7 O' j* p6 A# L
mysql> select extract(day_minute from "1999-07-02
0 `3 P; L2 F# u3 M  U/ m9 `01:02:03");    & D6 w$ R1 p& m- Y9 f
  -> 20102   
5 ^) W4 ]$ I  y8 I9 L$ c$ w + u+ d; G* K- u: X1 K& a
to_days(date)    7 h+ ~, f# m' v; `7 ]4 j
返回日期date是西元0年至今多少天(不计算1582年以前)  # p% N8 {, d& [: O( x) N" B
mysql> select to_days(950501);    9 u# e! D0 Q$ [6 x" D# S
  -> 728779   
3 w0 \) P5 F4 |# smysql> select to_days('1997-10-07');   
- H1 z4 {' e& Y/ W9 K  -> 729669   
0 U7 N7 _# s( X " |& B, |! v- B9 y$ P- Z+ d
from_days(n)    . e' L5 _* ^' V3 B0 m
 给出西元0年至今多少天返回date值(不计算1582年以前)   . E+ e9 r& x0 r( B2 _. ^
mysql> select from_days(729669);    ) T! w; v2 W& x0 ]% p
  -> '1997-10-07'    , ~- v4 o; x- |6 L0 U

. V! `! f  {" Q% Odate_format(date,format)   
+ \4 u$ ], ]; u+ w8 g1 t0 X 根据format字符串格式化date值  
: Q9 z2 E: x5 `8 ?; Q# y (在format字符串中可用标志符:  8 P( s, L) e7 V: J' F  ?5 h
 %m 月名字(january……december)   
4 |; M2 n9 S# X9 C1 n %w 星期名字(sunday……saturday)    % `7 ]7 c7 y0 {9 C7 U
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    ( C1 ?9 H, C2 S
 %y 年, 数字, 4 位   
0 D! |: S6 w4 ~' P7 ^5 W9 p; r* b %y 年, 数字, 2 位   
) T! d0 n6 F0 l %a 缩写的星期名字(sun……sat)   
/ b+ U' f8 Q0 @6 x8 K %d 月份中的天数, 数字(00……31)      {- G& e0 g$ |6 Y* S8 K
 %e 月份中的天数, 数字(0……31)    # h5 o& g, }, @" p" k* U4 K, ^
 %m 月, 数字(01……12)    2 U8 e2 m( j8 S7 \
 %c 月, 数字(1……12)    9 M3 {/ R/ P) y, u; K
 %b 缩写的月份名字(jan……dec)    # ?- \) h) C+ ?; `$ Y6 h
 %j 一年中的天数(001……366)   
* B9 Q1 u. r) g6 F+ A% } %h 小时(00……23)      R1 G$ z, t4 X) k2 @$ ^
 %k 小时(0……23)    : g3 X4 p/ s7 z* C5 x+ s
 %h 小时(01……12)   
5 j% D6 \, _- O' X- W$ X" W %i 小时(01……12)    + c  ]2 E% j# S6 X; F' P
 %l 小时(1……12)   
* @- ]: O5 K, u" q* o  f* @* u; | %i 分钟, 数字(00……59)    3 r) v3 Y4 e# b4 f
 %r 时间,12 小时(hh:mm:ss [ap]m)   
, O* o6 ~: ~" t %t 时间,24 小时(hh:mm:ss)    ' s1 E# d' F- N3 t0 ~7 x8 D
 %s 秒(00……59)    - p# c: v. _4 v* D- e( J
 %s 秒(00……59)   
9 y: z/ N) e! H7 s) D %p am或pm    4 L/ Z4 }" |  g$ Z
 %w 一个星期中的天数(0=sunday ……6=saturday )   
/ b6 n5 c8 z$ k9 P5 y %u 星期(0……52), 这里星期天是星期的第一天    7 J* h- x4 J! C4 N' M" s
 %u 星期(0……52), 这里星期一是星期的第一天    , `' A7 ]1 u( W1 I- p
 %% 字符% )  ' Y& J7 ?! t$ ?, H! V) O
mysql> select date_format('1997-10-04 22:23:00','%w %m %
5 n2 ~. C: t* s( {. ~* ry');   
4 z6 u8 m2 n, t2 F  -> 'saturday october 1997'    ; ?, D7 A  q% v
mysql> select date_format('1997-10-04 22:23:00','%h:%i:%' r. ]" e' K3 k0 r' t/ N
s');   
% ]7 V7 @. V# \+ j( x+ c( a7 w  -> '22:23:00'    , b+ j- k+ F/ e; @& E% x
mysql> select date_format('1997-10-04 22:23:00','%d %y %a
" c  B9 g9 X* Q$ K1 N3 L%d %m %b %j');    % q" ]" o! ^% Q) ?7 F! W) o7 l4 a7 M
  -> '4th 97 sat 04 10 oct 277'    3 I) ~5 l/ t) W
mysql> select date_format('1997-10-04 22:23:00','%h %k %i) F, n! ]5 L' H: d4 K
%r %t %s %w');   
  Q4 R# f1 y) l1 h4 |  _; w  -> '22 22 10 10:23:00 pm 22:23:00 00 6'    8 s; m0 X2 u# x+ W. C: x
' `6 H  q3 l+ I+ P; T7 y5 ?. U/ I- j
time_format(time,format)  : J# J3 e1 B8 F' |
 和date_format()类似,但time_format只处理小时、分钟和秒(其( x# H  O5 G  c6 @  x. ?! M
余符号产生一个null值或0)  ( a: X; c* D+ \4 k+ \; @* M7 W

, N, @, y, Z* Q$ _1 z7 ocurdate()     9 a( Y  f9 v. N$ Q( p$ U* H
current_date()  3 Y, W+ {* J. W. j, K: |# r% U
 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所' [9 C, W% H0 [
处上下文是字符串或数字)    , U* `$ Y! m  ]6 N8 z1 P( k! y
mysql> select curdate();   
2 r4 ^: y' @2 g6 e6 {  -> '1997-12-15'   
' `3 c$ U4 L: p' a. L2 Omysql> select curdate() + 0;   
1 t! N3 |% l" v2 d% `1 H- j" E  -> 19971215    * s7 r0 S) Z+ {2 g
; F6 p9 p" ?* F) W8 a
curtime()   
- r2 A/ G: U6 R( b+ a( pcurrent_time()  - S! b8 `5 k' P0 d" d. v* {7 @
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上  h' X* O$ I' D5 O1 L
下文是字符串或数字)      ) i9 r8 h. H3 u9 \' H
mysql> select curtime();    6 r  ]8 t0 [9 N! Y2 ~2 @
  -> '23:50:26'   
" H7 z+ E% r, t: w: g4 lmysql> select curtime() + 0;    5 Z/ B' k! `6 t) S1 O7 t7 R% d' I- E/ T
  -> 235026   
' i/ K! |/ l, I
! H* x0 W( }  R8 N6 vnow()    
0 [# O, p9 ^: [- ?3 ]+ Q5 Fsysdate()    
1 u% I( [* V' @+ Y9 }/ q, B3 {current_timestamp()  - T( ]5 n7 y1 X* ]
 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
1 R1 G3 w0 D( a# [6 s6 }时间(根据返回值所处上下文是字符串或数字)     : P! N2 q8 I# z, k. g2 r2 E
mysql> select now();   
; o  K- \# _! O* j  -> '1997-12-15 23:50:26'    . i9 u1 f3 s& U- |
mysql> select now() + 0;   
0 c3 e6 E+ @' U1 Y3 k" _% I  -> 19971215235026   
+ o$ R0 V6 \3 z: q0 Z. s6 O2 R: q
, W' Y' v' S: C/ }unix_timestamp()    8 [7 m5 c/ }1 t! w, `
unix_timestamp(date)   
' M3 h. i/ }6 t! A8 R返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
: d. q9 ?4 K+ E数,date默认值为当前时间)  8 h# V' b5 S2 i. y: H
mysql> select unix_timestamp();    9 B9 v2 \3 I5 w5 w/ M
  -> 882226357    4 [0 d; a$ l0 o
mysql> select unix_timestamp('1997-10-04 22:23:00');   
( a- O* i. ]( }1 X! D/ k0 J  -> 875996580   
5 C* Q9 P$ r7 N$ L & C) J% |& F5 H. w) h0 o0 h
from_unixtime(unix_timestamp)    . G9 g  \) B) ^6 _8 U
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的9 c2 G, v) U7 `
值(根据返回值所处上下文是字符串或数字)     
& A. q8 s8 g* T8 x6 `* n: v2 ^$ m; @mysql> select from_unixtime(875996580);    1 J5 V$ c. t! Q1 |5 l( W2 m
  -> '1997-10-04 22:23:00'   
  j: B0 Y! S5 l5 }& e% L% T7 Mmysql> select from_unixtime(875996580) + 0;    3 }8 n$ Y0 B, a) t$ d0 B
  -> 19971004222300   
2 n! m0 K/ K+ e$ u# h' q4 B7 F0 u
3 b* y" X4 M5 G6 N$ ?from_unixtime(unix_timestamp,format)    ( H, Y- b1 I; H: }: k: L
以format字符串格式返回时间戳的值  
% X! w3 y- N7 r% V5 C: mmysql> select from_unixtime(unix_timestamp(),'%y %d %m %2 @$ T2 W) \- e8 l0 o& M
h:%i:%s %x');    / O! ]& N7 J8 D+ s& G% T
  -> '1997 23rd december 03:43:30 x'    9 S2 L4 N8 z0 [, @9 G! ~# v2 C
" D! S' z+ O/ k! q, v
sec_to_time(seconds)    6 |5 e4 I9 m2 A" ~3 V- n5 m
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     / k; K- Q( Z$ g0 ?; V5 t' D
mysql> select sec_to_time(2378);    1 s4 L, x. q) d# o
  -> '00:39:38'    : g& F1 n" w8 ]5 I' K) p3 @: C
mysql> select sec_to_time(2378) + 0;   
  f' d  _* Z4 o# x  -> 3938   
% N3 q7 {! L. c- E. P& K$ H+ `' n5 ^7 E2 S & m! X; i0 a4 Y( B! J" Y
time_to_sec(time)   
3 }# l% D/ Y9 {* _/ h  t$ U返回time值有多少秒   
! x0 Q0 ~: [! ^9 y0 nmysql> select time_to_sec('22:23:00');   
( q7 w# E; T$ o* {  -> 80580    9 a2 r. ~* M3 q  P: A
mysql> select time_to_sec('00:39:38');    $ a/ C* O: s) P4 L* ~% F8 y$ B
  -> 2378 % K0 @4 H9 Q' ?5 G9 B; r
& D, K7 y6 p% g# s$ y* C& y, b- P
转换函数6 p( S+ [4 B5 T
cast
/ V# R. W! L/ {9 h7 c7 U用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]
" D3 s5 x- O" P8 i, I5 B' I实例:select cast(a as unsigned) as b from cardserver where order by b desc;
( R0 K4 |$ o- ^& [: u; sconvert:
7 i: V( f9 u( R4 {/ [* d1 [用法:convert(字段,数据类型)( S. V& ^% o+ L5 |% ^2 o
实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

. y' H5 ]6 f( q2 l% _
回复

使用道具 举报

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

本版积分规则

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