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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数
  `1 `) {7 @3 K6 B) Hascii(str)   
. k: Z; s% D8 T; u, g% Y: T! |返回字符串str的第一个字符的ascii值(str是空串时返回0)  
9 j7 m5 n  e5 `" `5 e& tmysql> select ascii('2');  
2 }; [! i# @: W. k' d; f  -> 50  8 ]! t8 A; B; X1 G1 ~% y" v( U* O
mysql> select ascii(2);  
8 y# q# E0 j7 d: g" f  -> 50  
0 x. u# I. r& y9 amysql> select ascii('dete');  # w  u1 Z' U  n4 K2 v
  -> 100

$ a0 X' X9 v6 l$ I8 Lord(str)   
. A8 S# ^& s/ _. ~4 g如果字符串str句首是单字节返回与ascii()函数返回的相同值。/ n" K" P& X  A% R2 v- `

5 }; S( B' o6 K4 R8 H% g+ H如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  * B& o2 e/ q( ~! w6 u0 V5 U
mysql> select ord('2');  
1 c* _! U% Z1 b8 ~3 ?6 W  -> 50  
0 k% w6 d/ \8 T% X8 |+ u! Y8 u/ G   
( F( B" }+ w% ^: D5 q/ {4 cconv(n,from_base,to_base)   / O4 j0 s9 T4 X0 c2 C  p- S( y
对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  # U/ r0 G: V% F9 j4 m" p
mysql> select conv("a",16,2);  % d+ y/ C6 J6 A, _+ U$ u5 G
  -> '1010'
! W6 @" p1 l7 M. b" amysql> select conv("6e",18,8);  . `+ i$ L0 N: M( I/ A9 `/ \9 p; ?
  -> '172' 9 y  L- g9 h& I1 @. d6 _& s! ^
mysql> select conv(-17,10,-18);  
% |0 O! R! }% o' q/ H& V- H+ W7 M  -> '-h'
$ e' g) S, }! ]' w! fmysql> select conv(10+"10"+'10'+0xa,10,10);  8 ^" p5 O9 F1 B# t8 a
  -> '40' * D" E/ E5 _; @: f$ {5 n( n" @9 a# G9 s
   " e& m/ u0 P% V9 U
bin(n)   
- f8 i1 m) v6 C把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
  l- V  c- [0 }! P, V: Fmysql> select bin(12);  
' T. z0 |: ]- H  -> '1100'
' R* k$ r' ~4 ?" W$ W
, O' j+ g0 y  m$ Eoct(n)   / z$ Q4 t7 T8 k5 f* z  `
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
2 A5 F: s0 C* n9 L6 L; E9 p/ n  Lmysql> select oct(12);  8 S5 O& D6 \0 [) H1 |, ^0 u: x
  -> '14' 5 c1 y- o9 W$ h; Y
   & e2 E5 {2 L4 F9 i- v
hex(n)   + ]6 ]6 B$ A2 R$ Y
把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  0 T+ U# }9 q) M4 V  m
mysql> select hex(255);  
$ ]/ D8 I0 Q$ E) Z  -> 'ff'
. y, [7 x* u; k1 m   # U, E; e1 R5 W* d
char(n,...)   ( Z; a# x9 V3 Q7 X
返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   
# d% w; _1 u$ X5 Lmysql> select char(77,121,83,81,'76');  % q: H/ l4 {4 C; n. v
  -> 'mysql'
5 `/ Z, `( N; c7 {& t2 M% \mysql> select char(77,77.3,'77.3');  # R. Z" o7 z5 `
  -> 'mmm' 0 C9 i; Y2 Q* \5 |1 j
   3 t8 J5 U& A2 A* b- N: Z
concat(str1,str2,...)  
$ B) B3 C5 m; i, `* _3 G% ?5 _把参数连成一个长字符串并返回(任何参数是null时返回null)  
. |- M" Y' e, \  |/ K; N- K( Zmysql> select concat('my', 's', 'ql');  
, @$ ^- [- S. M- l  -> 'mysql'
: |& C! X% \3 Smysql> select concat('my', null, 'ql');  " {! [( q7 |9 Y" @
  -> null
$ ~8 S. D3 ~/ ?0 f9 nmysql> select concat(14.3);  7 h4 {; L7 e2 g% C& |$ m4 n" D
  -> '14.3'
# [5 l/ h+ r+ S+ x( ?" q; w 0 l% m) B" R+ }5 }0 P% W
length(str)   - e* \& L3 y$ s9 Y2 ^' M8 A( C% N/ I
octet_length(str)  
4 T0 E  D+ o* {  }! S/ fchar_length(str)  0 L4 E% P3 j- B' g; \. ^
character_length(str)  
8 b6 l- d2 M. F7 m; C返回字符串str的长度(对于多字节字符char_length仅计算一次)
- y) d7 P1 O: W/ Dmysql> select length('text');  
, \1 Z" D" {' T! I, @, X  -> 4  7 R) K1 P5 l& I, S5 U0 s- n! B3 L
mysql> select octet_length('text');  3 {' w* F3 [& \
  -> 4  / e" S. h& k$ j$ z
4 R+ A/ O0 b" m( c9 B
locate(substr,str)   ( X" q5 O3 Z, g
position(substr in str)   5 D$ `; m, o! w  D: ^, s
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  7 R4 J& Q) T7 S
mysql> select locate('bar', 'foobarbar');  
# _0 Z: J" p8 }) s  -> 4  
- X% k0 y! |# d0 m; n: Z5 v4 f$ xmysql> select locate('xbar', 'foobar');  * o9 q2 b' R% c4 P) f
  -> 0  
, S( f; u) `, O. Y   
2 R' `. z6 j" {! i% Nlocate(substr,str,pos) 1 h% F+ O& s- }3 R, [
返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
( e$ a: A+ n+ V! d; Imysql> select locate('bar', 'foobarbar',5);  
# J" y' ^! Q" m3 u4 ?5 s6 S  -> 7  7 C3 N9 f, X5 t0 E1 ]5 j

! Q. U9 F, q4 g1 hinstr(str,substr)  
$ ^3 M! y: s. f  m5 Y, X8 g' U( }返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
8 l2 G8 v; U0 s* jmysql> select instr('foobarbar', 'bar');  5 j% _; G( z0 N3 g
  -> 4  
0 x. n$ M& _$ W! U7 [mysql> select instr('xbar', 'foobar');  
! H0 G8 N& V& f8 d$ d% r  -> 0   * P+ d7 x0 E! m7 x

" D, J; o( `5 O8 c/ D$ Xlpad(str,len,padstr)   $ p# S" _! Z/ z
用字符串padstr填补str左端直到字串长度为len并返回  . W7 R& O: |2 X
mysql> select lpad('hi',4,'??');  / |/ {* q5 z- }8 B6 Q6 F
  -> '??hi'
: E0 @6 K/ b1 F. D3 h   * a! O+ k. ]2 H0 \3 q+ c$ ]" `3 m" \" A
rpad(str,len,padstr)   ! e' I! R' E0 I' g/ H0 \
用字符串padstr填补str右端直到字串长度为len并返回  
9 r5 \, A% ?! `, y5 X0 ]mysql> select rpad('hi',5,'?');  
; Y& e" c$ R* t  -> 'hi???' " r- ]* Q- w! [

$ `& X& H* o/ }) u* m0 A6 Mleft(str,len)   
% b! V* N& M- @7 |5 F2 \返回字符串str的左端len个字符  
  g$ W# P' G: U0 vmysql> select left('foobarbar', 5);  , \9 Q) H8 U3 N+ U
  -> 'fooba'
& e: ]* Z' E1 W, a6 t* x9 q; q# k" n 0 ?, t% _. X6 a
right(str,len)   
& _+ P3 ], h) _返回字符串str的右端len个字符   
8 N  p* g7 ?4 {0 g/ Gmysql> select right('foobarbar', 4);  , C- V, o- H% p, L+ j
  -> 'rbar' 1 I: p% d  {+ b
" C) [3 V. m. l0 }. e8 m- E" g; R- e
substring(str,pos,len)   5 z+ E0 f  x) Y* u# v
substring(str from pos for len)   
" a  m) [6 a5 I1 z5 Z' cmid(str,pos,len)   . v9 A5 i% T: a2 z0 O% a
返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
& k& A- A  S7 o  -> 'ratica' 4 w, G5 H' w- x

4 r1 Z9 e) l% y4 nsubstring(str,pos)   
) L4 r( ]; F) {; @( |substring(str from pos)   9 ^( Q" s9 D' V1 k! c) ?
返回字符串str的位置pos起的一个子串  . N2 P/ C& v- K: ?8 ^+ K0 r1 Y
mysql> select substring('quadratically',5);  , D$ h8 ]- G8 D' o
  -> 'ratically' 1 \/ h4 U5 p0 n& v$ ]
mysql> select substring('foobarbar' from 4);  
* E. e& h: \2 V: O8 t  -> 'barbar' / Y9 }. o! Q& n2 M. P7 m
+ s8 Z7 b. ~3 D3 |! _7 z2 T
substring_index(str,delim,count)   $ H& i: m7 j% `; M' O2 [. X. m) {
返回从字符串str的第count个出现的分隔符delim之后的子串
; m- O$ l4 w* |6 R- `) Z1 v4 e(count为正数时返回左端,否则返回右端子串)  
& C, n; W; d3 ]mysql> select substring_index('www.mysql.com', '.', 2);  
, I! H" v+ x' i) H# o  -> 'www.mysql' 7 Y; k: r6 @. S: g
mysql> select substring_index('www.mysql.com', '.', -2);  
9 d. z# c3 J+ P( ]: }$ R* c  -> 'mysql.com'
) V5 J; Z0 C$ w$ B9 o1 n& h ! o, V. S/ l; v+ g
ltrim(str)   ( R$ E( c9 J1 d% H9 a" s
返回删除了左空格的字符串str  & ~! {1 P  k. K3 m% z
mysql> select ltrim('  barbar');  
/ C1 V" e5 H7 R: ^! j  -> 'barbar'
* V# H4 t3 Z9 T- W. ]3 q9 w) g . R/ M% i; e7 J+ {6 W; Y
rtrim(str)   
; {6 e! s6 S7 Q# t) z返回删除了右空格的字符串str  ( ]: J7 e  D  h! J% F
mysql> select rtrim('barbar   ');    A) ]* d, |! B; \, `1 N
  -> 'barbar' ; w) q, `: @5 d) `+ Z/ c+ [

/ B) z' Q# |( C# T! V/ L$ Ptrim([[both | leading | trailing] [remstr] from] str)  
5 U7 b' g( u5 H+ F8 ~# m返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
9 C" W1 C. ]$ V7 u2 Ymysql> select trim('  bar   ');  ( E  s; B3 `* @9 b
  -> 'bar'
- {5 O" i$ e5 O% ]! zmysql> select trim(leading 'x' from 'xxxbarxxx');  # g2 p& V  U9 N* q) W
  -> 'barxxx' ! y4 Q# O) S. p1 U- j  }7 @
mysql> select trim(both 'x' from 'xxxbarxxx');  
& x. D% e* Y( s2 ]. w. x- E  -> 'bar'
  n+ J( L( |3 ]3 P+ Vmysql> select trim(trailing 'xyz' from 'barxxyz');  
( i# G9 Q  R9 _1 _  v2 L5 J: Z  -> 'barx'
  h* J0 l  j& [% \: } % t% ]! T, B* ~
soundex(str)   
; [) \! [6 X. m8 j返回str的一个同音字符串(听起来“大致相同”字符串有相同的
6 e9 R$ u, [, G! g# A- |1 ]" f, w5 p同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  
0 q- h9 |2 z2 S. B* F- B8 W0 Lmysql> select soundex('hello');  6 p# i. Z0 F. Q( O5 e
  -> 'h400' 1 h  u( I8 j+ E! i
mysql> select soundex('quadratically');  
, [0 n! v  h& x  -> 'q36324'
* T0 L( D) x& g; x: j# M& O7 B  E   9 C+ x4 `0 o" J
space(n)   
( ^" K! [7 r- D3 i$ d  x3 S6 i返回由n个空格字符组成的一个字符串  
( f  f# l  s% vmysql> select space(6);  
/ S3 Q. {# ^. J; g5 b- D  -> '      '
1 d5 l4 ~1 _. n) I$ w) \) r% U; Z   $ c& _% s' Q6 Q9 a+ q3 `% y
replace(str,from_str,to_str)   
) O! |3 ]' w0 R5 k+ n, ^. t用字符串to_str替换字符串str中的子串from_str并返回  1 i* t$ _* J9 |* i6 G
mysql> select replace('www.mysql.com', 'w', 'ww');  ( E1 y8 H# X1 h# W
  -> 'wwwwww.mysql.com'
# ]  l6 C( K) p: B4 e# G ' v9 v" e9 s/ y. m( `. Q7 X( l! o4 K5 ^
repeat(str,count)  
, k7 ]  I6 p8 E% ]3 A& v返回由count个字符串str连成的一个字符串(任何参数为null时
* e. `7 b7 D" K' s* L, s0 y0 R返回null,count<=0时返回一个空字符串)  
/ a) q7 H0 P4 }+ f' Fmysql> select repeat('mysql', 3);  % p( Z0 d, m4 |6 x  _0 u
  -> 'mysqlmysqlmysql' 5 b* |& a& {/ \
   
/ |# a! v7 p3 _7 rreverse(str)   
+ y. c5 c5 d5 e- _% z颠倒字符串str的字符顺序并返回  ( M# c# u) }5 B9 f# j0 L) z6 K
mysql> select reverse('abc');  ' I3 i7 s" ^& P* y3 }: S
  -> 'cba'
  F5 R3 r# S7 ?: a : a: i* p' c: ?* M4 `
insert(str,pos,len,newstr)   6 l8 y% t) U! W
把字符串str由位置pos起len个字符长的子串替换为字符串- d) I. O! q; f, \! G/ J
newstr并返回  
: {  p' v/ l+ N) T% x* }mysql> select insert('quadratic', 3, 4, 'what');  
8 F% A) r  T9 Z. m  -> 'quwhattic' # d/ u1 c9 {+ J5 V
3 s0 x$ o: d, u5 O% e3 o
elt(n,str1,str2,str3,...)   
0 q9 C4 t. A0 c3 j4 T返回第n个字符串(n小于1或大于参数个数返回null)  5 {1 Q; J" V4 ?- i( r1 v+ @
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  , F4 D# |$ h: g( O7 Y  G" Q; _
  -> 'ej'
* H# h) y! ?) t; y5 qmysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  0 f$ r% Z2 I1 Y% c
  -> 'foo' 4 f9 }/ I- b) r4 W6 e, ]* i
, S7 r2 o0 @* @
field(str,str1,str2,str3,...)     @8 \" x# A2 ~4 |7 Z- h% f5 K
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
+ u9 s2 i8 L5 g9 _$ ^mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',( A4 d+ N, {- O. q( a  @. [2 H
'foo');  7 p$ W: `+ r' g) n
  -> 2  ) J$ h; C6 V& ~- f3 J4 u+ }! {
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
3 b" K5 E- Q% I'foo');  , d7 B, Z9 k$ r9 J! s5 H
  -> 0  ( A6 K% y! x( N# L  X+ y4 C
' P$ x. r/ L# @- B5 c( o4 M3 C
find_in_set(str,strlist)   
# a4 F7 w7 o$ M7 l返回str在字符串集strlist中的序号(任何参数是null则返回
/ P' \- l6 y: l% A$ `# B/ [% Pnull,如果str没找到返回0,参数1包含","时工作异常)  2 W0 }: I& X: J1 A9 l% {0 s
mysql> select find_in_set('b','a,b,c,d');  
" A2 O, v9 u& J% P/ K3 m  -> 2  ( ^6 E( L1 B9 T, X
   
# v! s1 E; c( t3 m& t8 V. Vmake_set(bits,str1,str2,...)  5 v  @7 T) C. `8 ^8 s/ P3 z( a
把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
! V7 O& @3 j: U5 C5 \  m位置的字串选入字串集并返回(null串不添加到结果中)  
. S& V2 x/ m9 ^8 B- ~% R) Kmysql> select make_set(1,'a','b','c');  % u. z- }( g) N3 X0 {7 }
  -> 'a' $ F& P: b& f$ L" b4 Y5 Z* T2 |( i
