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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数- D7 K- t( ^% @3 o
ascii(str)   
% }/ X4 s1 D# y! O返回字符串str的第一个字符的ascii值(str是空串时返回0)  : l4 w1 i+ @( I' u/ }
mysql> select ascii('2');  
! N" X) K& B/ o5 o0 t5 |9 R4 I% M  -> 50  
8 f+ W( K# Z! U. Jmysql> select ascii(2);  5 ^! D7 i) H  K; d3 p4 y- v
  -> 50  
. d) k7 H9 H5 p: u0 n7 bmysql> select ascii('dete');  1 i% }. v  v% `+ B) [) H3 V& X
  -> 100

9 Z% B5 ]; [: r# k% @. sord(str)   - _; \  ?, s0 x( @0 Z( t
如果字符串str句首是单字节返回与ascii()函数返回的相同值。; e$ I3 b, |6 @  _' Q
4 @; V7 x! P; [/ Z' w
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  ' _& d* @7 g6 f, o( y
mysql> select ord('2');  
. V1 |: h7 t& |& |1 ~9 P; K9 d  -> 50  3 }  Y! e/ T" g& }; C
   
! f! n" M% B3 r; U7 zconv(n,from_base,to_base)   % h- B/ z4 t( @9 n' j, t* O! o# ^& n3 {
对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
" n( b. H! e' s. `" J( umysql> select conv("a",16,2);  
2 w( T. ]. S1 V7 w! O  -> '1010'
, [6 V0 r' {  A" o( ^7 C2 hmysql> select conv("6e",18,8);  " ^& ]6 Z+ v( Z& w  x7 n
  -> '172'
% P$ X0 ~  b: G9 A2 e- @mysql> select conv(-17,10,-18);  
1 E; f; h4 G. g3 Q  -> '-h' ' ?4 g  R, h9 e. g. y
mysql> select conv(10+"10"+'10'+0xa,10,10);  
, o, o, i. o/ v- m% n( \  -> '40' " I" ?" j* ]$ O# d6 S& n9 \( y
   2 ]4 D3 r# j5 a/ F
bin(n)   ' K- V& r" {7 K$ k
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  / [. E% ?8 V7 _( j9 a& K1 d' w1 W
mysql> select bin(12);  
$ ?  d. W; Q( }% W1 H  -> '1100'
2 t/ ?8 u* Y# F& S
& \! N8 n# B9 X6 zoct(n)     w) I! R% O5 x: }, c4 A# |
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  * Z; O* ], q1 J6 F8 v" K$ d  `5 d
mysql> select oct(12);  
. ?$ a+ Y0 P) ~( \% o! g( E  -> '14'
  e- g" ?2 C' V* K8 ^   
7 W3 o5 P8 `0 M, ]3 \$ l. w6 [hex(n)   3 {# T- g5 Q1 [
把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  $ V) F% ]  W, O3 j
mysql> select hex(255);  % Q; |# B( n( Z; p
  -> 'ff' ) W# Z' o' M6 K
   
, n! Y) h! J7 w( @char(n,...)   5 m* s! y# Z& s* _4 @/ @# w
返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   ) o3 S. b3 H# y9 P
mysql> select char(77,121,83,81,'76');  
- S5 Q+ m, \8 x/ I* J- b  -> 'mysql'
+ f* p; `7 H8 ?5 Jmysql> select char(77,77.3,'77.3');  
& t5 D4 O% U9 O% f, A  -> 'mmm'
0 b( ~: X5 ]; d   
- m7 {; Z( D: ]$ G6 `/ Hconcat(str1,str2,...)   + u& g1 @# k9 i* _/ c; e5 F5 C
把参数连成一个长字符串并返回(任何参数是null时返回null)  
, p# H4 h/ c/ R! umysql> select concat('my', 's', 'ql');  8 Q) g5 `! S8 h- I
  -> 'mysql'
4 G6 o( h- C$ f% G& h4 N$ N  }# wmysql> select concat('my', null, 'ql');  - {9 u7 z5 ?0 G  n5 r
  -> null
4 [( b1 D5 m6 N4 I8 Gmysql> select concat(14.3);  0 w4 W( V/ e/ ~: {+ M
  -> '14.3' : G2 ?. Q0 c( q
4 ^/ j5 J4 T1 |& K' T, G( z
length(str)   
/ n1 g5 {6 Z* p: T5 d; loctet_length(str)  ! r9 g( n' u( K% y7 E* t
char_length(str)  8 [# N+ Y8 e6 _
character_length(str)  
6 ?" F5 J! i* V# @返回字符串str的长度(对于多字节字符char_length仅计算一次). ]' ]1 o- r' j6 D; K5 @
mysql> select length('text');  
: h( z6 A# P+ ~  -> 4  
1 c7 n* U! G. U" K% Xmysql> select octet_length('text');  # \" A  u$ I4 a5 v- j+ f
  -> 4  4 u+ H/ I4 s5 Q& K, m

* ?, F- m% L2 z' f* v( rlocate(substr,str)   
  F% g% t2 f  a# _position(substr in str)   
+ ^1 {$ G$ G8 T/ p- o( X2 j4 _返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
) `/ N: l$ B+ O* S' o5 ~mysql> select locate('bar', 'foobarbar');  
' a- R8 S% m+ c  -> 4  
' x0 J( H9 I$ F( K0 K5 `& hmysql> select locate('xbar', 'foobar');  
7 M) W/ g0 j( Y. f4 i: i0 I  -> 0  / Z' O* e! h/ i8 D- H
    & k! }+ o) k& g  s, C
locate(substr,str,pos)
; i* [# @% J$ {; ?4 o( y5 K% e返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  4 F9 o: q+ @& G% O, B$ e& C
mysql> select locate('bar', 'foobarbar',5);  ; z/ g, |' q$ [* |
  -> 7  % Q2 g; k3 `: W8 r9 V+ w( l3 |0 z9 ]

/ j3 V0 s9 d  `7 tinstr(str,substr)   : I0 \4 x/ `( d. `- q9 _  d
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  * \" L# _. k0 N1 D
mysql> select instr('foobarbar', 'bar');  
& R5 _! V" `: C! U( H  -> 4  
5 w* J- V$ F8 S5 [0 mmysql> select instr('xbar', 'foobar');  
9 e+ _2 u" E( N/ H1 j  -> 0   
8 A) s. I& ?+ L" M / B! x" I7 N; c( N
lpad(str,len,padstr)   
# r! B9 u+ C8 y2 F- s+ S用字符串padstr填补str左端直到字串长度为len并返回  
/ P2 j2 M- ]& z8 d6 }mysql> select lpad('hi',4,'??');  
) ^! c2 k. o; o/ q$ j- ?2 {' D  -> '??hi'
+ H" l# w0 S  ~6 e   - ~7 w; Q- h! L6 r- J( d
rpad(str,len,padstr)   
* K& S) k5 w% B4 B用字符串padstr填补str右端直到字串长度为len并返回  
0 T$ d# _! h! ~( k8 ?+ Zmysql> select rpad('hi',5,'?');  4 X% E/ m2 n' J4 x. K& Q# q, p
  -> 'hi???'
  K* c: F2 b" T
* a. c! ~- i0 V9 u! p7 w5 oleft(str,len)   
# F8 S% Y5 x! y+ i7 t0 {7 U- c返回字符串str的左端len个字符  
1 V$ C  [, j( h! w# I; C6 Jmysql> select left('foobarbar', 5);  
6 `( h+ p5 j% `0 Y! p  -> 'fooba' 2 u8 c* j$ D  m2 j6 w
& I+ X$ E2 {0 _6 y/ r0 D  F
right(str,len)   
9 j6 u7 n; Y5 s* ~( N# P! x' B# Q返回字符串str的右端len个字符   % j3 ^. K( {- [. c% P
mysql> select right('foobarbar', 4);  
. Q  r) k7 t0 z$ }+ X7 h/ Z' L- e  -> 'rbar'
! y# H6 j3 K1 `  N  a/ }% H  p 0 s) m* l, Q: X5 C
substring(str,pos,len)   , O6 C3 M. z" O2 ]
substring(str from pos for len)   
8 i+ z  M1 T5 omid(str,pos,len)   " ?- _6 P; `0 ?2 A
返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  # |) ^5 V; _. Z# A
  -> 'ratica' ) E5 x+ l2 l! N
% ~, j1 D' v. ~- Z
substring(str,pos)   & k5 A1 [* R0 J4 }9 U" R0 \
substring(str from pos)   
7 W, |( w1 O% a1 ]! M' U8 Q返回字符串str的位置pos起的一个子串  
2 i8 K3 j3 y% o/ D3 dmysql> select substring('quadratically',5);  
  s+ E- D' T& s" j  -> 'ratically'
5 ]( m; H, t9 b" H8 Dmysql> select substring('foobarbar' from 4);  ! ?8 T5 g' i0 s0 e; ^8 m' [
  -> 'barbar' $ c* K' Y  V4 N: e0 w
. h4 D% t6 b* F. @
substring_index(str,delim,count)   
, i# Q6 `  g; _% I返回从字符串str的第count个出现的分隔符delim之后的子串% s; V4 _- G8 R8 r8 K( E* [! ^
(count为正数时返回左端,否则返回右端子串)  
4 \4 `) S2 ~  ymysql> select substring_index('www.mysql.com', '.', 2);  ' X7 D( `7 t) H4 m# s- c+ F
  -> 'www.mysql'
7 D9 `5 V; k- Rmysql> select substring_index('www.mysql.com', '.', -2);  9 E: f1 f1 l! Q6 @4 z% C3 I7 m4 P
  -> 'mysql.com' , f3 G1 o. h& r  f
: f+ x. [2 F+ h
ltrim(str)   
9 h) S* y) q( ?返回删除了左空格的字符串str  
0 {7 R3 ^8 l' y! wmysql> select ltrim('  barbar');  $ R. r# ~" I. D% \8 L
  -> 'barbar'
3 M! O+ u) ~& u * n- Y- ~- A& S8 {8 w2 r; k' n& j
rtrim(str)   5 h1 _. v" h" D0 e4 u
返回删除了右空格的字符串str  
2 O: {$ @. k7 D; h- y6 E" umysql> select rtrim('barbar   ');  4 H" P/ X* x* T4 ]
  -> 'barbar'
( m' O: ~, z0 ]; ~ # m9 U  e) k4 w2 W/ j# |) ^
trim([[both | leading | trailing] [remstr] from] str)   3 ~- |- i1 v- t  C6 H- b7 V7 b5 g8 q
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  0 `6 }# {- c9 I
mysql> select trim('  bar   ');  2 {4 q# t$ h1 O9 Q( r! z' x
  -> 'bar'   t  T& {; z4 b# p3 g( [
mysql> select trim(leading 'x' from 'xxxbarxxx');  
  @6 T) D! {/ D  ], i8 u" M  -> 'barxxx'
+ C3 X5 ?& q( M0 G& S7 p$ @mysql> select trim(both 'x' from 'xxxbarxxx');  ( `& [9 Q7 w) z' ?
  -> 'bar'
9 Q2 _3 G% m/ A7 i1 {, P# ^mysql> select trim(trailing 'xyz' from 'barxxyz');  
2 p" p( l4 L; F  ]! X* z+ W  -> 'barx' 6 W3 ]* B0 ?. u- X2 r9 d
* i" u8 X7 a, m) S" ~
soundex(str)   
# S' a/ W. e9 D9 @; ~3 x; H, @返回str的一个同音字符串(听起来“大致相同”字符串有相同的
3 h- \1 e7 Q2 u- l同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  
6 `' H! {+ c4 {2 x& Rmysql> select soundex('hello');  1 d5 ^! r# f9 k4 R
  -> 'h400'
  U/ z$ |& F  ]; A  b7 Jmysql> select soundex('quadratically');  
* z: `2 x9 v3 g. ?  -> 'q36324' " N/ N# f5 b  W9 [; p7 e0 J
   
* C3 Y6 h) Z: t9 ~1 i8 Cspace(n)   
# l8 w8 w( d' D返回由n个空格字符组成的一个字符串  
! V0 \) Y, @4 \! E' |' M0 Smysql> select space(6);  * V- H1 \. ?) ~9 P1 u
  -> '      ' 9 ~$ R' X) L" e5 m
   , J; s# V5 r5 b! \
replace(str,from_str,to_str)   
- g3 ~" \1 G+ m/ C7 @; _用字符串to_str替换字符串str中的子串from_str并返回  - S1 @8 ^8 H. j$ r0 Q0 k4 p% Q$ m8 w
mysql> select replace('www.mysql.com', 'w', 'ww');  
0 i/ Q" p! V, M* p' u. s  -> 'wwwwww.mysql.com'
, P3 e! j; P( @1 R
2 Q9 W$ q- p+ }0 N& Crepeat(str,count)  
) m/ A/ `# |, Z$ i返回由count个字符串str连成的一个字符串(任何参数为null时
' ]6 J. N+ d$ M: s# M0 Q返回null,count<=0时返回一个空字符串)  " P) [& t5 d/ ^4 q5 x" |
mysql> select repeat('mysql', 3);  
  Q7 @0 ^" j, G" Q9 ?: W6 w; e  -> 'mysqlmysqlmysql' " R  e4 G5 i+ m  M& u# ~, D! b# W
   
& T9 Y7 I' h4 \9 K. u2 M) nreverse(str)   ! V7 u5 I  N8 W5 ~0 H
颠倒字符串str的字符顺序并返回  $ ?6 j' I  w2 r, g
mysql> select reverse('abc');  4 R/ J3 D9 {( d
  -> 'cba'
1 A) k4 U1 V5 t9 g7 h+ p
# D  O5 J4 A5 B/ {1 ~insert(str,pos,len,newstr)   ' u  E6 d' a  a/ }2 @
把字符串str由位置pos起len个字符长的子串替换为字符串
6 w8 t; c( C$ Z' _newstr并返回  
3 F  L1 w2 R( b5 C9 |. ]mysql> select insert('quadratic', 3, 4, 'what');  
7 h3 K) G: L$ A+ H6 i5 g  -> 'quwhattic'   R, O% M8 L* ^

: `3 E3 u5 `) Celt(n,str1,str2,str3,...)   
% E3 A0 _8 I5 f6 O7 ^0 r返回第n个字符串(n小于1或大于参数个数返回null)  
$ ]+ Y2 J. p* l5 R+ s2 Zmysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  3 p% }9 I3 d2 k
  -> 'ej'
7 t. s7 {2 ]; M2 Z( r4 d  Tmysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  
# T* }0 W. p- w& A  -> 'foo'
8 |" w( n- X1 H2 p
! [& i8 m: R; }field(str,str1,str2,str3,...)  
. K! N5 M% n2 T, |; C' l5 G- o7 f返回str等于其后的第n个字符串的序号(如果str没找到返回0)  / V2 B3 h; u  ]! d% g; ?
mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
  n5 d6 L" ?/ F3 ^( R'foo');  
( I8 J& v, x& a4 v# F. [2 r  -> 2  
' W/ R4 U  P, |" {* K" U. vmysql> select field('fo', 'hej', 'ej', 'heja', 'hej',- V: m3 ^% f' [% }, k& w, L5 \
'foo');  
3 ~$ m/ \7 c: ^  -> 0  
2 O, L0 V1 O" u. d. D : ^+ f9 J5 T& v/ d' t- _( m
find_in_set(str,strlist)   
/ ]9 z5 h5 `" n2 ^返回str在字符串集strlist中的序号(任何参数是null则返回+ G- @  k3 a% X3 S8 @
null,如果str没找到返回0,参数1包含","时工作异常)  
3 ~5 B/ n( ^9 h. N$ O0 Gmysql> select find_in_set('b','a,b,c,d');  9 n# {$ B4 V1 q$ a4 L
  -> 2  % `, X. t  q" F' Y
   / {0 b% ]! ^& A7 ?
make_set(bits,str1,str2,...)  
0 N; C4 _. R3 R* ]1 _' Z把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
* H: R$ k$ }& ^- [- x8 M位置的字串选入字串集并返回(null串不添加到结果中)  ' R2 x0 t( C6 b
mysql> select make_set(1,'a','b','c');  1 ?' ]% G/ b3 \4 R1 Q
  -> 'a' 6 C: A* B; a( H' ^
mysql> select make_set(1 | 4,'hello','nice','world');  6 D' }6 @+ Y$ d% R. }$ H6 J$ L8 ?
  -> 'hello,world' 0 ~' [$ C, U" j- L: ]9 v3 D1 U" L
mysql> select make_set(0,'a','b','c');  / o% ^" W& a2 ^" n
  -> ''
) w& P% u5 e, s& l- L- S' P0 | 6 B2 S$ {# Q2 K
export_set(bits,on,off,[separator,[number_of_bits]])   
) e) j' h' |0 Z4 D7 w( i按bits排列字符串集,只有当位等于1时插入字串on,否则插入
+ h5 d0 h5 Q9 ^" l( R$ loff(separator默认值",",number_of_bits参数使用时长度不足补0% J' r. R: `# Y4 e
而过长截断)   
5 k1 S, ?" m/ S( t, }2 Vmysql> select export_set(5,'y','n',',',4)  
) p# `* Z' F+ L/ B% a  -> y,n,y,n   ( C7 m! c7 d7 L0 w$ Y2 @9 G
0 r! U% F+ e' ?1 r7 N. q: ^# y
lcase(str)  
4 i1 u, L0 M* B3 U; _lower(str)   
' Q; T$ h( E* U; h" }6 G3 O1 Y* c返回小写的字符串str  * m9 s6 ~; I- K
mysql> select lcase('quadratically');  
# O/ }7 s% o, w: V  -> 'quadratically' 9 M3 h+ k1 u2 w) a5 O0 N
   
6 m" T! A( P& T% @' W5 ^ucase(str)   
# m  H1 r; R- `upper(str)   ; e6 N! o: _, _, W8 v1 _2 k
返回大写的字符串str  4 v& d" @2 P8 W: {
mysql> select ucase('quadratically');  & b9 f3 N8 |+ {  J
  -> 'quadratically'
1 F5 F% U8 g1 K$ B% p0 _7 b * m, o) t$ n6 k/ n) C! W/ n
load_file(file_name)   
+ b# B/ p: G* ~: Q- z, O读入文件并且作为一个字符串返回文件内容(文件无法找到,路径
7 ]; G# q" c/ q不完整,没有权限,长度大于max_allowed_packet会返回null)  
: K! H7 J" V, ^  o% m$ r& d; p5 {mysql> update table_name set blob_column=load_file3 D+ `% v+ h0 u; j$ e0 @- m
("/tmp/picture") where id=1;  2 L7 u  J* ?( c) W- h4 u

, n& f% r% n2 @. e8 f5 H* A2、数学函数, D, n% s# o8 r9 A7 u
abs(n) $ X9 ]7 }5 G1 E8 c: D, P
返回n的绝对值  5 a8 x! c# w% n- ~4 Y5 b3 N$ }* T; t
mysql> select abs(2);   
. \  Z4 x' E( m3 y- n  -> 2    ! b9 g4 z3 w5 m) t) V5 `( A' A9 a
mysql> select abs(-32);    ( I, g5 ]3 Q) j, B$ G: P, O6 r  `
  -> 32    $ P% \) M7 o& V8 d% w
   0 f9 e. x# l+ Y+ J$ R
sign(n)  1 I  d4 H. t) j1 ^! g
返回参数的符号(为-1、0或1)  
; X8 g2 n& }. L: Jmysql> select sign(-32);   
/ q. x" F  `( n- F  -> -1   
) V$ K$ X0 F" l; I/ z" q9 wmysql> select sign(0);    7 Q3 G: u: N, o& ~- m) V
  -> 0   
) s" x8 h6 D* U9 @. Kmysql> select sign(234);    - T% ?6 G+ y& l' D5 @; q
  -> 1    : U3 x  J9 L# e7 `

