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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数
/ V+ h' e* {4 j/ R6 c8 Z9 P* kascii(str)     [2 N  [/ |+ t: w3 J
返回字符串str的第一个字符的ascii值(str是空串时返回0)  
, w" U7 ]/ a, S/ l6 |9 Z  J/ n) u* D7 tmysql> select ascii('2');  
5 Y  V3 |5 j! K  -> 50  
9 q0 j+ X1 W% @/ A; vmysql> select ascii(2);  9 c5 T8 k1 j& y! _" J
  -> 50  
# Y3 q* K* {  i: Umysql> select ascii('dete');  % \' o% _1 D# S, }) z- T
  -> 100

) k7 u$ v7 ?% kord(str)   
) H5 W( G6 F  ?% p! g7 e如果字符串str句首是单字节返回与ascii()函数返回的相同值。' ^& o, o3 u  |/ m2 C
/ z1 M5 X2 i$ o& {
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  
- Q. c8 ~- e; t% k) L' @mysql> select ord('2');  8 l* }* M+ i3 X+ Q0 Z9 l8 L
  -> 50  ) s2 C6 ]2 |3 [8 i! S  A( {6 j
   
, f: j4 g3 ]: nconv(n,from_base,to_base)   
, i' C1 R$ F( I& m$ s3 ]6 h( C6 z对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
/ z9 i9 E8 s7 Umysql> select conv("a",16,2);  
/ R" R1 U1 t( J% s0 ]  -> '1010' - f. y4 @$ A: a
mysql> select conv("6e",18,8);  ; z0 }6 j* K; O8 t& E% J6 N2 d5 D
  -> '172' 7 w9 i/ d! r1 v% m! T6 ?
mysql> select conv(-17,10,-18);  ) L& b4 d$ D! @8 ?4 L8 f' L- P$ w( H
  -> '-h' : t  t5 r% z/ |. Q) g
mysql> select conv(10+"10"+'10'+0xa,10,10);  
' m/ ^' l: u# S8 m& R+ u  -> '40' 0 W+ d8 I; G0 v: Y- r4 m' |7 p0 C
   
6 n& A( ^/ ]* Gbin(n)   
) W( R' g8 t3 K/ d, ?- X1 X7 v把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
0 t# `$ }6 i+ [. f3 T+ ?# d" cmysql> select bin(12);    g! C8 n# ~7 \. Y
  -> '1100'
; C8 k" [/ O, W  l 0 Y! X3 P1 G3 \  X+ ]' Y
oct(n)   # N$ g' q9 x0 p+ Q, ]( K% h! n! e
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  4 j8 ]1 y( u1 H8 q: e& c
mysql> select oct(12);  1 l. m) ?. ?, v) }2 H
  -> '14'
* {0 R& s  l2 j/ K   
* m/ }  I: ?5 e% Ahex(n)   + Y4 E  d; x; U, ]
把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  0 e5 _/ ?3 q8 N6 ]. ^
mysql> select hex(255);  / z, b$ f: x: L3 t) O
  -> 'ff' $ o! D/ U! D( a* s/ L
   
8 `5 m- k7 O& N- J9 wchar(n,...)   
  |  _1 q2 Q; ]7 R" d; }9 ~+ n返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   
/ |9 p6 y2 [0 a4 Amysql> select char(77,121,83,81,'76');  6 F+ O7 p% l; B9 Y: D5 N
  -> 'mysql'
' |5 ]5 p8 S* _% fmysql> select char(77,77.3,'77.3');  
) |( A0 }8 \( D* i. }* E* \6 `3 o  -> 'mmm'
8 u+ g0 D" ]3 Z! v& r* q+ S   " \9 j$ P1 U5 `# N. B
concat(str1,str2,...)   ' H% H5 \3 G2 r0 j8 V7 J; K# }
把参数连成一个长字符串并返回(任何参数是null时返回null)  0 I3 q1 m7 j8 k# L, L/ U
mysql> select concat('my', 's', 'ql');  
) P' w( y. w! D2 j0 E  -> 'mysql' 7 o: O4 M+ q( |3 a& t* V1 a
mysql> select concat('my', null, 'ql');  
) O3 Y/ K1 h- E: l$ |  -> null / c$ U" m! ^( Q  r' L
mysql> select concat(14.3);  : V2 q9 |% @3 g6 I! P/ Q
  -> '14.3' 0 @) y2 f1 p8 o( w- x
0 w! z" i' }. `3 l! x8 V
length(str)   " e* n- k# Q6 M/ `; M8 H
octet_length(str)    j& v+ {/ l: v. Q9 Q, D; Q  T
char_length(str)  
( b# p$ `, m# E( O- A/ t9 |character_length(str)  
4 Q5 E+ p8 ?( X6 i3 ^# |返回字符串str的长度(对于多字节字符char_length仅计算一次)2 G' K, U; Y2 V; ]
mysql> select length('text');  1 ]6 K- M5 q0 ]1 ], n* l3 V
  -> 4  
8 O" I9 r8 D: @# l. `8 A+ wmysql> select octet_length('text');  . r/ `7 M# H  j  P, G
  -> 4  ! R* S- E2 `: c7 Q' e

3 X" Y, z- y6 m( K1 Llocate(substr,str)   / J+ i" S: Z; @3 c
position(substr in str)   3 z3 O! v% r3 C% ]+ n
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  0 G9 v! l; n" ]  _6 i4 ~2 Z
mysql> select locate('bar', 'foobarbar');  , i9 Y& o. t! G- B$ P9 `- e) W
  -> 4  ! G2 F( i2 \& T
mysql> select locate('xbar', 'foobar');  
$ [4 J3 ]7 s# i1 Y" \  -> 0  
! S& y% {5 q& {! H+ X  b& @* [   
( R: I2 U. k3 }' x7 S; r  zlocate(substr,str,pos)
/ e$ v, b; I6 K1 g) V* z返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  + u( e4 l* _5 h7 M/ w7 i' C8 e
mysql> select locate('bar', 'foobarbar',5);  # K. ^: R- v# E: w# M
  -> 7  : ^6 M+ _) x) {" p

2 J- j! u" K( e" V& I) Ninstr(str,substr)   * W8 o5 ?* m: A5 s
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  & a- v# x8 |' O& j; M4 u; E, w! {
mysql> select instr('foobarbar', 'bar');  
5 I2 N; u' X$ i- U  B( `+ r& W  -> 4  
( n8 w" }1 P8 a  X; }( O0 ymysql> select instr('xbar', 'foobar');  
$ M% P  N2 @( e9 T, l  -> 0   2 ]- |3 Y& R( I, m6 t

7 `; G7 M' y+ q. f# j) U. Vlpad(str,len,padstr)   0 G5 u; a) [' D# A4 m+ L+ \% _# i
用字符串padstr填补str左端直到字串长度为len并返回  # y& ]/ G7 b( L& v* E6 b* K& G0 ~
mysql> select lpad('hi',4,'??');  
( M; Y6 T+ `- \2 S) U, m, r  -> '??hi' 0 M8 G6 Q% @* S5 t% F" k
   / O* z' J# w4 u
rpad(str,len,padstr)   2 ]  ~" C$ d: P- ~
用字符串padstr填补str右端直到字串长度为len并返回  
2 Z+ Z9 n+ A7 I7 _7 Q# d) _4 hmysql> select rpad('hi',5,'?');  # j, |; w  B7 Y: w2 A0 l4 t' p
  -> 'hi???'
) q( J. n+ B) j1 S
2 a8 p& K7 h" I: Qleft(str,len)   ) N3 g0 a) ~# b- x) Y  d! h
返回字符串str的左端len个字符  2 `7 B. b/ ~' A/ t. e
mysql> select left('foobarbar', 5);  
4 {) k9 B/ m7 G) f, ?, `" \  -> 'fooba' # [# r, z& r4 p: W0 ~3 H
$ C" M$ t. }4 t1 Z8 E2 ?( M
right(str,len)   
7 Q4 c3 M& w* ^$ z' D0 i7 V! W返回字符串str的右端len个字符   
' `9 x3 x+ i3 W1 d5 H) r& Rmysql> select right('foobarbar', 4);  
1 N. @. j6 a1 W+ S" D  -> 'rbar' * o- n5 F' G/ ]5 Z9 Y% f
. |) U' }* P$ F: ~8 _' E6 ]
substring(str,pos,len)   
8 h  K* f, r# B8 G- U$ o2 dsubstring(str from pos for len)   
4 S2 D: U6 }" b, Z) D- Qmid(str,pos,len)   
- H3 I. J- s" v* B% I返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
2 k, p# O8 J$ {% V8 u, ?  -> 'ratica' 3 k2 S2 Y5 R$ U. u* y# h
1 m; r& r- t3 s6 Y& `9 S& }/ U- _
substring(str,pos)   
' T2 S- ]/ d6 W0 J: K+ esubstring(str from pos)     H3 ?, O/ V" \0 {! p0 g
返回字符串str的位置pos起的一个子串  
2 T: P2 o" E* b1 ~mysql> select substring('quadratically',5);  * _: p* g" l- b4 O6 |
  -> 'ratically' ( q: Y+ z2 L5 d: }2 l9 `# l) P