mysql> select make_set(1 | 4,'hello','nice','world');  6 E  b: j$ Y) \* U/ y, a
  -> 'hello,world' 0 _1 s" z' M" @1 ?' u5 Q
mysql> select make_set(0,'a','b','c');  ! U+ y# h! Y) I' u% k+ R
  -> '' 0 w8 h4 [/ R% ]& Y2 s
6 k- X" _5 D0 T# ~: Z# X7 j
export_set(bits,on,off,[separator,[number_of_bits]])   ' u+ d7 W7 F2 q7 Z  Q" v
按bits排列字符串集,只有当位等于1时插入字串on,否则插入
6 v- ~: O4 v5 k( M8 J- ^- o5 B! ioff(separator默认值",",number_of_bits参数使用时长度不足补0
& p3 w; s0 R4 O* m/ f! S: J而过长截断)   3 W4 `. t, S9 w- ?5 P" X
mysql> select export_set(5,'y','n',',',4)  4 K% j" q: ^' R6 G2 X0 R: {2 f
  -> y,n,y,n   
% S- J' b. G6 x& I8 y" D! U
. g  i% A6 ?1 |' o1 i  }+ blcase(str)  
, Z4 G, r/ {+ Z; e4 h. clower(str)   
5 x, [# [- J, @返回小写的字符串str  
# b1 h& s5 J/ ?1 i1 mmysql> select lcase('quadratically');    @  J  z6 G4 |7 L% H
  -> 'quadratically' 2 m& T; x9 k6 P; |) e- D
   
- b: E& b' F" u& Tucase(str)   
9 {3 ~8 N, k/ yupper(str)   ! f; d% Q* h9 i; E4 V2 }
返回大写的字符串str  8 p/ v1 E- `% m! t
mysql> select ucase('quadratically');  
+ B% W: n" x7 Y, q6 ?  E  -> 'quadratically'
# c' X" {! F* \$ C7 c : d" T8 L% `: p) y6 k* @! |
load_file(file_name)   
5 i$ N! ]5 ?* p( {5 i) e读入文件并且作为一个字符串返回文件内容(文件无法找到,路径2 H8 e# D2 K$ e6 P* _  T
不完整,没有权限,长度大于max_allowed_packet会返回null)  
/ i; C, T; b8 ^( k' r# |mysql> update table_name set blob_column=load_file
. P' r3 F6 }' G! V% i("/tmp/picture") where id=1;  ; n* B. ?  ?$ m
6 W$ E3 I! g+ A$ L7 k. b
2、数学函数! p* p  ?/ U  a# ]* t0 P) J/ Z) ]  e& W
abs(n) & k" F5 L/ k6 [4 m2 z" \
返回n的绝对值  + J. B- |! S! R' z$ @- N* L8 ]* d
mysql> select abs(2);   
8 J; U. b$ ?3 C2 z0 X/ R  -> 2    $ A" N4 \: l7 M' P/ u& t
mysql> select abs(-32);   
) @$ }- r6 C% V7 c  -> 32    8 P! |  Y" ~1 q# ^
   
