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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数
/ Y& G, K* Z3 O: n& \: a# Jascii(str)   $ R- j8 {5 q' w0 F2 u" O
返回字符串str的第一个字符的ascii值(str是空串时返回0)  
$ {) X3 }6 k; j* [+ Emysql> select ascii('2');  8 [; B0 c8 f2 w! a" m
  -> 50  . q/ G. Q7 J& Z& c# ]
mysql> select ascii(2);  ; W2 B3 p: H8 }* N/ }5 z+ h: a
  -> 50  5 T* Z9 o/ H5 y- B8 `, G
mysql> select ascii('dete');  
& v* `1 S) J7 j' X. ^  -> 100

' K4 T2 B$ i* u" Vord(str)   1 r3 M( V/ \% A
如果字符串str句首是单字节返回与ascii()函数返回的相同值。
3 b3 r8 f& G9 b/ g* R* R/ ]) X7 F 4 j  g& ~. Y1 Z/ {$ Y0 d1 U( g
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  
0 N1 O' {0 @0 A% f6 i7 W9 ]mysql> select ord('2');  
6 O  {4 z2 f2 D( ^) R- e  -> 50  
$ E. U' y: Z! U+ M   8 s1 G# E- l1 ^/ d$ G7 `5 ]
conv(n,from_base,to_base)   
( d' Z: n  g) u0 n+ u$ g对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  4 q& d( x. H8 W! E% e5 q. W; R
mysql> select conv("a",16,2);  0 |$ m" Z; g; k& }
  -> '1010'
+ P& g6 h8 [8 Omysql> select conv("6e",18,8);  3 q7 n( B+ Z  U6 z' J
  -> '172' 1 T0 |$ b& D, x5 E0 |. e) |+ `
mysql> select conv(-17,10,-18);  4 I* q4 @0 ^& ^1 m8 D1 C: N
  -> '-h'
& a* Q0 t0 K4 ]! L' ~& P7 ymysql> select conv(10+"10"+'10'+0xa,10,10);  
; L/ J, X# z& v5 w# f  -> '40'
( B7 p4 |/ I4 X: T   
6 [  ^6 W8 @0 p% F" dbin(n)   4 A8 E9 u( C) p& |7 F4 e7 J
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
7 I& g% @. }. Cmysql> select bin(12);  ( @* t2 m5 h6 ~
  -> '1100' ) W+ \1 F. l+ |; T( S( f
8 k4 h  E, q5 L. w4 k; a& ^- B
oct(n)   
* O& d0 u) c+ h- ?$ A把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  , F: v6 p1 o5 {8 A
mysql> select oct(12);  
( O  ]/ A% y5 N2 X- }  -> '14' 5 X2 l5 T" F) a$ w, q$ p; @
   + ~- G% i" g0 ~$ q$ w2 I. l
hex(n)   
9 U, R4 g5 U: C" {把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  1 i: G' ^2 F& I+ x& _
mysql> select hex(255);  
# ]/ A9 n6 P0 A$ x" T  -> 'ff' " f: L, f0 J1 p. ?6 {2 E' o* x
   9 s# M& l2 e$ Y
char(n,...)   
" e# F* t* ?8 q2 Z% }; m& f4 K( y' m返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   ' O$ E2 ^) t  P& E, d1 ^+ v7 W% C
mysql> select char(77,121,83,81,'76');  6 O" t2 ^9 B$ i. O3 A8 l
  -> 'mysql' 3 {; {* W- d" h+ ]7 K& E, I
mysql> select char(77,77.3,'77.3');  % b& {& A  e" V  u; O
  -> 'mmm' 3 f/ w, j7 D% F% B  L! _
   6 e, I" {# n6 u* s; Z8 O1 [8 t* ^' u( `' _
concat(str1,str2,...)   $ |$ v7 S! O: ?9 I
把参数连成一个长字符串并返回(任何参数是null时返回null)  
  z" \& }$ r/ Omysql> select concat('my', 's', 'ql');  / _9 I' L/ G3 [, s/ d7 u
  -> 'mysql'
& E. o3 k& c( d4 dmysql> select concat('my', null, 'ql');  
, H4 ~; @6 }: b5 C. n# |. A. W# e  -> null
( R; K% i- _# pmysql> select concat(14.3);  # x8 @' ^; R& b7 ]
  -> '14.3' & e" `! [9 Y0 D

6 ]% b' X0 w; e# Ylength(str)   0 k0 u: M& s- [' y9 j
octet_length(str)  0 Z3 [1 ~9 x! n: q( r3 `
char_length(str)  , o( [2 Z* T3 L: T/ {' ]
character_length(str)  
( `/ p) R: e0 X  h3 q返回字符串str的长度(对于多字节字符char_length仅计算一次)+ \( y9 g* i  Z9 ?, a  R8 z% [
mysql> select length('text');  
; S8 U( A$ C& @  r( p  -> 4  , |6 A! K! Q5 D! _5 ]
mysql> select octet_length('text');  ( J) f, D7 x% E4 O
  -> 4  , G: p* i- @+ V( l. L

4 v" _, y( C. glocate(substr,str)   
1 O/ n. b" O7 f8 Z" sposition(substr in str)   , I( g. P3 _+ @: A% E% m* o0 Q
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
: }/ \& K8 b) M9 r$ Pmysql> select locate('bar', 'foobarbar');  7 L9 O( Z' F& e4 k6 y5 v
  -> 4  
( z# u5 A2 O$ Q+ f; z- C, G9 ^0 Jmysql> select locate('xbar', 'foobar');  
! v, o, s8 P  t6 |  -> 0  * M9 ~0 s. v. o
   
( ^0 ]7 _8 y4 ]0 L7 Jlocate(substr,str,pos) ( |9 U8 T" ^0 o3 s2 k' D
返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
7 Y* H* v. |4 @& M9 \9 D' W$ Cmysql> select locate('bar', 'foobarbar',5);  , W1 X9 h$ D& s& q
  -> 7  * `4 W, A- r. w. d, s
/ O& h+ s: Y9 M$ s/ q: X4 N9 s+ U
instr(str,substr)   ! a1 [! K& D5 I& p+ m2 e. `
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
' v5 ^% F4 X& A; z- Z! umysql> select instr('foobarbar', 'bar');  
4 W; W: r# F. p5 Q6 d  -> 4  . K/ y7 w& d9 G# H( Z; p
mysql> select instr('xbar', 'foobar');  
& m- k8 A. O3 F5 w2 H. V( j" r  -> 0   
$ P% [9 s% P0 `2 p2 m8 B) M  s& V ( z0 S/ P0 i! {( m3 i
lpad(str,len,padstr)   2 T0 ?7 h8 _: a
用字符串padstr填补str左端直到字串长度为len并返回  
. y- \' Z" s) M& T  u8 `mysql> select lpad('hi',4,'??');  
( x( h0 x$ y2 }# s3 h2 }# W* P  -> '??hi' 9 S# ?! ]/ v" Z. E" C$ Z
   0 Q0 a6 f9 u/ [& U
rpad(str,len,padstr)   1 W' Y. x0 F: N" c0 j
用字符串padstr填补str右端直到字串长度为len并返回  9 _5 L/ |: P% [3 T) z6 Z
mysql> select rpad('hi',5,'?');  
, U% D% w# y$ n2 ?# h; e4 ]+ o  -> 'hi???'
) D. w) T5 h# s1 b, S- U# w) I. w
1 D5 B2 `3 e6 h5 F( f  J7 oleft(str,len)   ! u! o# [- e+ F8 b! @6 e
返回字符串str的左端len个字符  
! R. r  Q6 B0 Q  J% Kmysql> select left('foobarbar', 5);  * h5 q! {% e3 f
  -> 'fooba' 4 r3 i3 G4 `; E2 S/ H# q
! h# i9 y8 ]0 |: q4 {, o
right(str,len)   8 C$ f9 w5 a: Y2 O, H6 d; g
返回字符串str的右端len个字符   
- c; r, h% D; k3 {; imysql> select right('foobarbar', 4);  
0 k2 z+ V& V! m  -> 'rbar' ( k' [" K! W; r/ e

1 D/ c  H& {/ P! Csubstring(str,pos,len)   
. N$ k$ G$ u1 l" I( T; Ssubstring(str from pos for len)   - d, ]- L5 {8 G3 a3 @2 K, F
mid(str,pos,len)   6 F! ], @+ [! z3 W
返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  5 p! X- N3 U- \5 P
  -> 'ratica'
# I; @0 P: C# ^  T' k; Y+ @* L
/ t6 W9 s: e* @' x, J1 W( Qsubstring(str,pos)   9 _* @! T2 m' u+ V0 _/ W( ^3 h3 R
substring(str from pos)   
. L- {! J7 U8 C6 l+ y2 J( }返回字符串str的位置pos起的一个子串  
. c7 N* l! x1 L; s+ wmysql> select substring('quadratically',5);  # s7 n" U: ^9 D2 Z' Z) `
  -> 'ratically' 2 ?" b& N* U/ M# K( {9 L
mysql> select substring('foobarbar' from 4);  , M+ I+ d0 F4 b* i1 X2 p
  -> 'barbar'
) p5 N) U- D% ^8 }+ D, j- F+ n2 i
/ ~1 H/ \. O# bsubstring_index(str,delim,count)   ' x+ d- k. e8 w$ M
返回从字符串str的第count个出现的分隔符delim之后的子串3 D$ [& A* X% ]; f, ~
(count为正数时返回左端,否则返回右端子串)  
) c& w; u9 N8 R0 p0 A3 O0 _% D) _mysql> select substring_index('www.mysql.com', '.', 2);  
( E  T9 y, V, n6 E2 C. ~9 o  -> 'www.mysql'
, Z% t$ u$ H1 _& _, q) t0 Gmysql> select substring_index('www.mysql.com', '.', -2);  
* Z6 {5 A7 s; H+ P3 v  -> 'mysql.com'
+ Q3 e/ [3 ?; A; f  T$ J* h
; ]" k: |8 }" o1 W$ @- Xltrim(str)   
3 H1 I, F0 f8 O( n6 D4 X. ?& |返回删除了左空格的字符串str  ; W) R3 G: _. @. `; b% k
mysql> select ltrim('  barbar');  
! d0 Q5 Y  s. t  -> 'barbar'
. @5 \. M& S% w' y' `- M
% Z. D5 m% q0 ?9 b8 S3 lrtrim(str)   0 c3 g0 |9 O" C& k
返回删除了右空格的字符串str  
# c3 _9 Y) f/ b( ]9 O# k  Rmysql> select rtrim('barbar   ');  
% q. e) U5 o) W2 c" l  -> 'barbar' # V# d, @8 p0 Z5 c0 t
  n5 X2 \( y. b6 u) o
trim([[both | leading | trailing] [remstr] from] str)   : \; F: _" f, ^( ~# _
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
4 _. T( s; `7 a+ |7 k: Ymysql> select trim('  bar   ');  % O. y# v5 }# ~, w8 }7 R
  -> 'bar' : a; I. f* n9 H5 k
mysql> select trim(leading 'x' from 'xxxbarxxx');  " `# i' o8 T8 e! ^# r
  -> 'barxxx'
; r+ l4 B3 T8 k$ y5 f( c/ umysql> select trim(both 'x' from 'xxxbarxxx');  
0 p/ J3 B$ c1 [1 G/ N/ y) Y* ]  -> 'bar'
! `/ P' j0 G, I; A+ E0 s! Wmysql> select trim(trailing 'xyz' from 'barxxyz');  
: H$ z" `/ O, ~5 M: A9 t2 Y  -> 'barx' * {& T; [# m  n, @+ n7 ~# L
* e. G1 e( S6 K
soundex(str)   0 t6 g( r. ]; N
返回str的一个同音字符串(听起来“大致相同”字符串有相同的/ ~: ?& y, c% G
同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  
# i  }+ C) e: w$ ~4 J! Gmysql> select soundex('hello');  
( H2 h) o8 m# P( c  -> 'h400'
. p% p6 c& I- _6 C6 a2 U9 j0 fmysql> select soundex('quadratically');  
& p! J. |% d, y+ L' q! Z  -> 'q36324'
, ^" i4 c+ m; p* ]6 m$ C   
( W( g  D2 \6 ^1 bspace(n)   
7 |: W4 z  y5 Y7 h# |返回由n个空格字符组成的一个字符串  # Q& i' z5 j- v- }. a
mysql> select space(6);  ) f0 n/ h4 F4 i  J
  -> '      ' 8 ~; }8 B( |- O: [8 H
   , p6 r  k1 d5 s. S" ?/ e+ O
replace(str,from_str,to_str)   : r  `* ?# m" ^8 `1 b
用字符串to_str替换字符串str中的子串from_str并返回  
8 E0 X& r0 j3 b- _8 fmysql> select replace('www.mysql.com', 'w', 'ww');  
2 y* Q& t& s& T9 `  -> 'wwwwww.mysql.com'
+ o) c5 t% e  I2 u% _
' c" `# A" V0 Y' Yrepeat(str,count)   " g! M$ O: R8 r, f- U% u' I
返回由count个字符串str连成的一个字符串(任何参数为null时8 a! c% B0 L( o5 Q- c1 I1 q& E
返回null,count<=0时返回一个空字符串)  
3 ?0 p+ J3 h; z  y0 Qmysql> select repeat('mysql', 3);  
4 \5 Q* Q# L4 c$ D% u2 ^  -> 'mysqlmysqlmysql' ' @" _; `: k+ C4 J0 o/ U3 T
   
, d; I* ?" `; C& ureverse(str)   / j2 l* O8 C; s
颠倒字符串str的字符顺序并返回  0 t+ P5 r0 Z3 f7 N' Y- W
mysql> select reverse('abc');  
) i( p& c9 }  o2 [. r3 S  -> 'cba'
9 _+ `) @6 _. t; ^1 V1 s/ G 3 H! G# y$ x* B6 w8 e# ]
insert(str,pos,len,newstr)   
; Q$ s- Q! b# z7 c, q把字符串str由位置pos起len个字符长的子串替换为字符串
/ J+ H' x; u1 ]2 z; mnewstr并返回  ; q9 }6 }0 S9 E6 K
mysql> select insert('quadratic', 3, 4, 'what');  " ?3 N- c5 r4 A% Z: v( N1 F
  -> 'quwhattic' ' f( z. {' ?5 H

* t( z9 d( V0 ^7 T0 C' Qelt(n,str1,str2,str3,...)   " ?7 t; d8 Z8 }5 C. R& G7 ^
返回第n个字符串(n小于1或大于参数个数返回null)  9 x+ s0 u! X4 Q: @, L1 h+ O: q
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  & t* c, X3 Z1 v
  -> 'ej' - q+ U/ E) e" T) B9 f5 v' C
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  " B9 g, ]( {9 S: C5 H/ p
  -> 'foo'
% _- f& C: |$ b! H" h+ v9 E1 A
" q$ p# B$ C: x* p7 F2 Jfield(str,str1,str2,str3,...)   $ k: E# L; s/ R9 _3 X
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  ; R( g5 B4 z( @5 r
mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',8 P4 L+ {8 J/ ^0 U; Q5 L6 w$ C
'foo');  : w& ^5 O: |9 G! V% H2 k( @
  -> 2  
- q8 `  t$ u) Q1 m: G) nmysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
$ _8 U+ k7 }. X5 F$ F'foo');  
% J5 A3 I- j6 X. q, _  -> 0  
8 W7 M  [5 r# ^& Z1 L 0 h( z  R, T, `+ h
find_in_set(str,strlist)   
' {' K; ^$ d: O) p4 |0 m返回str在字符串集strlist中的序号(任何参数是null则返回
  u0 [8 E# L+ [& Nnull,如果str没找到返回0,参数1包含","时工作异常)  ( T  w7 q6 q& r
mysql> select find_in_set('b','a,b,c,d');  
" N' W( j7 B' x: P  -> 2  5 b+ o' w: {, B! {) z
   
6 m2 E7 e+ [- b2 Omake_set(bits,str1,str2,...)  
- r+ r; B4 X# h* r# w0 g把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
$ \  P. g) V, H位置的字串选入字串集并返回(null串不添加到结果中)  / X: \: C% ~/ P
mysql> select make_set(1,'a','b','c');  , ]3 J3 S( S5 D+ |( H
  -> 'a' 4 q; s% n0 G: J* @
mysql> select make_set(1 | 4,'hello','nice','world');  
% O* L* }. }$ Z* Q; j* l  -> 'hello,world' ) o& P5 Q7 p2 u+ `7 o8 P( Z& [
mysql> select make_set(0,'a','b','c');  
$ Q3 A3 ?5 j! k  -> '' - b2 ^/ }8 R: G/ d

& f; C) O7 L5 f" v+ p5 D4 Zexport_set(bits,on,off,[separator,[number_of_bits]])   
5 r0 g3 Q" B0 N% @) c$ M按bits排列字符串集,只有当位等于1时插入字串on,否则插入+ m1 {. w4 c- T) O
off(separator默认值",",number_of_bits参数使用时长度不足补0, c. ^# t5 I$ }3 q* T# C, x
而过长截断)   ' u# x! ~. L& q' I! g
mysql> select export_set(5,'y','n',',',4)  3 a; P" d6 X" p. i# `9 v$ x6 [! _
  -> y,n,y,n   
2 F8 I3 ~- @. R7 W" p: N ; s5 W) u; a) z1 ]
lcase(str)  
& u) X+ J$ @/ B/ ?7 A* ^2 \lower(str)   / O! ^5 i, v6 Y3 a3 I; ~
返回小写的字符串str  
. Y" U9 F! P0 v' B% g% Fmysql> select lcase('quadratically');  . U6 Q. |7 R1 ?+ o
  -> 'quadratically' " J" f# v  [9 a6 x6 ]
   
5 @0 E0 t( T# Nucase(str)   
  o* k4 e% B7 W* |  t9 M; M7 Bupper(str)   ) B. k* P. {0 k0 X  j. J
返回大写的字符串str  ) o% d% Q: O# W
mysql> select ucase('quadratically');  5 h5 F. p8 I8 y* X
  -> 'quadratically' * T) R( H+ f0 O+ N6 ?* h( R7 U3 T* N

& H4 e- {8 n6 [6 }6 Wload_file(file_name)   ; }. B0 Q# f2 b+ C; [5 b
读入文件并且作为一个字符串返回文件内容(文件无法找到,路径" `% Q! k+ X6 ^. I8 J2 n* C0 j" [
不完整,没有权限,长度大于max_allowed_packet会返回null)  8 j/ U- S- b9 [( n4 S( |* `
mysql> update table_name set blob_column=load_file1 M/ e/ k( A! u" j
("/tmp/picture") where id=1;  
7 s/ ?. N5 X) c) M3 P7 O   G& K# s, k& O* g8 i
2、数学函数
2 v$ `2 g$ Q; f( N7 I3 L+ Babs(n)
: @; Z8 I2 c" n1 y$ M; k# C返回n的绝对值  
$ ~" N( {, r9 \/ R2 D% d9 amysql> select abs(2);    5 f/ R; |* }& z8 J$ ?
  -> 2   
/ J9 t! Y, L+ Cmysql> select abs(-32);   
0 s4 F$ Y# K" G2 M. f  -> 32      Z# E! M" J: Q: c
   + T  G0 B8 s3 p/ J9 A1 P
sign(n)  ' W8 ~' D8 e5 _( ?3 o/ S/ M& F
返回参数的符号(为-1、0或1)  & Q1 C' z5 x# I3 v/ s
mysql> select sign(-32);   
3 W9 U% C; N0 }. M) U  -> -1    $ \: U: e" D2 t
mysql> select sign(0);   
# B! L! z, D/ j. C; Z. x  -> 0   
) c' C1 v7 c) c9 l& Vmysql> select sign(234);    8 ]- E# k+ l' A. r
  -> 1   
. ~" h. `: P$ [4 t" j7 j' @+ D
6 t  P- N- {3 I, |mod(n,m)   
" m4 ^/ N; R- L# @8 m7 v/ ?取模运算,返回n被m除的余数(同%操作符)    ; E" E+ E8 _5 K, H- x1 f2 _
mysql> select mod(234, 10);    % f  N2 _; y% d. V+ g
  -> 4    % Q& R. S2 s1 h
mysql> select 234 % 10;    + _; [) _- {8 K# s/ }' @& G' Q% f
  -> 4   
- @* W% v7 p) h2 _) Umysql> select mod(29,9);   
5 o/ R- h4 f( I2 P0 k  -> 2    8 T% _, j" C$ a! S. c6 W
- e; ?9 w. M- D: w" A* ?
floor(n)  
# j! Q/ c+ g& O1 y+ S% g" w返回不大于n的最大整数值  ' ]9 ?) O" S0 h! P# x& r" _, l
mysql> select floor(1.23);    1 f" N+ M8 S! p/ i6 B: l, }( ~5 ~' J1 ?
  -> 1    5 ^& h: O! P. d2 r- @2 ~; s
mysql> select floor(-1.23);   
- ^3 w5 h4 o$ G4 ^5 j2 B) {  -> -2    ( z0 s0 z5 t  a- @

1 Q. o! e2 t4 i; B; Uceiling(n)  
  J3 N& ?5 j, V% \/ A3 W返回不小于n的最小整数值  9 O; f% F! V3 K/ c8 m
mysql> select ceiling(1.23);   
) M5 s6 L) {2 ^* J) y1 ?1 j  -> 2   
5 W+ x9 f' b- _- q8 x* Z" r0 M+ Fmysql> select ceiling(-1.23);   
+ _8 w5 g$ }& B0 V' H$ C  -> -1   
" k4 E( ^6 ]& L
3 _8 z: f  ]6 t- m: M4 @round(n,d)  
! Y) W8 t5 W( Y- d( ~8 e" \返回n的四舍五入值,保留d位小数(d的默认值为0)  
: r- J+ ^  o1 P: }) }mysql> select round(-1.23);   
% @% }1 A- x% m/ r  -> -1   
) A. j: `8 s+ [- M% H6 Wmysql> select round(-1.58);   
0 q" X) ]7 O! E: ^* b; W. Z  -> -2   
+ D& v' ?5 w- a6 {( Jmysql> select round(1.58);   
2 j! D( g! A1 B" M" M) c8 K  -> 2    5 A1 T2 Z" a; C( K) o# J
mysql> select round(1.298, 1);    1 Z$ \7 @. ~: Q/ b- q" B* ~, V( ]
  -> 1.3   
9 g0 G5 u9 ?( ?0 y/ lmysql> select round(1.298, 0);    + b7 ~4 [, P  K) d
  -> 1    4 N, ]  Q- o# p" @) _# c# X2 n- d
; Z0 ~8 ?: t: k' j0 r; H$ p
exp(n)  , c* w1 S. C8 L5 F, u/ S" E
返回值e的n次方(自然对数的底)  : v) ^2 [0 f0 i4 G# `2 G
mysql> select exp(2);    : n' `) J& v  U  m& z1 S/ {
  -> 7.389056    7 E& |6 Y8 N+ |2 l' o, N
mysql> select exp(-2);   
" `2 g2 I# _) j1 E8 H0 n  -> 0.135335   
0 \* ?  I* }/ J
+ x# \5 ]4 I* g7 d+ Ylog(n)  
; b6 C2 w/ O' r返回n的自然对数  ! Y' a) f+ M# h4 {
mysql> select log(2);   
8 X" [2 p/ Z5 D$ ^  -> 0.693147    4 i' F! D6 p$ q1 ~$ q4 j' O' e
mysql> select log(-2);    2 r6 @; y  W: d  T0 v
  -> null   
" N$ I& e+ W7 J6 S/ | $ L* ?! a: {/ |9 h; Y9 S
log10(n)  0 g4 o3 Q& G8 R' v4 E
返回n以10为底的对数  % R: |) a. d. c. Z! F
mysql> select log10(2);   
; M4 c* T' @, G  -> 0.301030    8 A/ O  G2 x: e) Q6 }0 P6 Q
mysql> select log10(100);    % f/ m  R1 M9 Z' [0 f7 \9 t
  -> 2.000000   
, X& ]5 U; a) X- ^3 a; ]mysql> select log10(-100);    0 u9 k  Z1 y* M9 O( R1 |
  -> null    0 c- B% x# D$ c% i" X1 `. j9 v
4 C9 Q& C6 U. j3 ?7 l
pow(x,y)   
$ n1 l. ^3 M2 z9 _  ~# n0 A$ A4 a, Ppower(x,y)    ; O4 |/ f$ m( A; K
 返回值x的y次幂  
- @" `3 x8 y+ c9 ?; F7 vmysql> select pow(2,2);   
# x0 |; u0 g5 o# G$ a) P  -> 4.000000   
3 S$ x0 A* y- x: nmysql> select pow(2,-2);   
% }' i4 \7 {& d& I  {; a  -> 0.250000  1 v, s; b7 [" ~/ T! x. N

* C0 _( p/ b* M& Y; O, ?) ksqrt(n)  
' E# P9 J2 @& B2 v 返回非负数n的平方根  9 j% I" x  W. O; Y# W
mysql> select sqrt(4);    ) P' g1 @: b$ D! i* h+ }
  -> 2.000000    9 Q" R0 o( Q+ R& a( E7 `9 O
mysql> select sqrt(20);   
2 w$ j. i0 R5 R. X4 H1 z3 B  -> 4.472136    8 I- {  G% v0 B" A9 ~* F5 D5 Q& L

& {* `5 W& X# J  Bpi()   
0 ]3 e1 p1 O  R: s! v0 I/ U% n 返回圆周率   ; \' p5 a2 f' F% S- V
mysql> select pi();   
5 V$ A( s. L( M, t" @. h  -> 3.141593   
) A- Z# c$ R/ Y& B
6 x3 l5 {8 z3 ?9 `6 U5 s0 Q9 N+ V/ gcos(n)  
3 m) z9 [  L; l* b8 W0 w 返回n的余弦值  
0 h4 L4 m) o  ?' gmysql> select cos(pi());  9 K; M/ F' K+ s0 h) l
  -> -1.000000    & t, F  X. n& @# O1 @

; I: S+ ^& Q# P! G, N  z9 S5 R0 _; Osin(n)  
* m. P7 @) J  Z: J( B' L 返回n的正弦值   ! W) A% H! ~! B2 K# Q$ I
mysql> select sin(pi());    3 ~6 |8 ]+ M, R3 g6 B" w
  -> 0.000000   
0 [3 _2 r2 q0 A0 G
0 G; t$ T9 J* j* X8 m6 o" H+ Htan(n)  
8 z1 K% h" g/ T5 s返回n的正切值  1 C: h% V8 L+ x: u  ?$ f5 k. b
mysql> select tan(pi()+1);    3 G" ~$ g% ?4 h0 x! G4 L
  -> 1.557408    % H; X6 {  Z8 H0 H0 ]; o% A% W
9 T4 ^& f' d% K! X
acos(n)  
; D* S5 P; t+ M; L 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  
! s+ V& r. h8 X' X" t( Kmysql> select acos(1);   
# G4 I, J; h6 Z" H0 a- v, Y' b  T  -> 0.000000   
! w( V( d1 Z& @2 qmysql> select acos(1.0001);    " A/ I( Q5 E( S/ p
  -> null   
2 e4 x2 }1 t# Z9 e8 umysql> select acos(0);   
2 R7 f7 h9 h# N8 m: V  -> 1.570796   
: c( o" l, R5 K4 v) }& c! X
2 O" |% h: J% aasin(n)  ) V. z1 E+ [3 B& ]7 ?2 D2 o
返回n反正弦值  
) z: \, R- b3 _, Y. e1 N1 fmysql> select asin(0.2);   
6 E  k! P" H3 ?; Q; g, O  -> 0.201358   
7 n( h. i0 _9 A5 Kmysql> select asin('foo');    : I9 f( u+ q3 y1 m
  -> 0.000000    & }- m. V7 ^3 j# o  R0 @" N1 g

3 H3 ^0 i, D, j' @! Watan(n)  
6 A- V. G$ a' M: K# x返回n的反正切值  
; E% Q- c1 S/ D% V7 i7 Jmysql> select atan(2);   
( A3 d% D( G+ ~1 H$ J: C  -> 1.107149   
* X5 Z' s$ ^) y4 `mysql> select atan(-2);    . d, K& L3 d5 y; W! U
  -> -1.107149    4 C1 `' k( t; w. h, M/ F4 G7 T
atan2(x,y)    8 z) r2 d' f5 {5 q  I! W
 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  : S* t$ F2 T' W+ U  _) @
mysql> select atan(-2,2);   
; j# ^- }" `4 R, `" K" Z4 z  -> -0.785398   
$ k6 M! ]; Q) C! ^' w1 C4 e; jmysql> select atan(pi(),0);   
8 F4 R: B" y: S! B: M, u9 Y- i) d  -> 1.570796    0 a- P+ y$ H& @. Z1 T' N
- v; d0 T2 d% B6 F% r, Q
cot(n)  ; R# p) V2 e# Y) s% T# h2 \* I4 M  ]
返回x的余切  + c9 Y, B5 B/ }' U/ k" g3 q
mysql> select cot(12);   
9 E4 L$ b) G3 d( N" Y  [/ U1 `7 i9 d  -> -1.57267341   
* `1 B1 l1 k0 E7 I7 D3 ]mysql> select cot(0);    8 c$ K! d" }0 c3 s
  -> null    ' O) W; m# Y9 ^& \
" f7 h: [, D; G+ Z- n
rand()  
' u' |! x  d/ r: l( u' a" xrand(n)      N; g6 s. S$ |3 @8 t8 F. N) _
返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值) & `1 ]% y* V  n% v

7 T0 y3 C" b" imysql> select rand();    3 e% t$ b4 `' {. B* A4 j; [1 e
  -> 0.5925      z0 C+ q1 P, C/ `6 _. v/ Y" ~
mysql> select rand(20);    ' P# {. w& W4 A& _6 x9 {
  -> 0.1811   
& l/ f  P* Y- v) V6 v; m$ ]3 ymysql> select rand(20);    3 F2 x* r% j, N3 ]* E
  -> 0.1811    3 ?  S$ e6 r; [' Y3 F+ O* Z
mysql> select rand();    ( l9 @' n+ s  o& o; K
  -> 0.2079    $ M2 |$ R; p; }
mysql> select rand();    9 U1 }+ e/ I  |2 v% s) ^8 I$ h8 z
  -> 0.7888    / n5 s* j& D& x
$ N4 n$ z0 ^( e) A
degrees(n)  - G, K) h' p4 ~  h& e2 p7 t
把n从弧度变换为角度并返回  
5 C- @# d) u* F* gmysql> select degrees(pi());   
1 R, Z: O+ M$ ?3 p* `  -> 180.000000    . m9 j# r$ y) T, k8 _' R8 Q$ x
: s" [5 E3 L9 Y" C* y
radians(n) 6 b8 W9 F9 H6 ?7 o( y6 T& N
把n从角度变换为弧度并返回   
  Y/ |2 u7 l2 A' q7 P4 amysql> select radians(90);    , C7 @5 H! J6 {9 A
  -> 1.570796   
8 {  p" ]: t$ z% N0 |
2 k0 h- d/ f1 N+ Z7 {5 }$ g) D8 btruncate(n,d)    ! s/ U+ v4 S6 f/ G7 s/ P. q% h; R
保留数字n的d位小数并返回  % Y, }# E5 G+ [; Q! r1 y' s( V/ W
mysql> select truncate(1.223,1);   
  f: C8 E. _, j  f( i( w  -> 1.2   
* i/ T6 G( h! o: e9 m. j  zmysql> select truncate(1.999,1);      x/ `% [7 c. c( J. p( o! _
  -> 1.9    % Q, O' n; r4 p
mysql> select truncate(1.999,0);      g7 W# N8 ^- z3 ?4 ]$ |- d3 P
  -> 1   
/ S; G3 m: c) o0 |5 b; L4 g - g7 ]5 T! _1 F, ?# ]- d
least(x,y,...)    5 d7 Y' R( {( a4 X5 O* ?* N) }% t
返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
) E+ W8 S4 }9 i2 r* i6 c# Amysql> select least(2,0);   
* M& [/ Q6 q5 q# E: ^. B  F# S/ z: t7 q  -> 0    " _: g# r9 t6 k( {
mysql> select least(34.0,3.0,5.0,767.0);   
: `2 V$ A+ R! h; d) f( `: r  -> 3.0    . x' ]( y+ m/ K' E/ ^+ e. E/ p
mysql> select least("b","a","c");   
3 C0 {" o9 C. O9 a8 y/ O  -> "a"    ) Z- j- F6 U/ c3 i5 O; L: y+ W7 d! y2 @

& H8 V0 F! `: g/ k3 ?- I) Z, jgreatest(x,y,...)    4 f, @4 W; T0 X% J$ e* X
返回最大值(其余同least())  
7 h/ [7 Z8 H1 a. b/ \1 J9 T$ c0 ]mysql> select greatest(2,0);    ! ~, B; m2 a4 N# o- n( B4 q- l
  -> 2   
7 b; |0 W1 _& T1 s1 _mysql> select greatest(34.0,3.0,5.0,767.0);    $ b3 Q, K4 _0 w% y# t
  -> 767.0    + @; [0 _3 ?4 }  c
mysql> select greatest("b","a","c");    # O9 [! G5 d$ i# P4 V! k1 h7 n& h' I
  -> "c"     : F# D; P7 H, g  ^

( t- m& l. ~8 {3、时期时间函数
& X! k0 O! u8 \; t8 hdayofweek(date)    ! r  v6 j# t2 [6 N7 z& w: F
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  ' w5 ]3 m1 y; a! e1 p% l+ D! O9 M
mysql> select dayofweek('1998-02-03');   
( {! L1 m' y* J3 i/ W! {  -> 3   
( I. C- ^: a2 I2 g; k8 C5 w
5 X8 h" g% b1 L1 x& w( T9 \5 Lweekday(date)   
8 j. Q7 h: l: q' Z返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
% W6 U2 Z. |6 E  
- G) L. @0 L, ~7 ?0 [) bmysql> select weekday('1997-10-04 22:23:00');   
, U2 w# n' \. K' C; N" [  -> 5    % r  V, H$ \, |! P. h
mysql> select weekday('1997-11-05');    4 |! d0 Z( B7 H4 ]
  -> 2   
/ ^6 @! d3 Y% x+ A( Q
. S7 K" B" B" p2 Z3 cdayofmonth(date)    
, g  q2 X" Y6 |# l返回date是一月中的第几日(在1到31范围内)   
( U( g( l, o8 Imysql> select dayofmonth('1998-02-03');    0 n3 n  @. G9 ?5 A
  -> 3   
( `3 n) {) m* n3 }
( w, w% C, A' f0 R. g: U# D$ }- Rdayofyear(date)   
) ^5 C. ^3 X7 F" C返回date是一年中的第几日(在1到366范围内)   
. I' x% D* |3 g+ H1 `5 G* ^( Umysql> select dayofyear('1998-02-03');   
3 Y0 O4 |/ [+ m* M) u1 Z  -> 34    # m$ L2 o7 h. L3 }! Y$ P8 B

. P, d8 Z+ F  H9 Vmonth(date)    1 @7 _: G8 }3 q' F' }2 z$ N
返回date中的月份数值   
1 ~  F- Z& U9 G0 a! bmysql> select month('1998-02-03');    0 S3 U) \5 y+ m7 _1 c: H
  -> 2   
8 `9 Q, q6 h+ g
! R6 S2 f0 T4 d% ^4 h+ E( rdayname(date)    & q7 e6 U. c  c0 a- Q  H
返回date是星期几(按英文名返回)  + J8 M; G4 W  m# w& X0 W0 m
mysql> select dayname("1998-02-05");    * A* t$ V- v; R5 Y8 u
  -> 'thursday'    - J& w+ T4 F9 h+ C. @" B$ C' e

/ l$ W/ p" V2 v1 Y& Smonthname(date)    
- ~1 f( e1 g6 y- t6 _返回date是几月(按英文名返回)  
  c7 ~+ y4 D! c7 q; h" y5 E, }/ s! Amysql> select monthname("1998-02-05");   
4 V$ B6 b! X5 m8 c  -> 'february'   
0 c1 B  H0 B1 {5 }* q' @" A! f3 }+ h 1 e# M0 w6 V% A
quarter(date)   
7 f* z& p' a* ]7 z( o( y返回date是一年的第几个季度   
" l6 n. w" C, Qmysql> select quarter('98-04-01');    ! J, P. Z) X; h
  -> 2   
4 k: E2 b4 x& @) {" Q# J& A
/ w; R9 Y+ p3 |3 I! uweek(date,first)   9 W, I+ n, W/ a5 v9 Q( o
返回date是一年的第几周(first默认值0,first取值1表示周一是
2 j. G% R9 P" b7 o7 y周的开始,0从周日开始)  
! t6 e) Y$ p# Zmysql> select week('1998-02-20');   
& ^) l+ `2 @2 y  -> 7    ; }7 h# u0 r. {# ?* Y& ~" K& K% u4 J
mysql> select week('1998-02-20',0);   
( N/ |- W' @9 p% l4 k  -> 7      u# ^1 s9 q) n, k
mysql> select week('1998-02-20',1);    ; j, d4 @- S+ ^% Y: [5 ?( z/ J: B
  -> 8   
, R' V$ e# o+ f2 X+ b 7 q/ f5 z+ A8 Q) O# x) c
year(date)   
1 g$ y' H2 i  N; p7 e返回date的年份(范围在1000到9999)   
& O  }2 E# x* Y3 S% E/ t0 ^mysql> select year('98-02-03');   
2 q( e0 \; `9 s  -> 1998    5 o# \0 M: Q* w# F$ J/ h# i
  t: V( j) W8 s1 Z8 r
hour(time)    4 l2 i. S5 ~1 Z% b6 G* P
返回time的小时数(范围是0到23)   5 H* \) t) r. a7 w! v) W1 z
mysql> select hour('10:05:03');   
: S" C, B! s0 J7 {& O. c  -> 10    # F& @5 M9 G, ~. l+ t7 p7 Q
4 k  k. c& s2 s+ c
minute(time)    7 Q& Y/ V6 I* M( ^: I- U9 k3 P+ }
返回time的分钟数(范围是0到59)    3 K9 O2 ^" E& ]3 R
mysql> select minute('98-02-03 10:05:03');   
  P) l* p1 W6 X& z4 v  -> 5   
3 R; C1 H1 K5 D% y) a. G1 T; q/ d 7 G5 c+ c9 U. u, D  G! e9 d
second(time)    
1 x: d. Y! J; D6 s5 H返回time的秒数(范围是0到59)     p* G4 H4 A2 q& l/ ^$ I
mysql> select second('10:05:03');   
% {" T' R! }* c$ `' }  -> 3    7 O4 t9 d# y4 Q1 j' W& \7 N2 u, N
9 t2 _8 M3 Y) p5 j& ]1 C
period_add(p,n)   
) V5 r2 P% X% `, a% U增加n个月到时期p并返回(p的格式yymm或yyyymm)   
6 ^' |8 n$ b( v5 j: q6 `mysql> select period_add(9801,2);    0 U& H& C3 M, T. |% x2 Q
  -> 199803   