* F7 g* S6 L) T8 Bmod(n,m)   
- A/ k: c6 l5 a, O( s取模运算,返回n被m除的余数(同%操作符)   
; o9 h! t" Z4 r. Pmysql> select mod(234, 10);   
- H5 ~1 J' w1 \. I9 O5 ]* B6 q  -> 4    ) I* [3 B  t0 C. g' a0 f3 p% i
mysql> select 234 % 10;    ' V2 W9 g' K  n2 L* i
  -> 4   
: Z& Y9 b4 W) nmysql> select mod(29,9);   
: R1 V6 n+ T! l; N9 P3 b  -> 2    : k: _6 T9 X, c8 \6 q
# F+ j, o- N; @8 y; ~, w6 ]
floor(n)  / Y& u9 t' _! q) D) q9 s: ]
返回不大于n的最大整数值  4 K& v" _; H) u2 Y& W& `2 m& E3 G/ ?
mysql> select floor(1.23);    ( x& E) q/ j( ^. w
  -> 1   
0 Q0 E7 d* S; K: ?  R; b& hmysql> select floor(-1.23);   
/ x! K$ F8 X# a8 P: S& M6 R& q  -> -2    . |/ ?1 m6 i0 S: c- _0 d

$ @; P: p& ?* Tceiling(n)  # W" B: S3 Q/ j
返回不小于n的最小整数值  
4 p) q6 d% M  |$ Q7 e! D; vmysql> select ceiling(1.23);    5 c% ?' n0 ?6 q7 \9 E& G, k4 w
  -> 2    . \, f6 M1 V& q6 S