mysql> select substring('foobarbar' from 4);  
' n$ m/ T  f. _  -> 'barbar' : k5 L. ]' ]! \
4 ]3 j. s% P! H$ e1 E
substring_index(str,delim,count)   ) \+ ?. U& J2 \9 l" a$ b
返回从字符串str的第count个出现的分隔符delim之后的子串3 z) b  R/ }! U" p: Y6 y; F. T% e' X3 A
(count为正数时返回左端,否则返回右端子串)  
3 r: _3 N# G: smysql> select substring_index('www.mysql.com', '.', 2);  # J+ [8 p9 }8 ^# F# d
  -> 'www.mysql' $ w  s+ j6 h3 \
mysql> select substring_index('www.mysql.com', '.', -2);  
% Y/ f. l+ s8 V, L7 ~6 K. A+ A1 b  -> 'mysql.com'
% w8 [- y7 w3 q$ [, L( k ( V5 \4 i& W& [  Z
ltrim(str)   
) z" P4 l$ \7 v) z& T: M返回删除了左空格的字符串str  
0 }. ?9 [: I; d& F/ tmysql> select ltrim('  barbar');  5 f6 d) S7 U) s. [$ P5 M4 W! d. k
  -> 'barbar' : t9 S) X0 E* d% L" V) D) I' H
5 K  d* {4 c3 R- x
rtrim(str)   ! t' ]& C1 ]& E% ]- y+ e, t6 J
返回删除了右空格的字符串str  % Z5 C6 {/ ?; @' ~, G
mysql> select rtrim('barbar   ');  , C; @4 T5 q( G  ?9 X" P( m
  -> 'barbar'
% `7 P: i7 b' @' E $ I( L% k+ y* a1 R& a. i! r
trim([[both | leading | trailing] [remstr] from] str)   & f# t# X& F& J' E# c7 c
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
8 Z& ]+ O0 B' F" imysql> select trim('  bar   ');  
+ [. G! E9 d( @& C, M: V  -> 'bar'
0 c- U* L# \" s+ l! y3 @mysql> select trim(leading 'x' from 'xxxbarxxx');  4 l, p4 B; G) Z1 S) ?
  -> 'barxxx'
. q* ?9 t3 z/ P4 U6 p+ ?/ v% Amysql> select trim(both 'x' from 'xxxbarxxx');  
7 p7 c  J5 ^/ X3 B5 o: B* [  @  -> 'bar'
/ ?" F4 ~# Y9 _0 V6 D9 k4 ]2 G0 y/ Xmysql> select trim(trailing 'xyz' from 'barxxyz');  
5 x9 c9 \9 n: c8 g' t$ q1 C  -> 'barx' 6 ?; [# G0 c$ W. M2 |  d

( u6 E; L0 q2 h$ k2 ksoundex(str)   1 l' x; L; G& v
返回str的一个同音字符串(听起来“大致相同”字符串有相同的* }. _& ?' q$ o7 T" V
同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  % g. F0 W3 d+ ~; t$ S
mysql> select soundex('hello');  " A9 ~: X1 V0 e  [+ A' n2 A
  -> 'h400' ( ^& s6 o' T3 ~+ H% |$ y. F
mysql> select soundex('quadratically');  
$ c0 |) ]/ ]1 N6 k$ {  -> 'q36324'
! t6 [% x1 Y: e8 A1 }   , f2 K* Z) t/ j; K/ S
space(n)   
5 Q+ u+ e- E$ r; D! `返回由n个空格字符组成的一个字符串  7 H0 @7 L& o+ x
mysql> select space(6);  0 [4 X! H9 \( v$ b: M. K
  -> '      ' 8 o1 _# u7 v" I, B# d9 H: }
   
# c, M: z2 r* ereplace(str,from_str,to_str)   ( P+ |7 |  N+ `7 S8 w3 D
用字符串to_str替换字符串str中的子串from_str并返回  
2 v  k0 R& f' F/ \4 }mysql> select replace('www.mysql.com', 'w', 'ww');  + @! a) B  S( ^$ K
  -> 'wwwwww.mysql.com' ; n3 @4 K3 D) t$ a" Y( y: g

5 \/ B. U: U5 `, @1 ]% Z1 o# ~1 brepeat(str,count)   $ ?. Y$ {6 Y  y# `+ h8 ]
返回由count个字符串str连成的一个字符串(任何参数为null时3 L* u; q, b: i; |% x* B" T, s
返回null,count<=0时返回一个空字符串)  3 j5 h: r- R3 l9 t
mysql> select repeat('mysql', 3);  , m* w- B( K3 ?
  -> 'mysqlmysqlmysql' - ~& {/ ~/ B, X+ h. Q
   / z: n; d& t* R6 `  ~
reverse(str)     k1 |% B; A- i2 c) D  n" v& _3 @
颠倒字符串str的字符顺序并返回  
/ j5 f$ G; `0 q+ e3 N- e( ~mysql> select reverse('abc');  2 f  H! J* h. ?$ T
  -> 'cba' ) ]1 k% O3 i4 u) w! k  v4 K

9 G# r2 X' i5 i, R0 f) qinsert(str,pos,len,newstr)   
; N, Q, M& L" {0 [3 R把字符串str由位置pos起len个字符长的子串替换为字符串3 ]( ]8 n  C9 s/ a4 K$ h7 J" c
newstr并返回  . I& @, p3 X1 x3 z4 D
mysql> select insert('quadratic', 3, 4, 'what');  
1 Q" t, y; o4 n+ P  -> 'quwhattic'
" n0 i' k5 B& B# Q' k" {2 z$ l
; U9 i+ A0 r4 u2 v* s' z2 O& }& celt(n,str1,str2,str3,...)   
: a4 `. `4 K6 C返回第n个字符串(n小于1或大于参数个数返回null)  8 u* D1 G; P# f0 [- D" }+ y/ j
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  ; `( e+ q% Q+ f' |' x+ }- o9 L/ o4 c4 B
  -> 'ej'
" B4 V' l1 Y/ \) B# R  q) Amysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  
8 s+ W( W: M% {4 m  -> 'foo' 2 W9 a  m& G6 m$ e3 z

& h$ w' H7 L& f3 n/ A4 n$ Gfield(str,str1,str2,str3,...)  
$ z9 B5 r1 j3 X* J" a* d; V返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
% q3 U& H7 b( fmysql> select field('ej', 'hej', 'ej', 'heja', 'hej',7 c% n9 e0 A+ Y! q  G
'foo');  & a1 ?  E0 v$ i3 q
  -> 2  ; }7 r" b2 p: j) Z
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
. o9 Y; [- C" g! O& f'foo');  
& L1 T) W6 [% Z8 k0 P6 z  -> 0    k0 K* m4 }. e6 K! q) ]

, t" a5 S5 ]0 Z- J: {7 Rfind_in_set(str,strlist)   6 d0 s3 v3 {$ n* C% j; D
返回str在字符串集strlist中的序号(任何参数是null则返回
- q% r9 O5 E1 n# P0 o5 _7 J$ dnull,如果str没找到返回0,参数1包含","时工作异常)  
4 U4 E' T9 O/ i# Z, \/ s; W  P. y2 C' smysql> select find_in_set('b','a,b,c,d');  
9 B  i: z1 C) \$ F- u( {$ k  -> 2  + j+ Q* V% o6 R+ d! o" {7 Z
   
8 A$ d4 {9 V& k2 amake_set(bits,str1,str2,...)  
; ?9 E3 ]! {0 e把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
3 \4 `  i7 H# B. N5 R* v位置的字串选入字串集并返回(null串不添加到结果中)  
9 A# ]  U+ o$ ^8 ]8 nmysql> select make_set(1,'a','b','c');  
4 M' R: B5 }/ a5 K  -> 'a' ! {4 l2 C7 @+ U7 @: o2 v
mysql> select make_set(1 | 4,'hello','nice','world');  " p. P* _* d. _+ u; |/ K
  -> 'hello,world'
# W3 d% R1 P& q2 m& [/ emysql> select make_set(0,'a','b','c');  
. j# p2 n9 Y% m! ?% N8 V5 |  -> ''
) y$ T$ `, g5 b; Z( z4 A' Y: G
8 u! s. X0 Z' q8 c+ B2 Vexport_set(bits,on,off,[separator,[number_of_bits]])   8 x5 `# f5 i0 n1 d+ |; h; V& t
按bits排列字符串集,只有当位等于1时插入字串on,否则插入0 e$ [) q, o; b& g: [2 M
off(separator默认值",",number_of_bits参数使用时长度不足补08 v( s: _+ _5 }4 \& s6 z  k. W
而过长截断)   
0 S1 W7 s3 w4 ?3 ?- {; Pmysql> select export_set(5,'y','n',',',4)  
( i6 E4 R0 [# W. z9 U2 R' M( q  -> y,n,y,n   
9 c$ p$ R! _0 C . `  D# o/ N# e, n3 F. x: R8 f
lcase(str)  
  _& o, W; o" Q' ?lower(str)   $ k* i  w& A8 `/ c3 A) a, V
返回小写的字符串str  
' n5 p, e$ ?& u8 Lmysql> select lcase('quadratically');  
9 _8 b' H% I: s9 T! V; h! e) d/ ]0 ~* U  -> 'quadratically' " ]4 ^% k7 j: `
   # q# i6 q3 J8 U8 c( W7 h
ucase(str)   1 c( ^  \$ l3 Q- H) K
upper(str)  
5 W" S5 f! ^7 }返回大写的字符串str  + G  @  H' [. j5 V, U( l: N6 c. g
mysql> select ucase('quadratically');  
* Q9 h7 [+ C) D) Y. u- o' @  -> 'quadratically' : b! M3 J2 I+ Q/ d$ k0 B! C4 \" ]
7 {9 H6 \0 Q/ m$ ^7 u
load_file(file_name)   ) z% Q4 ^/ E; `$ H3 S, j
读入文件并且作为一个字符串返回文件内容(文件无法找到,路径$ i; D4 s" K) H" s: u/ P8 e' B
不完整,没有权限,长度大于max_allowed_packet会返回null)  
: ^; P* G) @9 a  |. l/ E7 E* }mysql> update table_name set blob_column=load_file4 m( p9 u8 C9 e5 O6 t" i4 b" Y
("/tmp/picture") where id=1;  % v% g2 N' m% G0 N& W& Q1 h
4 q- a) A! J! n( I; Z/ h
2、数学函数
; {! d) N3 W4 rabs(n)
2 c- N! m" w4 {6 V. \- r: s返回n的绝对值  % q7 N( T/ Q3 g! a1 u/ }, q
mysql> select abs(2);   
; G3 K% V6 _9 A" J3 w- J  -> 2    # B5 l3 F. X0 I* d( b3 i( P- D+ N3 q
mysql> select abs(-32);   
2 w0 D$ G! @. U" Q, k! y( J  -> 32    0 \  R% }9 f, s6 N6 F! A
   $ c1 W7 w4 z' e" R2 y6 i) I0 X
sign(n)  
- n4 g2 C% l: a. E: F; j返回参数的符号(为-1、0或1)  / m: }8 t3 M9 F0 g9 C: |4 K+ k2 f
mysql> select sign(-32);   
; c+ f- u, K9 u4 V  -> -1   
; x1 |! P" w& _, Q; z' x6 Ymysql> select sign(0);   
; z2 j2 L/ N4 D1 o1 f  -> 0    * N. Z7 v$ L/ [
mysql> select sign(234);    ' \- a; n4 W0 b0 u
  -> 1    - {4 b% Q- T3 w& C# F2 B; i
9 ?- _- m  n$ z8 x
mod(n,m)    ( }0 e4 Q# Y6 _0 v* J- X, T. `
取模运算,返回n被m除的余数(同%操作符)   
1 V2 b) A: v0 `& m2 i) @mysql> select mod(234, 10);   
7 b; @# f1 {" u' K; Z, M8 W  -> 4    % n& s9 E8 T1 c5 G; f
mysql> select 234 % 10;    $ R! C+ b+ l2 A8 a- T" w9 ~
  -> 4    7 g  V1 q* o- L  n( g5 x8 R
mysql> select mod(29,9);   
8 o* ~/ @7 a& Z2 r# j  -> 2    ; @* l7 \7 o- L5 E
" J! m  Q  D) L' T9 X0 G$ n7 a
floor(n)  5 L2 w6 W' I9 A/ O. F8 ^
返回不大于n的最大整数值  
9 ~6 k. J% _7 V8 jmysql> select floor(1.23);   
( C/ H: i6 z+ m1 X, E# C7 e0 ~  -> 1   
5 {+ j0 }& j) B3 {9 y! C4 Qmysql> select floor(-1.23);   
/ g6 D) J0 D" N6 U2 P9 p3 ^  -> -2    3 z7 O: p5 y$ Z

4 N, D4 ^2 ~, d$ G4 k5 f1 kceiling(n)  
( ~8 F/ G5 n- M+ C/ n8 ~+ b0 Y返回不小于n的最小整数值  % @. P2 R. q; r' E& a  m. w
mysql> select ceiling(1.23);    ) T) H" ^* J0 `; ?& _
  -> 2   
; ?: q' `/ K2 f6 m8 F9 [4 a& ?  wmysql> select ceiling(-1.23);    0 p* h4 L8 o: o. r( _% s
  -> -1    / t' G# c3 ~9 t
* G) P' z! n6 e1 O/ l
round(n,d)  
1 v' x9 \7 ?6 T1 e: p3 t# M返回n的四舍五入值,保留d位小数(d的默认值为0)  
3 ?% ^' D% u. Jmysql> select round(-1.23);   
6 ~5 y2 Y& O7 q! ^0 k3 H/ B# x  -> -1   
4 L! O1 Y" x* ~% M4 Bmysql> select round(-1.58);    % |3 T. X* C: l
  -> -2   
/ p4 ^3 q9 \* P$ w3 amysql> select round(1.58);   
; }2 d3 X& W" r" B0 T  -> 2   
5 f3 @8 |8 d, d& U. k# c9 H8 Q& Z4 umysql> select round(1.298, 1);    7 j3 D: z7 P8 w) X0 u4 P/ [, _  Z6 C
  -> 1.3   
' I3 l1 S/ Z! f  A4 X% bmysql> select round(1.298, 0);   
, Q$ t  z# C' k% K7 B: e  ]; H3 b& ]  -> 1    * C3 Z( h$ a3 ~6 w
' M) l  w+ ]% W! z
exp(n)  4 B  i. t" |. P' W( `% @
返回值e的n次方(自然对数的底)  
* `2 G3 c. \& @" P- _. gmysql> select exp(2);    * V, m: r- m% X5 g5 G
  -> 7.389056    3 m/ u' _  F% q1 {+ y: A$ Y& L
mysql> select exp(-2);    3 z- M- h5 ~" L- Q3 z! s
  -> 0.135335   
: X7 Q* V" J- E* o; v  m* d 9 ^  K3 s4 R& h$ I0 D5 m
log(n)  
4 `3 u1 f3 V+ y8 @返回n的自然对数  
9 O+ c. z* ~1 A3 o" Emysql> select log(2);    ! g- {8 k$ U. v  E) B
  -> 0.693147   
# j/ ?# g: }" E: p  e, M9 ?8 dmysql> select log(-2);    6 v6 m$ C5 E  C: X# b
  -> null   
2 p, f7 H# u) |: {( u3 v
& s. ^* l8 N: I# {1 x1 H' _log10(n)  
2 x) ]% K3 N! x1 K+ [7 @3 F" B返回n以10为底的对数  
* J5 p! i5 F7 @4 E( i6 d2 wmysql> select log10(2);   
# z, E+ S2 w9 e) ^# ]  -> 0.301030    % ?6 @/ k  F/ [4 p
mysql> select log10(100);   
7 r# W/ J/ Z. W6 b7 K: s) N* m  -> 2.000000   
/ G  }; Y% F7 y7 D" \9 y" A3 Pmysql> select log10(-100);      E4 H6 D2 a) j3 [+ P
  -> null    3 ?) C( A" w: H5 u# T% k
8 T7 E6 H: ]* R4 b/ m2 q$ z
pow(x,y)   
3 T* d* C9 R- {! ~3 ypower(x,y)    3 \% R* p- L  l
 返回值x的y次幂  
0 F7 Z- t& B# X" _% J+ Lmysql> select pow(2,2);    - ^3 o' K  O& \8 R& V% l
  -> 4.000000   
+ s2 M1 D) {6 v# n6 D# ]' k# imysql> select pow(2,-2);    1 R8 o) o% W8 y/ {. ^  v
  -> 0.250000  
/ m1 a* f$ \- M2 \
/ |# V5 t. x6 f/ `2 hsqrt(n)  
8 Q  T% L# |; J9 [6 } 返回非负数n的平方根  - _0 K4 F5 J! J1 h9 I/ S8 e' j
mysql> select sqrt(4);   
. A5 x) o* d( [) h6 R- ~  -> 2.000000   
8 n0 f9 @- @4 V7 r- C7 \mysql> select sqrt(20);   
% d4 O9 r* v. V' P  D* i) z  -> 4.472136    ) I9 ^8 U) D0 [  C7 R3 e7 d

% G  U4 d9 q: Spi()   
% ~& v) I8 G9 v3 e: y 返回圆周率   * N: w, N  l9 X  A5 l
mysql> select pi();   
! x$ a) s4 h( y. u1 e! s  -> 3.141593    : @4 q4 N  T$ t- o0 }( ]
! j' I5 M( N/ I- N# Y
cos(n)  5 S) ^  Z* g; R3 K7 ^4 P. N, l
 返回n的余弦值  