7 x/ q. c8 b9 Q7 R0 z. Z
. L8 C8 U0 e, b+ U- K" zperiod_diff(p1,p2)   
- O* w6 H9 j& y- p& V返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  
' o9 |" z0 y+ k" c  `& Amysql> select period_diff(9802,199703);   
3 \& P7 V" X  V$ @) y$ m8 l/ X  -> 11   
% ]' u# h$ B6 q) h- J- z+ Z
+ k0 n; s: s6 a5 j# i. V8 ]date_add(date,interval expr type)  
, m- l9 W+ I8 e/ M3 bdate_sub(date,interval expr type)   
! V6 T0 T. V: E+ K  w/ v8 E! Wadddate(date,interval expr type)   
  V1 O3 c6 {# _) R9 {3 csubdate(date,interval expr type)  + f  D3 i4 e. R9 `9 s
对日期时间进行加减法运算  
  T. z% G- @4 X8 ]% n(adddate()和subdate()是date_add()和date_sub()的同义词,也
. N* D! D; Z+ Q% W* `8 K" n可以用运算符+和-而不是函数  & u  A. v1 S) Y$ G* @
date是一个datetime或date值,expr对date进行加减法的一个表
: T  Q  C: ]+ g+ N9 Z/ R' v达式字符串type指明表达式expr应该如何被解释  
# v* f( d) Z& ?/ x. G  Z" I [type值 含义 期望的expr格式]:  
1 N2 P7 U6 u) m8 e9 P' R8 E/ C! A6 W second 秒 seconds   
$ s3 q5 [. r0 Y5 A0 ^4 b1 A minute 分钟 minutes   
2 E0 V& B& l1 a4 Z' A hour 时间 hours   
6 E+ Z* {1 Y) f+ R/ E; I day 天 days    4 W" _& ~. i5 Z( {  D
 month 月 months    9 S( @! _" _- \5 u: y
 year 年 years   
! i: T# j0 d2 u minute_second 分钟和秒 "minutes:seconds"   
* \  `* j' Y9 a/ b; P hour_minute 小时和分钟 "hours:minutes"   
9 G' t0 ]9 B. ?: N: ]. ^ day_hour 天和小时 "days hours"    . d  l% D# |. `# r6 I* g
 year_month 年和月 "years-months"    $ a2 W7 _  `% O/ k" z8 `8 E
 hour_second 小时, 分钟, "hours:minutes:seconds"   
( ^' ^& h! G, j' v" e day_minute 天, 小时, 分钟 "days hours:minutes"    + g0 y! I$ O1 n; q& T& }6 `; e4 P
 day_second 天, 小时, 分钟, 秒 "days; `3 o: ^4 v. t
hours:minutes:seconds"
1 }1 Y/ r2 l8 M2 L6 ] expr中允许任何标点做分隔符,如果所有是date值时结果是一个
2 e, W' E, r/ ~$ U: vdate值,否则结果是一个datetime值)  
  Q7 S/ f' I! U9 |" z+ }& O# o 如果type关键词不完整,则mysql从右端取值,day_second因为缺