mysql> select ceiling(-1.23);    3 {: t) z5 ?2 s  X2 r* ^
  -> -1   
5 F" }: w# N# L9 f( ~ & t; D3 _  P0 C2 I3 A9 b
round(n,d)  
4 \, B' y. l8 w5 b2 {  p& N; w返回n的四舍五入值,保留d位小数(d的默认值为0)  
( Y4 v2 q" M6 `. C9 P1 @- ~) k/ _mysql> select round(-1.23);   
. G- Z, D  N  R- y7 p7 z1 Z  -> -1   
2 R: r- ?4 N3 W' _2 B4 m4 R! Ymysql> select round(-1.58);    5 r. I" @1 }8 u% |2 O6 K
  -> -2   
" |5 R% K* c& ?; i& ?! rmysql> select round(1.58);   
. X$ q8 j5 t6 K8 ^) _$ E5 a  -> 2    3 _- K, D: E, e2 V0 `  Y6 q
mysql> select round(1.298, 1);    4 E  g+ y" ]% L  Q2 f1 ~$ \8 L
  -> 1.3   
- t% q/ a  {7 n# @' r0 u7 X2 F  zmysql> select round(1.298, 0);    ' |" N2 g! X! }; `; `
  -> 1      ?8 d  x# B5 ?2 I, q6 ~6 j+ ^
( e$ u7 v4 f7 R! u( q, M& w
exp(n)  * n* G; E8 b2 Y2 t# ~8 Q
返回值e的n次方(自然对数的底)  $ d& N; H" D( Y3 i7 j. y4 P( d
mysql> select exp(2);   
8 H( K4 p; E7 x( @+ v; p6 a  -> 7.389056    ! R! D, U# Z$ D. a
mysql> select exp(-2);   
; y; E4 [/ B! [3 B  -> 0.135335    9 h* @8 j9 [4 p# B9 B5 P1 _8 Z

7 z: L% w$ ~, K1 Q8 G2 mlog(n)  
/ v2 f' O) x# `返回n的自然对数  
+ k$ `( H; k3 z$ K% _; kmysql> select log(2);    . Y! w# ^  y( m0 K
  -> 0.693147   
& |; h. t: ?# z9 N# o- F  |5 mmysql> select log(-2);    $ ]: A* v0 Y6 o
  -> null   
  p5 ?$ S+ {+ C$ X- p 6 R! e4 ^0 ]: y
log10(n)  ' g: {+ t6 H6 z' ?4 L
返回n以10为底的对数  6 \# i* a( Z. L5 k8 {1 `, z+ {
mysql> select log10(2);   
. e. B. E: \! v3 b4 _  -> 0.301030   
! `; {8 \$ P$ A8 E9 Pmysql> select log10(100);    ) Z0 ]4 L" ]* v5 R1 Z6 N: i
  -> 2.000000    # j" }; a3 a8 T6 |' N( d
mysql> select log10(-100);   
! {% {( H+ B& ~- z  -> null    % n$ y4 A. s! s% ?; ?( d

. y# I9 j" b& z7 f2 y4 }4 T3 e/ Tpow(x,y)    , o% H6 s4 e& B  A* P2 P
power(x,y)   
7 ~- ]: E4 I" h& | 返回值x的y次幂  4 F7 q- n' @# _
mysql> select pow(2,2);   
/ K1 ^# q0 M  f  -> 4.000000    0 L8 A) _6 F+ W; [( P& _+ d
mysql> select pow(2,-2);    & c( d( a0 y8 b/ t+ s( F
  -> 0.250000  : q/ T, @6 g) \7 M

' U8 i/ u$ C" lsqrt(n)  2 n8 y0 D  A# }8 \. B
 返回非负数n的平方根  1 l% x, ^, E- ^+ v
mysql> select sqrt(4);    " ^9 \1 T: ?9 T- ]( C" D3 B" I9 G
  -> 2.000000   
. c- E, ]/ u- A( `9 e. Wmysql> select sqrt(20);    % ~5 ]8 }7 i3 x* c
  -> 4.472136    ) v% |7 _0 x3 O0 k

