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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数8 X, E. q1 o$ ?% P6 n$ S+ G/ ]
ascii(str)   . B/ Q7 c8 V: ]/ ^' V0 E' Y7 k
返回字符串str的第一个字符的ascii值(str是空串时返回0)  0 }" p  l& d7 B$ J- y4 c" i
mysql> select ascii('2');  
0 t! Q" a1 E$ E& R6 H2 G! b  -> 50  3 ^5 p% o. d! w! E1 J3 X
mysql> select ascii(2);  
7 K2 w3 T' P6 ]( V& T, r9 `0 l  -> 50  ' Q8 @1 ]0 Z+ C! B& O) n
mysql> select ascii('dete');  
  u; A+ z+ p1 {* c: a8 ]4 m4 v' r  -> 100

% _! v0 ?1 @' vord(str)   / J1 e1 \4 D6 f4 ^
如果字符串str句首是单字节返回与ascii()函数返回的相同值。
2 m3 q% w# c# S% {* B: ^, I ) D: a. m! X# g6 k: J/ E
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  - y+ R9 ?) l# r" T0 W# ?, Z5 y, t
mysql> select ord('2');  
4 I' g6 q$ ]7 J  -> 50  
3 \2 F3 V! \9 R5 G   
4 Z1 B, S' Q; m; Tconv(n,from_base,to_base)   % `: _$ H+ a$ T5 u- O
对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  5 \% q* X, W. T2 Q# W+ `* o
mysql> select conv("a",16,2);  ; ~! s* [/ Q, b. D: n! H: L6 o
  -> '1010'
/ d/ b1 D5 ~  o" rmysql> select conv("6e",18,8);  : n! R5 C+ f7 t6 e+ T
  -> '172'
; m: d# I6 _6 X$ T* imysql> select conv(-17,10,-18);  
: }! `: ~! @: [( \  -> '-h'
$ C1 }# V5 b; t6 V( I" Jmysql> select conv(10+"10"+'10'+0xa,10,10);  
% i; o) ~3 P1 a1 X, F  -> '40'
  B& i" ~* ?# U. K2 C   
2 @& E7 z7 `1 o* abin(n)   4 s* V5 s3 e+ Q
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
# i4 L7 I  T, l0 d; @* X" h: zmysql> select bin(12);  
2 ?' j. i0 r5 z- ]  -> '1100'
) s' u/ ]2 D8 j4 [( }2 j 7 H9 g* `) O. N" ~9 e
oct(n)   
1 w7 B) T( ]" C! J把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
0 q6 C; ]; ?3 r" ~  \. a; s7 m% Ymysql> select oct(12);  
- l- w, i# c0 a7 y  -> '14' : F7 b( W/ y* Y& ]( k0 _  y
   2 [# a3 W" ^; n
hex(n)   
7 i5 q3 \, A2 G9 x把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  % f4 T5 a% a9 Y: g7 x, @6 t
mysql> select hex(255);  ( [! \6 d# p) z  o* c1 k! x# W
  -> 'ff' 9 g; {* C& d5 g+ n3 j% f( A
   
) @* V* D( |# q- c2 P$ Dchar(n,...)   9 X/ M8 P1 j1 B$ z+ P3 ^
返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   
$ N5 _# [5 {  q, @- [mysql> select char(77,121,83,81,'76');  6 W, J; }) d3 j/ Q, X* [; H* K# u9 ~
  -> 'mysql'
8 X# _6 q! k; ~# ?4 J, f3 y& [0 y% z  I- Vmysql> select char(77,77.3,'77.3');  7 g9 f2 x$ `: j6 ~+ z
  -> 'mmm' $ T: O) H4 t& S( v
   
7 a, A0 L4 [$ g* s' O" ]concat(str1,str2,...)   0 G0 o5 J+ K1 l9 `" ^
把参数连成一个长字符串并返回(任何参数是null时返回null)  . S* `2 I) |1 A3 S. Q
mysql> select concat('my', 's', 'ql');  
7 y2 b4 t: z) g- N/ G; R: d; j  -> 'mysql'
5 d0 `. P- X. T5 v4 C# c6 kmysql> select concat('my', null, 'ql');  4 h, `: x7 N4 |4 x
  -> null + D& ]  G/ J2 l* K
mysql> select concat(14.3);  
  `% W2 f( j1 i. [  -> '14.3'
7 j& J& h1 {/ I" a3 }$ T
6 N0 W. }6 ?1 \! q  O# _" hlength(str)   
( Q; N, `4 M* |+ |# hoctet_length(str)  ' i" y/ h0 r' a, ]
char_length(str)  
9 M9 D4 u2 {$ Qcharacter_length(str)  
  z' D5 ^& u* g# s5 w0 O" j返回字符串str的长度(对于多字节字符char_length仅计算一次)
% L* l3 Q& y! G- [mysql> select length('text');  " S  |0 h. r4 m
  -> 4  
/ R  R) O! v5 H6 F1 }& G  {' rmysql> select octet_length('text');  5 Z8 P9 ]! n  o
  -> 4  $ c+ [3 E& _) w( S

% u3 Z" _$ j( ^9 xlocate(substr,str)   
0 R  X/ |  }5 w' l$ B+ N( Y0 vposition(substr in str)   : r" w4 h+ e' z  r' Y  L
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  + B, m. x7 @) t# u" ]
mysql> select locate('bar', 'foobarbar');  
( R( ~; e9 Y8 B1 D. W: `  -> 4    p8 L$ \' H9 M: Y! M
mysql> select locate('xbar', 'foobar');  
9 j& I/ Y: }" ^/ ?/ @  -> 0  1 c, B7 @$ [2 C0 J
    & I: A- L5 e/ i' ~* S
locate(substr,str,pos) # }) Q$ n5 O4 q& f$ i8 `( }: G
返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  % b: D( v* ~! h3 N1 W# P
mysql> select locate('bar', 'foobarbar',5);  * G' q; Z. C3 z+ N0 a) L2 ]
  -> 7  ' v8 ~9 A4 c! u# z. Z- W7 ?2 P! K
1 ^! F, D) V" {1 @1 g: n1 \
instr(str,substr)  
" |6 K  V& P. j返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  " ?4 c; r0 `! q) X2 P, T
mysql> select instr('foobarbar', 'bar');  % e- ~2 m: }* j) b
  -> 4  2 v% K# g# B( \* ?( h3 g) E1 }
mysql> select instr('xbar', 'foobar');  
# |' c( R" N8 Z4 e; Q2 E1 g( |, P  -> 0   
- r, e3 C! F3 u/ H
& n# N3 J: v% F/ n4 }7 llpad(str,len,padstr)   ( U" s5 R2 w- }& g& k" m4 [1 {
用字符串padstr填补str左端直到字串长度为len并返回  
& v0 T( \4 c+ y: K7 n* s! Wmysql> select lpad('hi',4,'??');  ! Y7 Z8 z3 e: n2 V0 D
  -> '??hi' ) e- Q! p0 d7 k# @* r
   
7 ]% Z$ c, c' ^rpad(str,len,padstr)   5 E/ Z% c, t( \
用字符串padstr填补str右端直到字串长度为len并返回  
2 D0 }% v8 }9 V1 E0 Pmysql> select rpad('hi',5,'?');  8 t4 K. ~3 t! X. }
  -> 'hi???'
0 a9 c$ d, ?& h. F8 H
# ]" s7 H3 q9 z2 }5 ?2 oleft(str,len)   
. n3 j% V' s0 s  i9 t1 j返回字符串str的左端len个字符  * |. r  p/ Z! ~9 I3 c+ \: C* m
mysql> select left('foobarbar', 5);  
; Y" z: a6 m/ M0 w$ q  -> 'fooba'
1 v7 |* c6 d* v. e
: N) h6 c* ~- h7 wright(str,len)     @+ p* U  g6 |
返回字符串str的右端len个字符   3 k% ?1 f8 {. ~: {
mysql> select right('foobarbar', 4);  
8 }7 U3 ~3 F/ N8 ~. h  -> 'rbar' : Y% |+ H3 Q1 X! n( R
' J# i2 z- @  w" _
substring(str,pos,len)   1 @# @% B+ M) E# T9 T/ T; r; q2 V7 g
substring(str from pos for len)   
, u! L' Q: D) L1 \( Umid(str,pos,len)   : s( ~( R& z5 U6 w& M9 V
返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  * b2 f4 `# w8 _& K* @
  -> 'ratica'
) }4 ], |' a) k' G4 b
% R' W/ r) _1 K1 K1 P. tsubstring(str,pos)     i, t5 F8 X6 {
substring(str from pos)   
; I8 a- C. Y1 t3 _  N返回字符串str的位置pos起的一个子串  
$ @! E2 x( w; x$ b% w7 A, @mysql> select substring('quadratically',5);  
: w- G$ ?& O) A( v' ^  -> 'ratically'
) t: D* [4 g, I# N1 ?mysql> select substring('foobarbar' from 4);  ) M' O/ F: q) c
  -> 'barbar' - @7 m  I3 O  ^5 t& s4 }+ ~

$ T$ U& B' e  g7 E0 P/ G4 {substring_index(str,delim,count)   ' L; b' V2 R, E" j# J( P5 [! |
返回从字符串str的第count个出现的分隔符delim之后的子串
* f  W& Y. Q3 H) c. x0 ?) T(count为正数时返回左端,否则返回右端子串)  
" m3 u- z, \0 ^) ?9 A4 mmysql> select substring_index('www.mysql.com', '.', 2);  
; |) j- |2 F5 ?" V+ ~3 u# E) [  -> 'www.mysql'
$ R! f  K: J8 {; Rmysql> select substring_index('www.mysql.com', '.', -2);  
" h: |7 i0 P, ]" B. c  -> 'mysql.com' ) S$ }. f% ?0 q& A
# j- X3 n* i5 r% T0 G+ W2 w4 |
ltrim(str)   9 ~% w7 p& |3 d1 Z0 O  X, U3 t& O4 ?
返回删除了左空格的字符串str  
$ }, g" d/ o( e2 Z5 c  fmysql> select ltrim('  barbar');  
- y% e1 b% i. w  -> 'barbar'
6 x  s& z" R+ W7 s: y% G5 | + Q: r& Y' h  m* O5 }. C
rtrim(str)   " C: u8 C4 ?3 ]! B* B
返回删除了右空格的字符串str  % w9 J# i- }1 J( [! p
mysql> select rtrim('barbar   ');  2 v7 s# r, F1 }+ i+ v
  -> 'barbar'
