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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
1、字符串函数
) C* M) Z0 L* f+ rascii(str)   8 a6 T- w& K% u1 J0 U' ]7 B& g7 T
返回字符串str的第一个字符的ascii值(str是空串时返回0)  
# M7 w3 q7 x) lmysql> select ascii('2');  
8 z; v% l% e- Y! P' e  -> 50  
' k" j+ e$ |  Q7 Jmysql> select ascii(2);  ( Z6 ]9 l  e) i0 W3 L! I+ x  N
  -> 50  
5 ^# m1 i6 I# F, V: nmysql> select ascii('dete');  
0 n# f/ _$ Z% W. b9 w8 c  -> 100
( ]0 @% T0 G+ U6 O
ord(str)   & s0 }! D% c" B7 D/ T
如果字符串str句首是单字节返回与ascii()函数返回的相同值。- M4 l$ ?0 c& B: E
$ @- ?! c6 X9 H
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  : `! Z' R& I3 |7 L! X
mysql> select ord('2');  
9 [, W# l0 R: O- b+ z  -> 50  
+ D& Q+ ~2 m3 a1 j2 E; z! ~   
  g, h" F+ }& }. N- gconv(n,from_base,to_base)   
1 A  l/ n( P7 s) l" b. h对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
# Z9 l! T: A' ?' Y) S* Gmysql> select conv("a",16,2);  
6 N* [& S3 x8 h( Z, A1 p  -> '1010'
. V) i  i3 e2 \: H) [: tmysql> select conv("6e",18,8);  ! r( x' @) H" Y& l# S
  -> '172' - q3 O; `8 Y" ~: W% k' Q9 a
mysql> select conv(-17,10,-18);  ; i* n: M7 G: J' e0 x
  -> '-h'
3 y7 f5 P7 O  d, d8 L* Hmysql> select conv(10+"10"+'10'+0xa,10,10);    D/ P$ C9 f) e7 m, J
  -> '40'