' Z  `8 i9 I& X! p" M& H+ |# Vpi()   
- g! |& \6 w/ I/ t 返回圆周率   
6 B4 b( V. y( t2 j) imysql> select pi();   
9 I4 h" n, H$ z3 ^7 \* v  -> 3.141593    ! a4 \; E8 M2 c6 M% U2 [

% \, T, {0 i1 {1 \& qcos(n)  
2 i, c" _; D* C" n6 G7 B 返回n的余弦值  ; P0 a. Q8 i; h; W
mysql> select cos(pi());  & F/ |$ a4 {! s9 e( ]6 C! A2 i3 B
  -> -1.000000    3 t! l0 Q6 F/ R7 r9 H9 j& x5 `4 t
6 L: `, x' A  ~2 U6 n0 m/ {
sin(n)  % q3 n/ J8 P# x; Q% o; v
 返回n的正弦值   ( {2 P+ q* }' q4 _) }
mysql> select sin(pi());   
# G+ x8 b# C' d1 t2 z  -> 0.000000   
" d. G$ a; f- N3 H, n
" a# {$ T# s" i; k  Ptan(n)  
! s4 m/ l5 g1 b, Y( r; \) ]返回n的正切值  
2 o. M; b+ U! Y  _: ]; q; ]" P# A- Kmysql> select tan(pi()+1);   
8 }/ A+ F  M0 k* j/ D% l  -> 1.557408    ) U  {. h9 @- b3 E- J
9 x' k. J* Y* X
acos(n)  
+ L, x2 {# L- m( o7 s 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  ) U8 E+ R' P+ R! I! p
mysql> select acos(1);   
3 x0 R5 G! ^! q! S) m6 s; g  -> 0.000000   
' D5 k1 P, ]+ m) o. t5 n8 ]mysql> select acos(1.0001);   
$ ^* {6 ~8 G) C/ J5 m& l  -> null    - g, p! j9 O9 c# \3 h! U. h
mysql> select acos(0);   
  v/ Z6 \7 R- y% H2 e4 Z  v/ q+ W  -> 1.570796    6 s& a# E2 g' Z. q- K

- b$ m' {4 ?" ^) Masin(n)  
4 O) V4 H  K3 b0 t6 v返回n反正弦值  - U$ T+ Z5 @7 L
mysql> select asin(0.2);   
/ M; g. J1 F8 H' ?  -> 0.201358   
, Q; Q; ?& Y. \( P- xmysql> select asin('foo');    + m( B. W5 h1 M
  -> 0.000000    ( d, g9 a5 C/ [2 c* S
3 o5 p# y% K# d: Y- u2 p
atan(n)  3 _5 B7 }3 u& D0 k
返回n的反正切值  . m) H6 n1 `" ~0 [" M- t
mysql> select atan(2);    - D1 J/ P  w  j! Z0 j& }
  -> 1.107149    7 N# u- F; }6 D% h! U; u) U: X
mysql> select atan(-2);    % k$ P  I$ p5 f1 l% b# l% ^; {
  -> -1.107149   
. }0 q7 F) ]4 Y- ]/ C, w: h* c' b, natan2(x,y)    7 E9 Y/ L+ x2 K' o+ A2 R2 t; Q* x
 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  
- {3 x3 ~" D1 ]% X2 a; x8 w  t$ Mmysql> select atan(-2,2);   
& @, A: s- b% c$ @  -> -0.785398   
' q4 ]% I$ K: Y6 c; o6 Jmysql> select atan(pi(),0);    " \5 c" B4 \8 ^( f9 E! E6 Z' B
  -> 1.570796    " k1 k' K; a5 ?

0 S% P! o3 u5 a6 acot(n)  
& P. i% m. G$ F7 e# |返回x的余切  
; x# y; d; [' I/ x6 gmysql> select cot(12);   
) p- ], ]! v+ t# j  -> -1.57267341    . j1 m1 V9 \  n
mysql> select cot(0);    : t- G' q2 p6 b( \: t3 w2 A8 J" E
  -> null    % u) l" p9 X0 z' m. Q
' P; L4 L4 U0 P, C9 M" {& [
rand()  
- Z7 J# a$ W5 V1 d; hrand(n)    
* q9 O! d6 p8 D, I2 Y, W返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
7 M( k, S5 r. N5 k7 x1 o$ `
7 w9 |1 [1 P# ~% q, w$ Y5 Hmysql> select rand();    + Q  J. t7 m$ U! K/ Q/ h
  -> 0.5925    0 ]2 W3 R. o) y' x  F; l
mysql> select rand(20);    . g+ O2 U/ |* ?# `3 q
  -> 0.1811   
0 l# I; s- h/ P# s) m/ zmysql> select rand(20);    8 l5 W2 J* ?5 C& `+ P) A7 `* M
  -> 0.1811   
! }* ~8 Z7 T  x' `/ mmysql> select rand();   
- ~! U* E- u: X* x: X# u5 I. f7 t  -> 0.2079   
' t2 A! `! x" E8 D2 H' Q8 Qmysql> select rand();    ' S+ {- k1 U5 E" L5 F5 I3 ~: m
  -> 0.7888    / W# g* ?1 @8 W