3 Y7 Y& z# i7 rmysql> select cos(pi());  . a8 y8 O7 D" c
  -> -1.000000    * N* E: h  F- @0 t
+ Y! x1 E, \1 _7 }9 }/ c
sin(n)  
1 j% l! n# \; V% B 返回n的正弦值   , _. O+ _, A- l: w* |1 g, v& ?
mysql> select sin(pi());   
7 b( V3 g0 X9 w- \  -> 0.000000   
" y" {! Z/ F5 }& y1 q) G + K. [5 x9 o0 z5 g) p. j  F1 o) Q3 I
tan(n)  
8 g5 Z6 t) b& j' F8 R6 Q5 c返回n的正切值  / ?0 [% Q. P. P* |1 B3 y
mysql> select tan(pi()+1);    , @) J; R0 P# @0 E1 D( K
  -> 1.557408   
+ r6 ]7 M6 z- e6 e+ s5 B+ W: [. z4 n& n
6 u& Z) r6 M0 H1 qacos(n)  
: f9 @& o+ [% I: { 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  , w8 R) \( o( u: T7 t7 Z4 u$ X
mysql> select acos(1);   
: p- Y+ j' }9 A. Z! a& I  -> 0.000000    7 Q9 u) n% p" b& D5 d8 r. [
mysql> select acos(1.0001);   
* f# i# ~7 s0 v( z# J' N% K' P  -> null   
$ C3 r) v$ w4 Lmysql> select acos(0);   
3 {6 P- f- l8 Y. p6 y$ Y  -> 1.570796   
+ E* ?1 i/ J0 W$ h9 ~# R. ~
, A" H! H3 Z9 @  w8 ~/ a5 a4 ?asin(n)  
# _6 v3 H0 q7 p3 N. U返回n反正弦值  
( X5 \/ l& E3 ~0 e/ _( V* Kmysql> select asin(0.2);   
4 O$ O0 \) k! ?8 f, [  -> 0.201358   
/ c; S2 e! ?3 i" Emysql> select asin('foo');    " y3 c( ?+ M8 q5 O# s$ R4 _
  -> 0.000000    + k- S% I& z  g# G% e& G6 o1 J
- r+ d& k! z% H5 {# p: b/ r9 L
atan(n)  
, ~% E: V# @: `# v# a返回n的反正切值  
+ E" a$ W6 j) a. x. m% ^9 x! Rmysql> select atan(2);   
) c( Z1 N2 G% q9 T  U9 _, ?  -> 1.107149    & n' g2 ]6 W! e/ e* C2 D
mysql> select atan(-2);    & p/ a: W' p2 E% f0 d* }  k
  -> -1.107149    " M9 I5 H; O9 J
atan2(x,y)   
3 {* c0 {! e2 k* F1 }+ i 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  
4 s0 o" U3 _( s& Pmysql> select atan(-2,2);   
2 |# o* x7 O, j/ F  -> -0.785398   
" B9 M- i0 W5 Z6 n9 _2 imysql> select atan(pi(),0);   
, q2 U  d* y7 P! F  -> 1.570796    & B1 e$ U5 h8 G4 a* ]
& ^! B' k* x$ ^
cot(n)  
/ Q5 a- _$ S  b3 h+ c. P9 W" H返回x的余切  
8 D: D8 ~/ P& W" _mysql> select cot(12);    . r$ B* p- Z. }+ F, ?$ ^8 j
  -> -1.57267341   
: L. n$ D4 o' {- H3 \1 Lmysql> select cot(0);   
, D1 d$ y/ \+ i2 Z: e. ~. B  -> null   
/ @, k7 _+ l* }) |# f- H   v% p3 e0 e' ~3 ]0 f# x. O3 U2 p6 i
rand()  : ^$ g( P/ b. m: p9 q
rand(n)    ( p% y/ T' Y/ B4 W
返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
% Z- N$ y% s& b8 l! r+ t! _
% }; H- l$ O# o0 Y! @: b9 q1 s" Kmysql> select rand();   
- o. D6 R7 @- A( u2 A9 O  -> 0.5925    ' L5 ?& D( W: y1 R. k
mysql> select rand(20);    ' i4 t$ Y/ \5 u% z  [
  -> 0.1811    $ `- A$ f. C6 D. v7 ^
mysql> select rand(20);   
/ F3 E  s) \  Y* o  -> 0.1811   
  q5 h! `: U$ ]( O- Tmysql> select rand();    ) h1 h9 p6 E2 v
  -> 0.2079      N0 e: ^  W# T! p0 N
mysql> select rand();    % V- |; f$ O* u- l( U  D5 H# t3 }6 ^
  -> 0.7888   
1 k/ D% H& R0 \/ C ( F6 \' |, P! W; n5 ]' |, l) a
degrees(n)  ' h1 I  g" j0 u# Y* `$ H6 P1 V3 [
把n从弧度变换为角度并返回  
8 o# ^3 d; N# v0 gmysql> select degrees(pi());    7 J- b9 ^6 S, a
  -> 180.000000   
3 N: h: L3 K+ c2 _* C" X' | , {; b5 x: L! A4 z4 X
radians(n)
0 [$ s$ K3 ~4 X把n从角度变换为弧度并返回   
( R& L( \* `5 D9 u; T) n1 nmysql> select radians(90);    : q% N/ n  \3 l
  -> 1.570796   
7 }6 f) O" d. s, _
3 x; Y% |0 h" z6 e5 struncate(n,d)   
$ |! l2 j" q4 D9 u保留数字n的d位小数并返回  
' y( c& \; z5 vmysql> select truncate(1.223,1);   
+ A3 W/ Q9 I3 [/ A  -> 1.2    : f& o/ N; a% U, T
mysql> select truncate(1.999,1);    # |9 C, R8 x) U+ G8 R
  -> 1.9   
! u5 b) Y- V$ O+ _( N: z1 L# p. Kmysql> select truncate(1.999,0);   
/ {( ^1 P# L  C  I+ r& e+ E  -> 1   
& [6 H& |. M  H" J  f3 V
  Z' b3 C" X$ `; C+ v: F3 eleast(x,y,...)    8 [' y9 _' {2 U( Y5 e& [
返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
& E6 v; Y# B7 d- [mysql> select least(2,0);    & _5 m; ?8 W2 S; m  F4 d, f
  -> 0    " Z5 n" X9 y! m8 A
mysql> select least(34.0,3.0,5.0,767.0);    " M& i# I! z( y  n& Z0 f# H- T' z" F
  -> 3.0    3 M1 G+ N+ y/ e8 @' ]6 ]
mysql> select least("b","a","c");    - r& [! s8 I6 _( x
  -> "a"   
( {7 r  |4 I$ c' x. n% n 6 p1 v1 i, I9 K2 k8 H( L* O
greatest(x,y,...)   
0 o, F' R1 w( }) `  q返回最大值(其余同least())  
4 u. t. o% i/ o. k* z4 lmysql> select greatest(2,0);   
( ?0 Y/ ?4 W1 z! m- _  -> 2    ! V) t- K9 k  ^
mysql> select greatest(34.0,3.0,5.0,767.0);   
, a3 C- a9 ?+ `, `. S  -> 767.0   
! P2 D- P0 B" f8 F& }# J+ o9 kmysql> select greatest("b","a","c");   
7 V5 o+ O/ q- I$ g& E  -> "c"     
! `. X$ Z2 \( V7 T. v, t$ {
% `5 Y, k6 Z# [# j+ [8 M3、时期时间函数 $ @" {6 @$ Q. @# U4 u3 w
dayofweek(date)    " c& e. S5 U7 X% E. Z3 n2 M3 y
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  - C/ p4 z' f% N1 N2 v% D: [
mysql> select dayofweek('1998-02-03');    8 L, ^$ X# V5 N" m, X
  -> 3    5 k/ v: c( }1 S- d# I  e7 G, |5 K

1 u2 r6 v4 `9 v$ P. _1 q, T6 Zweekday(date)   
( L* `$ S* I4 m; @7 R/ r' w返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
$ j8 Z" {# a# F# Z  8 G" N6 u1 v; t$ I
mysql> select weekday('1997-10-04 22:23:00');    + j1 W  L0 C" [' d3 J) @, w# {5 U
  -> 5   
/ f2 p. K! v7 _8 V4 @) D3 |mysql> select weekday('1997-11-05');   
8 ]) Z& K2 }1 f! q8 S9 X  -> 2    + X% g; V- q3 M2 Q& |% O3 `6 I
  |/ p  N( K( s
dayofmonth(date)    
5 H2 D8 P( U9 z; F/ o4 L/ D返回date是一月中的第几日(在1到31范围内)    ; v& F# c! o3 T: p% ~7 ^5 Q7 W
mysql> select dayofmonth('1998-02-03');    2 j; h8 K% ^9 x
  -> 3    5 l( f; E' q4 r! R3 f. M/ N1 [$ S
# V5 |2 R0 u" m: ?
dayofyear(date)   
: L6 Y2 [: f! {5 y5 u; P返回date是一年中的第几日(在1到366范围内)    2 ]- Y) @; Q# A, l2 |9 D5 {8 e+ U
mysql> select dayofyear('1998-02-03');   
, ^: `2 z- J: Y4 f1 Y' M0 |  -> 34    # }4 \; r& Q( u; X8 q3 P- k7 \
! m/ ^9 V( @5 |" b: D% M
month(date)    9 G& i3 V9 y. g; }  ~
返回date中的月份数值    & ?' ]8 F+ [2 y/ L, f" r  W3 o
mysql> select month('1998-02-03');    ; c) j1 c9 [" d4 x* K; r
  -> 2    3 y$ z( Q; e+ n6 \0 m
# j5 A' A8 @, V% N' S' b. H
dayname(date)   
- o. T1 n4 ]9 ]$ d( k返回date是星期几(按英文名返回)  0 C$ X- ]1 S9 J6 `( M  V
mysql> select dayname("1998-02-05");   
- N) }1 Y/ ]. w) k3 }  -> 'thursday'   
- b* q: I5 ~! d; M+ w1 W ) U7 C) R5 C; H+ b
monthname(date)    
4 g6 S2 n( f" q: A7 R  ]$ P/ k返回date是几月(按英文名返回)  
( q- ]$ h: \3 M' o) Fmysql> select monthname("1998-02-05");    / G: g+ E  h! D7 f# m# L. ^- J
  -> 'february'    7 c) L6 z5 P* B" J

$ V) x) s. h* R7 X: R* S) L$ nquarter(date)   
) V7 J! z$ E. |返回date是一年的第几个季度    + J' B: @5 |) y* J! _3 Q( S+ S( t
mysql> select quarter('98-04-01');   
0 h' Z. Z8 N6 V$ Z9 ^, i8 D7 D  -> 2   
! G5 n- W" S# T& K, u 9 I* Z4 y  ~& _) D  h1 h6 U" u
week(date,first)   
, Y7 j( _% X6 y8 }! D) c- j% c返回date是一年的第几周(first默认值0,first取值1表示周一是
7 c: ]( Z. B% K( S8 L# s周的开始,0从周日开始)  
; B, J# }. Z' T6 Bmysql> select week('1998-02-20');    9 r6 Z' B: m" f" t( i7 `) g' o0 r, N
  -> 7   
8 g# f1 n( ?  l  Z. d5 Tmysql> select week('1998-02-20',0);    1 A* Y" I0 [7 `# a( Y$ o) l
  -> 7   
& b2 d9 u# F, Fmysql> select week('1998-02-20',1);    2 x/ }: N+ X: l. Z( a; p. \
  -> 8    * [0 O3 P0 F: N' d1 c! {3 x& x9 h! t# `

3 ^1 r0 `2 b7 g- C! O4 oyear(date)   
# x" i$ ^& [/ [* h3 I* y返回date的年份(范围在1000到9999)    0 T. k$ r3 F$ N$ F8 S
mysql> select year('98-02-03');    5 g3 H! z* H/ [2 a" {
  -> 1998   
) t& D- b- F! o  [$ o) e4 t* V4 M - d  |: N- X; r/ N( Y  ^' {6 {1 s* q. }
hour(time)    
* V( i/ t5 M6 q9 W4 R8 X返回time的小时数(范围是0到23)   ' R( O7 C; G* z4 H% }9 |2 ?
mysql> select hour('10:05:03');    ' g6 O$ I) |7 \5 [
  -> 10    % r+ g2 c/ n  ~: w" ]1 G  J

0 T. j7 D+ {! iminute(time)    % E7 Y  t% k$ J. D3 |
返回time的分钟数(范围是0到59)    6 s. D7 F3 _# J: u# o5 c, V
mysql> select minute('98-02-03 10:05:03');   
* |' M/ O/ @6 _' J  -> 5    3 d$ q' m* j( V5 R9 [

, t2 B- @9 M' x! Osecond(time)    
2 q- E; C, W/ v返回time的秒数(范围是0到59)   
7 @( l& N* V! n  Umysql> select second('10:05:03');   
' J$ n+ n! K2 h/ d; q7 b  -> 3   
( B7 R( K. Y" Z
3 R% H/ P" o' P0 Fperiod_add(p,n)   
, e, e7 R% r; ]9 g" Q6 ?增加n个月到时期p并返回(p的格式yymm或yyyymm)   
, k5 c9 ?8 b2 U: @mysql> select period_add(9801,2);   
# ^  V* h$ y- a1 V# o$ |  -> 199803    / y7 t+ D" s- L2 o( ]) F1 }
6 K+ m# ^- e$ p" }2 `) y( s6 i
period_diff(p1,p2)   
- M( x; A" |$ Q1 S! Q返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  
+ b  M1 K& i9 H* N3 @$ {mysql> select period_diff(9802,199703);    2 d" A2 b+ ^! G4 o5 B# Y
  -> 11    6 V+ O/ e" i. Q9 L- J. Y. E

, T1 \; L; F6 l! Rdate_add(date,interval expr type)  ) N  @. x; Z; w* [# E0 u* y* \3 I
date_sub(date,interval expr type)   
; ^0 T4 T2 H6 h+ a! uadddate(date,interval expr type)    * A3 |$ i0 h: ]) X- f5 Z
subdate(date,interval expr type)  
) V+ S# }2 Y; \3 [9 j对日期时间进行加减法运算  
8 y( c, w5 x0 l3 _$ o4 W7 R4 }! K, M(adddate()和subdate()是date_add()和date_sub()的同义词,也1 `- b! ~! L% G" z. h6 {4 P
可以用运算符+和-而不是函数  
0 s. d' c( w! W# C& D: R4 ?date是一个datetime或date值,expr对date进行加减法的一个表) T7 a2 M% [1 {; A7 E
达式字符串type指明表达式expr应该如何被解释  
4 Q& ?4 f$ r4 P( B+ r; j8 M0 g" r [type值 含义 期望的expr格式]:  : I5 o6 j. @5 Q& b4 V
 second 秒 seconds    ! i% G( V: }0 K" c2 C$ i
 minute 分钟 minutes    3 x5 v7 X! h& x* c# r
 hour 时间 hours   
+ P& y2 D# U0 ]7 p3 H9 O day 天 days   
2 b9 b6 B/ x& T1 B% _, t month 月 months    2 V* o, v  o9 u0 L4 g6 o0 o6 |
 year 年 years   
, K, P3 n  h" t5 c minute_second 分钟和秒 "minutes:seconds"   
9 J5 ]# L7 A- T1 W1 Y1 G: m' X hour_minute 小时和分钟 "hours:minutes"    . ~) H, C- T" u' r3 `7 O; U- ]
 day_hour 天和小时 "days hours"    , h! x7 d* ]3 m
 year_month 年和月 "years-months"   
8 x/ c1 C& ]0 v7 Q+ r3 k hour_second 小时, 分钟, "hours:minutes:seconds"    * @% S$ ?  }0 ^
 day_minute 天, 小时, 分钟 "days hours:minutes"   
3 _; E9 h$ t9 l& H" |! A6 q  N day_second 天, 小时, 分钟, 秒 "days
7 Q! h% U3 Z! k4 Y7 ~hours:minutes:seconds"
$ F: z. \% h" D6 \' {9 X1 I* q expr中允许任何标点做分隔符,如果所有是date值时结果是一个
: V* L( ?! z0 j. p5 adate值,否则结果是一个datetime值)  
: x6 w! v, N8 d 如果type关键词不完整,则mysql从右端取值,day_second因为缺3 \% d  D5 p$ R' D+ k8 |+ ^
少小时分钟等于minute_second)  
6 I6 u' x. x6 d$ D- C0 ~  ^ 如果增加month、year_month或year,天数大于结果月份的最大天
# n  A) R: q9 p% e3 y% E! H数则使用最大天数)   
, }, O2 P$ ]3 _' {# `$ E9 B0 kmysql> select "1997-12-31 23:59:59" + interval 1 second;  
) c: X% l/ ]3 h% F
* K; X7 Q$ ^. H* `' k' U  -> 1998-01-01 00:00:00    * H; t2 I; _. P
mysql> select interval 1 day + "1997-12-31";    , r7 w' `. T$ j6 c* M+ u
  -> 1998-01-01    $ S* @. [2 r6 M4 t- w
mysql> select "1998-01-01" - interval 1 second;   
1 U$ \$ f7 q& O  -> 1997-12-31 23:59:59    0 z0 n' S, S. S
mysql> select date_add("1997-12-31 23:59:59",interval 1+ z/ s6 s+ Z7 D; ]
second);    " G1 @5 u( d# `( ^3 Z
  -> 1998-01-01 00:00:00   
$ X& o* [2 k2 _0 S) y. J9 ?mysql> select date_add("1997-12-31 23:59:59",interval 1! X4 f0 y' ?/ _; N! S$ P3 Y" v+ c
day);    7 J( f: n9 l( a+ {
  -> 1998-01-01 23:59:59   
) }4 N) H3 \7 ]+ a& Ymysql> select date_add("1997-12-31 23:59:59",interval
; `% D* X" r1 O9 l. \' B1 r. u) B3 a"1:1" minute_second);    ; _& ], D$ O3 N! A) Z4 q6 ^0 E, f/ y
  -> 1998-01-01 00:01:00   
4 p3 `$ ~" U/ F7 s* y. Kmysql> select date_sub("1998-01-01 00:00:00",interval "1
: M- U5 D0 Y/ b! D0 q8 ~6 @1:1:1" day_second);   
2 C/ c  o. i# }* [/ {: E  -> 1997-12-30 22:58:59    * }& _( C/ _; g% Y9 x1 Q# l- w
mysql> select date_add("1998-01-01 00:00:00", interval "-1
( e' O# ~% a. T+ R# m2 |/ x! E10" day_hour);  * s4 b$ |9 z  Q* v$ ?; k) s
  -> 1997-12-30 14:00:00    " d6 U# P- I* Y: B
mysql> select date_sub("1998-01-02", interval 31 day);   
# B+ Z9 t* \' q  f- [' d  -> 1997-12-02   
/ }& \9 t! ~% z" u$ }mysql> select extract(year from "1999-07-02");    ! A: P0 s# j8 X( s
  -> 1999    " Q: o- M% L+ M5 _
mysql> select extract(year_month from "1999-07-02( g3 n$ Q- q. \1 ]' a( H# n
01:02:03");   
3 Q: v3 w8 o6 Y  -> 199907    7 J$ }# j" V3 y1 P
mysql> select extract(day_minute from "1999-07-02
! T' F3 r9 e! p4 V: |% l9 [( ?01:02:03");    " _0 H% O$ ?- F* b0 W# n
  -> 20102   
( X3 Q( N  J7 A8 Z! j7 l5 x! J8 [9 s
7 N- b3 ]6 c  v  N# vto_days(date)    6 T, J, `/ o3 o  k- e3 W
返回日期date是西元0年至今多少天(不计算1582年以前)  
$ y7 d+ w, g2 |9 b* C! hmysql> select to_days(950501);   
5 x3 V3 I6 u1 b' Z. l) ]- r  -> 728779    " k# h$ N: J$ Y: o
mysql> select to_days('1997-10-07');   
, a9 |( g1 W* ]3 V- B( S  -> 729669    ) @" e* V$ L, k' n. q- o/ B
# O. K/ e0 v, U% O
from_days(n)    7 `( n* j: Q' H: w( \0 z1 R
 给出西元0年至今多少天返回date值(不计算1582年以前)   , X: _3 Z* y; u: g0 s2 _
mysql> select from_days(729669);    $ H, @. L9 N  c8 V/ d1 c5 T
  -> '1997-10-07'    ) i3 E" C% o: \% S
9 }9 C( E$ v! N' G( I9 y
date_format(date,format)   
$ y/ Z+ `- G8 x9 @! s 根据format字符串格式化date值  
3 e% I/ `0 S7 r, M* p& C+ I (在format字符串中可用标志符:  
8 U  U( }( S/ i+ e- \ %m 月名字(january……december)   
3 b  A" N  P$ }2 w% D9 Z %w 星期名字(sunday……saturday)   
: D( g9 h9 ~6 G+ m( v! o %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    " \/ i& v2 u8 p
 %y 年, 数字, 4 位    $ U8 O. Z7 O+ V, g" s! ?& W
 %y 年, 数字, 2 位    ' P1 Y% K9 P+ E1 R. W" l
 %a 缩写的星期名字(sun……sat)    % d7 s1 d+ \& n; V; t2 I& Y2 ~
 %d 月份中的天数, 数字(00……31)    $ |# I5 h. p5 u, I  i$ k; N: W
 %e 月份中的天数, 数字(0……31)   
2 r- j" _0 E! E# ]  @ %m 月, 数字(01……12)    ) E' p9 `* c6 N9 ^4 _. F* Q
 %c 月, 数字(1……12)   
2 D0 X6 x9 y; n) a6 }; m+ \2 ^ %b 缩写的月份名字(jan……dec)   
8 J$ P  k9 K  ^# O; E* l %j 一年中的天数(001……366)    4 p) ?* [+ g% P( x9 ?# B
 %h 小时(00……23)   
8 H4 q6 s4 v8 R0 ?% k2 l* M+ v %k 小时(0……23)    9 I6 @. F4 R/ u; O
 %h 小时(01……12)   
& B4 i4 }2 Y5 j! n %i 小时(01……12)    8 o7 T4 ^; D# ?/ [" O2 s! R
 %l 小时(1……12)   
" U" p8 C0 x  B3 R& Z: C %i 分钟, 数字(00……59)   
1 D/ @0 B: l" m% D/ E8 J %r 时间,12 小时(hh:mm:ss [ap]m)   
( H4 Q, @% b* T  B& F& B# { %t 时间,24 小时(hh:mm:ss)    / `! c& w$ j( I$ a+ _3 T3 X
 %s 秒(00……59)    3 e1 t- y6 b2 }2 ?0 \' P$ m
 %s 秒(00……59)   
5 o4 A: h0 N3 R %p am或pm    " I# A( u: |; h, a9 \/ l5 G/ b# ?" j
 %w 一个星期中的天数(0=sunday ……6=saturday )   
! {& f) c! M6 B0 z %u 星期(0……52), 这里星期天是星期的第一天    . u1 E: _, V0 k& G/ `1 [
 %u 星期(0……52), 这里星期一是星期的第一天    ) ^9 f) l8 l. {) a7 R& Y0 H: o
 %% 字符% )  
/ V' M# d7 K  y0 q3 z' A6 jmysql> select date_format('1997-10-04 22:23:00','%w %m %
7 p+ L) ~5 ~5 Q! ?5 C5 Qy');   
$ e" c- h/ E, ]' x  -> 'saturday october 1997'   
, P- D" L- }. ]0 `# X0 zmysql> select date_format('1997-10-04 22:23:00','%h:%i:%
  f$ H8 A7 Y  ps');   
9 u6 y& k% c9 t8 `7 q" b  -> '22:23:00'   
: k4 b1 e% F5 Pmysql> select date_format('1997-10-04 22:23:00','%d %y %a/ v2 s; l, `3 G' {3 }
%d %m %b %j');   
( d6 H- ?; {' C, d7 C- D  -> '4th 97 sat 04 10 oct 277'    / t3 V9 G1 k7 L7 I/ j- H
mysql> select date_format('1997-10-04 22:23:00','%h %k %i
7 M5 E" g, u: k" p%r %t %s %w');   
1 ]! _7 @6 d: j. O* g  -> '22 22 10 10:23:00 pm 22:23:00 00 6'    : b$ b2 y2 W2 x; Y, i" v
" G4 z6 r: H# \; p8 E
time_format(time,format)  
! [, O) E4 {) ` 和date_format()类似,但time_format只处理小时、分钟和秒(其1 l' D8 k. {: w* A: T2 \
余符号产生一个null值或0)  ) N9 J2 t, x8 X4 I( q

" O8 ?$ p9 p7 k3 jcurdate()     ( V* G& c3 ?, K- G- t; B
current_date()  
: h; C! s7 m$ K1 x 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所2 j  S9 m9 @2 P* K" |5 n% Z. A- ?
处上下文是字符串或数字)   
9 W2 q: e2 L! Q( F. Rmysql> select curdate();   
, W- u2 o2 n. _7 n" \  -> '1997-12-15'   
% H( D6 l0 f3 Amysql> select curdate() + 0;    & n9 b3 r* a% d
  -> 19971215    7 t7 }0 a7 }6 W: E' c
0 n2 P  K5 [' [, ~
curtime()   
4 S/ S; k; z8 c  \) Ncurrent_time()  
, T% H- f* L8 i, e 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上+ j( a  u7 [! \6 N( A
下文是字符串或数字)      8 `7 k4 i, s6 z" E4 g7 m
mysql> select curtime();    ) V, x; r- T# D8 K
  -> '23:50:26'   
0 C* d) ~/ |( G% H8 ^+ nmysql> select curtime() + 0;    * M" h6 B8 a. P3 U
  -> 235026   
/ I: Z* C: I+ M/ y1 n4 h& M
5 M) A) K* y3 `2 xnow()    
" G5 W/ ~3 O7 ]3 g( ]- rsysdate()    ) h; r$ d4 J0 u4 C. @5 ^  b
current_timestamp()  
7 v1 l+ X/ L$ y. B 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
: k# ~5 s4 `% a( p( e时间(根据返回值所处上下文是字符串或数字)     ' T0 w1 i0 E( f' [0 ]2 @7 @
mysql> select now();    9 Z( ^- B' a& d# c, o6 A$ F% X, u
  -> '1997-12-15 23:50:26'    * w/ n9 _) V7 i1 U" W) y! T
mysql> select now() + 0;    " K+ |& p1 u( V
  -> 19971215235026   
3 \. b3 C! @4 j' \1 t5 s% d! I
) U2 ]* R% t0 S7 l9 z1 J* {% N3 [unix_timestamp()    ; L3 V; g3 h1 e: G
unix_timestamp(date)    ; f& X: m$ d5 g  T
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
# }5 A7 N4 r% k% Z! ~5 k3 {; u( W数,date默认值为当前时间)  
# K* X* I/ f2 S- r" Omysql> select unix_timestamp();    / @2 _, G7 t. G( {
  -> 882226357    1 n7 b1 S/ P* ~
mysql> select unix_timestamp('1997-10-04 22:23:00');   
- f' j, ?) V/ O/ Y5 }1 Y4 N  -> 875996580   
/ p7 N9 d6 {2 ^( {0 B: m7 M8 j: E
  J* n; H2 T) ~, c7 \from_unixtime(unix_timestamp)   
/ X5 z5 H1 U$ s( l9 r; _以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的
/ M2 {) k! O" }2 ^9 B4 A, l1 l) n值(根据返回值所处上下文是字符串或数字)     # S2 x* f: x" M8 V6 a/ O4 I
mysql> select from_unixtime(875996580);   
, W+ V0 T3 P, {  -> '1997-10-04 22:23:00'    . W! h9 g1 X9 I* j5 K' U1 a- J
mysql> select from_unixtime(875996580) + 0;    5 a$ s* m* g  F$ }; D
  -> 19971004222300   
+ j1 n9 `% @$ G& d9 S6 j - J" R4 ^: A/ L4 B$ Q- o
from_unixtime(unix_timestamp,format)    + m# |# D' G' T$ X5 `
以format字符串格式返回时间戳的值  
- f; W6 x0 l$ d1 q% ]4 Y. Ymysql> select from_unixtime(unix_timestamp(),'%y %d %m %1 S* N, C% e$ a, y) J$ k# _
h:%i:%s %x');   
% c: h) i0 R( J* N  -> '1997 23rd december 03:43:30 x'    0 n0 B4 A4 x9 `1 M

6 Q* h6 Q+ M, t4 M6 M3 S# Ysec_to_time(seconds)    " F- X3 Q, S7 z4 d$ g1 q' G4 C
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     , z: l2 I3 O- ^' d2 Y7 D$ o7 f; C
mysql> select sec_to_time(2378);    & s; {, b; i) `# G
  -> '00:39:38'    " v; ^7 T, m, y0 Q# [8 K; _" ?: u6 o8 S
mysql> select sec_to_time(2378) + 0;    ( [6 V6 T) u5 u* g+ J) [
  -> 3938   
. }/ `( c0 O' ^5 H 7 i% v8 g6 \/ y  x+ O. [
time_to_sec(time)    ; ?" w# h6 i5 Y4 D( z7 }
返回time值有多少秒    * w* f8 I, s' e
mysql> select time_to_sec('22:23:00');    - @) J  U0 B9 L/ o, b
  -> 80580   
4 v% n, M8 G' K2 W) a7 Gmysql> select time_to_sec('00:39:38');   
; b: S1 M/ s7 K4 T' J  -> 2378 ! m) T$ O$ ]: M8 C8 `" `2 x6 B

1 `( N# e% L4 r+ \# S转换函数
" C7 W2 f# S2 ]- _cast
9 o) k, e) r2 A$ r用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]
2 P* H2 I3 U: J' Z& j+ k. K实例:select cast(a as unsigned) as b from cardserver where order by b desc;
9 o7 U- l/ c7 W: a* v2 kconvert:. |; [; F1 t. N
用法:convert(字段,数据类型)
# T5 ^3 k( e5 e3 j8 R实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

3 r& Q- i* X, z* T$ M2 k. T
回复

使用道具 举报

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

本版积分规则

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