2 d( N" c* u6 E; v( F5 x少小时分钟等于minute_second)    z# s! q# R7 c' ]! ?
 如果增加month、year_month或year,天数大于结果月份的最大天4 ?- L4 A2 C8 b
数则使用最大天数)    - S0 T  c$ J/ N0 g! B
mysql> select "1997-12-31 23:59:59" + interval 1 second;  & Q) r4 T5 j2 Y- L$ v! B# \& M- m
) p" ^: Q9 n/ \- Z7 [4 O% E4 b
  -> 1998-01-01 00:00:00   
7 r; k& W6 ~4 \+ Y4 }mysql> select interval 1 day + "1997-12-31";   
$ l  q( M5 b& }4 O- H$ `  -> 1998-01-01    5 r' d4 Q" {, E( ^
mysql> select "1998-01-01" - interval 1 second;   
$ ~, H/ L. }7 ^4 Q' Z  -> 1997-12-31 23:59:59    : O9 [3 Q) D0 R4 P+ t) o( h) t
mysql> select date_add("1997-12-31 23:59:59",interval 19 i2 [9 P! x5 T0 H7 ~
second);   
" k3 n  b( S! D- i0 K+ i  -> 1998-01-01 00:00:00   
6 l& V! W! v# ?9 S  ^mysql> select date_add("1997-12-31 23:59:59",interval 1% p2 e1 H" U7 i9 p2 n
day);   
) S  z  H! A6 l4 \, R2 B- z* ?/ z5 W  -> 1998-01-01 23:59:59    & X/ Q/ b- i5 y- E# ~6 @. Y: N
mysql> select date_add("1997-12-31 23:59:59",interval
- j) ~: B9 ^! l6 _' u"1:1" minute_second);   
8 v( |6 D  X8 U9 G0 n  -> 1998-01-01 00:01:00    8 V# J. \  P3 g" W2 |# o' f
mysql> select date_sub("1998-01-01 00:00:00",interval "1
/ N) E" A" q' d' G" O* l: Q4 R1:1:1" day_second);    6 C7 p) l; T$ t
  -> 1997-12-30 22:58:59    3 N2 S- l1 E$ F) E( j. U6 o
mysql> select date_add("1998-01-01 00:00:00", interval "-1
* F6 }! Q- T/ ?* o" D3 t* D10" day_hour);  
& t6 t& ~+ l/ j8 B! v" j% b3 _  -> 1997-12-30 14:00:00   
4 Z! ~4 M0 a0 ^5 v1 tmysql> select date_sub("1998-01-02", interval 31 day);   
# u& X  |: O6 L& o/ G5 w! w  \  -> 1997-12-02    4 }! k# x" P4 X5 s0 Y
mysql> select extract(year from "1999-07-02");   
6 _- A# ]) h9 i+ v& l7 o; V% l5 F# O  -> 1999   
1 `: i- b3 P# ]mysql> select extract(year_month from "1999-07-02& t7 I, }( U7 [7 e
01:02:03");   
8 j; s7 P& Q* E( ]  -> 199907    1 `# |# A& N6 O8 v6 g2 h) M
mysql> select extract(day_minute from "1999-07-02, b7 T: s! c  J& n" ]4 x2 a1 h8 I
01:02:03");   
: H$ e" G& U/ t, y( z" V  -> 20102    7 ^" T! s) z0 N+ {9 ~9 {+ J

$ ]7 m2 @" V3 cto_days(date)   
' }- w- z: J! A! a3 P+ F3 g返回日期date是西元0年至今多少天(不计算1582年以前)  
. q' a. v7 @& [) m/ Jmysql> select to_days(950501);   
( j( Y/ W8 J! I( m4 E* a6 |  -> 728779    ! E9 S- p. D" [: b' u+ {
mysql> select to_days('1997-10-07');   
: ?: }7 N2 Y7 r. B$ C9 F3 E3 D  -> 729669   
9 `! o$ q0 v) {
  k& w% ?/ C$ m% Q1 mfrom_days(n)    9 b) p) H+ C, ]5 h0 D3 u
 给出西元0年至今多少天返回date值(不计算1582年以前)   5 C4 G/ d& G0 B, G8 h