7 [, q7 R) I: h# ]/ L( ?$ l
degrees(n)  
3 H- Q1 [- Y5 e4 L! F% Q! R把n从弧度变换为角度并返回  
3 m: _2 V: @. C6 Gmysql> select degrees(pi());    0 s2 D4 `, A" d% ]8 B. K
  -> 180.000000   
1 B+ N( Y) g; c: R% }' T, t/ m2 d1 o
5 r0 U1 r  P9 g9 ^1 Zradians(n)
4 O2 x$ \* U* ~3 t* k( D2 |& Q把n从角度变换为弧度并返回   
3 x' n/ T3 b; p- l9 Hmysql> select radians(90);    8 o( W! ?( O: F% a/ O6 t, A. j2 j2 @
  -> 1.570796    7 Z8 J+ V7 l$ J

. J8 Y+ a. k) M% gtruncate(n,d)   
0 v2 U$ d( j' X/ E0 ~; G保留数字n的d位小数并返回  $ ]& e' d3 z( n% i
mysql> select truncate(1.223,1);   
- T0 @  M6 f/ {4 L8 M/ H; x  -> 1.2   
5 h* ^# h3 X4 C/ c- j5 y- }mysql> select truncate(1.999,1);   
0 u2 r* R$ f& C% F. q' j! R  -> 1.9   
2 s  i4 o' `5 ]" }mysql> select truncate(1.999,0);   
3 F5 z. q( Y; \* g5 i  -> 1   
+ H# t4 a9 ~$ u1 h, l4 G1 ^! B4 v ( h5 Z! O6 @; s; y0 l' O
least(x,y,...)    * ^# Q  Q$ t1 P# |: h
返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
9 g+ P9 g0 [2 i9 D) r- p) @# Smysql> select least(2,0);   
8 i2 ?+ k2 T1 v3 b5 N( ?, ?; N  -> 0   
6 ?; m& Q2 T8 `9 V/ i% t8 @mysql> select least(34.0,3.0,5.0,767.0);    ' A8 E8 a" o3 z; [
  -> 3.0   
9 j% h& f. F9 N1 b( Q# D3 S4 ^mysql> select least("b","a","c");   
6 L$ t$ B& }/ v7 I* y  -> "a"    " s8 H* o1 P: K+ e1 k+ Q) p

( v2 s' @1 n. xgreatest(x,y,...)   
/ Q4 D( B8 p- F' w! l返回最大值(其余同least())  0 z5 Q4 N$ U) N2 L1 j4 P$ g4 O
mysql> select greatest(2,0);    + ?( S. z/ q2 h; f2 J( s# ]
  -> 2   
7 N0 ]0 Q1 b6 O3 B- Z* o1 Xmysql> select greatest(34.0,3.0,5.0,767.0);   
: d, c) |1 n# X& `% F4 d4 s  N  -> 767.0    / |" r) Y& Q9 O' _/ v8 W- |
mysql> select greatest("b","a","c");   
; y3 V9 \2 n1 v, k. L- G  -> "c"     
+ K) T" G: A; @; D* c* C( x# }2 @$ `4 h3 `. [- I$ {
3、时期时间函数
8 k+ w5 ~/ w: s, Y7 W3 Kdayofweek(date)    : M+ n+ e) g, G! d8 q
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  % p4 M  L/ A( k+ h
mysql> select dayofweek('1998-02-03');   
( Z( s/ x0 E  W$ T2 ~  -> 3    ' g+ m" Z/ j* j* U- t. B

" a! Z" O' G7 G5 f: L( j2 s6 Lweekday(date)    3 G3 u. h. b6 Y/ g1 W8 G
返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
! q: v1 r4 Q' m' e' H) M+ w  * L  a& Q* [7 t) f: _6 e# {
mysql> select weekday('1997-10-04 22:23:00');   
' j; g9 K- v; `  -> 5   
% B5 T. j/ h' x  ymysql> select weekday('1997-11-05');      j7 |: K$ f, Q: E: x" }/ P
  -> 2    / P* b0 _8 C- ]. \
; W9 B" O1 y0 U/ Z* b; x; N/ u5 @
dayofmonth(date)    * _3 Q/ ?6 v# W3 f" ]$ i
返回date是一月中的第几日(在1到31范围内)    / Q; R' Q- p$ L! n! `$ k  b
mysql> select dayofmonth('1998-02-03');    : j- @. h- E! y+ P* P( u! D
  -> 3    $ k+ P9 |7 d7 p6 y

& e0 ^$ p# ?9 K6 Qdayofyear(date)      p: P6 |8 h8 K
返回date是一年中的第几日(在1到366范围内)   
- z" v, H9 c& |; T) P4 }/ umysql> select dayofyear('1998-02-03');   
+ h" |) y  B; G$ Y: x  -> 34    5 ~/ u% g4 P+ S2 a, w

6 g+ Q6 f( i( c3 X  A& Q! o- ?! N( Mmonth(date)    ( F9 m8 [3 U6 o
返回date中的月份数值   
# @- Y' K; D" V8 w6 vmysql> select month('1998-02-03');    , y, v2 i0 i/ E5 P/ E+ h
  -> 2    6 E) h4 V9 |( A! D
8 K4 `" h9 L  T5 }9 T7 O
dayname(date)    ( x& Y8 \' p  ^7 H
返回date是星期几(按英文名返回)  
4 J& R; v* P% C7 x3 hmysql> select dayname("1998-02-05");   
& G9 i( H$ b+ ~  -> 'thursday'    0 s2 \1 g* B+ J$ ~

5 m& J) o- ^9 Z1 [) n  |monthname(date)    
+ @/ p  @' o- G5 o3 x返回date是几月(按英文名返回)  
2 Z; k: h! U& v+ fmysql> select monthname("1998-02-05");    7 d1 }  c4 ?# ?  {$ g) f
  -> 'february'    / u4 ?, O/ T$ X9 e$ v

' {% {; ?& q! J, T; F9 C7 R! {quarter(date)   
$ W, n, J, q% i( E6 x8 w  X7 m返回date是一年的第几个季度    " Y, N4 ~  `) T  b! R
mysql> select quarter('98-04-01');   
$ i' t0 `6 v, }( ~" ?: L$ C  -> 2   
/ i& l3 e% ~$ C1 }9 M
  J1 ]4 X8 @; gweek(date,first)   
. k; z/ Q! D: x. w! V返回date是一年的第几周(first默认值0,first取值1表示周一是/ u/ Q+ F8 C. Q' H! r0 \
周的开始,0从周日开始)  & c3 V* O4 x8 d( H8 S7 i* y( w- n
mysql> select week('1998-02-20');   
- {- b0 j( |# ~0 v! B  -> 7    + b* S" ]( |+ K& F
mysql> select week('1998-02-20',0);   
: G$ \* ^0 _% g/ n& F  -> 7   
5 ?7 }6 e2 p6 [' Y$ }5 ]mysql> select week('1998-02-20',1);    + T1 }0 f9 f1 K% \9 B9 Y
  -> 8   
  n9 e2 a! c+ F, Z7 k  ~" F # o3 ^& ?, E5 S5 Y
year(date)   
/ b$ j) y  _: N8 V% A返回date的年份(范围在1000到9999)    6 `: p! q5 h" I- D: C
mysql> select year('98-02-03');   
$ h" K- Y' I6 K- b  -> 1998   
, y' p0 f1 {6 v' t# P! ` . F% C+ r1 m- c5 P, x
hour(time)    
' ^! F- h# L( H& Y4 t' T4 N1 ^1 {! {, Y返回time的小时数(范围是0到23)   $ f( U" k! ^$ y' b3 e: u
mysql> select hour('10:05:03');      Y# Z* u$ T5 {' b. S
  -> 10   
& A+ U' j6 o" Z% P . W: |( Q3 |1 s; _" g7 h5 s  X
minute(time)   
' i  P, N+ E. V, t1 d' p返回time的分钟数(范围是0到59)   
* f. n  {; H2 }* A3 Vmysql> select minute('98-02-03 10:05:03');   
/ _/ a; |4 M; I* z3 F5 z0 O  -> 5    ; m% a( p3 k& v: J! m6 U( Z1 |6 O

( o+ `, b. u$ s2 i3 h+ n% ksecond(time)    
! k$ P/ h+ G' `$ d1 x- F  H返回time的秒数(范围是0到59)   
( N! B8 h: O  o9 Z- hmysql> select second('10:05:03');    9 Z( v: E' s) M9 ^. ], u. H% j8 F
  -> 3   
# V  c6 K" s% \7 A) a$ R8 o ! ?' T. V% n$ P) F
period_add(p,n)   
/ B0 j0 z5 L  B( W8 F( |增加n个月到时期p并返回(p的格式yymm或yyyymm)   
2 D2 _) q7 @1 G0 N9 X, mmysql> select period_add(9801,2);    + x* p" F/ X% z3 a8 J: C, O
  -> 199803      N5 V: R$ W. b( o9 m9 q

% G1 x# L9 d6 h# \period_diff(p1,p2)    " z# ]3 p1 u3 v+ u. [. D7 X
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  6 ?+ Q# }! t9 s: c% c
mysql> select period_diff(9802,199703);    3 W( n: Q* _1 H+ z
  -> 11   
8 M9 x, I+ a. p# g4 Q& v
, T( K0 J2 y) @9 L- [$ |* hdate_add(date,interval expr type)  9 C$ U  f! V* _' r/ O) V3 N3 C
date_sub(date,interval expr type)   
9 m8 ~( T2 E' n2 U; B* n8 nadddate(date,interval expr type)    % _5 n% G3 ^- |
subdate(date,interval expr type)  
9 T4 [$ [, m0 P. ]. R8 Z对日期时间进行加减法运算  
* n! q2 R2 @, R0 a) l/ F2 Y, L3 P(adddate()和subdate()是date_add()和date_sub()的同义词,也( C( F+ m  U; h
可以用运算符+和-而不是函数  4 E4 x0 ?3 [: Z7 ^: J8 t
date是一个datetime或date值,expr对date进行加减法的一个表6 |/ V$ T, o# [
达式字符串type指明表达式expr应该如何被解释  * Y5 W! V: L2 d( N
 [type值 含义 期望的expr格式]:  
# d1 ~& I1 ^' Z! h, `) n3 K second 秒 seconds    1 G& k6 e9 g3 ^8 I* M
 minute 分钟 minutes   
! D0 K& U& x2 W$ n$ w. Z5 |5 q; z hour 时间 hours   
+ [& A5 \3 z* v; ]3 m( U day 天 days    * }6 @8 R# s- I6 p- p' L3 g
 month 月 months    ) c3 d6 f* @  R4 u0 C/ D
 year 年 years    ( i  j. b8 @- ?* C1 l' ?: N
 minute_second 分钟和秒 "minutes:seconds"    ) b! `* k2 E' Z0 A' ~  B/ H
 hour_minute 小时和分钟 "hours:minutes"    2 ]2 O4 H& }9 H0 G
 day_hour 天和小时 "days hours"   
0 s9 g7 t+ k1 Z3 \" j& u3 c* p4 k year_month 年和月 "years-months"    1 X8 g& Q/ g- W
 hour_second 小时, 分钟, "hours:minutes:seconds"   
' o' {( X; h- @/ c" F0 ?! ` day_minute 天, 小时, 分钟 "days hours:minutes"    + W1 @) G; \/ @2 `' d" t1 _
 day_second 天, 小时, 分钟, 秒 "days
$ c( J" p' p! x0 G9 _0 P% i8 ?+ dhours:minutes:seconds" / V! T- L" S  `" A7 \
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个
% m  \2 ^: ]! f; [5 ~date值,否则结果是一个datetime值)  $ ^# d$ @# e5 Z( }8 y0 U
 如果type关键词不完整,则mysql从右端取值,day_second因为缺  B3 F* h4 K3 s5 E9 Z* h
少小时分钟等于minute_second)  8 d8 M3 m, S( V4 C  T- K
 如果增加month、year_month或year,天数大于结果月份的最大天# a6 q/ \" W9 E) k8 q
数则使用最大天数)    ( e* i( ~, Y( l. e$ {
mysql> select "1997-12-31 23:59:59" + interval 1 second;  
% R3 |+ `1 D( j, g9 B# I! {   }  ?7 R% F- Y
  -> 1998-01-01 00:00:00   
) E  O: R+ @% z- a7 Z; ^. k0 Ymysql> select interval 1 day + "1997-12-31";   
; K; A* A* Z6 X, b- o' E  h0 k! A  -> 1998-01-01    9 }( Y* o$ \' ^% F7 `1 D
mysql> select "1998-01-01" - interval 1 second;   
4 G' Z8 L7 p/ ^% f  -> 1997-12-31 23:59:59    7 D4 s' t1 x8 c- t% V
mysql> select date_add("1997-12-31 23:59:59",interval 1$ K: \/ M1 @( c8 P. }) F
second);    $ ?' S+ i% b/ g2 t" r
  -> 1998-01-01 00:00:00   
: Q! v3 r! n) A! \1 A1 ~mysql> select date_add("1997-12-31 23:59:59",interval 1
' E* B1 r& B+ S$ q3 S1 m, K5 C) Mday);    ) O" l$ G/ r' M; |! o
  -> 1998-01-01 23:59:59   
' j5 @* b% w0 E) z8 g0 U2 jmysql> select date_add("1997-12-31 23:59:59",interval- ?" r; F0 J  E/ y5 t$ _/ o3 d
"1:1" minute_second);    6 P! W0 j6 L; E; L6 t2 y' x
  -> 1998-01-01 00:01:00    % p# X  _% H# L+ n! @
mysql> select date_sub("1998-01-01 00:00:00",interval "15 V, l3 z# v; I8 u
1:1:1" day_second);   
0 J6 r$ ~5 Y! Y# N8 n: j  -> 1997-12-30 22:58:59    , A# v) d" w$ _0 n( x  A. B) _
mysql> select date_add("1998-01-01 00:00:00", interval "-1
# H9 w; K7 r! l8 I10" day_hour);  
2 u8 d- T% c" N1 a! F3 K, L  -> 1997-12-30 14:00:00   
8 R: v8 f9 i6 h- }2 w3 F  ]mysql> select date_sub("1998-01-02", interval 31 day);    / O7 |9 G- `1 ]( Y! Q9 |' C
  -> 1997-12-02    % C4 s7 Q0 n9 U4 V4 S5 P
mysql> select extract(year from "1999-07-02");    0 ?5 `1 M7 i( ~# _4 h6 K
  -> 1999    6 b" g& z1 n* z2 s* y8 {
mysql> select extract(year_month from "1999-07-02$ I7 o+ O. t1 ?) ?- s$ Z
01:02:03");    * `7 n! D1 u! P! m
  -> 199907   
  y3 p" A( }9 b4 X7 v$ Ymysql> select extract(day_minute from "1999-07-02! u: j' w6 m2 R" z" K0 e
01:02:03");    9 @# L) d& [: T* @
  -> 20102    / s7 P/ O' q6 ^! w; P/ X0 h

3 {& A" F1 T7 |1 F1 @to_days(date)   
) f8 z, S9 F: t( F7 y8 a) v( u返回日期date是西元0年至今多少天(不计算1582年以前)  
" P8 G: b. }9 F6 I$ Vmysql> select to_days(950501);   
& u0 m2 W: p9 G( [  -> 728779    5 H5 P  X( X* H9 ^  E, }* P0 M# |
mysql> select to_days('1997-10-07');    / t, j5 [! e1 f
  -> 729669   
  {5 i! n4 z8 K" x$ C; Y) k% Q
' a  ~! A$ P/ [from_days(n)   
1 j$ p! F8 L+ q3 e- o% @ 给出西元0年至今多少天返回date值(不计算1582年以前)   $ {- \5 @/ k8 X: r: Y9 G
mysql> select from_days(729669);    7 Z3 B$ g+ m" |$ E! _" h5 x& d
  -> '1997-10-07'   
+ k" B0 X1 A5 C, Q6 Z$ y 8 k8 ^5 Z$ g/ S9 g
date_format(date,format)    & r- \! A2 y% f
 根据format字符串格式化date值  
) F* `4 d3 [% o4 c3 H) q (在format字符串中可用标志符:  , x& `4 N* {3 x; ]. ~) H
 %m 月名字(january……december)   
: V7 l4 r& q* l# }, x( c %w 星期名字(sunday……saturday)    & s( M0 J( K3 m  T
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)   
; p( E: q4 ^# Y* j6 e! t %y 年, 数字, 4 位    4 {# A; D; H7 m# Y" W( R6 X
 %y 年, 数字, 2 位    , V2 S! |' g& z& k& I; J
 %a 缩写的星期名字(sun……sat)    . {' `9 D& j, j5 f
 %d 月份中的天数, 数字(00……31)   
- Z7 [( a6 p+ H; y0 I+ ]* e& J %e 月份中的天数, 数字(0……31)    3 _6 h# A) T5 |1 C
 %m 月, 数字(01……12)    ( L, f% J9 a$ K" i; \' ~
 %c 月, 数字(1……12)   
& c# u+ C; H  H5 }& u- y8 L. i4 @ %b 缩写的月份名字(jan……dec)    9 ]" M( U+ j. Z3 L" Q# q7 a/ p
 %j 一年中的天数(001……366)   
8 s# h' K# Z7 @4 E1 t& y %h 小时(00……23)    0 |9 g# l' W9 J, f  l5 I- ^
 %k 小时(0……23)    ; \; G  Q" @+ y- a
 %h 小时(01……12)    7 T0 o! ^3 d  P( l! w5 f
 %i 小时(01……12)   
9 b, b2 o" E! J2 y3 G% \- | %l 小时(1……12)   
7 Q2 y0 c) v* _# k3 h* l- Z. { %i 分钟, 数字(00……59)   
: @8 f9 r8 a; ]/ ?4 r3 x %r 时间,12 小时(hh:mm:ss [ap]m)    $ d3 ^- n3 l5 ^' o6 H0 t$ i6 l* i
 %t 时间,24 小时(hh:mm:ss)   
/ F5 R0 p. N" ~: t %s 秒(00……59)    0 e% F. c: E% N- i( {- A
 %s 秒(00……59)   
* \, T4 S( s; c* @+ m %p am或pm   
0 c$ F6 j4 U; {* m2 ?" s %w 一个星期中的天数(0=sunday ……6=saturday )   
4 Z9 `# s# s) |% v4 R- O, m7 H %u 星期(0……52), 这里星期天是星期的第一天    $ e' v) t* q8 r& S
 %u 星期(0……52), 这里星期一是星期的第一天   
, q; D6 |3 g4 A/ O$ I8 K %% 字符% )  
# ~7 o0 C: K! p; h3 Ymysql> select date_format('1997-10-04 22:23:00','%w %m %, }7 i( F/ L0 [( @0 k+ d
y');   
, w9 b$ c' K) Z, C0 s* R! h4 Q: R  -> 'saturday october 1997'   
* w+ ^0 K4 g! g. kmysql> select date_format('1997-10-04 22:23:00','%h:%i:%8 C1 X9 Q$ [% a+ d4 Q1 m
s');    " u9 h" i9 X7 W7 w" f" B7 a) ]
  -> '22:23:00'   
( M% K# V. P+ Z% P" t. s* rmysql> select date_format('1997-10-04 22:23:00','%d %y %a
8 F8 `7 \) X% X) [%d %m %b %j');   
+ }+ p1 {" H4 o' x  -> '4th 97 sat 04 10 oct 277'   
, g5 _* g3 @/ _, ]; r0 wmysql> select date_format('1997-10-04 22:23:00','%h %k %i
+ |7 ~" G( \+ F9 [%r %t %s %w');   
$ |  [9 ~) w# ^' D( J  -> '22 22 10 10:23:00 pm 22:23:00 00 6'   
0 W( D6 v& y2 Z& L( r  w$ u9 Q
! G( b# p- A. ]8 w. W4 ytime_format(time,format)  
1 u8 c6 z1 O; G0 H6 i/ z 和date_format()类似,但time_format只处理小时、分钟和秒(其
3 G1 ?1 y4 d  e, }; s余符号产生一个null值或0)  
, i7 ?6 }& d/ ^/ a! Z
- N" k9 f/ u6 `, a/ u  S! @curdate()     $ e( a' I% s& Y3 {0 J7 C
current_date()  
( _& C  F2 }$ K9 Y+ ~0 y* M 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所6 F/ C) P. D; L( d% y8 N
处上下文是字符串或数字)   
% @+ {" s8 d3 @& |mysql> select curdate();    / l6 [2 T, ]: j5 l& ]9 _& D
  -> '1997-12-15'    , @6 T! s% S6 j2 l9 s7 m
mysql> select curdate() + 0;    6 v8 [" U4 E" `6 u6 A3 H1 {; P
  -> 19971215   
0 q! t6 Z% S1 a/ x) v  F. v! A
9 K' T, ?1 b. X2 ]curtime()    / H6 Y( d( U( a. `& C1 @' H" O% L
current_time()  0 H+ `9 B& r6 H# w1 }
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
5 E! K$ s9 Z5 K0 _0 G( l& `( l下文是字符串或数字)      ; T* l" \: N) ^3 E0 ~
mysql> select curtime();   
4 G0 x9 C3 |1 k: n  -> '23:50:26'    % R+ B$ b% m2 \6 h* i: \9 K: g
mysql> select curtime() + 0;    / I0 z7 z, i: X  ]  Y) U3 s
  -> 235026   
. t7 U$ Z7 b, A( Y. s 8 |. W' _! T7 x, d) F) v
now()    % h5 u# s' L/ T' U" T
sysdate()      I8 {2 O0 `- M, i. I# F
current_timestamp()  - O8 d0 e) k* R! n+ d
 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
; F% }6 L- ]/ |& A0 k; R* k& H时间(根据返回值所处上下文是字符串或数字)     
5 k, n4 P9 s* l" U/ {mysql> select now();    : a# e' s' X/ J9 b& [3 @8 y
  -> '1997-12-15 23:50:26'   
( j& U+ p: F' |mysql> select now() + 0;    ; P  S( f  \2 }. b2 e  a
  -> 19971215235026   
* O8 |$ w- g7 Y' Y6 O& g & F6 o) \' v! x3 p/ G: c
unix_timestamp()   
! v, U: {& h- s* l3 \+ M+ kunix_timestamp(date)    & C4 B, v0 H. v6 w; `% ^
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
7 l. z1 w6 p7 c1 c) Y! e2 c数,date默认值为当前时间)  5 v2 L( L; e. |2 h, F) S, M7 G- U
mysql> select unix_timestamp();    2 k8 @( Z% `! p: L2 G
  -> 882226357   
$ N4 P, n+ \) `" y% f- W2 }# h9 C6 J: ymysql> select unix_timestamp('1997-10-04 22:23:00');   
  {" n7 e! f. a& D  -> 875996580   
& R  B. {( ~7 l5 h) g
3 o0 C6 W4 B0 r. }. \5 L, xfrom_unixtime(unix_timestamp)   
9 J2 w4 a4 J1 u" M- Q以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的, A& e) K& i4 a( Q
值(根据返回值所处上下文是字符串或数字)     0 D8 ?( J- ^0 G( T& w3 ~
mysql> select from_unixtime(875996580);   
! E- {6 F, F) u" c- s7 ^, {  -> '1997-10-04 22:23:00'    1 S& ], J* H( v
mysql> select from_unixtime(875996580) + 0;    : a3 }* o* L+ r+ R5 h- j9 ?
  -> 19971004222300   
- Q* V7 {$ B" Y/ B6 ]& c* A$ p ! n7 }# h0 M1 q! B
from_unixtime(unix_timestamp,format)    
' V( b, H! I2 W5 v) m% x以format字符串格式返回时间戳的值  
8 a5 _4 E9 H9 N8 i4 E3 dmysql> select from_unixtime(unix_timestamp(),'%y %d %m %
. \' t: @) q7 C5 w: ?h:%i:%s %x');   
0 U2 Q1 |" `2 ^$ @# n8 \( H0 G  -> '1997 23rd december 03:43:30 x'   
. ^2 w' ]* t0 i
3 C: E" |, I% o9 ~0 r, K- V- Msec_to_time(seconds)    . `1 `1 S' [' _% L" D( Y$ X
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     # m6 _5 q% ?$ @" {6 Y4 ~- u
mysql> select sec_to_time(2378);   
/ {! O* M! W( H$ ^- @; R8 Z  -> '00:39:38'    : L7 b9 \4 Z3 U8 D
mysql> select sec_to_time(2378) + 0;   
( p6 @3 `9 w6 y  N- |  l  -> 3938    5 y3 G# Z- S) D& ~" A/ z

" U+ p8 ~% Q! y# w/ }! htime_to_sec(time)   
! p1 Z0 k/ N: Q( M1 p返回time值有多少秒    2 s- W" p, A  V* F0 j  o" }
mysql> select time_to_sec('22:23:00');      d5 M3 J+ n' {& d5 Q. r/ c' F5 c
  -> 80580    3 O1 E  a8 R4 w9 Z
mysql> select time_to_sec('00:39:38');   
; ~$ [9 r, h6 t- C5 W, P  -> 2378
! p( W. k" H# i( v- h
9 \- _, A* }0 S. F. {转换函数
& ^% A3 D* w5 d' f/ H  ucast, |7 e' _) y* y
用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]9 Q' e2 q" W; c; w. H. l( j
实例:select cast(a as unsigned) as b from cardserver where order by b desc;
+ _2 ^: E; E1 x9 a  \0 Cconvert:
, w. r1 a/ G/ O8 U4 j用法:convert(字段,数据类型)
# t' Z% w" L% E# P) p4 z实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
7 g- d& G% @+ j5 }+ ?2 z
回复

使用道具 举报

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

本版积分规则

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