, d1 `6 p0 P$ D& G! z! `/ S
$ M5 D4 H) C9 ~, q  n+ k) O& Q2 \" ztrim([[both | leading | trailing] [remstr] from] str)  
# P0 x7 }& n5 h# p0 Z4 l返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
) ?5 l# t0 x  hmysql> select trim('  bar   ');  7 J( S0 f" ^1 t
  -> 'bar' 9 C  q3 {- p# q* X3 T
mysql> select trim(leading 'x' from 'xxxbarxxx');  ! m/ M. }. @  B# }' H* _$ W1 k
  -> 'barxxx'
1 r6 A; R# ]4 }% @$ W7 Vmysql> select trim(both 'x' from 'xxxbarxxx');  . w7 o7 a) ~* i- |
  -> 'bar' 0 K% E2 m6 J9 G7 A! ^
mysql> select trim(trailing 'xyz' from 'barxxyz');  
4 V. e4 P6 L" @% ]* p  -> 'barx'
4 u- q- T* |1 [' \
) {$ E7 I; [; l5 Wsoundex(str)   ' Y8 W) v$ @+ Y( a) H% g
返回str的一个同音字符串(听起来“大致相同”字符串有相同的
3 A* z$ D7 q8 z' d, z6 d& Y同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  , r; `3 M5 f/ _
mysql> select soundex('hello');  1 I8 [0 n8 B# X6 S; ^6 [
  -> 'h400' 2 m4 J4 V# d7 X) G
mysql> select soundex('quadratically');  
0 i% q9 B+ m- C& d  -> 'q36324'
$ J$ ~( }. k+ s/ O# S& C( v   
& l0 U+ B3 B) ?% J9 Yspace(n)   7 f. H6 y! i8 {6 n* \5 u. F' x
返回由n个空格字符组成的一个字符串  ; d3 p/ n% g2 a/ V4 w, T3 Z2 a
mysql> select space(6);  
6 v2 b0 \+ |, e, E3 p  -> '      ' 9 c3 T0 H. ?- m( }1 c. ?
   
. e- H( v# z, L- V6 f. [! J! ~replace(str,from_str,to_str)   
$ X4 K5 N4 m9 F# A4 t7 ^用字符串to_str替换字符串str中的子串from_str并返回  
. ^/ N2 G  }0 _/ g! E- w0 Gmysql> select replace('www.mysql.com', 'w', 'ww');  
9 R2 S$ r$ {. J  -> 'wwwwww.mysql.com'
3 }' X1 ?1 T! t6 U 3 _7 v% I: l; F" Z( p
repeat(str,count)  
- ~  t) V2 o* B9 O6 S返回由count个字符串str连成的一个字符串(任何参数为null时/ f! U9 G6 l0 k0 @
返回null,count<=0时返回一个空字符串)  
' e6 q: J. `9 I& dmysql> select repeat('mysql', 3);  8 Q8 z, `8 V7 Z3 [* z/ Q+ Z
  -> 'mysqlmysqlmysql' 3 d, Y1 O/ c; n% V0 Y- G  I
   / _& S' E% J9 y4 a
reverse(str)   
8 H7 z9 w" _- B1 ]颠倒字符串str的字符顺序并返回  
7 Y+ P2 i8 ~" p' umysql> select reverse('abc');  
& e, o) g( V3 K; K" s* q  -> 'cba' : J8 H- u  c& W' e* `( @
/ \* y4 Q, e: f6 l8 a
insert(str,pos,len,newstr)   ' r/ t6 {# n& S# t# s, g7 s  ?
把字符串str由位置pos起len个字符长的子串替换为字符串, ?7 }/ R# s' T6 a
newstr并返回    ?; y% J' |, s& }# l$ ]) G5 b
mysql> select insert('quadratic', 3, 4, 'what');  2 G/ `! l- c9 g
  -> 'quwhattic' 3 M, O" C/ q3 c+ ]! D

9 L+ m. Q: b# ~: Oelt(n,str1,str2,str3,...)   
& P! W0 T$ ]7 y返回第n个字符串(n小于1或大于参数个数返回null)  
$ W+ s- A8 K+ x( |7 `1 b4 E' omysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  
6 G( a6 F1 A! V/ o$ c  -> 'ej' * k, U6 Y) f9 v4 `/ k
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  1 S% o4 h4 R: P* g: p
  -> 'foo'
( P2 B( s! {) ~* h . _5 X& v3 N# [- l7 ]0 B- f) N
field(str,str1,str2,str3,...)   * G  x7 M% E% D' f
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
3 n- g4 t+ c. W* Pmysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
, j) i! M4 s# `7 c% S'foo');  
! O1 r1 i) h( L/ W: f) e  -> 2  1 T' X% ?3 X: p3 j3 A
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',+ n' z) i+ f+ ~! z: D+ V
'foo');  
' H/ _! d) j" y: m  -> 0  
. p1 M9 u% J7 j! [3 t 1 x* g6 E, v+ [  n9 K6 n$ A
find_in_set(str,strlist)   
7 h0 z& S- D" S7 J4 k, o返回str在字符串集strlist中的序号(任何参数是null则返回
+ f; m6 M, L" C1 ]# K/ Enull,如果str没找到返回0,参数1包含","时工作异常)  
6 L. _7 m; _2 dmysql> select find_in_set('b','a,b,c,d');  7 G- a: H7 f2 z) \
  -> 2  : n! H9 ~; u, c& S7 F
   
' U* v2 @; w7 s4 ?make_set(bits,str1,str2,...)  0 E; b& ^9 Z' q
把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应' \& J' m3 E( F* M0 }9 ]/ W
位置的字串选入字串集并返回(null串不添加到结果中)  
7 T& V8 E. o; ?mysql> select make_set(1,'a','b','c');  5 g) q; D$ R8 Z2 U" M
  -> 'a' 3 v0 K7 p, V$ {" E( e  J
mysql> select make_set(1 | 4,'hello','nice','world');  + P3 |; \9 U0 R: j  o( f% Y$ q
  -> 'hello,world'
8 c- R5 Z! Y7 t% w( omysql> select make_set(0,'a','b','c');  + Y* m8 N) v( a2 E0 H! o4 @: N
  -> '' . m- O# k7 q! R& c3 x
9 H8 [$ z- p7 H6 Z
export_set(bits,on,off,[separator,[number_of_bits]])   6 S( N( f9 k* d0 i( ?6 ]
按bits排列字符串集,只有当位等于1时插入字串on,否则插入/ u: |& B! h$ C0 C! g
off(separator默认值",",number_of_bits参数使用时长度不足补0
; ?! E. {. Z- [而过长截断)   $ J4 J) r; O( X2 I" f
mysql> select export_set(5,'y','n',',',4)  3 U- n7 d5 Y% b  Z, S8 p$ g- c
  -> y,n,y,n   
) ^$ a7 @( J9 C, v8 Y" ]7 R! y( S: q
7 Y# a" b! U7 C- D; Ulcase(str)  7 g8 o  @& `4 N
lower(str)   
& _9 c7 b8 H2 g6 L0 y返回小写的字符串str  ) R5 G. {& \: q
mysql> select lcase('quadratically');  
$ n  n' c4 ^8 g$ D) n$ F: Y0 \  -> 'quadratically' ) L, z! v* k# [5 a
   0 j( p0 v5 k) C7 y
ucase(str)   & v& W8 S! ]+ J; m- h
upper(str)   ( K' `6 f* j! L7 U
返回大写的字符串str  5 H+ a4 W2 A+ L$ U) I! f' C; q
mysql> select ucase('quadratically');  1 d5 x$ f0 O1 V4 l: `& o/ L* j: H
  -> 'quadratically'
( D! L$ T' c7 n$ P7 R 2 j$ `* @) e4 v
load_file(file_name)   7 X. d4 x9 z6 T2 K# H! F  L
读入文件并且作为一个字符串返回文件内容(文件无法找到,路径
! W' c# b' r& A5 Z' c+ ?9 |不完整,没有权限,长度大于max_allowed_packet会返回null)  
2 A8 y0 e& k3 V  D3 y; F& fmysql> update table_name set blob_column=load_file+ b  P5 }0 @" J+ Q- B4 v
("/tmp/picture") where id=1;  4 h+ G5 y; i/ @7 ]+ a
  _& H2 w; X+ s
2、数学函数
# j0 E& I9 w) s8 r- O9 P7 K6 F" vabs(n)
6 J5 c" d4 H* X  K" W$ y( e, Y返回n的绝对值  " n7 p$ Z$ H7 X8 U4 x
mysql> select abs(2);   
* a8 T7 Z; j" }0 l  -> 2    7 p0 k$ H+ j1 C: @/ S
mysql> select abs(-32);   
1 B  U$ m, G# r6 E3 g, M# U  -> 32    3 e2 B/ D1 n9 q/ A2 c  C
   
$ E7 H& E* E4 osign(n)  
# Q1 |2 c; `' z9 D/ z返回参数的符号(为-1、0或1)  % d- p4 a1 X4 j+ D
mysql> select sign(-32);   
; D. Q( h) Z8 X6 q# @) y  -> -1    " [6 U& R2 X0 L9 p
mysql> select sign(0);   
5 L6 `( a# Z  K) _  ?  X  -> 0   
9 ~) W; s5 _, U2 x' jmysql> select sign(234);   
6 b5 Y0 f5 o0 F5 m2 _) x# N6 n  -> 1    ; P9 E% v, y. `+ A, }. v7 c; b
1 N5 R! _- e. L6 c7 p! h
mod(n,m)   
: z9 a+ D+ k8 _, z取模运算,返回n被m除的余数(同%操作符)    " k8 o: K# Q- v. w# W* L
mysql> select mod(234, 10);    ) M0 j" o3 P; Z
  -> 4   
0 n# `$ Z; F" z' W5 h$ @5 _1 ]. t! mmysql> select 234 % 10;    ) _& z8 @. v1 u% I
  -> 4   
7 c, j+ b% F8 h  B- @" W7 Xmysql> select mod(29,9);    9 \7 S' [; o+ l' w
  -> 2   
5 f0 M5 h& H, Q! V+ K: i" k1 |
/ V3 {, o9 M# Y/ k1 t5 Kfloor(n)    L' E: g" a: j  d) G9 w
返回不大于n的最大整数值  & A. B1 P" B& Q7 I, \4 _) c5 z
mysql> select floor(1.23);   
% m0 Z/ K( |: T  -> 1    1 _( L* o' D% h9 b, h9 t8 |
mysql> select floor(-1.23);    ! K+ _9 ?! |+ Q9 E+ X
  -> -2   
7 G+ p: _+ h: i% u # G$ A6 q3 f0 }8 S5 m! k" ~# D
ceiling(n)  . [  w+ \3 D) |1 R6 V- j
返回不小于n的最小整数值  ( t! b0 I' c# k0 _4 d
mysql> select ceiling(1.23);   
  a" `9 E) V1 e& C& o( r  -> 2   
0 Y, T2 @' f! `  O3 ]$ ^9 tmysql> select ceiling(-1.23);    : E: ^% ^  a8 y7 v% H
  -> -1      X0 N5 L! j; V0 A; E
5 |$ N4 i% o+ y& `: ~1 p
round(n,d)  
& Y$ ^0 W5 `$ Z9 j2 W3 E返回n的四舍五入值,保留d位小数(d的默认值为0)  
' z' p9 l6 V2 t+ [mysql> select round(-1.23);   
5 o# S( Z# t; L/ M  -> -1    1 r  w4 D( ^$ u2 w5 ^( M4 J
mysql> select round(-1.58);    1 g0 ]" L1 {6 M1 R+ H
  -> -2    1 \, o8 ^9 H7 L8 x5 B
mysql> select round(1.58);    1 I) B' M# G) O: G1 L
  -> 2   
" b5 J) k4 D- ~; _( qmysql> select round(1.298, 1);    ) u! ^+ a# g* k& X) G) _# k
  -> 1.3   
& y4 w+ ]2 h  F: F9 smysql> select round(1.298, 0);   
# x7 \0 B7 D( R5 v/ r" q5 Q  -> 1    & R0 t" c8 `; `$ n* D6 I" k4 t) y9 n
8 F: s6 j. z4 Y, d
exp(n)  
5 g% Z' Q% J3 ^返回值e的n次方(自然对数的底)  
# U! D7 u, z$ n9 rmysql> select exp(2);   
0 N% z/ {) q2 O$ X5 T  -> 7.389056   
: b1 ~+ r1 A, f6 M7 Y0 g, Mmysql> select exp(-2);   
$ _! @1 I3 ^3 ]% _$ E$ f  -> 0.135335   
5 {; U, [2 N0 r( c8 t
6 L/ A# y; O* D" g% elog(n)  
) p$ K; K2 \2 x" }返回n的自然对数  
0 ]4 Z3 J& Z  wmysql> select log(2);   
0 v, H4 z& c0 \/ B& @' q  -> 0.693147    2 e: d3 k; R% V2 S1 o5 e* A. @: C
mysql> select log(-2);    4 H1 \  W+ {, b- |5 r8 L. Y6 f& l
  -> null   
2 _/ S7 ^" u# q& z
" f' s4 M4 R3 r5 i& q  Blog10(n)  
! Z% ~& X4 D& G' e: D# [返回n以10为底的对数  8 J+ G( Z; {! B3 f
mysql> select log10(2);    " u' o1 J: U7 `: T" Q- }$ c
  -> 0.301030   
8 G5 h  ~- [$ v, J+ s- tmysql> select log10(100);    + b! Q+ v8 [7 O( B; H( X' Y
  -> 2.000000   
6 Q) X, O6 w' p0 umysql> select log10(-100);   
0 j! e; w9 c; O7 E  -> null   
+ R/ B5 z0 Y8 l% ]- ~2 ]5 a) e% u 7 B# u5 W9 r4 H! P3 L
pow(x,y)   
! f- g+ @! X! r: s) ], Q( fpower(x,y)   
8 e" g8 G# _5 | 返回值x的y次幂  ( ]5 t9 A( m- i; W8 ]& D7 s
mysql> select pow(2,2);      o: Y* ]! o+ o, r7 U: n3 i3 T+ N
  -> 4.000000   
  u6 C! [' X% |0 rmysql> select pow(2,-2);    7 a% v& P/ u' F$ c6 Q
  -> 0.250000  % l3 s5 X, {+ r& n
; S2 x  m; k; b1 R
sqrt(n)  ! K: [) h+ u* w9 I& J" s
 返回非负数n的平方根  
, X2 W/ s+ M$ ]+ w) k7 q5 qmysql> select sqrt(4);    ) v  s6 k% g- S, n4 ~
  -> 2.000000   
. H2 y' f: t  i( e5 X9 Cmysql> select sqrt(20);    % H/ r: t% L' i2 ?
  -> 4.472136    # N' \6 O$ i8 k1 e

" O, D3 c9 A/ m5 {% _/ _* `; |pi()    : d1 \# O2 T/ v9 W
 返回圆周率   
" S2 `- z1 x. f9 L1 k0 tmysql> select pi();   
8 M0 W, R1 l. k0 q, U1 c  -> 3.141593    : [" i! P# s# q& H7 c$ _
$ t" S; B  y) Y/ J7 e2 F
cos(n)  % G) n- N) @6 }" n4 r! o) P, h
 返回n的余弦值  
% ?, U& w1 S1 G+ b1 `; Pmysql> select cos(pi());  , C9 V( I5 H, D. a. `) a0 ], c
  -> -1.000000    % s  ]" T# n2 E- t: K7 F) N% Y( E