mysql> select from_days(729669);   
! b0 T! D+ l  n. K) z  B  -> '1997-10-07'   
6 y# c* ^% S( x; g) h# z- z# ] . Y5 Z4 n0 A) X& M# C
date_format(date,format)    + B4 W8 S* y, }! b1 p
 根据format字符串格式化date值  
1 s( ?+ F( b: E: S# T% A1 q% h (在format字符串中可用标志符:  $ i7 [5 x' v4 u1 W) o# ]$ l) N
 %m 月名字(january……december)   
: I/ o8 D4 Q: T" Q4 v6 l %w 星期名字(sunday……saturday)    % {! m7 h- p  x, \) a% o
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)   
; M. }0 S- W# U %y 年, 数字, 4 位    2 L  E7 ]  \0 Y- q
 %y 年, 数字, 2 位   
8 G' S) d4 a# F' [7 L0 P %a 缩写的星期名字(sun……sat)    * A. N+ S( M5 x7 D0 I
 %d 月份中的天数, 数字(00……31)    1 C+ W. s; j* H% N+ T8 S
 %e 月份中的天数, 数字(0……31)    & l* Y% E0 ]. t% [+ E# P
 %m 月, 数字(01……12)   
; j% i9 J* `: l! g3 b( H %c 月, 数字(1……12)   
% `; M" q# X& L- V) @: q %b 缩写的月份名字(jan……dec)    $ m# J, T- O2 `, A. o% k" }' y
 %j 一年中的天数(001……366)    . I, |/ X$ _; r- a+ v0 L3 K) u
 %h 小时(00……23)    % q* d3 H' H! G
 %k 小时(0……23)   