+ a! K1 _# O2 ?  t# ~% e: N5 P- D: \   1 R* O) J) X7 h/ e
bin(n)   ( J$ _8 ?# X' X
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  : r; U2 k7 O; E
mysql> select bin(12);  
2 T& m2 _( M2 H0 m. T  -> '1100' + s$ G. T9 i( G. Z, a  q- Y$ Q) @

' B. i& }3 ]* ~- A. T/ M( D! n' ]oct(n)   0 o, q* {# v" S$ S) R
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
1 C" x1 W6 B9 f: _" P$ Rmysql> select oct(12);  2 F& \2 X: |. l  }0 s3 p0 X4 p; a
  -> '14' $ {" _9 U) D+ X1 W" u6 J
   ! w; z' p  b: @4 r% u3 e5 k3 Z
hex(n)   
% ~; K# X; f2 r! w4 v, F把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  
7 }% t( n# @0 @* `+ smysql> select hex(255);  
: \# Z1 l4 ]2 U  -> 'ff' / y5 D  P5 X: V7 F9 f/ S' Y- F
   
7 P7 W6 b0 r7 Q6 |* ^char(n,...)   8 t: Y' N- T$ `1 B. H7 M
返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   6 }- G- ?; i, x
mysql> select char(77,121,83,81,'76');  
8 C! G* j# |7 B6 G  -> 'mysql' , ?& p; ~/ b& C2 C
mysql> select char(77,77.3,'77.3');  ) e3 T4 J) `7 b( D: ^0 o) a  z
  -> 'mmm'
/ @1 w5 G, {7 K) G3 c$ I   : _' ?- e8 E% A3 E7 L! a
concat(str1,str2,...)  
2 `: G* [0 T/ M2 M把参数连成一个长字符串并返回(任何参数是null时返回null)  
# c1 j: {8 x& k: omysql> select concat('my', 's', 'ql');  - ?6 F2 Y0 B; r' A) A
  -> 'mysql'
" N" Q- X3 S, W3 o4 ]mysql> select concat('my', null, 'ql');  0 H* F; b; W. B
  -> null + `4 y* s. l/ j7 W5 ]
mysql> select concat(14.3);  
8 M6 R. E, T3 O5 u! J# P! }  -> '14.3' & G4 u5 h' `4 k- ^! H
' T6 W: M7 s# }
length(str)   . Q( E! _- l) C( D: j+ P2 B+ q% `
octet_length(str)  
) J7 k; m; V) @( @char_length(str)  
& Y; f: g2 h) k. \& `7 bcharacter_length(str)  ) ?1 @: Q1 n$ e  Z8 P7 X
返回字符串str的长度(对于多字节字符char_length仅计算一次)$ G& f2 I* ^$ ~% f
mysql> select length('text');  1 {5 ^' \) y7 i8 I2 V# q
  -> 4  7 N: `4 K0 s4 K8 v8 O( \3 ?9 Q
mysql> select octet_length('text');  
; u( F' o6 C, o, T! Y# f! I+ E5 d  -> 4  
* }8 P2 \5 p+ A4 ^
1 f- E) Q) Z! {7 ?, h4 Q- H" Nlocate(substr,str)   # }0 \% t+ f1 |, M& L
position(substr in str)   4 |9 }; w! _0 X& z! R* F& u
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)    B3 [& u: h1 o6 U8 G+ q! m/ s( O
mysql> select locate('bar', 'foobarbar');  . |( z; c, _- L% x: L. r
  -> 4  . l1 o$ D- n' b
mysql> select locate('xbar', 'foobar');  
1 K) a9 u' i) ?2 i7 F2 @  -> 0  # K- ^( L; ^/ t! r; Z
   
2 K; w/ ^' L# T1 N2 V" j8 wlocate(substr,str,pos)
: q. H5 J1 a0 y5 r* X. `: [返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
: v% g9 U. O4 x. _3 fmysql> select locate('bar', 'foobarbar',5);  1 G8 E! i7 d; e
  -> 7  
  M3 Q  X" a( J8 s- ^ 6 {4 S$ |) R) v! D
instr(str,substr)  
7 [. t2 Q, t& y' o* }3 \返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
2 P' g( i) H  Z9 u, r! Y- V, [mysql> select instr('foobarbar', 'bar');  
% d' P4 ?3 m, b  O  -> 4  3 W+ R8 t+ ^0 s( z& g
mysql> select instr('xbar', 'foobar');  
' V* d+ t9 b, o: w' e  -> 0   
  g7 t& L# q! z+ ~ ! Q- m) X0 G4 \4 S; q2 v1 G
lpad(str,len,padstr)   
7 Z# i2 A- m" Q9 A' @" i2 T用字符串padstr填补str左端直到字串长度为len并返回  / E4 [) s( f& ]
mysql> select lpad('hi',4,'??');  - i5 G, g/ M8 g5 {3 ?
  -> '??hi' 6 q* Y/ u. Z/ Y; z7 ^# P7 t
   " T% ?. l0 @8 x( [0 i
rpad(str,len,padstr)   
! p4 |9 w4 z( M4 y, Q0 R用字符串padstr填补str右端直到字串长度为len并返回  : @# S  m: K. J: S5 d5 q
mysql> select rpad('hi',5,'?');  8 A) x& M( t! I+ V: T% R* U
  -> 'hi???'
. Q4 y! V3 q0 R$ G2 q+ } / j% a0 R* n2 d5 x# S
left(str,len)   
0 e; C: E* S' f9 e, u返回字符串str的左端len个字符  6 H8 Z9 b9 e, ]
mysql> select left('foobarbar', 5);  ! m0 R. N3 d/ o2 _
  -> 'fooba' - Q2 [, _: R; M4 l- N
+ f3 R1 H, R+ h: T( b7 @
right(str,len)   
) l& [+ c% |! w: Q, P" `" P返回字符串str的右端len个字符   
! q4 @+ `: N# [: n5 R& B: n# rmysql> select right('foobarbar', 4);  
4 l/ L& n8 N4 N0 ^1 t9 h  -> 'rbar' 3 D" Z! s; k8 N7 ~- N  Z+ ?
8 K% j. C3 [  ^3 c# G
substring(str,pos,len)   
3 p% Q7 J* n$ ^1 Lsubstring(str from pos for len)   
9 q+ m7 e" B- Wmid(str,pos,len)   
4 Y) h0 d. R- T- L返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
0 o; f# R- x! U6 z8 z% B  -> 'ratica'
# C  V; Y4 m" s! t/ A: t) |* D ) e8 J' j6 N6 D* J' R
substring(str,pos)   1 Q  M3 k' p+ n- d9 V& `
substring(str from pos)   7 l" O0 z  ?6 p7 w  l( |4 _3 T
返回字符串str的位置pos起的一个子串  ) S( b5 E5 v3 ~. h
mysql> select substring('quadratically',5);  
. u# T0 K( h6 l  -> 'ratically' 5 M: e; X9 D( W( b7 e
mysql> select substring('foobarbar' from 4);  
: `/ ?& F5 V% ?6 ~  -> 'barbar' / Z- |3 J& X$ _9 c
* J3 i: f# Z, n0 N, I9 m5 e4 z
substring_index(str,delim,count)   ! {" r0 u" ^8 ]+ m
返回从字符串str的第count个出现的分隔符delim之后的子串4 W  F3 L2 M; {- p
(count为正数时返回左端,否则返回右端子串)  
3 w" \5 d; I3 K8 |+ L! y% d! gmysql> select substring_index('www.mysql.com', '.', 2);  7 J" A4 |7 N9 Q& m8 z6 s8 T5 r
  -> 'www.mysql' 9 o9 |# z9 m6 o- O/ Z6 |: h
mysql> select substring_index('www.mysql.com', '.', -2);  2 c# k, n% l, D" h6 U
  -> 'mysql.com' : }; q- w; }0 U  K$ E/ H
0 b" X5 ?4 U2 n+ p" L
ltrim(str)   
, p" _4 e; X; V返回删除了左空格的字符串str  9 t/ T6 @2 e- `" t% ^, S8 j
mysql> select ltrim('  barbar');  ! p+ T- H# r0 g, ^' n
  -> 'barbar'
# @8 u0 \" B% c: S- G
1 h; \  I# |% b" n( @3 o" G# nrtrim(str)   
4 z# A9 ^" S$ r返回删除了右空格的字符串str  
( f' \. r% r8 d  Zmysql> select rtrim('barbar   ');  7 v( D2 b2 I+ `' D. X
  -> 'barbar' + I5 L7 K. A2 P+ w" r/ A9 f
# l/ W% O3 f0 ]; O( H$ g
trim([[both | leading | trailing] [remstr] from] str)   . l9 A. b' G" Q* g! Y0 U
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
2 p& ^3 l$ _9 ~7 gmysql> select trim('  bar   ');  
& R2 M9 ?" ~/ ^- Y. {  -> 'bar'
  T8 G1 `- p$ J+ Omysql> select trim(leading 'x' from 'xxxbarxxx');  
$ @/ h% D; x  E4 V; R  -> 'barxxx' 6 [/ ]' f; E* }9 E
mysql> select trim(both 'x' from 'xxxbarxxx');  ( n# M4 Q4 I, k) g- ]: j
  -> 'bar'
% X7 u) b" L: C; a  Fmysql> select trim(trailing 'xyz' from 'barxxyz');  ( c! V! N; }& i7 [: C1 d
  -> 'barx'
8 {3 r: R! ?: B
6 u9 A& V3 q' P: [  N$ c3 ksoundex(str)   
* K+ [" o+ s: U返回str的一个同音字符串(听起来“大致相同”字符串有相同的
  I7 G8 Q3 N) ^* p$ }同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  
0 R4 Z1 Z; E; zmysql> select soundex('hello');  
' l; D: j$ G, r, Q: z  -> 'h400'
7 x+ ^( J( O6 V6 z4 `" bmysql> select soundex('quadratically');  , Y6 F; x+ s5 c& h+ X; G) R. ^
  -> 'q36324'
/ B: A/ B) u1 f! `1 V, J; c   
6 E5 E+ u& j' b: b6 o' u8 Q7 O! T; gspace(n)   ) P, M# D1 [4 ^
返回由n个空格字符组成的一个字符串  ; P# i' N* X5 t
mysql> select space(6);  
1 t& s  B& ^4 o  -> '      '
2 |3 G: g( |2 H' D9 o5 p   
4 z' J- h) q3 N/ xreplace(str,from_str,to_str)   
5 ~2 |" c2 |5 W% y9 V: ?用字符串to_str替换字符串str中的子串from_str并返回  1 j6 B: r/ |% H3 {
mysql> select replace('www.mysql.com', 'w', 'ww');  
0 z9 y6 V1 p) }# p- h  x6 }/ L& t6 S  -> 'wwwwww.mysql.com' , b' Q+ H- ]. r; V5 g

* ?4 o  H+ _, h# n+ l' M# F8 Rrepeat(str,count)  
2 A4 _* E3 i: J6 m% R5 D返回由count个字符串str连成的一个字符串(任何参数为null时) u: W* v% j4 j3 R0 [, c& b) J. \; \
返回null,count<=0时返回一个空字符串)  . C4 L2 p  u( b0 c9 @2 M
mysql> select repeat('mysql', 3);  * f) p6 x" m/ y6 B# j$ o
  -> 'mysqlmysqlmysql'
# m$ s& N/ ^, t  e   - p$ D& `  W( ~3 c
reverse(str)   9 p+ a0 X! x- e. h
颠倒字符串str的字符顺序并返回  
6 V) |/ s3 W, a" P9 Wmysql> select reverse('abc');  3 y( Z. n& ]" M& v6 }0 u
  -> 'cba' + o) i1 p: \) f  {( w4 J& z7 g
8 {& [& ~/ [8 ?& P
insert(str,pos,len,newstr)   
9 ?; c& U" t$ r+ Q1 H9 l7 G; `* K# s把字符串str由位置pos起len个字符长的子串替换为字符串
3 A7 ^: _8 v2 p' v0 jnewstr并返回  
! {- j- N6 Q" `+ ?% L4 _) H- Jmysql> select insert('quadratic', 3, 4, 'what');  : h3 \5 ?' v" n+ ^6 p- z. C
  -> 'quwhattic' ) v& Z8 |% k+ {4 r
% b/ u# C2 Z/ Z! t
elt(n,str1,str2,str3,...)   
+ t3 a% _8 E9 N5 U2 c9 h- h$ q. U0 `返回第n个字符串(n小于1或大于参数个数返回null)  
/ s5 Q/ y7 X4 G- e# k% C' jmysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  
$ |3 R3 `% c/ W4 l  y  -> 'ej' 3 a* C; B$ Z- J+ v; J9 Z+ a4 W
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  
9 H$ k8 i; K+ ~# k  -> 'foo'
4 w5 ~. q9 E0 v; J- _
9 L1 L2 A1 n& k) P3 Ifield(str,str1,str2,str3,...)  
& `7 ~; ^( ?. |- Q4 z5 D返回str等于其后的第n个字符串的序号(如果str没找到返回0)  $ [+ P% P, f  V
mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',/ B- y5 p  n$ S% e" ^8 k3 ^6 f
'foo');  $ ]9 _) F) \) c& ~
  -> 2  ) E: J3 \6 i- ~/ H/ X
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
) M4 |# C. A- X1 \'foo');  
' Q1 ]$ J0 @3 x  e3 q2 o2 x+ |. ^  -> 0  
9 `5 H- w+ x% x1 E, P, \' |
0 P- W4 [- @- t1 {9 |0 ]find_in_set(str,strlist)   5 h" O( ?1 X% [0 L
返回str在字符串集strlist中的序号(任何参数是null则返回
8 ?7 M' |0 N* Q  g6 Z* ?% Dnull,如果str没找到返回0,参数1包含","时工作异常)  
+ ]: R! j. y2 Y( o9 K* {* Q" tmysql> select find_in_set('b','a,b,c,d');  ) y/ N' y* S" m7 J) I" x7 D- ^2 p$ M
  -> 2  
( q* E# ]+ h: u& f8 z( F# C   # s. V, x* [9 n6 J6 g, k
make_set(bits,str1,str2,...)  
6 L8 P. c% F0 S1 H7 h把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
. c3 }7 _( g% z3 K位置的字串选入字串集并返回(null串不添加到结果中)  
- R" ?2 {9 H) Y/ lmysql> select make_set(1,'a','b','c');  
2 i+ K( z& l3 R$ ^9 @+ n  -> 'a' ( ]. w# X" D, C+ g# S2 f
mysql> select make_set(1 | 4,'hello','nice','world');  
  D6 F; v8 ?0 \4 n! }; e; D  -> 'hello,world' * M, v: m, I0 L8 @5 E- O; F
mysql> select make_set(0,'a','b','c');  " Z: y0 `3 F+ a
  -> '' ( n9 A2 x% T; k, b8 `

8 U+ r' C7 E9 h3 z. oexport_set(bits,on,off,[separator,[number_of_bits]])   
1 {; l+ c$ D0 {; N) c8 q按bits排列字符串集,只有当位等于1时插入字串on,否则插入& n( n% c; f  C  w5 n; g5 R3 U, c
off(separator默认值",",number_of_bits参数使用时长度不足补0; j8 ~# A# u; u, I
而过长截断)   3 A. _$ |4 a1 a
mysql> select export_set(5,'y','n',',',4)  
! d' z7 H( @6 I: w* b  -> y,n,y,n   
0 \% Q$ @2 H3 {$ ]( w
0 L1 e# q, h; O1 ~1 `' v* @lcase(str)  % u9 E* y! U' K& q$ H. ?3 x
lower(str)   
. C0 Z& H/ u* K  |, M返回小写的字符串str  + y4 t$ l7 Q. w/ A
mysql> select lcase('quadratically');  1 o! v& ^) Z3 `' ?: H- l* U- \
  -> 'quadratically'
+ C. k- T6 i# S$ U' v: t3 n   2 e6 L1 w' N% f# E* D1 h
ucase(str)   6 V% x. \6 l0 J: v, u7 g
upper(str)   7 d* Q2 }4 ~" S, }3 U
返回大写的字符串str  
  o- z. @! \" U2 M: X9 x! ymysql> select ucase('quadratically');  # c- |) s0 F9 R  @4 j) h7 n
  -> 'quadratically' 3 y- K; X( ^1 C* q$ g7 \( R

( h2 b$ v8 F1 W/ nload_file(file_name)   
. E: L( X3 b0 H2 A$ I9 r  S读入文件并且作为一个字符串返回文件内容(文件无法找到,路径
' X* Q# h2 [& a8 ~6 q+ }3 ?. B不完整,没有权限,长度大于max_allowed_packet会返回null)  
% B1 J, F. m5 E) U9 \8 imysql> update table_name set blob_column=load_file
7 G6 A/ Z) Q  W( X% U- r("/tmp/picture") where id=1;  
* h4 [0 k8 q- V2 Z, Y) v4 \, q' o
; m* z, u8 G2 F6 j+ m2、数学函数
: k) K6 Y" x6 aabs(n)
6 H0 ~, k; L' u+ r返回n的绝对值  
7 b3 ^3 Q$ l: _3 @# {2 Z' O' V" f. f& kmysql> select abs(2);    ! Q5 p! z, ?1 x8 {! o
  -> 2   
& G% ]8 N- ^- G& W: E  n. {mysql> select abs(-32);    " o- p2 T2 r, _0 Y3 a
  -> 32    $ ^) |( S8 f  {" r
   
9 x: i( I9 g4 n1 _3 Y4 S9 ^4 ~sign(n)  0 \/ @0 c; C8 [0 R3 S
返回参数的符号(为-1、0或1)  
9 F' x2 n& z) S4 F1 nmysql> select sign(-32);    + f/ s. m* v3 g& i$ n6 N3 @* R5 L
  -> -1   
4 C8 X7 f" q; V! Z. R$ nmysql> select sign(0);   
& Z" U+ Q2 S4 q8 q/ u  -> 0    . g7 `" O- C: c# I* ?1 z
mysql> select sign(234);    5 i9 k! X1 G$ G" w
  -> 1    5 P6 o. Y& e: i4 W# ^
4 c7 P/ t! Z& X1 k$ e: e- L1 Z( H" C0 x
mod(n,m)    7 u/ L" C2 E3 [; P
取模运算,返回n被m除的余数(同%操作符)   
0 q- L- H# z& tmysql> select mod(234, 10);    " r+ u' s- j- M5 @% h( H  n: J/ d
  -> 4    2 z* c2 x  S5 E3 S1 ?9 C% E% b
mysql> select 234 % 10;    # A. S& C/ ~7 B) S7 F) A9 {
  -> 4   
. H) L! Q6 t7 Zmysql> select mod(29,9);    5 c1 u! s1 Q+ A0 h1 ?, A
  -> 2    ; l2 m* Y- E6 u& M- d
$ N& w2 T* @  U( _
floor(n)  # R7 A: A* T. C- |, Y2 T
返回不大于n的最大整数值  
3 e, X9 }. Y( h9 D% B( Pmysql> select floor(1.23);      c, j& H+ S0 M9 l3 `
  -> 1   
8 a( W8 I$ A2 ^. r, Nmysql> select floor(-1.23);   
9 R5 [; o! U1 J  -> -2   
' g7 r9 q: q" s7 o
- n1 R0 J6 l* T# eceiling(n)  
- J% m0 e4 y" e3 U, w8 K* p返回不小于n的最小整数值  
6 y" s0 }; N* x# mmysql> select ceiling(1.23);   
* g1 z+ `; g- c5 v0 n/ k  -> 2   
+ T- h8 M% n% r0 R, L. i7 K0 Z+ kmysql> select ceiling(-1.23);   
% U7 {* ^+ G% O8 v- f3 l' Z  -> -1   
& g+ J- j$ h, S7 ^1 P6 Z+ j
" k% G; E' d! Y4 l4 a! l: _round(n,d)  
  c3 t9 e$ o/ [+ W$ A1 P返回n的四舍五入值,保留d位小数(d的默认值为0)  8 R# s5 ]+ S* V, Q- w
mysql> select round(-1.23);   
1 ~% J( t. ~! G0 `" s  -> -1   
% |- K5 g5 ]5 K0 `mysql> select round(-1.58);    ( C  U) c; G' u3 l) g, ?, Q3 A
  -> -2    9 }% w: P, Z. @3 D: M+ Z6 T
mysql> select round(1.58);    6 A0 h& M! x' \5 H  I7 C
  -> 2   
1 d7 m& e6 K# z- tmysql> select round(1.298, 1);   
) U8 l  E+ x2 c: ?- I& A9 l& |  -> 1.3   
& q+ f" u: O5 O$ V, cmysql> select round(1.298, 0);    8 v# U0 Y' e: y) `6 S; d. `3 u
  -> 1    ; \& V3 t* ^9 W$ D$ `& T& z
, D$ i! W6 a: P6 X% G: m5 `0 [+ M
exp(n)  , F8 _' J3 @8 G
返回值e的n次方(自然对数的底)  
6 V5 v. V; `5 M9 j( k) }1 Emysql> select exp(2);    : Z( B( m  F, ^* @2 u
  -> 7.389056    & c' U# _2 Y% Y  f( D
mysql> select exp(-2);    $ K. e7 @( k0 B/ Q6 w* |$ v
  -> 0.135335   
) B! {- k* W! N, Y/ O( l1 ~4 w
9 R9 u8 _: Y: \4 glog(n)  
; Y7 b7 o' X( W) m9 q9 d返回n的自然对数    y1 w) z  i3 Z# M/ F, S- J
mysql> select log(2);    % C3 ~; ~% c, o
  -> 0.693147   
  ?8 w9 d; ~6 a2 z0 Q2 n+ rmysql> select log(-2);    ) W- F1 Y% c, O7 ]
  -> null    & @. E5 R4 P6 T! E7 X3 L, f% P. ?. R

* f5 S( t) i) _  qlog10(n)  
* k7 g$ t  j, h1 f返回n以10为底的对数  / J- M# E* @9 t, O  v
mysql> select log10(2);    6 Y) ~0 F. p* ^
  -> 0.301030   
( T; z! t& [" s. q6 `. z+ q; O: Umysql> select log10(100);   
, i9 b: @- d0 ?2 ?6 z0 Y% a  -> 2.000000    : O: B9 y" {- _+ V' [
mysql> select log10(-100);   
: g; L8 O& |. d# J1 Q9 k  G. Z  -> null    $ ]4 d. ]( r& ~$ F7 v9 H

: R) j3 `; V$ K+ k; K; j9 s" t* ^9 Rpow(x,y)   
  G. ~& z; X# M& C( [power(x,y)    ; i( i& [5 K* G4 r9 ^. I4 t
 返回值x的y次幂  
, ]/ c. R) M+ v4 amysql> select pow(2,2);   
: e0 Z( ^* O/ `# H. \/ J; c  -> 4.000000   
: I. P6 T& U/ E0 k. umysql> select pow(2,-2);    1 Z4 @2 j' E* \. X9 x% F7 b
  -> 0.250000  
' _3 T+ C) R: \6 g" @- z6 k2 s+ ?! K4 S6 g0 ^4 T; K- ~
sqrt(n)  
8 q+ y; h- g( q/ h 返回非负数n的平方根  
  u0 ?' T+ U  K" h4 ?mysql> select sqrt(4);    9 K8 d. J% o2 s2 p7 R( |
  -> 2.000000   
  e0 p4 A/ |" F4 s& `% ~( ~mysql> select sqrt(20);   
- n2 m0 X* _: v6 v  -> 4.472136    ( e$ `% ~6 M8 I9 i' A. h5 }6 @
% p1 D1 @. z/ q4 V3 R6 d
pi()    " k& P& w* P- N# K9 k. [: }! l0 o
 返回圆周率   ! w! w' W* G4 m* m! g9 g4 @: @
mysql> select pi();   
( n8 p# I4 A8 [$ K# s, T6 `8 l  -> 3.141593   
* `2 V% ^8 i6 G$ A5 }, Y 5 k! y+ j) H5 H+ z/ n% x3 M& L
cos(n)  
, t6 }5 a8 J2 _( y# G3 ?. ^ 返回n的余弦值  
7 D8 `5 D) o" C4 H  O" N% q* ~( Q4 zmysql> select cos(pi());  & v8 u+ o1 L- s" p$ h
  -> -1.000000   
3 g$ J6 D* I1 x8 I  p/ p1 [( } - j/ _0 K) x) t
sin(n)  
) d1 w0 i3 J" l, A3 L6 [ 返回n的正弦值   
& d: Z/ S9 f8 S8 a- r2 F5 Ymysql> select sin(pi());    2 z- c/ k* ~2 n( B6 T' b3 B
  -> 0.000000   
8 M- b! E  F) l( h
+ u* {( p- ~! P: gtan(n)  
8 n; z# y3 W0 L7 Q7 J3 H( b& ]- f: R返回n的正切值  
3 h. G- o. m: x5 w/ T' [mysql> select tan(pi()+1);   
. S/ X# G1 R, q& a0 ]. I0 }4 w" ~- E  -> 1.557408   
" A4 L% s: l( M4 d$ G4 z & ~! Z' E3 C8 N. S% M$ S' u
acos(n)  
' X8 ~: Q) p6 E9 l6 e 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  
" \% Q5 p' U4 K1 g, rmysql> select acos(1);   
% i" f8 U- Y, _( ]  G6 R  -> 0.000000   
9 a& K0 A( s/ G0 b8 E* x/ \3 Emysql> select acos(1.0001);   
/ ]& X& H( {, J  -> null    . x5 P( T  n' }; O: [# p2 u7 L
mysql> select acos(0);    1 V" ^; Z7 G2 A( m! |- B6 P
  -> 1.570796    6 W& ?% }7 L( `2 R* X& a1 y, e

5 w" C, j/ U- t, b. `: Y$ lasin(n)  
0 P* Q" U" g, y" l, S: b0 B: Z返回n反正弦值  . `% \% J* n4 g; [# h
mysql> select asin(0.2);    0 E6 H6 H: S1 M& o! U4 w
  -> 0.201358   
" s2 S# A$ s7 I( smysql> select asin('foo');   
3 \' ]1 G  w: h0 @* A- m( d1 _0 K  -> 0.000000    ) g( U! M4 I, G
$ l) Q* [+ e1 p' {' E$ x
atan(n)  + k) `/ l" ]# f. h* t- E# T. J
返回n的反正切值  
) b- v2 X- _, P! @; H) smysql> select atan(2);    ( K6 M( d) L# K; S
  -> 1.107149    6 {4 J8 _# J: E
mysql> select atan(-2);    8 B# O4 b1 \7 h! w( s: a
  -> -1.107149    8 t3 f) u8 b' d- ~0 z
atan2(x,y)    % _5 k9 r, f. L$ J/ j$ N8 E8 g% R
 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  
- P) T# W7 s) u6 q2 @5 e& {mysql> select atan(-2,2);   
3 H/ n3 l8 c' t# n/ E  -> -0.785398    . a) d: D( ^: F' N5 P
mysql> select atan(pi(),0);    / T# ]/ G! q" F9 d9 o, ?' N
  -> 1.570796   
1 |/ o8 O1 ?1 l " l* o% P( ]6 f2 b* }8 X7 z
cot(n)  
; C8 K; b# V$ s6 N返回x的余切  
! p; ^3 M+ U1 W2 J* J' b6 Wmysql> select cot(12);   
0 G: `1 T# ~" _2 F/ `, m4 N  -> -1.57267341    , s* J, ~4 x; z" _
mysql> select cot(0);    , W& R3 d" [/ t& [/ z
  -> null      ~" q+ }6 }$ f6 o
+ \) i; [. V, v: `4 r0 I
rand()  
- ^( i4 l2 w1 Srand(n)    
% I0 |& _6 Z* y  d返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
; z2 A  ?  n' I+ h: ^ 0 q# u* ^9 o  C$ w4 b
mysql> select rand();    8 e7 t9 u2 k, `
  -> 0.5925    ) a) V* Y8 h$ u( n6 y
mysql> select rand(20);    1 |0 H8 U: J$ |( r1 {, L
  -> 0.1811   
' D! n5 k9 }) a- \8 jmysql> select rand(20);   
" O4 H. f( }. v0 a8 k+ T7 J$ d6 @  -> 0.1811   
  m' e" g7 T* @# L- q" k% qmysql> select rand();   
5 l' t# r9 d7 m. O% B+ x0 ~9 d  -> 0.2079   
: M) _* G) N  v8 Rmysql> select rand();   
* W' W' W6 ~# G. q' X4 Q/ C5 |  -> 0.7888    ! d9 p5 @- n' C: ^' W. F% v" U

4 e' J; l5 N- Z- y: Odegrees(n)  
! ?' i1 f7 R& W3 |1 x' d! x# t把n从弧度变换为角度并返回  9 s( ]4 U9 F5 @* i& o
mysql> select degrees(pi());    " c- U8 P" t4 t  a( O2 i
  -> 180.000000    " Q8 L# v! S% O' I1 n. u

$ K, z1 H6 {6 d! \! E  o$ `radians(n) / V! t+ h) X) D; A- }1 E$ w, z
把n从角度变换为弧度并返回     }; f+ Y: c. R9 n- D& C9 B3 U
mysql> select radians(90);    3 A( K: j- O1 U- I- j; S" z# r6 H
  -> 1.570796    ! N& T2 n1 @1 q3 V; p

2 P/ \+ a/ s& Q  P% ]; U' [truncate(n,d)    ) ?8 o8 H& D" f3 R. D6 L+ t  ]
保留数字n的d位小数并返回  ; ?: }& P8 p  x. G
mysql> select truncate(1.223,1);   
  ^% _* L) a' S9 c7 K  -> 1.2   
. W: R7 p) L6 c) C' i' ?% Umysql> select truncate(1.999,1);    " V# v6 c3 _# D$ x3 l. J2 L
  -> 1.9    ( p6 X/ r* Q: d/ Y
mysql> select truncate(1.999,0);   
2 ?) h1 S: A3 E, M1 u7 p  -> 1    0 s# P  C+ }# u. E- Z# ]0 N& N
9 e' G6 b. T) {9 B7 b* |& }' I
least(x,y,...)   
) [2 E4 B, r, _0 B返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
+ u+ i1 Q& T, V7 r* ]mysql> select least(2,0);      q$ S/ h& ^1 ^* |/ q0 y2 I
  -> 0   
( S$ m2 {/ D# Y' D, t  S5 Tmysql> select least(34.0,3.0,5.0,767.0);   
7 M. {6 B* n7 f2 G5 G- H& y  -> 3.0    , f; ?( j+ e: O2 p
mysql> select least("b","a","c");    & r+ I6 q( N; P  g; b
  -> "a"    : ^. Q. k  W1 s$ a
7 V. x& w, Z, Z* d5 K9 d. [
greatest(x,y,...)    0 s* w/ n6 R- {4 A$ p
返回最大值(其余同least())  
' m6 ?( _3 C: m  V/ i5 w' h6 bmysql> select greatest(2,0);    & x8 X' k/ E, m5 d. c7 f
  -> 2    ) s/ I( F# F+ G6 ?  c, p" g
mysql> select greatest(34.0,3.0,5.0,767.0);    * V8 c# s4 R4 i/ N9 U7 ?
  -> 767.0   
6 f8 h/ [0 u% X! n2 V" N' G$ T7 Fmysql> select greatest("b","a","c");    2 W% g6 W6 {4 x% Y- x7 d4 k
  -> "c"     , u. \) l* M1 b7 t+ z. k2 m( P  E

: {; J2 R% h4 r0 ~+ H. Z$ j3、时期时间函数
6 R) F5 B. F: ~9 y1 @$ h& Ddayofweek(date)   
# O0 L6 r) Z$ ]6 p# k) v返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
4 E  @' i! o5 T/ umysql> select dayofweek('1998-02-03');    4 ~+ P2 w/ `/ V; `. h
  -> 3   
* g2 u7 {1 q4 g- t 7 K0 C$ h- P/ t& G  Z- H
weekday(date)   
5 l% I  x/ w! [+ {7 P返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
% U" f8 c' j0 V% i0 o- D3 g  
/ d- v2 \0 |6 Q2 y! d/ |& \, \mysql> select weekday('1997-10-04 22:23:00');    & T& L+ K8 o, g
  -> 5    6 q1 n# W. r5 q" D. V- j, g7 e& [
mysql> select weekday('1997-11-05');   
& E/ h$ P# n! ^% {& T, B  -> 2   
1 |3 y! F5 g& y! x . w! o8 W( [- y8 g8 b# a/ N; j
dayofmonth(date)    2 X2 {# E& U' Q( U7 _' Q. u0 a$ i
返回date是一月中的第几日(在1到31范围内)   
. p/ w2 z+ _1 _- _1 Pmysql> select dayofmonth('1998-02-03');   
# p5 k5 B' N% V% X6 |6 u  -> 3   
3 _, R/ G1 u4 r! I% R
6 @, T3 P" |2 v' }8 edayofyear(date)   
& n% d9 G' P- O- k+ |$ P- o. o返回date是一年中的第几日(在1到366范围内)    8 [$ h8 a( [" x
mysql> select dayofyear('1998-02-03');    0 Y. A4 n: ]6 X" @
  -> 34      T0 {, I- ~9 d; K
7 I7 O' k% Z+ k9 Z
month(date)    & k* u: H; B9 j
返回date中的月份数值   
" ]. a0 J- \& S1 lmysql> select month('1998-02-03');   
: q( X' M5 Z2 I: Y9 M$ }' P: c  -> 2    + v0 @; K/ r7 d: h2 E' j/ I, v

% P2 E* t; c  w' f- V( [, O* jdayname(date)   
, B3 [. g1 J) W7 K返回date是星期几(按英文名返回)  3 V- `+ M: ?: K$ G. z- R
mysql> select dayname("1998-02-05");   
! t( S+ K$ _* ^- Z: u. K6 ~  -> 'thursday'    + p3 p% b  j0 v" W# n- h
" z9 C  `! K+ C( F7 \+ Y" O! @$ g
monthname(date)    1 h9 b* m& W+ Y
返回date是几月(按英文名返回)  * p( D! U, S$ o- m
mysql> select monthname("1998-02-05");    / x( A/ Z# U/ k
  -> 'february'    & G+ v& r0 B2 V0 }) f
+ M  @% b# G- d* s. `
quarter(date)   
# m  P  R) l2 B1 }1 i  ~4 z返回date是一年的第几个季度    1 H( `- a" I. S) `
mysql> select quarter('98-04-01');    + U, k; M: B8 ^% x* `
  -> 2   
$ I- s/ U) A8 M7 [) |
+ a( O9 P0 r  d' `$ ?8 r/ y" cweek(date,first)   4 g3 g# U# Y) R' o, W8 w
返回date是一年的第几周(first默认值0,first取值1表示周一是2 V$ Y6 |/ q: T; Q$ ?1 A
周的开始,0从周日开始)  
1 u/ a8 p$ j' fmysql> select week('1998-02-20');    - J1 B# e% u8 r' u$ Z5 ?
  -> 7   
) U( R  p6 W" R, imysql> select week('1998-02-20',0);    / p' m! K$ J0 ]% h# D' z
  -> 7    9 W& ~; |3 D4 K) D
mysql> select week('1998-02-20',1);   
- U& F) `8 p# v; X9 q8 \  -> 8   
' F( T0 O; w9 w5 G' i. X7 x" u
9 z; u: y, S6 m* \4 Wyear(date)    : K5 S+ C" W# y; x" w7 D
返回date的年份(范围在1000到9999)    & o% l! f0 z  f, g5 D
mysql> select year('98-02-03');    + P. [! I; z9 Y! l- ^4 I% [
  -> 1998   
+ `3 N+ x  s1 _
( Y' V( s3 c0 O4 Ehour(time)    
) N( o) b  v9 d3 o' l6 H返回time的小时数(范围是0到23)   9 v0 C& F! t" Y5 B4 y, R" E
mysql> select hour('10:05:03');    3 u; _6 K2 q* Y  H3 A& n
  -> 10   
% d- z9 b9 @# _
7 j. e( l) z2 x7 d3 j; qminute(time)   
. ?9 z9 o: m. v返回time的分钟数(范围是0到59)    ; L. ~  R7 b1 w7 V, A, f* q
mysql> select minute('98-02-03 10:05:03');   
9 W- k7 Y2 d& y0 w6 W  -> 5    4 [( d" j3 o5 c% J; {0 Z6 F% e7 Q
* H# N2 S6 Z1 k- f+ _, {% E
second(time)    
: _  C/ ]5 g6 Z% r& W4 Q5 m1 P' [返回time的秒数(范围是0到59)   
; L  L8 n) [+ d- R1 ^- W+ dmysql> select second('10:05:03');   
  Q" j1 k. t# T! g2 l5 [+ _  -> 3   
1 t& p: e7 }4 l  J " H" k4 t" W* \8 h
period_add(p,n)    , ]7 p' r" q5 x" O! @
增加n个月到时期p并返回(p的格式yymm或yyyymm)   
6 j! s' T$ X& s6 P1 K) U1 Zmysql> select period_add(9801,2);    ; C: B; v0 [+ s" I9 r. T
  -> 199803   
8 a4 G2 c# l: H
4 P/ w! C0 q& C7 A# ]! _period_diff(p1,p2)   
/ B7 k9 N. X" Z  t% y( h/ ^返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  
3 g* V; i$ A" ^, I9 L+ Wmysql> select period_diff(9802,199703);    ; c/ |) Z$ t5 c  J2 \& C
  -> 11      [( t) H' K, x3 G  s
* X2 i+ v: J5 s) S- _4 r
date_add(date,interval expr type)  ) n" V. ?1 h% d7 @7 b# O
date_sub(date,interval expr type)    , w$ v. b6 V- |6 \8 t- Z' b
adddate(date,interval expr type)   
8 C# Z5 D8 j3 g. D+ Z" wsubdate(date,interval expr type)  
" g1 u" @2 L3 Y/ u" E$ S对日期时间进行加减法运算  6 u2 H* g4 `8 V% m4 O
(adddate()和subdate()是date_add()和date_sub()的同义词,也
' Y4 ^6 Q0 Q; ^  B& G' p: L" v可以用运算符+和-而不是函数  
4 V8 d3 P1 {8 e0 jdate是一个datetime或date值,expr对date进行加减法的一个表
, Q, h+ ^. E3 A  \: K达式字符串type指明表达式expr应该如何被解释    t, u$ E+ q; G* N" _* _9 F
 [type值 含义 期望的expr格式]:  
# I; z* e: p5 |% M/ e: x second 秒 seconds   
- `/ ]- t; b& i% m3 O minute 分钟 minutes    & f, s2 G8 S" }; |/ o: T5 B+ O! x
 hour 时间 hours   
& U3 t( J  H5 u) b, i/ I$ w& T2 t day 天 days    ) j( o9 I+ ~9 t+ y
 month 月 months   
9 x  R% q- g3 d9 A year 年 years    0 Z9 D8 {; H, @& {  _- u
 minute_second 分钟和秒 "minutes:seconds"    * r0 [* D9 G  N3 D  [7 n# D& D
 hour_minute 小时和分钟 "hours:minutes"    6 M) ~; D; w1 p. O
 day_hour 天和小时 "days hours"    ( n0 J8 G6 k) Q6 q' p
 year_month 年和月 "years-months"   
/ G- t% [- n3 a4 B4 [& B hour_second 小时, 分钟, "hours:minutes:seconds"    ! I# I7 i% K, M2 e% b
 day_minute 天, 小时, 分钟 "days hours:minutes"   
0 y- |* `  }, E9 W) \7 ]7 x day_second 天, 小时, 分钟, 秒 "days
3 S. k, D  p4 M$ {1 L, z: yhours:minutes:seconds"
, \+ C" r  {- o3 @, p expr中允许任何标点做分隔符,如果所有是date值时结果是一个
' `2 L  m; _+ d: Ndate值,否则结果是一个datetime值)  
9 o$ v; W+ M2 A  k 如果type关键词不完整,则mysql从右端取值,day_second因为缺- y* g( K# x0 A% |# X$ l( v- r
少小时分钟等于minute_second)  6 U: }3 Y' U0 _% {
 如果增加month、year_month或year,天数大于结果月份的最大天
) a' M  m9 s+ q数则使用最大天数)   
1 G' @, i1 L5 Omysql> select "1997-12-31 23:59:59" + interval 1 second;  
9 N' f. \, Y7 |2 @( W
# E  n4 A; {% \: k2 M% k  -> 1998-01-01 00:00:00    3 Y6 q1 [% |( M* \
mysql> select interval 1 day + "1997-12-31";   
3 ?5 f3 h1 g/ a8 K  -> 1998-01-01    . w5 N' E) y* W0 w$ a5 N
mysql> select "1998-01-01" - interval 1 second;    " I, P4 L0 Y- K5 w
  -> 1997-12-31 23:59:59   
# X% L0 l$ u" d+ E+ @mysql> select date_add("1997-12-31 23:59:59",interval 1
0 O# N/ D! ~/ f. L' ?; _second);    6 O, F& x0 H9 n" ~5 S! ^5 K- j3 M! r
  -> 1998-01-01 00:00:00   
4 U- [. I6 m! f! J: Y8 N2 gmysql> select date_add("1997-12-31 23:59:59",interval 1  B  c/ F6 Y, Y7 X
day);    0 g, \8 Y! G& B  L2 [
  -> 1998-01-01 23:59:59   
4 {' @. c) U% ~7 V1 E3 U& ]mysql> select date_add("1997-12-31 23:59:59",interval
+ ~$ {+ \7 I9 |  W"1:1" minute_second);   
- g7 o6 \6 e  \; i/ [3 z# F  -> 1998-01-01 00:01:00   
/ n2 x2 H( x( N/ jmysql> select date_sub("1998-01-01 00:00:00",interval "1
7 L7 r. c! ]: E- Y& P1:1:1" day_second);   
( g$ I. L$ s# r0 O, e2 x  -> 1997-12-30 22:58:59    9 G5 J9 q; m0 G* b8 G- w' {4 n6 T
mysql> select date_add("1998-01-01 00:00:00", interval "-10 H$ }# }- Q& Y4 G) O; Y* t) Y4 O. G
10" day_hour);  
$ Q0 O+ f& `& m  -> 1997-12-30 14:00:00   
; Y0 W' b" C# b' ^/ ?mysql> select date_sub("1998-01-02", interval 31 day);   
2 u) O( T, }) W0 e5 ~3 T" O  -> 1997-12-02   
% x$ Q. j; V: M% Dmysql> select extract(year from "1999-07-02");   
/ {5 \9 b* M: K7 c  -> 1999   
4 M) Q6 F: Y1 T+ C3 ~mysql> select extract(year_month from "1999-07-023 N) I. a( j/ o; R( G; B* w
01:02:03");    ( z# l) t9 ^8 k) F
  -> 199907   
: h+ y3 t2 r; C% a: f/ ^9 Kmysql> select extract(day_minute from "1999-07-02
$ D! C- v8 o# Z5 p5 C* i01:02:03");   
8 G5 v$ E7 i  i- [- t1 F  U% Z  -> 20102    2 D# v5 b3 ]: A  w7 m
6 }" L) `) f& w
to_days(date)    8 g% V+ R, L- w  E: S! ^$ _. K5 ^8 j/ L4 B+ m
返回日期date是西元0年至今多少天(不计算1582年以前)  
$ u# Q7 w; h7 u; ?8 P7 Rmysql> select to_days(950501);    , @- W( B: o  J. \" v& B
  -> 728779   
2 d2 A& W9 _" q2 Q5 e: Zmysql> select to_days('1997-10-07');    $ i. L- Q1 k( H, D
  -> 729669   
5 r( r: a/ ]" l / _) y& e/ S' @0 W: f
from_days(n)    5 V! n7 n( t0 t5 \0 R0 T  F" [
 给出西元0年至今多少天返回date值(不计算1582年以前)   ) ?9 {" o. i8 v/ C* B; u
mysql> select from_days(729669);   
* Q5 g9 j! H  e- c  -> '1997-10-07'   
  U7 V+ f" n7 `$ Q" |4 Z5 }- R
# L. ~+ ~5 a6 Y) Ddate_format(date,format)    8 s: N6 ~. r* j
 根据format字符串格式化date值  + j; A: _/ a$ V7 n5 Y
 (在format字符串中可用标志符:  $ N. t- U! X1 W4 N
 %m 月名字(january……december)    8 Z+ n  h( D1 E# J& X- X. D2 }
 %w 星期名字(sunday……saturday)    / u' [% t+ E- V/ `9 |
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    % ^9 F7 X9 |" {( _8 F4 F
 %y 年, 数字, 4 位    1 D4 u) {: o" E% C/ r' K" [/ W
 %y 年, 数字, 2 位    7 g; f: v; Z" p. V& a( g5 P  M
 %a 缩写的星期名字(sun……sat)   
. p1 n+ g/ S( V3 n- D2 e %d 月份中的天数, 数字(00……31)   
( h: Q3 ~- J6 ]  O- V %e 月份中的天数, 数字(0……31)   
4 O* m- p" W7 Y5 Z9 D! V0 a3 P, T %m 月, 数字(01……12)    # F& P* m! b+ h$ {5 a, T
 %c 月, 数字(1……12)   
, E* p  [! ~3 ~9 Z+ W %b 缩写的月份名字(jan……dec)    7 r+ o8 ^% a- \. M
 %j 一年中的天数(001……366)    * P: m; o) D% C; J. n9 U/ Z
 %h 小时(00……23)   
# c5 y& R) V8 R& G& G& K' O %k 小时(0……23)    + p. |' w' n$ M1 t
 %h 小时(01……12)    3 f4 W, ]+ @/ T( k9 t1 s
 %i 小时(01……12)   
3 A5 M  ?, w' c2 c3 u7 I( n& E %l 小时(1……12)    ( I% `- _% u! s& @7 d
 %i 分钟, 数字(00……59)    6 `  w0 l7 x1 x. E6 u1 M% d
 %r 时间,12 小时(hh:mm:ss [ap]m)   
5 ?) S: |7 g  a6 Y. x %t 时间,24 小时(hh:mm:ss)   
" r7 ~- L8 V: o9 Y %s 秒(00……59)    ; ~6 P- D7 U$ ], I
 %s 秒(00……59)    7 j! T: g) }& V
 %p am或pm    , g/ K8 C- d& q$ ], {# `7 b% ?
 %w 一个星期中的天数(0=sunday ……6=saturday )   
' i- q( [# F6 ~. E. R% @; ^& w %u 星期(0……52), 这里星期天是星期的第一天   
( j: a, B8 v# x7 n- u %u 星期(0……52), 这里星期一是星期的第一天   
' _4 x" M/ \2 {! I6 z) B %% 字符% )  
4 T' B3 t0 i1 h' Kmysql> select date_format('1997-10-04 22:23:00','%w %m %# `5 O9 T2 p8 J. f7 W4 @: a# a/ t
y');   
8 B5 c! o; y, ^: V& N5 n% ]  -> 'saturday october 1997'   
% y0 l% x5 R: z3 }* Cmysql> select date_format('1997-10-04 22:23:00','%h:%i:%
% ]) b3 y, |! P( ]2 ws');    9 y# A1 w, L/ |: X% K* I9 I
  -> '22:23:00'    : N( d, w# ?! X* o
mysql> select date_format('1997-10-04 22:23:00','%d %y %a
( u5 C$ s" p/ {: v% P% Q%d %m %b %j');   
, |4 F" c+ Z5 f  r  -> '4th 97 sat 04 10 oct 277'    " m/ ?4 [) V8 `* Z" O& Q6 l0 k
mysql> select date_format('1997-10-04 22:23:00','%h %k %i
& b8 q; h( G" f) k" m5 h1 n%r %t %s %w');   
& I) M- ~& s+ h" |3 ]3 l  -> '22 22 10 10:23:00 pm 22:23:00 00 6'   
3 n2 P' M1 S; R3 [6 i4 u " |, G, p" e' d
time_format(time,format)  : b* z! i; P, ]3 G
 和date_format()类似,但time_format只处理小时、分钟和秒(其2 ^# |) q) Y& a
余符号产生一个null值或0)  , F2 k# X2 r% h' k% n
" U" X! S5 w& F' k# b: M8 T
curdate()     4 ]' c( J2 X2 a9 P* j$ L: x
current_date()  : F2 j' `! v/ F( T8 r: U$ W  g
 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
* |2 x5 ^  }* d3 _+ c9 w' O0 K) O处上下文是字符串或数字)   
- T" u  [# A' H) o. I+ smysql> select curdate();    + z& q! z2 G( i; w! E
  -> '1997-12-15'   
2 m" S6 y( J& E! _3 {mysql> select curdate() + 0;    . r" H$ S" s  \7 Q2 r/ F- \8 }2 J
  -> 19971215    6 i* H1 ^- g3 D' _0 p

  r9 }9 K4 g/ l* ~2 A! H8 pcurtime()    2 i$ |: j3 |6 x/ S
current_time()  0 S2 T- R) c! I9 ?, R- J! P
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
: T( j  k% ]' I' m- W1 `& R' F. k& a( q下文是字符串或数字)      
. y( i# E5 V5 \. G# F1 f# Kmysql> select curtime();   
+ V1 q- t( x  j  R0 n$ A; b  -> '23:50:26'    $ r: ?* f: k0 U7 R
mysql> select curtime() + 0;   
$ V. n6 c: J$ p4 }  -> 235026   
4 V5 Q6 z4 [$ L7 { - Y, @6 A* ?& g: ]) j# K
now()    
/ M2 ?" E9 n( I, m& o4 a0 Gsysdate()    
+ A6 y, L( R! |current_timestamp()  
, P) e! a% e$ O- y 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期# |9 S& Y. M$ ]0 |0 P( F
时间(根据返回值所处上下文是字符串或数字)     9 P0 D& r( u3 N% F" Y+ e% P( W' L) y
mysql> select now();    - _; h0 M' \, C0 y! q; b
  -> '1997-12-15 23:50:26'   
9 n/ ]: B* n, t* x6 @0 Q; zmysql> select now() + 0;   
0 m& q3 G  k& U3 T1 s  -> 19971215235026   
2 S8 e3 S( ^0 t( Y# L
( I$ d! e2 Y; Y# p! x/ N) n4 Cunix_timestamp()   
5 C( ?  w/ T  f  E- Ounix_timestamp(date)    8 |$ L& P1 E- M4 r
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
& s9 l9 C5 n1 Z5 j, \% [7 X数,date默认值为当前时间)  * j8 x1 i3 ~/ u5 n
mysql> select unix_timestamp();    , w+ @$ G) c1 e1 Z7 \: |2 [* ^
  -> 882226357      d+ r$ N& [! |- B- E
mysql> select unix_timestamp('1997-10-04 22:23:00');    5 ~/ J; M: S) Z7 Y  P
  -> 875996580    & g  H- k% G: O% M3 f, J

# i2 _+ P0 T+ E8 L# Qfrom_unixtime(unix_timestamp)      e( f# i( |3 F: A* g
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的
! W  B/ x3 C" H" `% B6 d8 I值(根据返回值所处上下文是字符串或数字)     9 B: g' ~  i% w* a9 [7 M" s
mysql> select from_unixtime(875996580);    - M+ j; O$ {- c& S
  -> '1997-10-04 22:23:00'    + L$ K" t( V! l/ U% R
mysql> select from_unixtime(875996580) + 0;    9 a: E3 m5 C7 p; p
  -> 19971004222300    % z9 e! ?8 i6 L4 o
* P  O$ Y& K( B0 b  I5 [; J
from_unixtime(unix_timestamp,format)    # m3 m6 a' |: k0 b. T9 g1 q8 R
以format字符串格式返回时间戳的值  ! q4 o5 I% i) l3 X
mysql> select from_unixtime(unix_timestamp(),'%y %d %m %
2 Q: a9 @$ m/ K7 Qh:%i:%s %x');   
( D  Y! I* V. s0 [) |, L  -> '1997 23rd december 03:43:30 x'    9 O/ D: ~) m$ ~! P: ~

- q* l8 A5 c* ]1 }* @) Hsec_to_time(seconds)    8 O# e: x# E/ s1 f
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     5 O3 H" J9 F6 ^) y! i/ u+ j
mysql> select sec_to_time(2378);   
4 r2 A5 u- ^! v0 q4 S5 F/ j  -> '00:39:38'   
$ ]5 s9 Z0 p0 o) Q! Imysql> select sec_to_time(2378) + 0;   
. ~* \7 u7 [6 e- {$ h  -> 3938    ; x/ I) f) P; Z. E2 P3 j
9 F3 K4 u( G& y0 ~& f, h+ y
time_to_sec(time)    2 x0 W7 t/ ~1 c8 z! q% a3 j
返回time值有多少秒   
2 t3 K- B' e. W" c9 O' ^# N' s8 rmysql> select time_to_sec('22:23:00');   
# N! d# a8 e' v# o! b8 H' j  -> 80580    - l9 w2 z. m# M- V, Y0 l
mysql> select time_to_sec('00:39:38');   
) G  V( t6 {4 i6 o/ L- Y  -> 2378
! z2 l8 i6 i) ]. ?6 @
; u" W+ T; X% E5 P转换函数
; q: V0 O/ ]! ^+ t$ ^cast
  Y% [* t5 _3 |0 a& }用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]
- S0 ^" z) S; M  q& z8 D实例:select cast(a as unsigned) as b from cardserver where order by b desc;
: M* b# n' w2 m6 N- M  yconvert:0 o- O2 g# h' }/ x1 f  d
用法:convert(字段,数据类型)3 q% ^8 S; I0 z! r+ @/ D2 o7 P2 H
实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

$ Q4 F& Z# S/ i% r( H9 M! K( u
回复

使用道具 举报

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

本版积分规则

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