% J$ \$ n+ n1 q) P4 b
sin(n)  ! k; S. G/ c# S! e5 p6 O- B
 返回n的正弦值   
( |6 q5 ~$ H# E, g6 _mysql> select sin(pi());    6 x% A2 A" t! [) ~
  -> 0.000000   
* e" S% U+ A  J6 A! I
$ n3 k: o- R0 f+ Etan(n)  % t2 s4 s) U& X  l
返回n的正切值  3 B' ]& k. }8 d7 H! e2 l8 J
mysql> select tan(pi()+1);   
- m# y8 {3 r) h1 {. V4 H; a, ?  -> 1.557408    - W" o) ]/ u) ~- R2 [  t

+ f, a; z/ ~& J1 h0 z/ i; d6 _: Aacos(n)  
* L4 J) D+ ]  O" ~1 S 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  
. h" b4 I' z; _' Z* A. E+ z1 ~mysql> select acos(1);   
* g' q" H* L0 Z  -> 0.000000    5 w& i. f7 p' \9 Z: u5 b. x
mysql> select acos(1.0001);   
" @& \; Y* C+ B2 M  -> null   
$ B: u# b3 B$ h# s, ?mysql> select acos(0);    & s3 q0 x) \9 X  C" n- O/ y1 G
  -> 1.570796   