/ m3 I) ]+ _( c! C9 i7 Osign(n)  
( Y8 G# s  _2 X/ R, n% H7 l6 {8 y7 q返回参数的符号(为-1、0或1)  
' _2 x  j0 d2 S( f7 p8 L3 {) Mmysql> select sign(-32);    , |  N3 v2 E% H- z
  -> -1    1 j% o: q: ]& S& @* B
mysql> select sign(0);    + H6 z  s# |$ E1 X, Y$ F
  -> 0   
+ F/ O, U0 H* b# Xmysql> select sign(234);   
( P. B' \* I, h, @) [3 M  -> 1    " X1 N8 L/ S! @% v: N" \

# y9 ?% o/ P! o' Q; M: Q' n% i! }mod(n,m)   
+ Y: \& t0 J$ v- l! X取模运算,返回n被m除的余数(同%操作符)    - x2 h/ Q6 v* x9 i2 w& f1 ?! X
mysql> select mod(234, 10);    . K/ [8 y9 C4 ~
  -> 4   
0 X9 z4 {. A. Jmysql> select 234 % 10;    1 m9 P5 C1 t+ p5 G; _4 I8 O7 Q. g
  -> 4   
3 ^  H* @8 x9 S! y' k# Bmysql> select mod(29,9);   
1 Z2 ], b9 V" w/ m+ o: R5 P) A  -> 2    + i" s1 t! m% }% M" {" ], L

% F! K4 T4 `; I. \3 mfloor(n)  & z: X1 b& ]4 L& A5 k) z0 W
返回不大于n的最大整数值  
6 Q3 l* c  s5 X; xmysql> select floor(1.23);   
  N( A5 R+ ]4 t, Q1 d! V) p7 b  -> 1    ( S/ f3 J) A4 D5 W
mysql> select floor(-1.23);    1 @* A, N6 _7 b4 c" Q- n  a$ ?' R
  -> -2   
  D9 e+ d! A9 s/ D 7 w+ s& V7 [3 w' o4 X) m" r3 n3 s; J% r
ceiling(n)  9 V2 D: l0 |! z. w$ O) V
返回不小于n的最小整数值  
  y- x' a$ v) i2 Vmysql> select ceiling(1.23);   
' a4 J% F" [7 L  \  -> 2   
" X: i  G& K5 T/ r2 U1 Imysql> select ceiling(-1.23);    ; i" z+ H# k; @) l* k( \
  -> -1   
" c4 U" C$ K) @' ^0 h8 r 4 n- H6 d5 G( P& Y' B" L
round(n,d)  
' X: W4 e" e8 o+ l  A5 N) T返回n的四舍五入值,保留d位小数(d的默认值为0)  3 t0 f% ]3 F  G, w- E/ m
mysql> select round(-1.23);   
# g, B) O* G1 q0 q: e# k  -> -1    5 V7 `" p7 |4 P( n
mysql> select round(-1.58);    3 z5 H2 r- Q& i7 ?
  -> -2    ; m" M8 `" S! h8 n* t3 r7 I9 t: Q
mysql> select round(1.58);   
+ i3 _* d$ K0 e. c1 Y* u/ t- {+ {& Y$ I  -> 2   
  Y8 \+ b2 a8 [: ^: W1 jmysql> select round(1.298, 1);   
! L& {# ?, A- }. v  -> 1.3    2 d, g! p  X+ w* @1 V7 Z7 P
mysql> select round(1.298, 0);    # I) [* H! m+ ?) g
  -> 1      \+ F. \3 f7 A- L5 l5 Z

, w' H/ R% |% G. Q6 J1 jexp(n)  
! |+ K5 _- g; _4 M. J返回值e的n次方(自然对数的底)  
4 C. u% `' P4 I! k/ Cmysql> select exp(2);    0 l: B! ]& P( n3 p$ |
  -> 7.389056    8 f3 }; G/ O4 U) `3 p+ ]# s! c$ Q
mysql> select exp(-2);   
* m8 p4 j$ h6 q3 q0 _+ s" ^  -> 0.135335      W( J. q8 c; c) P, M) X# h
% E. h1 H7 ]7 l' ^$ u2 y1 p. \. r) s
log(n)  $ ?8 @7 ~' W4 }1 G" e1 _
返回n的自然对数  
8 y; `0 x9 {% L! O; q) b5 ymysql> select log(2);    7 }1 O5 g0 e, T$ ?6 u5 ]
  -> 0.693147    2 ]/ [8 d# Z/ M+ @5 ^% \7 q6 |% X/ `
mysql> select log(-2);    0 e% ]. m! j! S/ p9 D2 c8 s
  -> null   
- @+ o9 E' K8 R' W+ W" A 5 A7 y% E3 Z( T& k) R$ W9 g
log10(n)  
2 a2 O9 `; E% l/ B+ G% |( [, E返回n以10为底的对数  & v* U3 I' w2 m2 L; {( T" h
mysql> select log10(2);   
' q5 c0 J5 Y: {' f3 }7 q  -> 0.301030   
2 J% {* T* d" `, c/ b6 t7 n4 kmysql> select log10(100);    $ k6 c, s: E4 x! R( `; p
  -> 2.000000    : U9 l( e$ _2 C1 `
mysql> select log10(-100);    # v6 g# O5 R5 F7 Q7 |
  -> null   
5 C8 w/ F3 Q3 E; C3 p$ }
; d- |7 T4 T: X; Vpow(x,y)   
& `0 v* _, T5 a, ]) spower(x,y)   
% C! @4 d3 l1 c( H 返回值x的y次幂  ; z. w( x4 l: y  c8 _9 {4 z% E
mysql> select pow(2,2);   
4 U8 D( s/ a9 Y7 S8 R$ j2 ]- d& c0 z9 b  -> 4.000000   
2 w$ A" M- t" s* e! W" n1 Nmysql> select pow(2,-2);   
$ V* V* i- _1 W; j/ x# U1 p5 z7 ?  -> 0.250000  0 n9 \# t9 C  N1 h
4 k: B: x6 u9 x) ^- }
sqrt(n)  . i$ E* d! t( k1 ]' n# ~
 返回非负数n的平方根    v$ [# y7 B- S. s3 |3 E2 |5 G
mysql> select sqrt(4);   
" z% \' {2 F0 O& n& }4 A0 L  -> 2.000000   
" f' _* L( Y6 g7 Nmysql> select sqrt(20);   
# A, q  J' }, [8 W6 g2 K* ]  -> 4.472136   
' t  g. F; S5 a( E* T
3 u7 N8 E3 v  P9 t4 {' _pi()   
, {+ f4 k, F4 ~4 P 返回圆周率   4 A; m- J& V6 I/ v- d. Z/ C
mysql> select pi();   
; `, d3 m7 k% ]$ X2 G3 G6 [  -> 3.141593    $ V# f$ M8 I# n" B

+ I" _% c4 \. p& v# q9 kcos(n)  ( ^/ ~4 Q/ D# U2 x  B
 返回n的余弦值  2 ~/ n  p% N2 M2 q4 W' a3 a  |
mysql> select cos(pi());  
* S9 r  K' R& M) w$ M$ e/ W  -> -1.000000    " y9 O1 v- L* d5 ~  h

3 j; r% [3 W7 W  s2 b% y" D6 I7 tsin(n)  
( G9 K% k# C( x8 p; q) K6 E5 R 返回n的正弦值   ) @, _1 @, f% c" V& i
mysql> select sin(pi());    # ^$ e! V8 I; W  D7 w4 z
  -> 0.000000   
6 p; p3 X% i% s) }& B' K
& }' x2 m, B& E  `tan(n)  % `! G, H9 B7 i7 J8 h, _
返回n的正切值  1 N# W) p! B" _' V/ @# A' J
mysql> select tan(pi()+1);   
8 w' g1 g# O# l  -> 1.557408    " ]$ w8 X' M  {4 b1 C5 m
5 C' K) h" d5 ?' Z
acos(n)  
' T  _8 z) B( Z% a  n- k. U9 n 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  0 Q2 @( w$ h' a
mysql> select acos(1);    & X% s! M. ^( B2 B' X  r% }
  -> 0.000000   
0 I$ n3 a  B% y" h* J9 V7 V; c4 omysql> select acos(1.0001);    4 J1 G. P1 e7 g( B5 V/ H7 {/ w4 P
  -> null    3 z( i. G- q/ R
mysql> select acos(0);    , e- j; |2 A9 b& s1 y
  -> 1.570796   
" a/ y3 _1 R* O* ]! o# j  Q0 ~ 4 Y- V& p4 K( L9 H% _: _# r! ^
asin(n)  
: I& o7 i* ^* y2 I) x' r返回n反正弦值  ' b, V, F3 y& e1 v  T# t
mysql> select asin(0.2);   
. R3 K% _7 b6 m" T  -> 0.201358    ! o: o; e. i$ x/ ^; f+ `! h! J# h
mysql> select asin('foo');    4 \" V& O0 E# k. L. N% c
  -> 0.000000   
7 w4 j* a- u& n- r& t6 w ) z$ O& Q5 m9 v& n( k  m9 i. D
atan(n)  
& T4 S7 F3 y: y" R4 x" H返回n的反正切值  0 o9 I: V9 [! U: e+ G
mysql> select atan(2);   
7 I/ A. m6 b! [; A1 m# J  -> 1.107149   
. O% \" |3 R( w2 B% Q; |8 y) ymysql> select atan(-2);    " c) h5 ~% e; D
  -> -1.107149   
1 }: `. M  f& {4 @' w/ ~) datan2(x,y)   
: j3 ?$ v* g& G6 E, p' O: ? 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  2 b& N- _; [4 I% {* Z: y
mysql> select atan(-2,2);   
7 c5 P5 `- q5 b4 G6 m  -> -0.785398   
: C0 P! |6 d8 H4 J, wmysql> select atan(pi(),0);    9 }: z9 ?* k7 z1 k' F+ F/ _
  -> 1.570796   
* `9 W- s: E& a1 z/ `   f9 \4 E' W+ E9 I/ _
cot(n)  ; l2 Y( |. S6 U% D+ ~. y. }2 p  ]
返回x的余切  3 G3 b1 i2 F( t  P
mysql> select cot(12);   
, P' a* x, C8 A+ |9 Q- e  -> -1.57267341   
2 }& l: d! f! lmysql> select cot(0);    6 o( v6 a# B; d+ ]+ \+ p3 ^
  -> null    . X9 U6 u0 b* O, |
4 G; Z! k! _, P0 C. |, X
rand()  
" C5 P4 c: i0 H  K& D* U, a1 trand(n)    % j. C) P5 V8 [8 ]7 I
返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值) * j2 u$ G% O$ ^; ?* p

) |- {5 c: D2 w9 Omysql> select rand();    : v, F# ~6 s# n7 y! N# Z1 R
  -> 0.5925    ; ~8 F# O7 `% e; v9 o* s, m
mysql> select rand(20);   
: L3 X3 E( N2 \* g- y+ E: C  -> 0.1811   
8 e- e3 q0 G! a% o6 ^, ^* Bmysql> select rand(20);   
2 a/ U: S7 t. x" g- `  -> 0.1811   
2 |5 \' |. s9 [" x. \mysql> select rand();    , Q/ [1 ^2 n% F& ?6 Y. a
  -> 0.2079    . f: x+ ?& s- H9 \" v* t7 S' j
mysql> select rand();    & n) J6 \, P" L! _6 I+ q
  -> 0.7888    $ `& H" K3 U. s4 T: r% L8 v- m0 o
% ]; n7 R; |9 A. z9 \4 t9 W, f
degrees(n)  
, q1 Z. R/ z* Z5 }: ?# E把n从弧度变换为角度并返回  # q! _1 S" b1 D+ {7 e9 p/ J
mysql> select degrees(pi());   
8 P0 h# r) l7 H0 N( e) b" m  -> 180.000000    - ~. p( F. n. H  B5 Z( F4 P$ l$ p

( U- m' K: r& O8 o4 T! f: {3 u" i: _radians(n) 7 ?. u& D! m& H1 w) l* U
把n从角度变换为弧度并返回   
" e( Y$ @2 j5 imysql> select radians(90);    ! ]' M/ h" W" O' k6 j
  -> 1.570796   
1 U7 b7 v7 r; J. t2 [" ?
3 t* X3 `) z* wtruncate(n,d)    ) d. Z7 s5 C9 U* n* A/ U; u
保留数字n的d位小数并返回  
. O1 {+ c& M! B* Y3 }% K3 C/ Omysql> select truncate(1.223,1);    : j$ o' Z, [: G' O2 {. @
  -> 1.2   
1 d! \  y7 N3 g. n4 cmysql> select truncate(1.999,1);    4 ]# y, E+ d" g3 s! ]
  -> 1.9   
