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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数5 u$ e% W, b4 K
ascii(str)   
9 S3 T; ?8 `+ {3 U- R% Y返回字符串str的第一个字符的ascii值(str是空串时返回0)  
$ u, k3 \6 |2 @0 b$ V4 pmysql> select ascii('2');  
3 P; z5 P0 r5 x% K8 s1 R  i6 [2 S  -> 50  ' S1 V! ^) G/ g
mysql> select ascii(2);  4 D+ q0 {# R! c$ R& x
  -> 50  
8 _! G; _# D! I( p4 Dmysql> select ascii('dete');  
/ C& m' n& j( i2 v9 l9 ^* y+ `  -> 100

$ b, Y: L' b5 H* z/ V' Z* b; Word(str)   + n$ Z) n  `$ b% U) N/ t5 r
如果字符串str句首是单字节返回与ascii()函数返回的相同值。% ?/ e( q. b; ~# `: M

. n$ g: A  j. b: Z9 U如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  
# D( Y( @: R6 p. S8 xmysql> select ord('2');  
" o- ?. i3 Z' g3 L8 U4 Z  -> 50  5 O/ z7 E) H* i# w3 n& k. s
   
* W' w2 Y( ~# n- Fconv(n,from_base,to_base)   * M& W6 E7 \- Y
对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
  R: E. N' C8 H: }" B9 V, z, \  Vmysql> select conv("a",16,2);  