, S) }, {7 [2 V
" w7 `4 ?2 D4 N+ R- L4 O+ Masin(n)  # b0 w& x0 _+ h2 A. F# b
返回n反正弦值  
2 t/ E  c1 F0 t: ^& n( _mysql> select asin(0.2);    1 y% [: Y0 D6 Q5 w, v
  -> 0.201358   
2 t6 C' r6 K* Pmysql> select asin('foo');   
" A' g$ ^0 G+ P" p  -> 0.000000    ' R2 }9 N, @( p5 O# Q( @
! G5 W: c; {: z
atan(n)  
" Y- N+ y. A4 M8 [, ~: p返回n的反正切值  
3 {% E% j* N& `2 h4 tmysql> select atan(2);    1 n  O' B: m# B- X" E( R
  -> 1.107149    . R8 _! V% n% a; O9 N  X) `
mysql> select atan(-2);    * ]! S( a  k3 O2 u% u
  -> -1.107149    , E2 W# ~4 F* Y" V
atan2(x,y)   
0 b! w8 y  ~: l: a! C 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  ; W" V- z1 n! H6 {
mysql> select atan(-2,2);   
  c. _% ~4 w  r  -> -0.785398   
9 M5 \3 r+ W  `! z7 x' B4 x( x3 ymysql> select atan(pi(),0);   
& K/ F2 p7 K  [! e  -> 1.570796   
* H2 N6 E  ^1 x' e( y$ m# c 7 K6 J/ ?7 E5 R! ~, }/ X7 I, z
cot(n)  
  K1 N5 g" N& v- X0 f4 C8 w' Y返回x的余切  2 h3 `/ n( i! ~9 o, j" H
mysql> select cot(12);   
7 @, `, q0 D2 A9 N4 x% E  -> -1.57267341   
3 H% G+ R. L1 F+ [& Emysql> select cot(0);    * z1 G3 a7 k4 T  l+ w$ f
  -> null   
# L7 j- B& T9 F- `( \ 4 A8 u$ s+ V$ B% `. G+ e" k
rand()  
0 a9 q" h7 O! @* w" U2 P- _rand(n)    ' C! K9 \& {  c/ M
返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值) * B# K$ s, X; y: ]9 Z: F
: t6 b. t: Y7 S$ @
mysql> select rand();   
1 L$ Y! Z$ l0 d# T* g  g  -> 0.5925   
" `( v9 r, a% n2 Amysql> select rand(20);   
9 h( R: z6 C" E. `+ v  -> 0.1811   
* U2 h9 d: {$ [" Cmysql> select rand(20);    ' `6 \/ E2 f* n+ @4 P% `
  -> 0.1811   
9 W) Q2 p# g- `& F' }mysql> select rand();    - |  |! x# d; V, G  x' y
  -> 0.2079   
. _" c  d; N0 J* S' u8 rmysql> select rand();    8 j( B; Y2 P9 |. l6 Y5 v& G
  -> 0.7888    1 d9 p6 b$ w0 y7 Q4 I

% T" o) ~6 m( _% `: h* Y+ w8 n* ldegrees(n)  
1 S4 F! P/ W9 Z5 ^: B! ?, g把n从弧度变换为角度并返回  ( {% j" L9 D: ^* g( \  d
mysql> select degrees(pi());      k8 j& g0 A  R' V6 P3 n  C
  -> 180.000000   
. b3 e" Y' T- u( i2 n+ K9 [
$ Y  B8 X, p) {' X7 Yradians(n) - ~. V* r3 \; x+ c
把n从角度变换为弧度并返回   - X: J5 y+ ^7 j& H2 `9 [
mysql> select radians(90);   
: Q) r$ M. \! E% e8 r  l8 V# g  -> 1.570796    3 r, n) _( h' n' F) T/ N0 b

9 {* m+ d+ Q9 vtruncate(n,d)    ! h/ K" l1 ?8 j7 }! v" c" |+ t5 i
保留数字n的d位小数并返回  
3 V9 W0 v) T& n5 x# v; rmysql> select truncate(1.223,1);    0 ?8 \# w# f. Y" l: m0 e' K
  -> 1.2    - h5 f  Q* v5 d' Y& Z1 M
mysql> select truncate(1.999,1);    ; R; n1 H  ~9 a6 f  g; v2 F  H
  -> 1.9   
+ ~; ~8 Y# M1 smysql> select truncate(1.999,0);    ( o% l0 j3 o% i- y3 C1 [9 z
  -> 1    0 ]9 `9 _4 |8 O: z; P: ^, x

: s" R  b1 ]% |, R, _8 Pleast(x,y,...)    5 i5 Q, K5 c% j  P  y
返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
/ n) D& m  N3 ~# T' x5 Rmysql> select least(2,0);    8 \- `, W  f) f* ^) W( N
  -> 0   
: G& v7 Y7 Y+ C; {9 [/ Mmysql> select least(34.0,3.0,5.0,767.0);    ) g' c; {8 m5 D/ p5 m
  -> 3.0    1 ^6 q0 h* m3 P2 V6 C/ m3 u1 ^. R3 ?
mysql> select least("b","a","c");    # N8 J0 r  B; g% l3 t, j' M  c
  -> "a"   
/ O% @) e0 D9 t, p0 D$ ~& b; W2 ? 3 G  E) R- r, e" W' N- c, s
greatest(x,y,...)   
1 q2 X9 R  ]& i5 q8 `4 o! |返回最大值(其余同least())  4 _2 {0 |# |: Y: C% _! d5 x* f
mysql> select greatest(2,0);   
5 T: E* s. [5 A7 z3 q; V6 R9 B  -> 2    # D* O( S9 _5 e" Z$ O
mysql> select greatest(34.0,3.0,5.0,767.0);    / x* m& ]3 E" a) s
  -> 767.0   
  p  t% O# p+ P" F' t7 m4 gmysql> select greatest("b","a","c");   
, |8 s+ B' T: W2 T+ l- {  -> "c"     
7 c( ]: h& [( D3 S' E7 N- V
+ `/ }) ]! ]% Y! [) y+ Q! C3、时期时间函数 9 K( B3 u; g. E# r
dayofweek(date)   
; A* Z$ |+ `( O& E+ h返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  * k8 w9 n2 A' l8 s  Q4 q# T+ c
mysql> select dayofweek('1998-02-03');   
: C# d. H4 x6 H: w# \" o  -> 3    8 ^: y( r2 Q9 f& q- }- o
4 r2 @7 e) q1 S" L. s# p! O
weekday(date)    : `$ X, \( G2 q8 e4 Y0 I
返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
- W. H$ X( u1 B5 z$ Z  
; ^. j$ Q3 f* ]7 G1 {0 q- w1 omysql> select weekday('1997-10-04 22:23:00');    ' w# }* s0 j8 B. [; e$ d+ ~
  -> 5   
" h# s7 ]6 X+ e1 r2 k* pmysql> select weekday('1997-11-05');    * `( o9 n7 b4 O0 D* Q+ ]/ k5 [& X' E
  -> 2   
+ K, [; G- `- i% f
/ V. U) v2 Q# `  z* P0 |, wdayofmonth(date)    
5 m9 l' y' X/ o* X/ n" F3 N) Q返回date是一月中的第几日(在1到31范围内)   
* P% \+ o  e0 ]9 ]mysql> select dayofmonth('1998-02-03');   
! @, Y1 A4 K) O- k# f% O+ v  -> 3    0 p* ]$ F$ M  S$ W+ o

" L' @5 q: V0 Z( Xdayofyear(date)    - j! Z* m4 v. g- Y- S" |, J
返回date是一年中的第几日(在1到366范围内)    5 o% T& t# k* ]0 k6 @* }# V# D% _
mysql> select dayofyear('1998-02-03');   
# N8 k2 X4 V0 ?% j3 y  -> 34    : n$ D" q+ V' H8 R
8 A: G8 B! n( w+ o8 {& o8 @
month(date)    ; C% K& n1 M2 a8 k# l) f
返回date中的月份数值   
' k' U3 a0 `, _! V1 b, ^; `mysql> select month('1998-02-03');    , t7 K$ _  g* J. D- q! o
  -> 2   
/ O5 ]" X( M5 T3 v0 X8 O
8 G+ b2 \% W1 c" @. {; \dayname(date)   
/ T2 [$ c' t. M- X! ]  o% [/ E返回date是星期几(按英文名返回)  
0 Z1 j4 Q! a/ o2 F( mmysql> select dayname("1998-02-05");   
  f1 w$ C+ f3 J! K  -> 'thursday'   
5 z$ O8 d. Y4 n% l
& g' k, d7 q8 f- vmonthname(date)    
  k9 |2 v( X& a! U" _返回date是几月(按英文名返回)  / h- y/ q) }) k9 Q
mysql> select monthname("1998-02-05");   
( q4 `0 ]# L  H; [  -> 'february'   
- _2 D8 t& M9 Z6 ?9 }0 z# b! x
/ ^8 d. L' ^; h( Uquarter(date)   
! c% s4 F( H5 ~2 @返回date是一年的第几个季度   
& T7 J& h+ S# @mysql> select quarter('98-04-01');    , j9 c+ j  ]; E$ u
  -> 2   
5 e/ Y* n' ^2 q# a; A* F6 Z $ u: C( f0 x* p6 q, N$ J$ W
week(date,first)   # c; A2 X5 @1 g' |' R4 Y- A
返回date是一年的第几周(first默认值0,first取值1表示周一是
; Q4 j- D- ?& B周的开始,0从周日开始)  ( [) t$ M7 H' ?+ x
mysql> select week('1998-02-20');   
- t  b; I3 w" }* \# Z. j$ v! D  -> 7    ; A& a1 Y, @; q& E' t* A: |
mysql> select week('1998-02-20',0);    " `  V% K6 {' G
  -> 7   
5 _, I! ?; y( zmysql> select week('1998-02-20',1);    $ Q) W* b+ g0 |$ g
  -> 8    3 p2 v6 n1 N& }" P

' J: N: {+ j+ D, M" dyear(date)    $ i/ a5 q+ }) t/ J: Q1 z3 o+ h! I
返回date的年份(范围在1000到9999)   
3 Z# a; L, O3 T) b% b3 omysql> select year('98-02-03');    ' c! M! @* E7 @3 f5 O$ X& G  N) V
  -> 1998    , g$ ]. u! C# d$ [' A6 @
. X! T  F7 u' B) H3 |% R
hour(time)    + }9 D/ `  k0 m/ [
返回time的小时数(范围是0到23)   5 K: n9 j& I  e; B& e! A0 ~
mysql> select hour('10:05:03');    - p5 x" R* C$ b" X5 N, r
  -> 10    ; S8 T/ D; r% Z" @, o; F" p

/ X) c) O3 s1 d, d1 B! vminute(time)   
$ Q2 v6 Z& i8 r  E" q, n返回time的分钟数(范围是0到59)   
: y9 V- U) e4 o4 M# n- r1 Jmysql> select minute('98-02-03 10:05:03');   
$ D5 h$ A; @# Y7 U  -> 5   
6 d1 A% _9 L1 ~$ B$ o7 z' I
# S& E' ?  Z. ]6 v' U% T  Fsecond(time)    
$ G' j0 n( P2 ?) o4 C返回time的秒数(范围是0到59)   
  z* ]8 ]4 @7 w2 }4 ~2 x6 g; Hmysql> select second('10:05:03');    8 p1 B5 x( x$ h0 @  |4 a/ e
  -> 3   
4 B$ o# `& L0 O2 ~0 {2 ^
5 ~: h# I# |/ N3 w; e. n6 ]7 bperiod_add(p,n)    - I$ n$ e, S( G+ P2 B
增加n个月到时期p并返回(p的格式yymm或yyyymm)    $ X6 ]# M( W- L) J/ G
mysql> select period_add(9801,2);   
( d3 i- A" i4 n- T7 ~  -> 199803    4 o, M) d, E: P, }
( H4 l$ }$ I' J
period_diff(p1,p2)   
' z! v: Y- K6 k5 F返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  ) _' S: i. D. X9 y% x
mysql> select period_diff(9802,199703);    : Q5 F$ [3 q  ^  y2 d! N- Q
  -> 11   
. w4 d) q1 l/ P' L! O* Y
" t, t; y- i$ Pdate_add(date,interval expr type)  
! W8 d) H8 I3 Wdate_sub(date,interval expr type)   
0 M  v9 ]5 x3 D# ]adddate(date,interval expr type)   
2 H# [. ~: e0 Gsubdate(date,interval expr type)  
5 m! q' t8 l6 E( l' W# i% Z对日期时间进行加减法运算  9 F0 z3 G  {: P) i
(adddate()和subdate()是date_add()和date_sub()的同义词,也
* h! V/ x; ]- P可以用运算符+和-而不是函数  
8 A4 ~: I$ Z* i: vdate是一个datetime或date值,expr对date进行加减法的一个表5 T2 _7 x" t; J& r) Q
达式字符串type指明表达式expr应该如何被解释  
6 _, q- r2 l7 P6 T8 ]/ J/ d [type值 含义 期望的expr格式]:  . K% L. d3 N- ?6 y7 c8 [- r
 second 秒 seconds    ) k7 I$ w; S( B; j& e0 q# V! W- G
 minute 分钟 minutes   
7 Z/ v9 a, B: f4 ]# _ hour 时间 hours   
8 s" b" u% n1 q7 q day 天 days   
; [) a* E! a2 @  t; \7 M month 月 months    0 K( U- _# U5 V3 n3 F- I9 L
 year 年 years   
4 A! o5 X5 b/ F minute_second 分钟和秒 "minutes:seconds"    # u0 L1 q' y0 {1 I* D* ~5 q
 hour_minute 小时和分钟 "hours:minutes"    5 Y, k# w4 a1 x/ e7 w. u; s
 day_hour 天和小时 "days hours"   
/ w3 J  Y1 h! l0 p' _ year_month 年和月 "years-months"    % R( P% t5 V' {8 U
 hour_second 小时, 分钟, "hours:minutes:seconds"   
+ s* H5 _; N+ j+ E day_minute 天, 小时, 分钟 "days hours:minutes"    & ]: Z3 Y  @+ c) p1 q
 day_second 天, 小时, 分钟, 秒 "days
, P4 u3 ^4 j3 {1 F% Uhours:minutes:seconds" * g* y8 }0 Y0 N  _  Q$ q' }& I
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个0 E/ u5 }7 l& X- B$ Z
date值,否则结果是一个datetime值)  
6 b1 g/ y3 x2 b  ]8 N 如果type关键词不完整,则mysql从右端取值,day_second因为缺
/ D2 ~2 {' a- S$ U3 Q+ T少小时分钟等于minute_second)  
9 `/ z7 x+ E& n' J, J 如果增加month、year_month或year,天数大于结果月份的最大天, X) H( R( q  u# }/ |+ m
数则使用最大天数)    & x! e& Y% n  h
mysql> select "1997-12-31 23:59:59" + interval 1 second;  $ q6 T, j# w7 ]+ d8 e/ p+ W
$ }. @& x. l9 |3 \: V. x3 U
  -> 1998-01-01 00:00:00    0 M+ _+ B8 P( ]/ ^7 l' ^
mysql> select interval 1 day + "1997-12-31";   
) n3 h% p1 M$ ?  -> 1998-01-01    " @$ N9 d9 s  b7 `% R4 p
mysql> select "1998-01-01" - interval 1 second;   
$ e0 E2 W$ g0 j* P' U0 A  -> 1997-12-31 23:59:59    6 n% L- W( J9 I
mysql> select date_add("1997-12-31 23:59:59",interval 1& v. N, x: o/ r: M$ n- j$ O3 Q
second);    # |4 Y$ U; d& T) p  x- ?0 \
  -> 1998-01-01 00:00:00    & M% b- ~! z! O* a8 b( E/ c
mysql> select date_add("1997-12-31 23:59:59",interval 1# l0 H7 I( G) [2 Y$ p* @' p
day);      i6 [/ {0 `: n* c$ Y9 A: M% B
  -> 1998-01-01 23:59:59   
: s. }, l/ U4 H% C) W& Q& emysql> select date_add("1997-12-31 23:59:59",interval. N& I* @. w: q4 _
"1:1" minute_second);    4 H' ~3 i( ~, Q6 D  l$ ?
  -> 1998-01-01 00:01:00    . }7 K( J0 a+ M% U3 B& W( E
mysql> select date_sub("1998-01-01 00:00:00",interval "1
( O; t# U2 L# U7 h: N1 I2 k7 a* r5 q1:1:1" day_second);   
2 s; C! N9 @5 r% t  -> 1997-12-30 22:58:59   
; U; M' R5 D) w1 p! j; ^) pmysql> select date_add("1998-01-01 00:00:00", interval "-1; c% ]5 f7 B* w& \0 U% B
10" day_hour);  3 T0 K! j" W) ~& @$ H' H
  -> 1997-12-30 14:00:00   
2 u# s0 g1 c8 X  B5 h5 ~mysql> select date_sub("1998-01-02", interval 31 day);   
2 l& R  }) a: V# K' l" i' ?' d  -> 1997-12-02    0 Q; e+ A# y7 L7 w- c
mysql> select extract(year from "1999-07-02");   
) }* U) f6 G7 }  -> 1999    7 t' {; ^! _6 Z4 P
mysql> select extract(year_month from "1999-07-02
$ {5 V8 Y5 \0 L& [9 p2 R: P% E+ z% H01:02:03");    * i& J' m$ E2 ^5 S: F% ~$ b
  -> 199907   
. N( R1 t) E+ e0 {) {+ Zmysql> select extract(day_minute from "1999-07-02/ t) G7 ]% o+ H
01:02:03");    ( L% i  L& W+ k0 H3 m8 H
  -> 20102   
; f$ p1 A! |9 x, }: k* {
, i" d# t+ G6 g$ F6 g- ]1 ]to_days(date)    % M) u3 ~: @& b, P& [& n
返回日期date是西元0年至今多少天(不计算1582年以前)  & r* s& ], d1 i3 S
mysql> select to_days(950501);    , ?7 G. |# s  s) [
  -> 728779    & [5 @! @0 z0 _" L
mysql> select to_days('1997-10-07');    8 x4 x) d. J  V+ C2 i+ ~
  -> 729669    0 U. n, [' ?7 }' A: }; ~, u- R
$ ?% D0 b7 \% U* v* q6 }; Q. T
from_days(n)   
  i1 @9 R$ y5 M4 ]4 d; e 给出西元0年至今多少天返回date值(不计算1582年以前)   ; m& P: b2 ^  `2 j* S: ?' i
mysql> select from_days(729669);      H% h# T% ~* B0 _) e. F
  -> '1997-10-07'    ) y1 `7 q0 V% D( I4 G
% _+ j# V# C4 W- P# _6 ?
date_format(date,format)   
! K7 C2 J2 H7 V2 W! G- O 根据format字符串格式化date值  
% u) r; r6 P- f (在format字符串中可用标志符:  5 L# @& }2 a& T1 X
 %m 月名字(january……december)   
( {3 v8 ~8 X5 I1 v/ s %w 星期名字(sunday……saturday)    * n0 H0 b& @! f% L% O# l& ]6 J
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)   
, Y2 _9 S/ X- J+ D9 X %y 年, 数字, 4 位    % u# A% A" C: q2 e5 p3 _8 j% a
 %y 年, 数字, 2 位   
4 Y* v7 H  ?# B* V8 G %a 缩写的星期名字(sun……sat)   
8 w4 t% T! j7 l3 V: h+ o %d 月份中的天数, 数字(00……31)   
, {+ ^/ T. a8 _ %e 月份中的天数, 数字(0……31)    # b* L# F! o2 q2 `& _3 h! P
 %m 月, 数字(01……12)   
* v: m+ r4 i6 C- W( m6 C' ] %c 月, 数字(1……12)   
3 n( H3 f. n& k+ O, u %b 缩写的月份名字(jan……dec)   
7 t% N3 R* i( F/ o" q# L; [, c( N) v %j 一年中的天数(001……366)    ! H0 B. z* M4 T5 f% ^+ W6 |: ]! z
 %h 小时(00……23)   
5 {+ O- @' I3 D& K %k 小时(0……23)   
1 A; z% q9 u4 } %h 小时(01……12)    ' Q  X' }9 L8 q) d
 %i 小时(01……12)   
: g5 S& T7 w5 a2 t! _0 W" y %l 小时(1……12)    , N' b* ^" `# [2 l9 T
 %i 分钟, 数字(00……59)   
( V" _9 i1 }2 \' e, o %r 时间,12 小时(hh:mm:ss [ap]m)    ! a" `* n) S) a/ {
 %t 时间,24 小时(hh:mm:ss)    # h7 Z! @) z  L3 z/ @% t7 g
 %s 秒(00……59)    & x% z9 D# C, t- b1 L
 %s 秒(00……59)    , A' k: ]5 A1 f$ a2 h4 a
 %p am或pm   
7 H& @* I% _: O %w 一个星期中的天数(0=sunday ……6=saturday )   
: D, Q4 N7 ?) ?/ R7 w$ B; A %u 星期(0……52), 这里星期天是星期的第一天    + s/ i0 I3 X! a' I& m- H
 %u 星期(0……52), 这里星期一是星期的第一天    5 y" U, \1 Q' |" J1 d
 %% 字符% )  1 J* s3 m+ n! \2 G/ F7 E
mysql> select date_format('1997-10-04 22:23:00','%w %m %  b& O  h6 B% T" n" w
y');   
, y( ]7 U) \0 O  -> 'saturday october 1997'   
# N4 d: {& k7 u! h; V3 \mysql> select date_format('1997-10-04 22:23:00','%h:%i:%
" {) Z8 e; D  j" bs');   
2 z% I& \( _2 ]& L2 h% v4 [  -> '22:23:00'   
1 Z* E) v2 n. b; c5 ?7 s5 l, |mysql> select date_format('1997-10-04 22:23:00','%d %y %a
# z  l  c7 v; u/ A& d0 J+ l* w%d %m %b %j');    + m( E8 q  U4 {  e, o) a
  -> '4th 97 sat 04 10 oct 277'    4 x) e$ p$ Z/ q3 Q7 S
mysql> select date_format('1997-10-04 22:23:00','%h %k %i1 O% p  k0 o' b( K/ {9 c
%r %t %s %w');    + Q% W5 C) d4 O
  -> '22 22 10 10:23:00 pm 22:23:00 00 6'   
! P1 ]) t" c( k- t7 ~; d5 u
( @9 @/ L: z8 C( W9 G) Itime_format(time,format)  / n+ o, U+ z$ @  j. Q4 y
 和date_format()类似,但time_format只处理小时、分钟和秒(其
2 |: h6 H$ k# c; X0 n" h. K7 \余符号产生一个null值或0)  % a" ?$ D* Q* }

% W/ L1 ^' {. C9 U3 _curdate()     ! Z5 r3 {9 s- ~1 o% N) H
current_date()  
  \0 r7 t, z9 d8 Q, b7 O 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
9 k/ B- t" t8 m' I; g处上下文是字符串或数字)   
! F- p! M4 m. |# {9 c$ Nmysql> select curdate();    $ ]- K3 a% ?4 F) \. x- e
  -> '1997-12-15'   
8 L0 a! L# p" _9 t* Bmysql> select curdate() + 0;   
- Z5 S" C4 x4 e. j; z  -> 19971215    3 |" c' ]$ a) w: W: Y1 n# u' g& ?' i; f4 p
2 K3 z5 s2 k8 b8 l2 R* ]! r/ S. @
curtime()   
4 X' H. s+ {- |+ Vcurrent_time()  . m, k6 _: J1 T  K( h( Q* {
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上0 F: {1 L' J8 l4 e0 k
下文是字符串或数字)      
  `$ o* D: W, j* omysql> select curtime();   
' R+ j  c' Z, b  C6 K0 L- }/ z  -> '23:50:26'   
4 v& S4 N( o  @1 hmysql> select curtime() + 0;    # D/ \6 |( M6 l' Y- V7 u& G1 Y
  -> 235026   
' M0 Q% S" ]/ B; k' y. W6 A
/ ?4 E" K2 K8 A1 B; }; M) j+ vnow()    
8 @( h+ a) O# {$ v0 d; @7 L/ ^5 P! Fsysdate()    1 D% F7 d. t; Y
current_timestamp()  " L3 G/ E' ]- x+ @& g2 x& E" L
 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
. o' w) ]/ a, ~: v( Y% T9 Z& X: _时间(根据返回值所处上下文是字符串或数字)     5 g+ H6 b2 b3 N( q" U
mysql> select now();    ! D. d0 u: F; U0 p
  -> '1997-12-15 23:50:26'   
8 S' y; F/ [7 y% Bmysql> select now() + 0;   
6 X! K8 V8 F  g* I) r' U4 [, L9 y  -> 19971215235026   
! l1 l; F- K  l, x
% F) L2 Z+ D2 @  zunix_timestamp()    , I$ N. V- E# F% h
unix_timestamp(date)   
& @0 a: M! W( [4 D返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
+ @8 L* _! R0 f, }! m, H( f3 b数,date默认值为当前时间)  
9 c6 h% x$ g0 \mysql> select unix_timestamp();    , z- U( `9 s5 y: ]% o1 o
  -> 882226357   
, ~5 V+ m# w4 s9 W) z7 @mysql> select unix_timestamp('1997-10-04 22:23:00');   
1 m& t" C) a$ X# Y7 R+ }2 C9 W  -> 875996580   
/ z" M/ K+ m% @+ b2 [. b ' t! |  O4 P( m4 B
from_unixtime(unix_timestamp)   
2 a# j% e2 n' N4 I以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的
0 P3 y, p' p; A; X6 B1 j值(根据返回值所处上下文是字符串或数字)     
9 g8 f* c& D) S9 b( f: q3 Bmysql> select from_unixtime(875996580);   
  Y6 }0 y$ E# A( b: k5 ?  -> '1997-10-04 22:23:00'    . l$ a9 a0 g* U" _1 g; j2 E2 u
mysql> select from_unixtime(875996580) + 0;    & |$ U5 X  K9 N; v2 n7 _8 i; m
  -> 19971004222300    % A# y! r7 i3 L% D( `5 C
' x8 J4 c1 D/ U+ L* h- ]
from_unixtime(unix_timestamp,format)    
$ c  x6 ?% E$ h. E以format字符串格式返回时间戳的值  
( C* {' z; q, T! c1 ^( Z1 {4 V+ Tmysql> select from_unixtime(unix_timestamp(),'%y %d %m %+ ^. p+ O+ U/ x% l4 v- @3 X" \
h:%i:%s %x');   
7 o- X7 c6 j! _3 ]3 N8 U/ a/ C4 T6 N  -> '1997 23rd december 03:43:30 x'   
; _# Q8 x+ O$ h% Z' D5 ^4 P# i
7 {/ M6 ~" R# }$ rsec_to_time(seconds)    5 _3 p& |  T. `
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
: c6 u" m# ~5 t( ^6 S7 Z9 fmysql> select sec_to_time(2378);   
1 B2 m' B- O) H. r- q  -> '00:39:38'    * @/ Q; {+ D9 \  g* V
mysql> select sec_to_time(2378) + 0;   
" I1 v: ?/ _- g  -> 3938    / x  f" d  H( c

  N. o, T+ W7 s. X" Ctime_to_sec(time)    5 g0 _+ y, q" ^! J& s* {( ?* P
返回time值有多少秒   
/ v/ F% y& h5 A1 Omysql> select time_to_sec('22:23:00');   
: Q# [( a+ }0 P. B3 h, g, C9 y  -> 80580    7 _$ o8 |0 ~8 L- J0 h
mysql> select time_to_sec('00:39:38');   
* _6 M- M+ P+ q3 `5 R  -> 2378
: g  c* h" k) b6 A, `+ m; F " \& `# b% o/ t" n
转换函数
+ b5 y0 `2 R; X% G5 y3 M7 S9 J4 gcast
/ P7 J9 b: C" i6 r) b3 p用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]! }) l! E& y- O9 k. }
实例:select cast(a as unsigned) as b from cardserver where order by b desc;% K( F. R- X+ x
convert:
) y/ @) N+ O; C& n& Q' t用法:convert(字段,数据类型)
+ u6 o( [$ k) T' u/ `5 ~实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
. t+ F) T6 {- b3 e9 F- W
回复

使用道具 举报

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

本版积分规则

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