6 M" a4 o7 F8 F( Tmysql> select truncate(1.999,0);    * |, g+ J! `3 o  c- D/ e7 C) E
  -> 1   
3 {" s: C7 w6 o5 U2 T3 b
5 ?. V+ E1 h" H3 y5 O# ?9 }* Nleast(x,y,...)    2 s; H! g5 P7 m# m4 d% r
返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
5 s- [' c9 {+ d* }9 q5 Nmysql> select least(2,0);   
8 U; {4 z- Q* u5 e2 B+ b2 L  -> 0   
& e3 }2 C6 V3 o! `* Z9 pmysql> select least(34.0,3.0,5.0,767.0);    9 {$ |$ K* w. @. V# B* E
  -> 3.0    3 ~' n/ r* M* {' y" J
mysql> select least("b","a","c");   
/ X# J% p8 d% E8 Z4 M' f* d  -> "a"   
+ G5 i& v/ z; o5 t6 C) |( o+ Z) ~ 7 o" W$ i2 M+ S. m; }5 Q9 w4 K* x
greatest(x,y,...)    7 z/ B& Z& j" }$ Z1 w; E/ D
返回最大值(其余同least())  
# m0 \2 Y1 R1 g5 Y- {0 f5 smysql> select greatest(2,0);    , p1 Q9 h) z: z) H) h& t
  -> 2   
& r  T, q0 q/ ^! V4 @% Nmysql> select greatest(34.0,3.0,5.0,767.0);    * C9 W7 R6 G3 E2 S
  -> 767.0    6 \  c, H$ _4 G7 c, b) d$ E
mysql> select greatest("b","a","c");    2 r1 p! v+ ?. y" T" e6 e; P
  -> "c"     
  J, W5 m$ ?& r5 T/ q# ?5 _  l
; `7 d$ d, V0 {& R" B, o3、时期时间函数 9 B+ w8 r% \% f- v: ~
dayofweek(date)    / l% `# J9 l) b
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  : H  H! Y) r& n4 P
mysql> select dayofweek('1998-02-03');   
5 @) N& d  d3 k  -> 3   
. x8 Z8 e# O4 x' g+ I% ?- k3 }, |
; n# O% I) a, Zweekday(date)    ! o1 h  R# ?( o3 x
返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
9 r& X; o  y% H* D- A' x/ c/ O3 N    J9 s1 L* w1 h2 L6 j
mysql> select weekday('1997-10-04 22:23:00');    . `+ W% A' h0 H0 t7 j8 O0 j+ p
  -> 5    / {/ a1 @4 t1 a; D$ O
mysql> select weekday('1997-11-05');   
, F' v& d: L) u  C. U+ I  -> 2    6 u/ b! m5 b9 w6 z( W, ^0 S

6 e& S4 K4 J& kdayofmonth(date)    1 C; C1 X  G4 b" ^* ]& d; ~
返回date是一月中的第几日(在1到31范围内)    8 S- _4 B6 V# N: P( N
mysql> select dayofmonth('1998-02-03');    . _( V0 c/ z5 b: w7 h# x
  -> 3    : Y6 X1 l) N' u

- N2 j/ b' m* S; T8 Udayofyear(date)    2 w; N$ f7 A* S" N" @: S7 d
返回date是一年中的第几日(在1到366范围内)   
' ?$ d, F1 J; Y. w2 v! cmysql> select dayofyear('1998-02-03');    3 n+ M: ?% Q" d) p
  -> 34    4 L9 A3 N6 }8 P/ |+ n+ ^  L

2 Y# U( W. M$ _2 C% L. l/ G. i, O* ^( vmonth(date)   
$ M/ E1 \+ F5 E  i; a1 \: Z& a返回date中的月份数值   
. X  f1 P3 h, ?& [5 Mmysql> select month('1998-02-03');   
# n) q5 y9 g! Q& Y' `  -> 2   
$ l$ m5 \$ k1 x ' ]: n8 s2 X+ H, f. M! y2 y6 m* p
dayname(date)    + Y" g! D1 x0 Y5 G4 M
返回date是星期几(按英文名返回)  6 x! G# j% n; V4 A* m$ ~4 A. f
mysql> select dayname("1998-02-05");   
+ w/ u/ x3 [2 [& n  -> 'thursday'    $ T) S# O( f6 H5 n* c, Q9 T
- C- [0 d, J, l" o) A; f
monthname(date)      {2 D* k( H' d
返回date是几月(按英文名返回)  
$ P; H' h# x0 nmysql> select monthname("1998-02-05");   
" `: _2 x. \# N- x' C  -> 'february'   
0 s& n) c; L4 J4 ]: K$ Y" {
" W# e0 d1 s1 n1 D& h8 O& fquarter(date)   
. L4 k6 U8 z+ o4 x/ _+ M返回date是一年的第几个季度    ! c; V; `: a6 C
mysql> select quarter('98-04-01');    . w% V; @- z# s0 @* p
  -> 2   
( K% x5 ?2 @1 F$ v % I7 Y+ d5 [# A/ W
week(date,first)   
+ ?3 |& z1 Q8 ?返回date是一年的第几周(first默认值0,first取值1表示周一是3 Y, Q) e. _( z7 B" b
周的开始,0从周日开始)  
$ K2 x: _. K' p( s6 tmysql> select week('1998-02-20');    9 w  ]3 e3 L. |: g0 Q
  -> 7    1 ^1 r( L9 `3 W# }& R) `0 R+ D
mysql> select week('1998-02-20',0);    5 l% b7 H3 g5 W- J: P& b  K
  -> 7   
3 D0 \9 ^5 X7 Q. P% @; t2 Emysql> select week('1998-02-20',1);    # o" S& j0 r4 T$ R# K3 h
  -> 8   
# d! X7 U. _! C. h % H; s* A+ K( G( i% P
year(date)   
, P6 W& U8 A2 ]9 [返回date的年份(范围在1000到9999)   
% \* b0 |0 V( X% c. ~& f  Kmysql> select year('98-02-03');   
7 E4 E7 y' [4 h! l  -> 1998   
2 Q2 B8 K0 @0 m" }1 I6 F2 ]
" ?( Q5 b+ f: _) P  T; Dhour(time)    # ]: z1 {1 `$ z6 b+ Q4 h
返回time的小时数(范围是0到23)   & f9 p$ \$ ~$ W4 J9 k
mysql> select hour('10:05:03');    ) C$ P$ ]: A( X% q; {: E9 C
  -> 10   
) f. U0 O! |4 a! O4 G' ?- ?5 S* g
1 U; k: a, [; y+ E, Dminute(time)   
: H( n; f; p) ?" H7 J0 f返回time的分钟数(范围是0到59)   
$ G; h& |" k  G5 ~mysql> select minute('98-02-03 10:05:03');    ; _% I) ~: b( t0 K$ g
  -> 5   
. S, \  x$ _/ W- H
+ t5 l) O9 W3 m1 G3 d) U) n! c& Ksecond(time)    4 H1 O( w6 y1 p. x/ ?
返回time的秒数(范围是0到59)   
- [) P1 t& S, ~- L; Z! Dmysql> select second('10:05:03');    2 p+ n+ |1 T1 |% U3 c
  -> 3    ) `1 c/ F, @: z0 J2 s- Y

1 f- D$ v& q- Q5 e! Speriod_add(p,n)    & b+ I% X; M# }% E
增加n个月到时期p并返回(p的格式yymm或yyyymm)   
$ N! h7 }6 [$ d) j0 @! Wmysql> select period_add(9801,2);   
. U: i5 t- [# |. \" C  -> 199803   
0 b' r9 [- G/ x9 q+ b$ m% [  C! c; T ( D9 d+ ^( M2 {3 N
period_diff(p1,p2)    - m" Z, ?7 n; p: ^; B
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  
5 |7 X  `& W; Z8 Y2 B# X, v2 qmysql> select period_diff(9802,199703);   
1 w$ ~% J6 l$ l/ J3 a  -> 11   
9 e: @) k5 o2 U' d- ~
! t/ k3 l# F% Q9 r: Odate_add(date,interval expr type)  
+ O& A! l5 ~: M( H9 Q# Odate_sub(date,interval expr type)   
0 a  i/ I3 \4 @" V8 T2 l. ?( |adddate(date,interval expr type)   
" k6 A0 W+ f/ H1 Gsubdate(date,interval expr type)  
) Y1 |2 D* ?! H: Z2 m/ j8 D对日期时间进行加减法运算  0 m: ~( L3 @6 G( b7 I
(adddate()和subdate()是date_add()和date_sub()的同义词,也# T1 _4 V# {. m6 ?; Z
可以用运算符+和-而不是函数  
6 X6 }+ H3 R9 Z' P5 Y! W  cdate是一个datetime或date值,expr对date进行加减法的一个表/ s" [4 O$ m- Q4 a; P% ]! ^% U
达式字符串type指明表达式expr应该如何被解释  
; q9 V; B1 n& x& B$ e4 Y [type值 含义 期望的expr格式]:  
( a! U3 X. e( w/ c3 ` second 秒 seconds    / s! H$ R/ W( B0 }. q. G
 minute 分钟 minutes   
$ p& q2 P; w* K# N. l4 A. G hour 时间 hours   
, f& o: O! z6 _1 }6 _0 H+ G6 U day 天 days   
! t; U$ r+ f8 t month 月 months    2 n. l0 Z$ ^9 s6 i4 E+ u5 e
 year 年 years   
4 f% a# w- [! [3 v, a& p  t5 X minute_second 分钟和秒 "minutes:seconds"   
  x' P5 F0 V; v9 V0 P* A hour_minute 小时和分钟 "hours:minutes"    . I) S/ a7 @4 B: {2 g6 W/ x
 day_hour 天和小时 "days hours"    " t' M' d  C8 y  P9 X$ s/ i6 B
 year_month 年和月 "years-months"    7 K5 S* n" ]" L" S$ X4 H) v- j2 @
 hour_second 小时, 分钟, "hours:minutes:seconds"    # T, _- F  q- Q7 P; @
 day_minute 天, 小时, 分钟 "days hours:minutes"   
* b2 q5 A4 T/ g+ N2 G5 w5 T( M day_second 天, 小时, 分钟, 秒 "days
3 @: n$ `- H; t6 Shours:minutes:seconds" 7 [* O: T/ V& r
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个
$ `/ k7 G: d  f9 D, j, p+ f2 hdate值,否则结果是一个datetime值)  2 o, |. c4 b# N  T7 M8 E3 m+ r
 如果type关键词不完整,则mysql从右端取值,day_second因为缺
, ~) Q" S; P+ s' F4 e/ t少小时分钟等于minute_second)  , r" u; _% v2 X
 如果增加month、year_month或year,天数大于结果月份的最大天
% T3 M1 K5 N" d; g& `1 S% i) F数则使用最大天数)    9 P" `' e6 Y2 {9 [
mysql> select "1997-12-31 23:59:59" + interval 1 second;  ' ?# @9 x- p  H# d+ y

# _& K8 ]8 V- P. b. I  -> 1998-01-01 00:00:00    7 t& V" R8 h( S- P: B
mysql> select interval 1 day + "1997-12-31";   
, S: L& p1 @& R$ z+ @# c; L  -> 1998-01-01    9 |2 L1 A; Q2 {0 ^8 \5 J
mysql> select "1998-01-01" - interval 1 second;   
* {/ j* K( m, U" E$ {1 I/ E  -> 1997-12-31 23:59:59   
* ^* L: g; p/ D* fmysql> select date_add("1997-12-31 23:59:59",interval 1
! @2 j( {7 u, t" F) x& psecond);   
5 q; q9 i6 c9 c7 H- g2 h  -> 1998-01-01 00:00:00    0 j/ z; x: j: U+ m
mysql> select date_add("1997-12-31 23:59:59",interval 1
0 v4 X7 _7 B8 G1 nday);   
3 i5 x3 q: {: f9 B; `  -> 1998-01-01 23:59:59    # _' x$ S; k1 k& M! [3 j% ]
mysql> select date_add("1997-12-31 23:59:59",interval
$ I/ R. @+ G4 f  {"1:1" minute_second);    ! t* K6 G/ v- t4 `6 I% }
  -> 1998-01-01 00:01:00    $ Y) [1 K1 o% X) i+ f+ R
mysql> select date_sub("1998-01-01 00:00:00",interval "1
& |- S: F" J. ~$ A$ a$ U* h1:1:1" day_second);   
: l3 {* e1 ]8 J! X4 d9 g& G  -> 1997-12-30 22:58:59   
6 T% V4 K! u2 D9 b4 R( z* bmysql> select date_add("1998-01-01 00:00:00", interval "-1
7 o& v; X: X$ r) l4 f: y4 K5 p2 p10" day_hour);  
4 e4 N! a. p! A- z6 \8 f  -> 1997-12-30 14:00:00    * W: P$ a$ k( J7 A* |! A1 D) d$ u
mysql> select date_sub("1998-01-02", interval 31 day);    # |( V, w% P! s- o/ k' h6 c
  -> 1997-12-02   
7 `; T- J6 j6 T2 G& imysql> select extract(year from "1999-07-02");    - G2 w5 I. [. n2 A" x
  -> 1999    6 }: f' a0 b8 ~& c2 ]& M6 r5 X
mysql> select extract(year_month from "1999-07-02
3 s3 T* W; |8 {01:02:03");    ! i6 f" v7 M( V0 d& e- b
  -> 199907    , L3 t* G' i4 d$ h' z. A- c8 v
mysql> select extract(day_minute from "1999-07-022 n" R# A' c7 w3 c; G$ C
01:02:03");   
6 e. ]: c( t7 q8 S  -> 20102   
- F8 N- D7 S' G# A' ]' D# b: k/ e 4 X( s: o- t: X+ q# w
to_days(date)   
- I- n8 F* L; s7 \返回日期date是西元0年至今多少天(不计算1582年以前)  
4 r, S% O( w* }mysql> select to_days(950501);   
$ ^) }9 Q6 P# ]" b, r4 o' @  -> 728779   
6 r+ @: a" m1 zmysql> select to_days('1997-10-07');    4 @% f  g8 W' {0 j8 [3 J* L
  -> 729669    $ s3 |# ~) [! {+ |2 W) r9 u3 u
8 v; I3 g% o% U9 t; u$ J2 b" B
from_days(n)    ( }9 u# V) P  T; C7 R
 给出西元0年至今多少天返回date值(不计算1582年以前)   
1 S1 t" Y! _3 a# x  Kmysql> select from_days(729669);   
6 h9 C# v# N6 {- w. i  -> '1997-10-07'    * N! X- d4 W- t2 u/ L
5 r: }7 [$ w+ `- W5 h
date_format(date,format)   
$ x" J6 m- R8 E2 S3 v2 [ 根据format字符串格式化date值  
. h6 r; E( A$ L- S( a (在format字符串中可用标志符:  + W& k' }+ o# F& I+ c% P- ~, y" j
 %m 月名字(january……december)    : Q( x+ G1 b8 F9 t1 s. G# y/ z
 %w 星期名字(sunday……saturday)   
! a& z& a* ^) _4 v, o4 g1 J1 E %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    1 _7 j, W8 k( Z# F, d6 s$ d( O
 %y 年, 数字, 4 位   
/ @, N. Q4 K2 X; |: ~# }7 a  O" s# j %y 年, 数字, 2 位   
) {) A2 l9 e# u; h %a 缩写的星期名字(sun……sat)   
2 j: Q: j+ {. }3 h0 y- F %d 月份中的天数, 数字(00……31)    1 a7 _$ ]) B, u% V1 v# S
 %e 月份中的天数, 数字(0……31)    4 e. }7 G$ a! c& S' K; g
 %m 月, 数字(01……12)      P" j- d1 _$ P% M1 {! D) y/ u5 c
 %c 月, 数字(1……12)    4 J0 G; x7 G8 }, e9 g: r/ e
 %b 缩写的月份名字(jan……dec)    % U: S' \) P; e- h
 %j 一年中的天数(001……366)    + D; P8 \& W0 C0 d: q; j0 t# k! z
 %h 小时(00……23)    9 l5 `$ `7 ~# R/ p. ?, Y
 %k 小时(0……23)    * j! |0 }0 G, j; H4 B/ l" Q' y
 %h 小时(01……12)   
* r$ H2 K! h$ o5 ]2 o. b4 y %i 小时(01……12)   
4 [5 M) G/ W8 \3 K" y4 H %l 小时(1……12)    # ]+ w0 c3 M- @& P$ j, D
 %i 分钟, 数字(00……59)   
- z( q) U( P7 u* O* P2 X7 d' F4 o, [5 l %r 时间,12 小时(hh:mm:ss [ap]m)   
4 ^: B: w5 K3 m2 S6 v1 {, ~ %t 时间,24 小时(hh:mm:ss)    ( V2 B! o. g+ _- m* ~* C
 %s 秒(00……59)    ' e2 D7 @, B  u# q3 U9 G, X
 %s 秒(00……59)    . c) W% X- C+ J/ T
 %p am或pm   
* \4 P  s" R( e0 v! y %w 一个星期中的天数(0=sunday ……6=saturday )    " S) {% X* Q" Z2 s$ a/ f
 %u 星期(0……52), 这里星期天是星期的第一天   
" Y! O& U% v) J6 f %u 星期(0……52), 这里星期一是星期的第一天   
* {. V7 G5 M- a) A) }4 h/ L# P+ [ %% 字符% )  " G7 L3 V7 Z! z9 v2 r
mysql> select date_format('1997-10-04 22:23:00','%w %m %
8 P; i- G7 M* }' Z) ~/ d7 ey');    / F+ f2 k3 b# |! s( c( k7 r6 ]' S
  -> 'saturday october 1997'    & E& k) F9 _4 m( O- X; g
mysql> select date_format('1997-10-04 22:23:00','%h:%i:%7 y1 P' Y6 {( Q9 o  S, ]! g
s');   
$ w8 J( e; Z% C2 _6 `6 \4 s  -> '22:23:00'    ' M9 x$ X% [6 k+ \$ g& C3 P4 P
mysql> select date_format('1997-10-04 22:23:00','%d %y %a
6 J2 e  K6 l1 ?/ v%d %m %b %j');    # d: d' w, a4 o: U
  -> '4th 97 sat 04 10 oct 277'    ' M$ v! V: B& C! I1 f
mysql> select date_format('1997-10-04 22:23:00','%h %k %i; j; j/ ~& E3 D# A/ P4 c
%r %t %s %w');   
% c$ Q1 @$ z3 c! Y  -> '22 22 10 10:23:00 pm 22:23:00 00 6'    ! \2 L  A* S+ d4 Y

  b3 _1 \5 f' L4 w: {4 _time_format(time,format)  & B$ w. L" i# y0 ~0 ^& R- \
 和date_format()类似,但time_format只处理小时、分钟和秒(其. R8 d* r* w9 Z. t
余符号产生一个null值或0)  5 L* b$ h8 p4 W- U. p

/ F, S2 F  P$ v+ `4 c( ]: ^curdate()     2 M9 e: w6 v  w: i
current_date()  + |3 F) q0 t4 z7 U9 l# L1 P- E4 N" \
 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所* @5 w1 u8 @/ W2 e# W$ O9 B  a/ p: n
处上下文是字符串或数字)    + ~1 G$ G; X2 M) ^( x
mysql> select curdate();    ( c: [2 E7 N- Q) u- J1 [+ O) m
  -> '1997-12-15'   
$ e5 o3 T( ^5 o2 Bmysql> select curdate() + 0;   
$ Y9 |3 r& `# q# C, V5 d8 y  -> 19971215    , N$ C* `" f; ?( H
! @1 D1 F7 _1 w) Z" R
curtime()    . u: Q, k6 s0 K$ S- C2 L- }
current_time()  : J! m: J6 K; j' M3 ~+ U5 m
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
' H- p1 O: i4 x) T0 }4 Y8 Z下文是字符串或数字)      3 h. {6 J. A' `. O% A
mysql> select curtime();   
0 E' e/ U1 Y6 N  -> '23:50:26'    3 ^1 f9 R' }0 L8 q! [+ C3 F  a' y- b/ g  o
mysql> select curtime() + 0;   
3 \6 O0 K# |  }9 x7 U, {# z1 h! G2 _! H  -> 235026   
- L1 K" s! q' Y6 N2 Z; \( _
9 V. A% K7 o' G6 S7 ^) unow()    8 e2 Q. w2 c; H! y; B! k
sysdate()    6 {3 n6 ]( c3 x
current_timestamp()  
- T" C8 q% j  I 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期! F5 X+ Z/ P* D- u; W5 k+ h& l
时间(根据返回值所处上下文是字符串或数字)     3 o0 W3 C! ]- S3 M2 A$ F
mysql> select now();   
3 |) [& j' L( |9 s% O4 U  -> '1997-12-15 23:50:26'    2 j3 G2 |- s& G- s1 i" `0 r) A
mysql> select now() + 0;   
8 Q% e% L) S% y  X- s& T* X3 d# [( U  -> 19971215235026    / [  n8 u9 L) j" ~
* C" T5 @2 G, A9 D. W- G/ v, I& x, b
unix_timestamp()    . x/ q) f! j4 g0 D/ |
unix_timestamp(date)   
! R; s# Y9 K, U! t4 W$ x返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒3 t8 ~  r7 |) h* }, X1 \7 G' K# ~. R' `
数,date默认值为当前时间)  
% n; N# V+ g, d5 nmysql> select unix_timestamp();   
. I5 t1 Q+ M1 k( c$ f2 C; _  -> 882226357   
( M) B. v: a0 f+ Q. H) K) d. J7 |mysql> select unix_timestamp('1997-10-04 22:23:00');    1 V  C% U7 A# a3 N: s; I
  -> 875996580    / {" ^! ^- z1 I- u' E) Q
4 {2 \$ X% Q3 R/ w! t6 O* h, S
from_unixtime(unix_timestamp)   
4 o* l. J" \, H以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的/ D/ o+ b- h0 c# Q. R
值(根据返回值所处上下文是字符串或数字)       S+ k+ \/ S2 h  w
mysql> select from_unixtime(875996580);    $ i4 S: b% R7 `, g: b: u6 h- E  k- @
  -> '1997-10-04 22:23:00'   
$ s8 m/ ?# e; h! ?% Smysql> select from_unixtime(875996580) + 0;    7 N2 u$ K" e! [
  -> 19971004222300    ) j# J# ~3 S! [

% n, Y/ C8 s' E8 Bfrom_unixtime(unix_timestamp,format)    
, Q* d0 p0 j/ D, K6 @& f5 d以format字符串格式返回时间戳的值  
' W( y: h" n$ u! d% X- R0 Z* tmysql> select from_unixtime(unix_timestamp(),'%y %d %m %
" G2 w$ L; q: P! X& ?h:%i:%s %x');    3 r: I0 n* t2 e/ _
  -> '1997 23rd december 03:43:30 x'    1 e1 M" i4 D0 L$ D: G# K
/ |2 O' a2 b. G- F/ n  \
sec_to_time(seconds)   
3 t) R5 ?  i" J1 M# s以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
0 E5 y8 q4 j, E7 ~mysql> select sec_to_time(2378);    & h2 J8 a8 i9 a: E
  -> '00:39:38'   
9 K  W/ a* @1 S7 Kmysql> select sec_to_time(2378) + 0;    * }; u* h( q- h+ m  P* @- X
  -> 3938   
8 S6 `- P# W4 s9 `: ^; B) i% _7 \ + l5 w  l7 ]6 I7 {! [, |! S
time_to_sec(time)      O' D+ S; W0 Y' x
返回time值有多少秒   
* L3 q2 Z2 F) W9 c2 M: Bmysql> select time_to_sec('22:23:00');   
& p( q1 s1 ^% j" i" F! P* d8 D/ ?  -> 80580    ( b0 I- r) b+ v/ F; u
mysql> select time_to_sec('00:39:38');   
1 ]! j# A& |; q: S, R  -> 2378
, [- b" r4 q+ Y3 l
' `1 b- f; Y% [( G3 ~8 e/ o转换函数
8 @! g6 E1 P+ F! j' [7 O. w2 H3 ^* W  Bcast
- V) V. u) Z3 }用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]
$ Y" F1 R3 t/ Z; U6 \实例:select cast(a as unsigned) as b from cardserver where order by b desc;
9 j8 y: k2 n  vconvert:6 `! P: B5 l. B) u7 E
用法:convert(字段,数据类型)5 s1 j4 g5 V+ I" ]) |
实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
* b% k+ K1 S5 L4 Z5 R# C( }
回复

使用道具 举报

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

本版积分规则

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