: P; z* v8 n8 B8 n7 F  -> '1010'
, V+ k- L" c- G) ?$ Amysql> select conv("6e",18,8);  3 m2 [" L  ^% U$ K1 D/ H
  -> '172' ; K  H. C0 {+ z4 M+ d1 H
mysql> select conv(-17,10,-18);  
# v# e' ]6 |) ~3 W6 m9 Z. P4 v  -> '-h' & V8 ^+ B7 u( r( U' T% ?8 U# [: `1 `
mysql> select conv(10+"10"+'10'+0xa,10,10);  
7 A6 O$ M. y' O6 X& w) I  j  -> '40'
7 `# r& y( ]* N& O   
+ D3 j8 Q4 Y3 N  lbin(n)   
4 [' ~8 W/ u4 k* e) P把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  1 K' F" X4 |6 U3 d0 c! ]. Z$ Z. \
mysql> select bin(12);  
: M) L$ F, p* A( q) ~% r  -> '1100'
0 C( ~8 ?  J% z8 g1 i: C
! y# v* y7 M. loct(n)   
+ z* z. E; Y3 T7 y+ \把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  1 Y/ ^) p) S7 q& b
mysql> select oct(12);  1 l0 a5 b( R/ w' w# B
  -> '14' ) {! n! s/ N7 X- N9 o; y% D
     A0 _8 T. k* ?! A
hex(n)   
) W  E3 Z% c5 w9 [3 s- F. |把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  
# g7 e4 i4 z! g: t3 X. Cmysql> select hex(255);  8 u; w# O' d+ A6 q! `8 k1 w
  -> 'ff' ; C  _/ D5 U" ]; ~' {7 Y9 V$ T
   - `/ U% M8 q( m9 ~/ B
char(n,...)   
0 n* p+ {' K. X$ K4 ]9 u& X返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   4 j. E2 C# ]- z( O: u3 c
mysql> select char(77,121,83,81,'76');  
1 B$ G$ ?9 _) J  -> 'mysql'
- C: K  t7 R+ O% e4 s. o1 omysql> select char(77,77.3,'77.3');  
) R8 I% M' c$ C1 |  -> 'mmm'
- V0 @' r9 J8 `) {" m& ^2 f   
# ~/ @) I4 ~' g. @concat(str1,str2,...)   2 [$ W! t$ Y6 F! `
把参数连成一个长字符串并返回(任何参数是null时返回null)  * g& e/ o' ?, N" c: p
mysql> select concat('my', 's', 'ql');  % y2 l2 ^& J, [& W6 Q, q  U  y
  -> 'mysql'
  S. C9 g2 @, w4 {  ~/ Q% gmysql> select concat('my', null, 'ql');  
) |0 _6 H" C- c  W) x# Q. W. y  -> null
& L9 t6 m& D- E: G$ Zmysql> select concat(14.3);  
/ [  T  p* ~; ~( e) b- N  -> '14.3' : a# P9 f+ y& ?" ~
, E% M, t, f. I1 o/ m0 b0 p6 E
length(str)   + w; f5 Y# F! L& ~
octet_length(str)  
" ]& S' q) {% z9 r' t  Gchar_length(str)  & B6 ~: ?! C5 M" C, w9 S' @$ F' n) K
character_length(str)  : r, ~5 E/ O( @# J! s" g! N
返回字符串str的长度(对于多字节字符char_length仅计算一次)4 g$ a4 y' `3 F! |# Y( ~
mysql> select length('text');  - _- H9 N) t! [/ Y' T
  -> 4  ) U0 v: A* u# W6 o  _+ ^7 x
mysql> select octet_length('text');  6 r' W# D) e- N$ C9 j, a
  -> 4  
0 [  i3 S3 g1 d2 l" Z) h: Z4 N
% y& a" y# A! ^( j0 @5 Vlocate(substr,str)   
* A# }$ M5 _5 b" Aposition(substr in str)   
% z" q/ D. l" X2 T( l( b- G返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
4 }2 Z3 E9 ~1 wmysql> select locate('bar', 'foobarbar');  ) x/ k8 W" K8 s  Z
  -> 4  
0 }4 B, V6 `0 b$ y1 N) ~8 ^0 @mysql> select locate('xbar', 'foobar');  
+ N/ M. j; }% J* ^$ Y  -> 0  . L) |- y/ Y# `  e, u' h" b
   
: \/ u  _* [$ H1 g  l1 ~$ H, Klocate(substr,str,pos)
8 f  z/ {% g5 R8 c返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  . y7 H) P+ Z0 W
mysql> select locate('bar', 'foobarbar',5);  
5 g7 w  j! k( r  -> 7  + U4 \2 U! J3 r

1 N$ W6 V# ]* o) Finstr(str,substr)  
4 T5 C9 t( q& O. @5 L- O9 {: k2 v返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  5 i4 _( _1 v5 ^
mysql> select instr('foobarbar', 'bar');  6 p; r3 A8 t& T3 T* e; N# }# [
  -> 4  + ^- J/ l( ~9 x
mysql> select instr('xbar', 'foobar');  
" v, e! V. I5 K- R  -> 0   
8 x% @) t6 ^4 x$ j 3 H# a1 {: X( C8 X# c, k
lpad(str,len,padstr)   ) Q* S) b8 ]9 L% [3 ], `
用字符串padstr填补str左端直到字串长度为len并返回  
+ R7 `* t! ]/ b" Z8 {mysql> select lpad('hi',4,'??');  
9 N3 R5 z7 f( S* t  [  |  -> '??hi'
( L/ Q. I, R9 V   
. l8 Q; t3 M4 D9 q3 {rpad(str,len,padstr)   4 S% g. y2 g8 o* T: S8 V0 T
用字符串padstr填补str右端直到字串长度为len并返回  , D; F) y$ X% E% o
mysql> select rpad('hi',5,'?');  
; Z4 U% ~& }4 w1 m! q6 l0 F" d  -> 'hi???' $ L/ t! a& N; `( P3 p, Q
. M* p- B% {# u" p% A1 F( E. Z6 f  o
left(str,len)   & f0 S* b5 H! [! B6 J
返回字符串str的左端len个字符  + X+ a) v  w; f, W! I/ a+ R
mysql> select left('foobarbar', 5);  - X$ l# M6 d6 U& Q
  -> 'fooba'
" w" z/ _; `  |/ k' M- e! a 2 o3 U# M  M. w+ G6 o' q$ h
right(str,len)   ; b$ @2 I8 n' s1 V
返回字符串str的右端len个字符   
9 f6 Q2 r( e/ }; H5 g9 ]  L; Gmysql> select right('foobarbar', 4);  
$ ]1 I2 L/ z* m/ c; R' Q  H  -> 'rbar'
- Y/ X# h+ F3 _' C, v2 m
( F: L4 `" Z, i; bsubstring(str,pos,len)   # [0 A, O5 a; r3 a
substring(str from pos for len)   ! A4 d& m5 E0 c1 u/ S
mid(str,pos,len)   ( d* s  L8 E; ]. @* H( A' |
返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
( w/ w: @5 \7 p, h0 p; r  -> 'ratica'
# p% D( k, @" [: k; R
9 Y+ P8 L) P+ |$ z& e1 tsubstring(str,pos)   ) |! B! t4 k0 s. m! o, [1 U# N
substring(str from pos)   2 V% E1 E1 B4 S+ k8 |- i" L! `
返回字符串str的位置pos起的一个子串  3 c2 M  _& b% ]/ H1 d
mysql> select substring('quadratically',5);  
7 `4 D) _* r4 m  R) J( d  -> 'ratically' 3 a! J3 Q% b. Y! h
mysql> select substring('foobarbar' from 4);  ) N' C2 v: U) K( g4 b
  -> 'barbar' 5 K5 I7 h/ x/ Z3 F4 \( ]" t
0 r4 A' w2 ~7 q& o9 x- k
substring_index(str,delim,count)   , |& ^' Z, f. ]
返回从字符串str的第count个出现的分隔符delim之后的子串
6 M3 \- v& `' ~8 }" M) z(count为正数时返回左端,否则返回右端子串)  
/ s: N+ S2 R% F, l8 I8 O! ?mysql> select substring_index('www.mysql.com', '.', 2);  $ f8 y/ P4 [) x7 e
  -> 'www.mysql'
$ G7 \2 T. z- s1 D* rmysql> select substring_index('www.mysql.com', '.', -2);  
; i/ c: z6 r& x! q) q8 ^& @- B  -> 'mysql.com'
; ^9 _: h* Q* S$ X0 T! y ) D/ A% }/ k- L2 O0 w
ltrim(str)   " a$ F  n/ C& N6 ?* D( Z
返回删除了左空格的字符串str  : Y& y4 f) D( H- t$ T& k' t
mysql> select ltrim('  barbar');  
  [' x. b: G7 Y8 M7 ^0 |  -> 'barbar' , @, s* o$ E$ N: v0 s) Q

+ D* n( [. Y1 H) N6 _* u  ^) o2 Jrtrim(str)   
6 w6 @+ s9 F' A& V* G4 X: Z返回删除了右空格的字符串str  
* b9 Y3 t  I0 {  g) kmysql> select rtrim('barbar   ');  
( {5 j( W( i1 o& _" W4 f  -> 'barbar'
/ l) R0 q. f% V. _! A/ K0 z 2 S0 R2 I& r5 M& S3 N/ ^- T0 Y! K
trim([[both | leading | trailing] [remstr] from] str)  
( s: Q5 v: ~0 H( G* f返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
* _  Q2 G6 \2 g2 C, T( V& Q) `mysql> select trim('  bar   ');  
5 A) R% h( D- j0 l, \  -> 'bar'
& O5 V! q& S8 p+ E3 N! Kmysql> select trim(leading 'x' from 'xxxbarxxx');  0 ]( I. i! A. B3 }6 }3 [6 n  z
  -> 'barxxx' 8 N; H, q$ n6 G( ?
mysql> select trim(both 'x' from 'xxxbarxxx');  
/ J3 h% \, {# w/ f$ p* n  -> 'bar' ( f; N2 K  A! ]! |6 ?4 W1 F
mysql> select trim(trailing 'xyz' from 'barxxyz');  5 ?) b* O" h5 D% L
  -> 'barx' . O* p: d1 F$ c7 X% k7 G
0 F- n- ^/ D7 h& G8 }6 x6 v: K( R$ F
soundex(str)   
8 x& p' Z0 O* C: E返回str的一个同音字符串(听起来“大致相同”字符串有相同的
: t9 p6 ^* J1 Q7 e- q; X同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)    C/ Z) G6 g; H" y- L# ~5 Y2 j( [
mysql> select soundex('hello');  
" ]' m* @  Y8 }# l+ I  -> 'h400'
5 Y" y: R$ i: E7 s2 lmysql> select soundex('quadratically');  
) Z; L+ u/ Q: S% {  -> 'q36324'
9 j7 h& C8 k3 B7 D: B   0 J% M3 q: K2 T% u- ~
space(n)   
+ U# O/ q! ^4 u4 k1 h( ?7 O1 T; f返回由n个空格字符组成的一个字符串  $ }$ O" S2 S, L
mysql> select space(6);  2 h9 z- ^* Y# T. X, f
  -> '      '
2 U) Q& n1 V" D   
! ?: i8 V$ R$ Q. M5 ~/ qreplace(str,from_str,to_str)   
9 y1 Q% D; u% M  x用字符串to_str替换字符串str中的子串from_str并返回  
0 m& U! V: d) Q' b) `mysql> select replace('www.mysql.com', 'w', 'ww');  
) p1 M+ L9 G' Z  -> 'wwwwww.mysql.com' 7 ~. X$ M3 ~! d( R( |. [
% r; G0 U4 C/ K3 K% @: x3 U+ [
repeat(str,count)   4 p2 ~# U2 ~" g+ `
返回由count个字符串str连成的一个字符串(任何参数为null时2 g3 F+ c# m  V: }9 @2 }6 ?: y
返回null,count<=0时返回一个空字符串)    D9 i. b3 p( s( M; V' t
mysql> select repeat('mysql', 3);  
# d( I$ E( r) N- L; ~  -> 'mysqlmysqlmysql' ! Q0 e! a: m# n7 D6 t: v
   
: e% l$ f8 o* v( U( ]reverse(str)   
2 \) r6 ^7 C9 _: e. \3 D颠倒字符串str的字符顺序并返回  0 m/ X- j  x* W, B4 n3 ^
mysql> select reverse('abc');  : {: I( a$ A7 s& _' b
  -> 'cba' : U7 @0 r+ Q. q8 \; [

9 Y5 m$ }1 m1 g( binsert(str,pos,len,newstr)   6 c& C9 l6 f5 x) }$ L
把字符串str由位置pos起len个字符长的子串替换为字符串
( @  ^2 J! r) X, znewstr并返回  ; o& [: V& T/ C1 }% n0 V+ r
mysql> select insert('quadratic', 3, 4, 'what');  - w- Z7 ^0 ?6 G! D
  -> 'quwhattic'
5 F( Q# g# Z6 `* V6 m# X* M% F6 m ( S  W$ A2 A1 r- E  u
elt(n,str1,str2,str3,...)   
) B% K2 V- S8 G# F5 D' c' T返回第n个字符串(n小于1或大于参数个数返回null)  ! _7 {. j4 L% }
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  
' P% M  k2 n2 [  -> 'ej' 5 _% M2 X7 F* P9 b
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  
. l+ P1 W" N7 y6 h. c  -> 'foo' ( \3 y% h# P: J4 K+ a

" Q) t8 f1 r4 `% m0 T0 Mfield(str,str1,str2,str3,...)   8 f0 k3 S& t( u% V3 U* R
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  ) A! H! b& o, U! u# s1 @
mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',: m! F! ?$ u/ g% I/ Z0 K
'foo');  ' A6 {# Z& T. x5 p/ W7 E
  -> 2  " c8 v. k' k  z/ @) \
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',7 f/ E+ A9 L; X
'foo');  9 J4 T$ D0 j& J2 @; g0 b! e1 }0 s
  -> 0  
! s+ \3 B" a! s7 b+ _
: R4 T2 |: g9 z' zfind_in_set(str,strlist)   
/ T+ ~. P4 B* T6 l- }* q返回str在字符串集strlist中的序号(任何参数是null则返回8 ]1 g, X* k8 U& Y( ^" R/ r
null,如果str没找到返回0,参数1包含","时工作异常)  
, z9 u; n$ n4 ]" f" o: wmysql> select find_in_set('b','a,b,c,d');  # J1 z; b1 P8 T+ I
  -> 2  
1 z, Y+ y% C5 s8 f2 V5 t$ f" l8 a6 B   
3 o3 H+ ^% G5 Y- B5 Rmake_set(bits,str1,str2,...)  * |& i, Y, M' i/ s$ N
把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
9 N& t( e+ X+ ]( E6 L位置的字串选入字串集并返回(null串不添加到结果中)  
( W- P$ z5 D$ L4 O6 umysql> select make_set(1,'a','b','c');  
0 r# [6 w& A7 q: I7 {  -> 'a'
3 j; P) y5 f% Emysql> select make_set(1 | 4,'hello','nice','world');  
3 }( y/ q+ J7 x* v0 Y  -> 'hello,world' % X$ Z# W' G; K4 w5 q
mysql> select make_set(0,'a','b','c');  
$ z# n# S6 t( k0 m  a/ b  -> '' ( O; }& y- q, K; n  P5 }
4 Z* W4 I; {& u: n9 ]
export_set(bits,on,off,[separator,[number_of_bits]])   
& R" v! v5 Q6 k4 U按bits排列字符串集,只有当位等于1时插入字串on,否则插入. O) K" v" s: C8 Z" S. f
off(separator默认值",",number_of_bits参数使用时长度不足补0/ q' z5 B/ F  u! a5 T$ F1 ^
而过长截断)   . d& u1 j8 l2 L9 O
mysql> select export_set(5,'y','n',',',4)  
5 F6 V5 q9 j" w& z' r% A$ P  -> y,n,y,n   
( V, }1 L. A& u# @! f: T) W5 {$ s , P' |7 J1 S. u- L5 u
lcase(str)  
/ `6 l$ ~* r% J' R: Q, Alower(str)   - L$ `1 m1 d: z: C6 R
返回小写的字符串str  - c! c- q0 b( j" K$ I5 i8 h6 [
mysql> select lcase('quadratically');  2 d. F' @/ d/ C: b2 i: ~
  -> 'quadratically'
$ W/ |* q8 E7 J" a0 A1 c8 m   
6 [6 l$ N$ B7 H/ \ucase(str)   * L' `& Y- L2 x: G# Q" _( @
upper(str)  
- e( a9 b$ U5 |% X- R+ `5 w) S返回大写的字符串str  
( c, ?8 e  P7 _! y! u2 U$ S3 l0 C- Nmysql> select ucase('quadratically');  $ x6 f) t; R9 i/ u( Q0 H4 T) A* z
  -> 'quadratically'
& _) I% v5 G4 o4 O! v 3 @2 U! Q/ X1 b$ n% C) N9 y6 J2 u
load_file(file_name)   2 J9 I8 s+ f* G1 V
读入文件并且作为一个字符串返回文件内容(文件无法找到,路径9 R6 {& ~- d: q) w9 B' S# x
不完整,没有权限,长度大于max_allowed_packet会返回null)  
2 Y( G' a6 |7 z' z8 a$ j4 T* dmysql> update table_name set blob_column=load_file/ i. T! ^) R! O, M7 y( M$ _
("/tmp/picture") where id=1;  
  x5 \0 I+ ]% H# q8 w6 e" \1 W 0 ~  {6 G4 ~  {) A  n
2、数学函数/ P% |+ p5 R4 d9 _4 d2 |. F: k
abs(n) 2 }; d% H+ O' {  F9 |" k7 c
返回n的绝对值  
! {; J" O. L3 @5 V, tmysql> select abs(2);   
% `1 q8 P! A1 N! a1 z* z5 v  -> 2    * }1 H, B4 V3 T7 C
mysql> select abs(-32);    8 P* w- I4 W  I, N6 P4 ]( ~  J
  -> 32    5 P/ D! W% Z  q5 U$ F: W( Y6 `
   
4 K+ ^6 I$ R/ ~: wsign(n)  
. L& r/ ?0 @4 D! Z' Z返回参数的符号(为-1、0或1)  ! x& a, l( A+ C" i
mysql> select sign(-32);    : d$ X3 I3 m/ Y" @/ a1 n
  -> -1    + F' c" q$ p% f7 Y4 H2 P% ^8 R! }6 z
mysql> select sign(0);    " Q1 w# A( [6 S0 a8 c3 J: t
  -> 0   
) Y# d8 j& ]) c8 Xmysql> select sign(234);    & |* o7 A+ v- i/ |  i0 t0 j$ F4 [
  -> 1   
, W! B/ [) ]4 c, _$ d0 [
$ W3 x& ]1 o% e7 b+ m) \  Z# Hmod(n,m)    4 M+ \2 P( U8 ]  v8 e
取模运算,返回n被m除的余数(同%操作符)   
  x6 e+ C+ w$ O8 b" f$ |mysql> select mod(234, 10);   
) w+ X. H* ~9 O5 _9 K  v* P  -> 4   
% X( y" @' L+ `7 n4 X- ymysql> select 234 % 10;   
4 P+ t7 K% W# M& z3 P0 p6 i  -> 4    $ w0 \5 a" b. k- z# e+ \
mysql> select mod(29,9);    ; l6 A" A* T6 l8 r, i6 v& ?
  -> 2   
: o( T/ [3 f( e' R) V* a5 T- h/ n+ }) c
' {' E# @6 ^/ b% t+ b1 Z. jfloor(n)  
8 @7 R3 f% x. Z) w# p1 Z- w返回不大于n的最大整数值  ' t$ s+ }8 J/ f* c! M$ p2 \1 L' F
mysql> select floor(1.23);   
8 ^  z6 V* G  a* f# ?: r' [  -> 1   
7 f# D; m+ `& T# V: B1 }mysql> select floor(-1.23);    ' N% i' O9 V) F
  -> -2   
' \3 {# Q4 K" t6 c + b5 `* K& G- l% h) U* x8 `
ceiling(n)  ' |" }& W+ t9 {5 ^$ P& v+ M5 s
返回不小于n的最小整数值  ; l9 ]2 |! H. U" i2 r
mysql> select ceiling(1.23);   
- P% f' r6 u; n8 I& r  -> 2   
. D; }# `# x% kmysql> select ceiling(-1.23);   
% K. ?. N/ g7 k8 l1 `; T0 F  -> -1   
7 S; f! g, `+ ]7 C9 v 1 P8 S) q0 O- b) D$ M5 L) K
round(n,d)  
/ c: V% c7 V6 u) i9 z3 S& G0 z返回n的四舍五入值,保留d位小数(d的默认值为0)  
4 L' B+ a# b. g- Zmysql> select round(-1.23);   
1 q  h" v# T% _: K+ G% G. h4 H- S+ C  -> -1   
* Y/ i) R  m: x) m' n4 Dmysql> select round(-1.58);    ! D+ E2 Z, |  E2 \7 v. f" p! r
  -> -2   
9 U& |9 V+ y7 T/ H' j4 |% b, ~2 a# c5 `mysql> select round(1.58);   
7 U" L" j/ i: A: v# U  -> 2   
# D( g% @* T# Q2 o$ Pmysql> select round(1.298, 1);    2 C; |5 b4 g3 H5 d. c
  -> 1.3    8 _3 [1 h' {7 b
mysql> select round(1.298, 0);   
4 \# ]3 \/ i! W- g4 f  -> 1   
! Y9 u7 A7 G0 x! V6 e $ [( S, Q2 e! [9 {/ e6 b, x
exp(n)  6 a3 n$ C" T8 z* l& l' y
返回值e的n次方(自然对数的底)  
9 z8 n$ ?) F1 `mysql> select exp(2);    " C  w; w* I) a9 z0 k! z
  -> 7.389056    4 f: s& }# W3 s$ s- r( _: W
mysql> select exp(-2);   
4 K0 E/ o( x7 I' r8 a  Z  -> 0.135335    0 c; _2 H% p" H3 I  N
  y9 L4 a- R& l8 x' G- S+ x
log(n)  ! f: r6 h$ e9 _3 |, y' z) h% B
返回n的自然对数  : _2 P- D& F  o4 o5 S* b" M, H
mysql> select log(2);   
  e2 o5 e# M" C1 f  A5 m  -> 0.693147   
4 c% o+ [6 M% {9 }) c3 Kmysql> select log(-2);    5 K  Z: p, c) ]/ O
  -> null    & F- Y( j, i& ^! ~

9 V9 F: F$ Q, O9 ^* @log10(n)  
: F! [7 U3 k4 [- p8 {& Z& L/ }返回n以10为底的对数  
) K- M  t3 X( r% }- [5 \4 ?mysql> select log10(2);    $ Z3 ~. y% V. Z' s% P, ~; E
  -> 0.301030    ; v# K, N; q5 Q5 X5 u
mysql> select log10(100);   
8 H) `# u5 X& m  -> 2.000000   
  ^$ {% Y, r8 u9 E- ^5 z: N* r+ H7 Zmysql> select log10(-100);    " T' S5 T. t; {2 d
  -> null    % D& P4 o) J  {# f! }4 m
1 W9 Y7 ]# T) M: ]. q: f
pow(x,y)    . Q0 H- t$ K! H) S: K1 K
power(x,y)    6 I0 f4 a$ D' w& e7 r  Z
 返回值x的y次幂  ; m1 y2 ^% S) ^0 K$ v
mysql> select pow(2,2);    7 B* j" K6 {# O" F$ Q3 K9 O
  -> 4.000000   
9 _1 h3 v( A: k2 y, Vmysql> select pow(2,-2);    + \: o$ Y) {2 C( z. `! m9 {
  -> 0.250000  
  t; a# ?5 u2 j# k, U3 o; ?6 M: {2 ]  W1 J! s/ B
sqrt(n)  7 e: ?/ e+ B+ O; }2 {& n
 返回非负数n的平方根  : ~' N: r, D* K' n% T
mysql> select sqrt(4);    3 i! Z! @) v% d
  -> 2.000000   
" \1 m' [2 c# D. B' Zmysql> select sqrt(20);   
! G" [9 t# R; N7 b; h% [6 _( H  -> 4.472136   
" H8 m* v' K- g( V1 A9 X% r. e + i# S  @# ?' y! b8 L
pi()    & ]) c3 g" p5 S, n& t6 d( j9 M1 L/ q
 返回圆周率   5 }; E3 Q; z0 y' R
mysql> select pi();    , u4 B; |6 m1 K
  -> 3.141593   
, O7 P- ^# g6 B5 _, x4 T6 @! G
; z, \2 J0 z: Pcos(n)  
! n5 y6 _5 i$ w% R& |: @! {) a 返回n的余弦值  ; A/ s# J0 T: H8 W
mysql> select cos(pi());  $ R/ Z* K0 }) ^6 e
  -> -1.000000    # R& Y3 ?$ {; V

" M( n& i0 I$ Y4 @# p8 E) P1 n, D( d" psin(n)  * `& y/ a4 }3 x9 |& g2 @0 f" m
 返回n的正弦值   * o, |. Y2 ?8 a( g# _* m; w6 u
mysql> select sin(pi());    1 K! l$ Q+ ~$ g, y- A
  -> 0.000000    4 R5 X* I- {1 X- _8 y9 P# }

; r% k( l, n* G$ g% Ltan(n)  
, \/ y9 n8 y5 C( m, |返回n的正切值  
: W7 A* U; F& A% ]+ x+ D$ A$ Vmysql> select tan(pi()+1);   
5 m' @$ B' K' k3 D& w" |6 [  -> 1.557408    & i( Q9 `7 d+ `1 {9 V# Q9 ?
, q0 ~7 W9 r  X  f& m+ N; B0 \4 Y
acos(n)  
6 C. w# T. S3 x% m  P, r+ d# d% Q 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  
( W$ Z; Q! u1 Wmysql> select acos(1);    ; ~0 V  m8 `# R# U: i
  -> 0.000000   
; E( O/ F. i! {9 l) Z0 l8 Ymysql> select acos(1.0001);   
( x0 u. D% V8 Q6 J$ i/ f  -> null   
" y6 m: t( E0 _2 B+ ]! e/ Ymysql> select acos(0);    - L5 F6 C( w4 s& ], g% o& E+ l
  -> 1.570796   
- S7 ?0 J4 V0 \4 ]1 y3 s- G 4 {0 ]9 W& a; n# t5 N( i
asin(n)  * [; u8 N0 m/ C. }9 t) ~( k: ~$ N
返回n反正弦值  % v" ]: `  d# t/ F% ~& @
mysql> select asin(0.2);   
! q* t8 [" S. P* d  -> 0.201358   
; X1 R  g0 k) a6 kmysql> select asin('foo');   
- n" b8 s% U6 M. z  -> 0.000000   
- I) c! H' V/ G5 S
7 P" B8 [& t* Yatan(n)  
; l0 g+ R' x8 r. t1 |% {* G. f返回n的反正切值  , q, T9 u% M4 G! O3 R
mysql> select atan(2);    / Q9 D% }- H% m8 r1 A. g
  -> 1.107149    - l: a$ ^0 i8 {
mysql> select atan(-2);   
) Z; K7 m/ A$ U  -> -1.107149    . S' P8 v0 i* S8 ~) |
atan2(x,y)   
9 F# g- V  I! ?, w" X 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  / V5 H6 `9 r7 I6 n+ J
mysql> select atan(-2,2);    & ?) b) ?; u  E- f: B! B% r; f
  -> -0.785398      ?! X% }0 b6 S0 T% ]  D! q* U
mysql> select atan(pi(),0);   
5 X' a, j- Z$ X) N/ h5 Z1 m  -> 1.570796    / r; U8 J3 Q7 a: L# y( v+ B3 @% x
1 ]$ N7 r0 ]  {" W
cot(n)  7 z! r+ B& z! h# `" G2 p
返回x的余切  
( G0 B+ ~; S" Y% {: Bmysql> select cot(12);   
' S" G: A+ c; }! v  -> -1.57267341    2 j1 o9 Z9 `# o) o: h0 ]
mysql> select cot(0);   
* ^9 c6 c- W7 Y4 s* X7 y. j% N- \3 T7 I  -> null   
2 O) M/ u  I+ y, r
+ M/ q: Y3 n% @9 ^8 A, J; irand()  - I7 X' Q' d+ o2 M3 C0 B5 `8 _
rand(n)    
  ?8 N+ n) D0 |7 z" P/ d# Z返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
: J2 Q  f- {2 I- s& _. h" j / {7 `% f6 n  V
mysql> select rand();   
5 w5 v' T. ^: m+ r3 A3 h/ [  w% A  -> 0.5925    ; e- t: _; \; j2 C# p
mysql> select rand(20);   
$ {5 h3 Q3 c( e, b% Z- |  -> 0.1811   
' h  a0 y5 S+ e* u1 `" }$ tmysql> select rand(20);    / e! {0 N& O" I# |& a
  -> 0.1811    % Z  }* B# M  T; {) T5 G: }
mysql> select rand();   
$ {! I$ _5 G$ Q0 `  -> 0.2079    " x$ [: F: Q& g
mysql> select rand();    9 s6 X1 G# q" V3 E( ^
  -> 0.7888   
* i- l2 Z" T! P& m  I$ K2 r* l
. w1 f+ V8 ?* Ydegrees(n)  
/ K8 E% n# v9 u- @& d0 j$ h3 F/ _把n从弧度变换为角度并返回  # Z# P& Y4 u2 s' T
mysql> select degrees(pi());   
$ ?. i  R2 f' N+ D* s/ ^1 U: J  -> 180.000000    ! [7 M  `0 j- h* s
+ l8 H8 p; o4 M% U  y* [
radians(n) 8 g: Z/ X5 ^7 M/ w$ ~
把n从角度变换为弧度并返回   
* X0 x  K+ c& }2 c2 U& xmysql> select radians(90);   
) {* e* ?/ |' Z  -> 1.570796    ( N4 l- v% n) `2 i5 l

1 `7 q$ f6 M% N- g  q( btruncate(n,d)   
, u, S/ Q6 l* H" k保留数字n的d位小数并返回  
7 T7 ^3 f, P. x. Fmysql> select truncate(1.223,1);   
& y8 E) E3 s, M8 [5 [. c$ I  -> 1.2   
: t6 b0 Y1 c, v$ e, d/ L1 F6 Vmysql> select truncate(1.999,1);    4 U4 z; W( W  _* `1 s
  -> 1.9   
+ \5 o5 O* U( L8 t0 r# K! G7 Dmysql> select truncate(1.999,0);   
8 |  K" F8 A$ d/ y$ A. _  -> 1   
. k6 K$ U; a; P( G # \* }* W8 X( H% a
least(x,y,...)   
# H8 I" f: C" N返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
' [0 m% z7 Y" H5 v" y7 S2 O. fmysql> select least(2,0);   
+ R6 @, g# B: O  M  -> 0    9 B& Z6 z, k6 r
mysql> select least(34.0,3.0,5.0,767.0);    # v$ B' J0 j9 K: ?- H3 X/ K. o  s
  -> 3.0   
! b4 R* u  r% P$ p. Rmysql> select least("b","a","c");   
+ o6 i4 M' z( X1 L- c  -> "a"    2 }; V* \% a. t* S4 O3 m% c

9 f7 [: J: J/ ]3 |! Ggreatest(x,y,...)   
  Z8 x+ q6 p& w6 w! y2 c- U3 E返回最大值(其余同least())  
( O3 u- R; [& \) ]2 u8 f6 B7 amysql> select greatest(2,0);   
1 [& m3 x- A. j# E$ Q8 m+ [; k/ L  -> 2    # n6 O+ }) y+ s1 p  E  p( O1 W
mysql> select greatest(34.0,3.0,5.0,767.0);   
2 v2 b0 J! ~' z% G: Q( b  -> 767.0    2 I" m. U, G3 ?7 `4 d5 B1 a
mysql> select greatest("b","a","c");   
4 M7 c7 s; C% g1 i. C5 E  -> "c"     ( }+ A+ A0 N- U  [: ]! h9 g$ G

4 L; P5 |# Y, R+ _* R. T# G3、时期时间函数   m" f/ ^  d% @" v/ ^
dayofweek(date)   
- B+ ?5 ~: n3 \8 |" A) r/ L; P; b- |返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
) L6 n8 u% c/ z! n4 M# ?) Hmysql> select dayofweek('1998-02-03');    ! \* u% \( y2 Z5 V# \8 [! V
  -> 3    ' c3 Z# E! J1 k
& v$ X# b4 J9 f( R! X: X4 {5 N1 ]
weekday(date)    & ]% D7 I7 w" r4 C: N
返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 2 ?; U$ I$ t% z+ @0 H3 l% i
  
  e5 K# i2 ]/ ?* `; `mysql> select weekday('1997-10-04 22:23:00');    : x% P7 O+ o, G- F
  -> 5   
0 c$ e! _( s! n' j1 a0 C9 tmysql> select weekday('1997-11-05');   
0 n/ o' {2 n( n$ b# o# k  -> 2    ; ^8 J( D: h/ Z3 C9 \6 `

  _& @5 r1 _% _) I3 W5 }dayofmonth(date)    
2 P. i& L1 J' S2 r' F3 j" }& U# j; A返回date是一月中的第几日(在1到31范围内)    + E# K7 @1 \5 g% s) U( f
mysql> select dayofmonth('1998-02-03');   
+ {6 K+ U5 z# [1 R  -> 3   
: J1 A- w) f/ O* w( O& I/ O+ x % `/ Z) F1 s, E2 d2 A
dayofyear(date)    - F0 H" I7 x3 W. S! N
返回date是一年中的第几日(在1到366范围内)   
3 J  \! C' o! A9 b  c( mmysql> select dayofyear('1998-02-03');   
/ g6 |3 Q- g, ]/ ]5 b  -> 34    1 Q( C! C$ T# C3 ~
! G' Y" d6 m% R5 ^( `$ n. H
month(date)    " ^4 n7 u7 p  g0 ]1 \5 ^
返回date中的月份数值    - j5 D. i/ H2 |- _& ~  C2 N
mysql> select month('1998-02-03');    1 ?) U: t( ?5 R; a
  -> 2    # V4 Z. ?! q& P$ [2 T4 j

3 m3 l. G8 f5 b$ p, vdayname(date)    / B& X; V# d/ T. n
返回date是星期几(按英文名返回)  
5 t0 S, r/ ~& U- R$ L% Gmysql> select dayname("1998-02-05");   
& J4 F' S+ a0 |  -> 'thursday'    9 Z1 ]! @/ R7 e3 m4 w" M, X: f
2 C- H" I& D2 Y% V" N) @; J
monthname(date)    
# E+ t2 F( P7 d返回date是几月(按英文名返回)  1 `" m+ K4 h+ v8 j
mysql> select monthname("1998-02-05");   
: g+ H7 M- I8 h0 ?1 z; \7 q  -> 'february'    . A8 |4 ~7 M0 M

  j- ?5 G6 J) W+ }/ c2 a% [quarter(date)   
7 T. ?' i. l' Q/ N+ P; y返回date是一年的第几个季度   
8 {9 i9 d# C4 `: x5 Hmysql> select quarter('98-04-01');    5 O; }1 g. a/ F4 l0 a6 A3 [0 F+ C
  -> 2   
  Y& O6 X9 L  U4 E: q7 X
( p+ r( N, A4 d! ]week(date,first)   9 d/ N* o- A( o6 D! {, @1 D
返回date是一年的第几周(first默认值0,first取值1表示周一是6 H0 r+ k. Y" c3 u
周的开始,0从周日开始)  
. O( W1 Y8 o: i! V* Z6 f' ]mysql> select week('1998-02-20');   
  u( ^: ?2 t' q, P1 N  -> 7   
- o$ Y6 X: M, q3 @, l: Umysql> select week('1998-02-20',0);    # y4 U3 g  {3 t4 Q
  -> 7   
6 D/ X+ ~' v& G* @6 z; l4 Kmysql> select week('1998-02-20',1);   
6 a3 }2 Q! x7 g" z# Z) s/ G& f  -> 8   
& e8 u7 y0 n: R1 K" j0 [/ ] ) u$ n* P# Y- a( C1 F0 D
year(date)   
6 |7 X: }7 E1 u8 R返回date的年份(范围在1000到9999)   
5 [; T- i, A5 O0 S$ F3 L- Qmysql> select year('98-02-03');   
- {7 u1 \( R+ l0 z9 p  -> 1998   
8 q4 a7 p6 N) b6 X " ?2 h5 [1 Y* _
hour(time)    1 i! a+ T# f- C: {% B- F1 U! O8 _
返回time的小时数(范围是0到23)   ' w- T+ C- X% b& m  g9 \
mysql> select hour('10:05:03');   
& c& I9 g4 u7 o6 Z' F$ r5 y3 h  -> 10    0 I! k1 x7 a2 n  V! s

4 E# w1 Q5 r. q9 z  x4 s3 `minute(time)    - B* g4 \/ i& X7 Z: S* w# B: e
返回time的分钟数(范围是0到59)   
) R1 y6 s- k7 S# q/ N$ X- wmysql> select minute('98-02-03 10:05:03');    * h0 N- Y/ w6 V% O$ H
  -> 5   
8 C  a5 u0 H2 o" }4 X/ v- | 7 M+ U# J! B# @$ p- j! ~
second(time)    
" }, Z$ L4 i" V返回time的秒数(范围是0到59)     U6 q% g3 {& h8 h( \. T
mysql> select second('10:05:03');   
( a1 ]5 {( ~* x- ^% d  -> 3   
5 O# e7 h- ^4 p: H
" J- X  L) |) D: B3 U4 ?& D1 v2 |period_add(p,n)   
8 o! b1 {9 |0 d9 f4 J. v- X, J! I- p增加n个月到时期p并返回(p的格式yymm或yyyymm)    6 {, n  U6 b/ [3 Z: l' R
mysql> select period_add(9801,2);    9 V0 i/ {  q7 i1 s
  -> 199803    : l- y5 U/ s! T3 e) o  B2 h
5 `1 b% n. @! [1 M  z7 I% Q( N
period_diff(p1,p2)   
) C. W' p+ S6 R- H/ [  l/ D返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  
3 y' R# c2 `! b. G( Xmysql> select period_diff(9802,199703);   
0 }; T6 q, ], k1 f  -> 11    4 t2 F% o# o9 `5 d  y. M9 Q5 n1 y8 [1 p

4 b' K' k( e  A4 V0 Vdate_add(date,interval expr type)  
! ^4 s; z+ G; V/ U" ]date_sub(date,interval expr type)    % d7 @' k; w( f& S& G0 C
adddate(date,interval expr type)   
! A9 K3 u' m: K) ]subdate(date,interval expr type)  
2 S  C% g) N: Q) M" ?对日期时间进行加减法运算  
, \1 V! [  k; ]4 w7 z. Y% J(adddate()和subdate()是date_add()和date_sub()的同义词,也
6 q& ]" x. s& D( E可以用运算符+和-而不是函数  6 A5 |9 _- ^$ f: ]3 T8 E8 L
date是一个datetime或date值,expr对date进行加减法的一个表
& A- p% ~8 d/ W& O" h2 Y' U6 x- j3 d达式字符串type指明表达式expr应该如何被解释  . Z- ^, Z% h( y, M% y7 t& o. G8 h
 [type值 含义 期望的expr格式]:  * A% B! X6 _  u8 @' ]) n' ^& J
 second 秒 seconds    ; ~& p# g5 P; O) `2 y
 minute 分钟 minutes    3 S: B2 v% }$ H& i
 hour 时间 hours   
8 p3 c) S. u: L9 H; {& J day 天 days   
$ v- ~4 M6 J  C0 a1 y month 月 months   
2 o0 `5 F) ]( }, p% \ year 年 years    : `. ~- ^, G1 m, }5 y
 minute_second 分钟和秒 "minutes:seconds"    8 _2 \/ ^1 U6 a" s, K- B. j
 hour_minute 小时和分钟 "hours:minutes"    ( {* D. J& j! I2 T' U* s( @
 day_hour 天和小时 "days hours"   
1 f' I( S% \8 z) B0 i year_month 年和月 "years-months"   
. P  _" v5 v* G; k hour_second 小时, 分钟, "hours:minutes:seconds"    ! f" s6 l. [  j6 A  ~; E6 a- O" Z1 Q& t
 day_minute 天, 小时, 分钟 "days hours:minutes"    6 z6 P' e6 z3 W; y
 day_second 天, 小时, 分钟, 秒 "days
9 ?3 L+ P& ^' f# E% H6 Vhours:minutes:seconds"
1 H7 j4 U) Z4 A  Y& I expr中允许任何标点做分隔符,如果所有是date值时结果是一个5 i' J( D' \% d4 B4 B! m
date值,否则结果是一个datetime值)  
5 H# O* i# S$ H1 n& g' m 如果type关键词不完整,则mysql从右端取值,day_second因为缺
6 X5 r" V9 c" j: ^& L% q' `少小时分钟等于minute_second)  
# p0 R2 S. ]: s* }0 g& \" O 如果增加month、year_month或year,天数大于结果月份的最大天1 s7 F7 p1 O) t# t2 }" s: M! b2 |5 U
数则使用最大天数)      i6 }# ]; T1 q, h) A* p3 p$ l) S
mysql> select "1997-12-31 23:59:59" + interval 1 second;  " j, i0 z& w/ G  x+ N
% N) f  a6 V! y2 `( [/ s$ \
  -> 1998-01-01 00:00:00   
: X+ @5 n; B* m4 u: D* P( ^mysql> select interval 1 day + "1997-12-31";   
* a6 {# M9 n, }( e  -> 1998-01-01    + I% o2 O: L0 y7 i9 o. M
mysql> select "1998-01-01" - interval 1 second;   
+ P3 l+ }" U$ _1 U7 A  -> 1997-12-31 23:59:59   
9 a3 `% Y* p+ J$ L( G# p( r8 @" Lmysql> select date_add("1997-12-31 23:59:59",interval 1
: ~! K( z0 f& Psecond);   
9 e1 w* p# {( H5 {/ k8 D# ^  -> 1998-01-01 00:00:00    ) i% m7 [% V* o8 g
mysql> select date_add("1997-12-31 23:59:59",interval 14 A3 X/ `6 E; H! W4 O- E* w
day);   
7 ~5 e- V( b: f* ^; U* |  -> 1998-01-01 23:59:59    ! x4 y2 L2 @) h" y6 M* e' G9 U
mysql> select date_add("1997-12-31 23:59:59",interval
( x! g  P4 z) W  O"1:1" minute_second);    . m4 [, |4 v6 F6 D/ G
  -> 1998-01-01 00:01:00    7 x% o4 E7 I/ S- J3 e' h4 ^+ @
mysql> select date_sub("1998-01-01 00:00:00",interval "1
8 ?6 f! T& w& S" J( C) m4 s& y1:1:1" day_second);    7 \7 N% D; G9 ~
  -> 1997-12-30 22:58:59   
( M9 [7 [7 J, z( r) B( C( s3 Kmysql> select date_add("1998-01-01 00:00:00", interval "-1# r' H0 }! G( z& ?
10" day_hour);  ) S, `# P) s# R
  -> 1997-12-30 14:00:00   
4 T' ~- H/ q- p7 \- D: c7 x% umysql> select date_sub("1998-01-02", interval 31 day);   
, t, `& B' _. ?9 ~4 f  -> 1997-12-02    # D3 v' G% {4 V" k- E
mysql> select extract(year from "1999-07-02");   
& b7 S9 H2 G7 `2 J+ o) }  -> 1999   
0 i$ t3 C( R9 y+ Q8 m0 }mysql> select extract(year_month from "1999-07-02
$ k! `+ b! `& C( u+ j01:02:03");    " E( B  l" I  g4 z
  -> 199907   
/ t- m/ m4 r+ z! R, ~mysql> select extract(day_minute from "1999-07-02
  q1 a/ I% ?* U, t5 j5 i1 M1 o' S01:02:03");   
8 z; W+ t( ^7 {: q, \  -> 20102      Q6 Z: u. F7 E& f1 Z. s( A, e# z3 I

7 m$ s. A( ^! }6 P& t! Oto_days(date)   
+ @" l# m2 `: n! T返回日期date是西元0年至今多少天(不计算1582年以前)  1 ?9 m9 u& J$ v" z6 I' W7 ~
mysql> select to_days(950501);    * f2 h& b+ Y# ^, I) E& m
  -> 728779    $ N! n! Z) G$ Q4 {. l- e
mysql> select to_days('1997-10-07');   
# N* e* S- z. j$ J  ?" t: U  -> 729669   
1 j+ s$ |0 D# P" {' v # W2 t) u% B9 z! Z* N  S5 E* _
from_days(n)   
* Z' K# a% [1 _4 K+ Q' ~ 给出西元0年至今多少天返回date值(不计算1582年以前)   . j, y% p, @7 w( ~- i4 \2 c
mysql> select from_days(729669);    ! U0 A; n; o1 w# Z4 q$ S
  -> '1997-10-07'   
6 \5 S5 \6 F. o! ~ + B8 S+ ]* Y; D# G+ H8 a$ F& B
date_format(date,format)    9 |$ Y) [% W8 c; {$ x4 D/ S3 P& m
 根据format字符串格式化date值  
5 @0 K8 k# s9 {+ H+ U (在format字符串中可用标志符:  
+ @: H4 k, N! k( d$ O+ N %m 月名字(january……december)    * O+ K& m( u3 \  g
 %w 星期名字(sunday……saturday)    5 t5 }) B  b3 c  D( C0 w
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)   
2 f# V8 d; t6 R7 v" k  M %y 年, 数字, 4 位   
% ^! \" y; p3 M% w, ? %y 年, 数字, 2 位   
8 U( U7 R$ n# G7 q7 `. A2 J6 C %a 缩写的星期名字(sun……sat)    ! u, a3 f4 x" I! e; o( |2 U
 %d 月份中的天数, 数字(00……31)   
/ L# L$ y, M( [1 Y %e 月份中的天数, 数字(0……31)   
! B0 J8 {. G& B: }; E %m 月, 数字(01……12)    " u) G2 ]" `" v8 ~# ^
 %c 月, 数字(1……12)   
# v; Q7 p! R' w% P8 I$ H; R' \6 x %b 缩写的月份名字(jan……dec)    ; @# c$ @. Q" G; a! \4 Z9 ]1 Q, {
 %j 一年中的天数(001……366)   
! y+ _- v, Q* L; d$ e %h 小时(00……23)    2 A8 P- k. c" T6 J( o3 _4 p
 %k 小时(0……23)    $ ?, B: Y& i  C6 w# ?8 g2 b" Q& A
 %h 小时(01……12)    + K* |! M! O5 D# D, i" e
 %i 小时(01……12)    / F9 D$ P4 b! W& o$ H- p
 %l 小时(1……12)   
2 `5 O, b* d2 @ %i 分钟, 数字(00……59)   
. I( L$ d( @% [+ Y. w5 @5 E6 r1 ? %r 时间,12 小时(hh:mm:ss [ap]m)    : W& p5 V' c$ F3 d
 %t 时间,24 小时(hh:mm:ss)   
& |- u( N, x, p( x %s 秒(00……59)    3 o* m8 U3 V4 e7 d( M
 %s 秒(00……59)   
; l  t7 g! s$ e) ^ %p am或pm   
/ @* n8 g% U* S, `  a" y %w 一个星期中的天数(0=sunday ……6=saturday )   
8 r" \& z- I0 V( h7 A4 J %u 星期(0……52), 这里星期天是星期的第一天   
- F; F( @5 P5 [/ L %u 星期(0……52), 这里星期一是星期的第一天   
. z1 _3 i& W) U& m2 D %% 字符% )  
2 C* _; f/ A; G" C7 {" g6 dmysql> select date_format('1997-10-04 22:23:00','%w %m %
' Q/ ]& k+ Q; f& v  m; R' V- t9 ^y');   
3 l& ]& _) p0 S+ ~  y+ {  -> 'saturday october 1997'    2 s( f% G& t" T  r
mysql> select date_format('1997-10-04 22:23:00','%h:%i:%; v8 b- X9 W1 q5 f" j! G4 O7 j6 v
s');    5 _& h1 C( J8 ^1 T; [
  -> '22:23:00'    ; l6 i  y/ f9 w; b  v
mysql> select date_format('1997-10-04 22:23:00','%d %y %a4 P" i9 L2 _5 ~, v, n0 b5 t
%d %m %b %j');   
& V5 u' p  h3 A9 C  -> '4th 97 sat 04 10 oct 277'    + s( d! |4 m3 U8 k
mysql> select date_format('1997-10-04 22:23:00','%h %k %i
( f5 C' T) e2 J%r %t %s %w');    % @& }$ r! O: }! N, g$ }
  -> '22 22 10 10:23:00 pm 22:23:00 00 6'   
0 B' h; w: B. x/ D0 v5 N5 z
, D% I+ y0 _' C/ X1 Ttime_format(time,format)  $ G7 o2 v) ?9 t& F7 P) l: k
 和date_format()类似,但time_format只处理小时、分钟和秒(其; R" a5 B% G6 m2 z
余符号产生一个null值或0)  + W5 ?. n1 q9 f" {

' f4 w$ G3 V% ?: h# ?$ {curdate()     ' t* Q  ^+ ]3 Z
current_date()  . l7 z8 ^& v% Q# F2 X
 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
2 N: ]- P) ]! a/ r, Q处上下文是字符串或数字)    ( Q* h# U' b: m6 W6 _
mysql> select curdate();   
. v, T" e: H- Y2 c6 ?! G( K4 s6 _1 h  -> '1997-12-15'   
) _$ e9 A3 p2 [5 ^% ]  Y. u& L3 J4 jmysql> select curdate() + 0;    8 S% j$ }( e9 e5 t- |
  -> 19971215   
; b+ V- I% R, X% E2 c
  j% F) ?- x2 u+ N8 A6 y' pcurtime()    $ A3 V) ?0 F+ D# _
current_time()  8 \1 Q' R. e8 L
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上" ?7 k) m6 Y6 v7 {. Y
下文是字符串或数字)      ' `: B$ f  }& [5 K/ C9 f# T
mysql> select curtime();   
5 P( @! u: Z. ?2 o" ~+ Y  -> '23:50:26'    : \$ l* Z( l2 H, P6 F( E8 h
mysql> select curtime() + 0;   
. x4 w  v6 l3 ]- v) J) O1 j% j  -> 235026   
) t/ T5 M. M$ X# C% G" ~2 h
& ^, B1 S1 R% P! k5 F- |now()    % i$ }9 E7 k8 q0 H
sysdate()    0 q+ I, m( H& A
current_timestamp()  
1 x' c, K% p! z& r$ M7 B 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期* n; z) x9 @& {8 d- [
时间(根据返回值所处上下文是字符串或数字)     + ?; s: W4 H$ |& Z  w
mysql> select now();    * Y2 V) [% I4 R  Q4 E
  -> '1997-12-15 23:50:26'    0 f1 i) `5 `6 n3 \
mysql> select now() + 0;   
* O1 ~, D& I; K) Y( J! B( S( d  -> 19971215235026    3 H! k, n( E4 `5 [4 k, M
9 _, n/ X% o) }" [8 `/ f* C8 s& L
unix_timestamp()   
5 L( j  B  Q+ munix_timestamp(date)      q0 i- X7 |2 h; y$ a
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒# Q' r0 u8 `! b9 m+ @$ w
数,date默认值为当前时间)  ; w; q) W8 d( q6 N3 _
mysql> select unix_timestamp();    ' d' x. K! ^; f5 O+ B
  -> 882226357   
- s. \  e) L# }# q* j* kmysql> select unix_timestamp('1997-10-04 22:23:00');   
/ n6 _" s9 P/ U* G  -> 875996580    # Y3 x+ r; t4 K8 H

! B- o0 R: ?  O7 gfrom_unixtime(unix_timestamp)   
+ L" T. \1 I% m, Q: j3 p) M% _* D: y以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的
+ a* q0 T' V* y. U$ a* U值(根据返回值所处上下文是字符串或数字)     
7 X0 z  q. x/ ~6 Z2 _% omysql> select from_unixtime(875996580);    # i/ @% y8 y( }) s
  -> '1997-10-04 22:23:00'   
9 @" I; S7 e7 O; D% m7 smysql> select from_unixtime(875996580) + 0;   
. H( N$ J8 j2 v4 p, Z0 I# N  -> 19971004222300   
+ L; ~) {# w0 J* s  K' @7 A
: i8 i# N# Z: o/ Efrom_unixtime(unix_timestamp,format)    , u# i) S  v5 V$ @+ B" c5 e
以format字符串格式返回时间戳的值  
1 J- _! X5 `2 b3 \# wmysql> select from_unixtime(unix_timestamp(),'%y %d %m %
  Q# s" D: Q2 \. |h:%i:%s %x');    % D  s6 Z' e7 O7 t& t8 B
  -> '1997 23rd december 03:43:30 x'   
8 Y& ~6 u7 A" F2 l7 p* k  M
) e2 C2 r( O( [sec_to_time(seconds)   
( Z$ |. A6 ?# q7 D8 {以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
# B  G& H* Y- {% b2 ~0 M- T/ mmysql> select sec_to_time(2378);    ! k( Z. i' N% }9 Q1 S$ i
  -> '00:39:38'   
3 w. h0 A' y* Jmysql> select sec_to_time(2378) + 0;    7 e6 O& o0 ~- ^, V& H3 ~
  -> 3938      b5 W% c% A% ~' q' h* C

5 q2 [; U/ t- H( D" a: u* i% y- |& ptime_to_sec(time)   
" g2 p& }% Z+ c3 K  ^返回time值有多少秒   
/ e4 z0 d8 s3 z. R: o& Mmysql> select time_to_sec('22:23:00');    ; o: w5 b7 b( m! H+ m
  -> 80580    / _. C/ y) ^- V
mysql> select time_to_sec('00:39:38');   
2 o' |8 |. `1 u  -> 2378 9 V, j1 {9 G( b( J+ z

+ Z' O9 y+ G" C9 ?/ c( B0 s; Q转换函数" B/ t5 O8 Q0 [+ T( X( n. \
cast$ P/ p3 ]" o9 q
用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]7 ]$ b7 H+ n& U3 T, C
实例:select cast(a as unsigned) as b from cardserver where order by b desc;* p% z  A2 J/ a$ p
convert:
8 e. t/ H3 s, ^" S用法:convert(字段,数据类型)) v( n1 r) s' d& H9 c
实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
2 L6 d) E" \; P* e: O- j
回复

使用道具 举报

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

本版积分规则

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