; A% b. }) u. c# ]3 r; r. s- A %h 小时(01……12)    6 `4 j+ q0 y  |# B1 {$ S, c0 v2 s" R: m
 %i 小时(01……12)    1 R! ]* A3 ^% K, U
 %l 小时(1……12)    - f' c! G; X- t
 %i 分钟, 数字(00……59)   
8 W( `" u: K( A %r 时间,12 小时(hh:mm:ss [ap]m)   
( I. p$ b0 e  g/ _6 z! U( J' @/ H %t 时间,24 小时(hh:mm:ss)    / X5 E2 I6 ?* a  D( N
 %s 秒(00……59)   
- R# u6 C6 o, y- U( }* w %s 秒(00……59)   
6 M, n4 _+ ?2 D% m4 s %p am或pm   
6 m- E! }, Z4 T- i %w 一个星期中的天数(0=sunday ……6=saturday )   
- D2 l1 a6 v. c1 \- ] %u 星期(0……52), 这里星期天是星期的第一天    5 v+ m/ i9 ?. I' w. m% v# Q
 %u 星期(0……52), 这里星期一是星期的第一天    % N. C" x3 c4 ?7 P4 T
 %% 字符% )  
8 k0 C- ?( k$ n/ a0 S5 [# Hmysql> select date_format('1997-10-04 22:23:00','%w %m %
3 s' k) [) I, j9 |2 k& R; f! N3 Xy');    9 J) n4 A6 H+ c% W
  -> 'saturday october 1997'   
5 K" y2 Y9 B# U: ?5 [' ^mysql> select date_format('1997-10-04 22:23:00','%h:%i:%" J1 t) d0 Z' V* ?! p( S  t0 s0 K
s');   
4 Y$ m( T! z+ r% y  -> '22:23:00'    / k, z% E+ K1 y: E
mysql> select date_format('1997-10-04 22:23:00','%d %y %a
8 e0 z+ V$ S* c' r& ?%d %m %b %j');   
& ?  F7 ?$ O. W0 {( i6 F( `  -> '4th 97 sat 04 10 oct 277'    " e% M- ?% ?- x8 a# S
mysql> select date_format('1997-10-04 22:23:00','%h %k %i
. n- ?. k- M1 W, j1 E1 Y9 N%r %t %s %w');   
) U% `8 }; V" [& Y. e8 L  -> '22 22 10 10:23:00 pm 22:23:00 00 6'   
' n! H' {9 |5 S/ p
7 `) x& F  o! v: Z; _) o6 ]8 v# Itime_format(time,format)  + a4 e- C. u8 c- k8 ?6 ^3 T
 和date_format()类似,但time_format只处理小时、分钟和秒(其
' p+ W% s: ~* @, D4 {9 ?余符号产生一个null值或0)  5 F( f1 X: s  o* G; p8 b

$ [, q5 ]( q' f- C+ u% `  Fcurdate()     
& M5 t/ J( t+ U, n3 e6 r1 S5 N, ocurrent_date()  
& m( V; [- C; v0 i  R" d 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
0 E! N' F* B( \2 T0 [处上下文是字符串或数字)   
& R' H4 r6 {: W2 `/ e5 Pmysql> select curdate();   
% m: j3 H, u$ `5 [& s+ o; p  -> '1997-12-15'   
, K8 l0 c- k" K  Y9 vmysql> select curdate() + 0;   
# t% d8 D* ^5 R: U8 ^  -> 19971215    & @0 Q7 G; B  U' B5 \( _
& n! f( C$ u7 i3 v( f! ]
curtime()   
- b8 ?5 b' q5 E( Z# v3 V3 o6 Vcurrent_time()  - [2 J) I+ u, s) ?( z% Z
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
* F3 S, H; k$ I下文是字符串或数字)      ! u0 [" c2 X, R( l% P  j) _
mysql> select curtime();    3 v0 _' `7 U' d3 U
  -> '23:50:26'   
6 @0 t: V9 O6 X. ^) b1 e  G/ smysql> select curtime() + 0;    5 q; I* a. c2 A
  -> 235026   
4 n$ {  [  h9 h& ?" J8 s 4 [% d' |! n$ i- [0 q
now()    
$ c7 _/ G  h( [6 i, u- \( xsysdate()    / j" I& A  `6 Z& l
current_timestamp()  * B: U5 y1 p2 K
 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期3 M& J& Z  G4 O' b. [
时间(根据返回值所处上下文是字符串或数字)     ! @0 K% ^* G$ e: O& ?0 c6 _
mysql> select now();    , @; ~$ s2 p# G$ \9 M5 c' t6 t1 t/ B
  -> '1997-12-15 23:50:26'    6 O* \: B( I0 x  |9 ~, ?- M9 W
mysql> select now() + 0;   
. _. M* j0 D7 c7 W: F5 R  -> 19971215235026   
$ P- p6 e- K2 v, m6 t4 H: p
# i/ w2 ~! V- E0 b( H# cunix_timestamp()    : N5 ^% h' H2 W) k
unix_timestamp(date)    8 O$ m; u/ t6 |4 P7 V
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
0 f% s! y. K5 v  @数,date默认值为当前时间)  " {) k+ h) V) \( ~; O/ [
mysql> select unix_timestamp();   
3 T+ Q0 r* {2 v: H  -> 882226357    ( }; W+ J9 t, }& A
mysql> select unix_timestamp('1997-10-04 22:23:00');    . N3 P' ]8 d' D) O
  -> 875996580   
" Y1 O$ W0 ]5 _; T0 o1 o2 K$ x ! T$ d6 O5 f0 o5 q4 s
from_unixtime(unix_timestamp)   
' _; w, J# Q$ M) T3 K2 j以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的3 S2 a5 S+ s1 }9 \$ h# A
值(根据返回值所处上下文是字符串或数字)     # P  N9 B: k# ]7 T
mysql> select from_unixtime(875996580);   
7 h1 A/ y6 M) S& ~* s. f) P& o  -> '1997-10-04 22:23:00'   
1 _$ T+ J9 K4 @  N- wmysql> select from_unixtime(875996580) + 0;   
9 P% k1 ^: B( b. T1 q8 K5 x8 a  |  -> 19971004222300    ( |3 L9 o) p& k* B* F3 g' p. L
" B. a7 q* Y$ \- S: [
from_unixtime(unix_timestamp,format)    $ X8 ?* K7 m, u8 H
以format字符串格式返回时间戳的值  
! q" e% B- I( W  \- K+ |% Q; `) c3 qmysql> select from_unixtime(unix_timestamp(),'%y %d %m %
* ~' X6 \! m0 V/ s3 x. Nh:%i:%s %x');    * W; ?( w" ]3 P9 G
  -> '1997 23rd december 03:43:30 x'    3 s" u5 D3 n- p; j! Q" h
2 R, ~1 P- V' |- F1 J9 S6 ]; Z+ S
sec_to_time(seconds)    , V# o( B& t. y1 N' S
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
+ S  r. F4 E' R6 T, _! E5 `mysql> select sec_to_time(2378);   
0 P/ L; K% k) M" O! u, @) J  -> '00:39:38'    5 O, f5 t$ m  H' S3 g3 Z7 K) l) W
mysql> select sec_to_time(2378) + 0;    * ?3 y8 R  G; }' M! J# G
  -> 3938    + B; Y, e) d. \

( z3 R, o% b5 m% J( U# E2 Itime_to_sec(time)    & R$ w4 t! [8 l5 S' E2 h/ T
返回time值有多少秒    ; p  T3 Y8 n7 {1 I
mysql> select time_to_sec('22:23:00');   
2 ~: \0 o# V$ T. @  -> 80580   
# c% ?0 M7 i/ t6 ~) \, u5 o% n! Z# Zmysql> select time_to_sec('00:39:38');   
& A3 P# d, I" f3 N7 Z2 _0 ]  -> 2378
" I, e$ h( \' k+ W0 y 0 n- a* K  U% D+ X+ N6 m  d# F( R% t
转换函数
% `& v0 x$ ^1 Y0 jcast$ P3 U* v0 k0 t& r  z
用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]
! ^) m) ]) ~1 S8 p实例:select cast(a as unsigned) as b from cardserver where order by b desc;
6 _+ t8 t# d) ^: h" }7 r. ?$ {! Cconvert:
" B! _2 f/ G- R3 h用法:convert(字段,数据类型)
$ s2 U; w$ I; v1 `6 I0 v  w实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
* F8 t5 o, u3 K8 x
回复

使用道具 举报

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

本版积分规则

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