找回密码
 立即注册
查看: 2476|回复: 0
打印 上一主题 下一主题

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数
0 M: y, A' Z3 ^( g: Eascii(str)   ) O7 H9 p- L; f/ w, s+ h
返回字符串str的第一个字符的ascii值(str是空串时返回0)  ) f3 v# U" p# ]1 E
mysql> select ascii('2');  1 J7 E& t. [1 h( ]/ n; m( G
  -> 50  * u+ U" d  i: a0 q
mysql> select ascii(2);  3 W. M' h& j# |& m* H3 b5 @
  -> 50  
' x6 N, l5 Z& k! [mysql> select ascii('dete');  
. |6 v' V( V0 B# ?6 c  K6 A3 m  -> 100

' O8 F, n- D1 T' D5 ^* Bord(str)   4 y4 L  g. f* m3 w! C# y
如果字符串str句首是单字节返回与ascii()函数返回的相同值。
. c1 H# ?5 U' P9 C
6 ]2 _$ t& X4 N" d. x% \如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  4 g8 b0 J3 i4 R# j3 @9 y
mysql> select ord('2');  
5 J9 ~+ o+ {! Y- |/ P4 U  -> 50  2 M4 E. m( f0 b
   
% w( p, I7 I& b( Z: M/ h& Nconv(n,from_base,to_base)   
+ o# j0 Z9 N- _* T1 D对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
! Q6 U! U( F# H" m; N1 V2 qmysql> select conv("a",16,2);  
1 K2 a; n4 |9 O& Y: q7 \  -> '1010'
3 C- D7 \/ P" D5 Ymysql> select conv("6e",18,8);  8 K2 i9 ~4 ]$ H# |6 i2 ?- K
  -> '172'
* R. v9 s  Q  ?" ^& Cmysql> select conv(-17,10,-18);  
) L, h5 h2 F) G7 f" G6 J  e4 w  -> '-h'
( r% O5 R+ W( b4 G& G- }, `mysql> select conv(10+"10"+'10'+0xa,10,10);  
9 r0 E7 o8 y5 q( ]1 d0 h  -> '40' * A$ u0 B. V( h- b( ?: j' j: L5 m. P
   + Q: {/ q# o" E( x5 `0 j, u$ H
bin(n)   
+ b' s5 M+ ?; C9 g) P1 ~把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
1 a+ W0 @1 D% O( L0 L5 r0 fmysql> select bin(12);  6 p& {, R2 u  u
  -> '1100'
; o4 L; U) {; s6 a# P
/ n1 n/ a; r; z1 l: E, poct(n)   
7 t$ {# g% t: ?把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
6 V" ~9 e/ c& t# @7 u( Cmysql> select oct(12);  , T/ v' F( q! ^# ]! Z( E
  -> '14' ) Q- G8 [$ M5 F
   8 S3 Q( s( o5 |* y; G
hex(n)   5 A8 Z' I; I6 w% @2 Z
把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  # @1 \9 O* v7 ~6 I" p
mysql> select hex(255);  
, K7 k# n5 F* h# t' x  -> 'ff'
- J# \6 F' d1 {9 ?2 f: X. Z   $ B, k% w9 r8 D! E9 e* }3 A
char(n,...)   
% z5 V; [/ M) j$ f8 P! x9 C& Z返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   
+ Y7 J% @) f# j2 K7 u0 o! k$ T! vmysql> select char(77,121,83,81,'76');  : o1 y/ L9 `3 {
  -> 'mysql'
. I$ |/ r4 H0 C6 `# F" C2 ymysql> select char(77,77.3,'77.3');  8 H% `% p, z& z8 w8 ^1 r9 E+ l% g
  -> 'mmm' . Y+ Y" H6 u, w. `1 ]+ Z
   
; l! j, V5 C: [$ n" s2 Wconcat(str1,str2,...)  
2 N. w) P+ q: l把参数连成一个长字符串并返回(任何参数是null时返回null)  
1 A0 Z' [8 d& l' w# c2 F3 wmysql> select concat('my', 's', 'ql');  
0 w: o* K2 V; F  -> 'mysql'
0 l3 G9 p, b' @, I' J8 [mysql> select concat('my', null, 'ql');  
( y5 @; k. Y* ~2 X4 i  -> null ! N! V: `9 c6 K+ ^# b& Y' [
mysql> select concat(14.3);  , _8 u, c( o& x7 Q' w
  -> '14.3' 8 F. k) r! G0 W4 j4 _+ c, r

& Y. i2 Z) r( G* C% ylength(str)   
: J: ~; n4 L/ j! ?6 hoctet_length(str)  
5 m  S+ K6 p9 I0 i# S# nchar_length(str)  
4 Q9 u- T7 G' @+ I; Fcharacter_length(str)  
; u  y$ T& s. m/ L* O9 k返回字符串str的长度(对于多字节字符char_length仅计算一次)' B3 w* g1 a( _, V! w! T
mysql> select length('text');  
0 L0 O. I' A$ |$ ?6 Z  -> 4  + u; D; h$ J& v# e7 o0 w0 k
mysql> select octet_length('text');  
- X: l: @5 g! V# C  -> 4  
. @5 w. v9 N# ~2 a7 t
+ z4 K% O: [  {4 \% x- ulocate(substr,str)   
+ O$ d) Y) U0 @! ]' \! \' {3 pposition(substr in str)   % ], N- S. w  f9 z! C! v
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  1 B! ^0 ?2 Q, o) |% c5 X% Q7 W$ |
mysql> select locate('bar', 'foobarbar');  5 \1 v& {+ |: {
  -> 4  $ }; ^7 {+ \9 p/ o
mysql> select locate('xbar', 'foobar');  
6 t8 t2 H, ~8 ~6 x/ y$ g4 f  -> 0    E( \9 [. r4 j# T/ N. K
   
5 T/ @6 }$ C5 O( x6 W$ W5 Llocate(substr,str,pos)
# g! h. F4 ^* R- J& F( b$ `返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  7 F0 i4 T: V7 B$ x  @3 h/ o
mysql> select locate('bar', 'foobarbar',5);  
, H3 ~3 A7 k1 W5 E$ F, a  -> 7  6 s; U" J# I2 I$ }9 l

/ @- R, P, N, `9 p3 Yinstr(str,substr)  
* U. H1 d& V. r% w返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  ( a$ R2 O3 T6 Q, l
mysql> select instr('foobarbar', 'bar');  
8 R( C" v/ _% L" Y1 D4 C! Z, ^  -> 4  ; i, a- v8 E# n
mysql> select instr('xbar', 'foobar');  
3 r- o9 @- D: j- V  -> 0   
, k( T0 q! P, H' d5 [7 i! Z. Z0 F % l8 W- J- ], R1 E3 k
lpad(str,len,padstr)   + {7 c0 R% q3 l) F, H, W# r
用字符串padstr填补str左端直到字串长度为len并返回  
, D" V1 Y$ w- I0 H% S, D7 ?, Umysql> select lpad('hi',4,'??');  
( h9 p# h1 q6 K! A  -> '??hi'
% U! v- {: \6 O6 P   
9 \' G1 s5 M* m' i. Mrpad(str,len,padstr)   8 P6 q8 a3 D. O" a
用字符串padstr填补str右端直到字串长度为len并返回  9 d8 H8 v2 Q# C" q
mysql> select rpad('hi',5,'?');  
. {7 M! W# T% H8 A+ s  -> 'hi???'
/ C8 ~- D9 s/ w* P   R+ e' M" u& i9 M! u/ L: J# B
left(str,len)   4 ^" [- Q- |7 d* _5 u% ~1 s
返回字符串str的左端len个字符  " v" {: _, q/ [/ P
mysql> select left('foobarbar', 5);  0 b: l% D! _- N0 h$ h. X' ~* v
  -> 'fooba'
) R- i% T  E6 f& q2 h. L# J
: ?/ G3 _8 e9 Z, w! ^" v' ?right(str,len)   # g8 Q% v) \% I2 M9 u# O' p3 s
返回字符串str的右端len个字符   
& L$ ~7 _# C) Y( c9 Z7 y' J0 g  Amysql> select right('foobarbar', 4);  
) ^6 ]5 C0 ~8 g' f, ~  -> 'rbar' 0 p; S/ z& o% Y+ H6 e8 {

( E. {5 o+ y6 v  Vsubstring(str,pos,len)   4 C# j4 B% ]6 j
substring(str from pos for len)   
* G8 T. K& p1 C( E+ Zmid(str,pos,len)   # M- S3 q) j7 e  j* _
返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
( I. l( K1 |$ J" N  -> 'ratica'
6 L% }) Y3 }& E# d' q
3 S1 k) o6 m4 U# ], Q% ?substring(str,pos)   
0 N5 G" t8 m  @. xsubstring(str from pos)   
+ G( R; ^# c7 c6 Z! N. S返回字符串str的位置pos起的一个子串  
( V+ z3 `$ H1 }9 F5 xmysql> select substring('quadratically',5);  " w. T0 ]1 r3 ?+ }* Y
  -> 'ratically'
/ \( a  v. U. M# j+ s: imysql> select substring('foobarbar' from 4);  3 O/ k% n( s2 E' ~7 m
  -> 'barbar' ) L/ M9 l$ ^$ d9 {2 I' x; {
$ ?8 x. r2 n. E
substring_index(str,delim,count)   
2 N+ {* l1 X/ r& e4 H, Q返回从字符串str的第count个出现的分隔符delim之后的子串
6 c4 X; s) V- S/ h( T/ }' [+ t9 O8 C(count为正数时返回左端,否则返回右端子串)  - U3 e; |! H( H8 I; b# k8 R
mysql> select substring_index('www.mysql.com', '.', 2);  ( ]0 J% v# u9 V+ v* ~2 \+ ^
  -> 'www.mysql' 4 F0 J0 N3 i) ?; M) s- t' r6 R
mysql> select substring_index('www.mysql.com', '.', -2);  0 g& X. n; t; v
  -> 'mysql.com'
6 ~4 ]8 ?" I+ o' s* p' U( {4 |# s
  s, C+ L$ [/ R$ \% a5 b+ zltrim(str)   
0 A; F3 v6 V, S) r返回删除了左空格的字符串str  
( f$ |& a+ T8 `6 G( }" }, Mmysql> select ltrim('  barbar');  
. w6 {. I, m2 E  -> 'barbar' ( L( t3 O+ V* L7 A

! q& V' J) B' Z" X/ S# C' mrtrim(str)   " x9 g' l' a" s" @# h
返回删除了右空格的字符串str  " q6 ]- N* F3 D+ l/ k" I
mysql> select rtrim('barbar   ');  
  C' M+ Y3 {2 M9 L  -> 'barbar'
3 p' o0 w$ j# }( y9 i2 Y. C& G( L : F  a* p5 }) Z% X7 \1 d& X
trim([[both | leading | trailing] [remstr] from] str)   + a  w, v6 p/ l: I& @  B
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  " m' Z3 i* I# I7 h
mysql> select trim('  bar   ');  8 ~8 z: I% t) m6 D" [; ~; a
  -> 'bar' . a3 ~& q/ r2 E  X2 E8 Z* Z, |
mysql> select trim(leading 'x' from 'xxxbarxxx');  6 U  t; S7 h% _
  -> 'barxxx' 5 h# h! R8 I5 f! b
mysql> select trim(both 'x' from 'xxxbarxxx');  - h2 l9 b0 ]; p- ^% ^& z% N7 Q5 w' p
  -> 'bar'
, H* |7 b3 [* r7 C8 z  y# Dmysql> select trim(trailing 'xyz' from 'barxxyz');  
) ~) I: O7 L' f5 Z2 h; Q; [  -> 'barx' 7 U% P+ ?& C& K
' `# |1 s0 f5 m% ^: N/ Q
soundex(str)   
' a& p2 ^4 p9 t" I* r4 O返回str的一个同音字符串(听起来“大致相同”字符串有相同的
1 u5 K$ v) D; b; K1 c. v5 ^7 i同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  
+ u! M* U# o7 V0 cmysql> select soundex('hello');  
8 O* Q( g# }7 X1 i' [$ O7 M. W  -> 'h400'
% A. x+ G, m, j* I" Mmysql> select soundex('quadratically');  # t) F7 l. }& [/ y+ g5 @5 q
  -> 'q36324'
2 j7 o2 c4 p1 T   
5 Y" F" u" _9 e( s" G. aspace(n)   # J; k! t0 H9 D! o" ?- S6 x  I
返回由n个空格字符组成的一个字符串  
: L5 y4 C# j0 r6 s, q. Qmysql> select space(6);  ( @1 F  B" o& O0 X4 p3 l6 x
  -> '      ' 7 |2 O+ E# [4 R! s
   
! b5 g3 Q. n" v8 K' ]replace(str,from_str,to_str)   
) C& q: \/ _5 U3 H用字符串to_str替换字符串str中的子串from_str并返回  
( P2 L% h6 Y0 U2 _mysql> select replace('www.mysql.com', 'w', 'ww');  3 T/ ?9 M# g" [$ F6 s5 p: n, H# n
  -> 'wwwwww.mysql.com'
' W5 {5 X# |; [; J / U0 @3 P0 h0 k0 G3 X7 g/ J1 \
repeat(str,count)  
3 @; Y  R$ `& k( p2 }$ Z6 K. w返回由count个字符串str连成的一个字符串(任何参数为null时/ ?" d. ]4 C. a1 ?& F
返回null,count<=0时返回一个空字符串)  7 w  k" `/ C. W( r# L8 X
mysql> select repeat('mysql', 3);  
; b: r7 o6 K$ h  E* Z- n- N  -> 'mysqlmysqlmysql' 2 ^8 t9 n$ `  }1 f5 i- e* s1 O6 R9 J' {
   
3 o+ q8 `- w0 @8 ]6 p$ d; z7 v5 S9 jreverse(str)   
; u9 r+ x6 [* U0 M2 c颠倒字符串str的字符顺序并返回  
' I6 j6 B" i3 s) r. H/ dmysql> select reverse('abc');  $ O' m' f( p. d) ~7 K7 m0 ~
  -> 'cba'
. d5 Y# a  N2 W' o. _; t/ p$ a" `! { ( r6 K; a6 R3 j* x+ F) W/ \6 R
insert(str,pos,len,newstr)   
( @5 h$ M" |' k; a9 W9 T' J6 H把字符串str由位置pos起len个字符长的子串替换为字符串
4 c8 y2 O# e  c' i9 [" M/ P% t% F2 n7 Pnewstr并返回  0 O# l7 v3 f8 C$ z
mysql> select insert('quadratic', 3, 4, 'what');  5 W1 l+ C5 ]3 }2 u
  -> 'quwhattic' 9 L5 t* [2 e& |* j
& T! q; J+ |% Z" D$ k7 V( I9 r
elt(n,str1,str2,str3,...)   , Q* S( S0 F; |% `
返回第n个字符串(n小于1或大于参数个数返回null)  
0 e3 q+ w. F" Y, H1 _mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  : {1 g3 }# h. e' T: N: K% u
  -> 'ej'
  H* H6 `& {8 u' |) X  M; Xmysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  
3 H# d# V8 a+ D  -> 'foo' " \. U! }8 ~8 c7 B. P
% V- K% H+ R  s9 W# G
field(str,str1,str2,str3,...)  
. K( p% k) f( Y0 k* B" n2 U" }返回str等于其后的第n个字符串的序号(如果str没找到返回0)  $ g4 @' l/ ~/ P* P$ t1 o4 t* u
mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',5 u* |' H4 n7 P) s5 H2 w
'foo');  - H# h. u5 t* }, W% Q
  -> 2  
8 O  x" y: \, O- X5 b1 Y$ emysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
2 z- m$ w2 }5 X" Q, [9 Y'foo');  6 l6 p  m) Z' _5 Q
  -> 0  3 Q1 {* g8 J1 h6 h' A5 J% C

1 N' e0 F9 P$ Q+ y+ R2 B: Ifind_in_set(str,strlist)   " ?) @9 i  m  L9 C, p6 a
返回str在字符串集strlist中的序号(任何参数是null则返回  p7 |) I; A# n$ R
null,如果str没找到返回0,参数1包含","时工作异常)  ! P; Z! j$ V: Q
mysql> select find_in_set('b','a,b,c,d');  : u1 ], m4 b# S7 n6 A
  -> 2  
4 _9 {, W% x! F" |, `   - ~7 d) n" E' I9 }4 l
make_set(bits,str1,str2,...)  3 j, d/ F( ?0 A! A
把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
2 j1 A2 x3 S7 N& d8 f, P: H$ |位置的字串选入字串集并返回(null串不添加到结果中)  
6 {* T4 {! i" h0 L0 Qmysql> select make_set(1,'a','b','c');  
' Y; ~( C" v% ?& S$ j/ @  -> 'a'
: d( F$ H" y1 mmysql> select make_set(1 | 4,'hello','nice','world');  5 Z3 c8 C3 g# Y" r% a2 I. P
  -> 'hello,world'
) I: r+ ~: d7 ^# Y% ^  {, kmysql> select make_set(0,'a','b','c');  
0 y& _( f/ i$ U  -> '' - p/ @" R" k! d

* p! T2 v( P! a5 M4 eexport_set(bits,on,off,[separator,[number_of_bits]])   2 X# L" A$ Z, ^
按bits排列字符串集,只有当位等于1时插入字串on,否则插入8 m( M5 d1 U+ v
off(separator默认值",",number_of_bits参数使用时长度不足补06 U  X7 }/ s9 W  W+ l
而过长截断)   3 h% E( |/ \3 j6 D
mysql> select export_set(5,'y','n',',',4)  
5 F1 T9 {, M) v& T  -> y,n,y,n   
" j- j1 Z. J3 _3 p, B9 |
, L( N9 D! T- D4 m4 w# Vlcase(str)  9 S+ s" Y0 b: b0 B" a6 o2 X, N
lower(str)   ( X" V3 y9 \5 v/ E5 ~. ^0 U0 U6 g' t
返回小写的字符串str  7 W0 [1 k- p3 W, H
mysql> select lcase('quadratically');  
8 R+ R6 ^! i7 a& U3 M( ]  -> 'quadratically' 4 w5 i: i: a( e5 q9 u" R2 S6 F6 g
   
3 T% c; k# |. pucase(str)   8 _3 `4 i# Y7 h% K8 p
upper(str)  
$ B- y8 j. Q. H9 U3 x7 Q/ F$ V0 l3 b: d! \返回大写的字符串str  7 E' _) l4 |" T+ g
mysql> select ucase('quadratically');  , v; `& Y) f+ p( j
  -> 'quadratically' ( |3 J4 l3 t( P$ E# ?" Y$ Z

" v" I+ _) c  P2 qload_file(file_name)   
% r: g" b8 H# U' k0 [读入文件并且作为一个字符串返回文件内容(文件无法找到,路径9 J3 g5 h6 Z1 B. m
不完整,没有权限,长度大于max_allowed_packet会返回null)  
0 r1 d7 t. ]/ T9 n" N1 Gmysql> update table_name set blob_column=load_file3 n1 S5 G% N1 z5 ~# M" F5 N
("/tmp/picture") where id=1;  
, g( }; }# m, o, |" b
5 k* R9 J* d: M% J- t$ t2、数学函数" R, N- Y6 E6 x8 p8 l! r2 d
abs(n)
* J) g: J- m/ T. |4 G% [* q1 }返回n的绝对值  
) z1 O( T" z& K  Fmysql> select abs(2);   
" ~* H$ F' \& ]! H9 A; X8 X5 d  -> 2   
# E" D6 u5 A! M& y. rmysql> select abs(-32);    9 g6 }% C! k- W  U+ r) Z
  -> 32    * |# r5 m  B* W+ p. @; K
   , F  K4 u0 }! V
sign(n)  
$ p% y1 H4 Q$ t' O返回参数的符号(为-1、0或1)    _$ ^: `% \1 b) {3 ^
mysql> select sign(-32);    + @5 B% x8 M; I. ]
  -> -1    " r& E/ p0 A5 P# i
mysql> select sign(0);    6 B) I' [& v* I7 o
  -> 0   
1 V1 }/ w* {8 p. imysql> select sign(234);   
/ \) t! s. O. L) v2 o  -> 1   
; V  s) H- r% W7 Y / Z, C6 a6 U: l+ M' z& A
mod(n,m)      a; H. ^6 d( D6 S& R- C$ j
取模运算,返回n被m除的余数(同%操作符)   
7 I& d3 Q' k2 N* xmysql> select mod(234, 10);    ' H6 ?) ?; v/ M4 Y1 F* n2 X. r
  -> 4    1 r8 ]% o1 V% o! C5 I
mysql> select 234 % 10;      t7 |% H, B3 K# \: {$ ^4 i1 C
  -> 4   
$ R7 j" i/ a2 `: i4 H/ R' nmysql> select mod(29,9);   
/ q( S" X2 }7 ^8 l2 X  U  -> 2    ) O# \9 Y) f  F

' [8 A5 C. n- [* r/ V8 Gfloor(n)  
9 V& x' I9 R* T6 ^4 I7 [返回不大于n的最大整数值  , _* o. a# ~* g; B0 b% I) ~& R9 D
mysql> select floor(1.23);    " ^4 n1 B- L( r$ B0 c' T1 h
  -> 1   
- f' w" y8 m' k. h3 A/ u7 gmysql> select floor(-1.23);   
" U% V9 `2 D! D  -> -2   
& z' b' Z( A; j8 L% B, \
/ O# A$ C4 }$ ]* L  p- Q3 Vceiling(n)  / `7 x# F0 M! k2 M7 V1 i  z
返回不小于n的最小整数值  
- x2 c" z; \8 Q$ t) {6 J, z# Z' N. ~mysql> select ceiling(1.23);    ) q; n& r7 L& T% U+ K( V3 i
  -> 2    ; X8 J, l  L( J. q7 q( Q3 e
mysql> select ceiling(-1.23);    5 c( b; H5 i, n! b5 d) Q
  -> -1    + `, S  u' d0 V0 R, |/ N& {3 m( ^

! \' Y7 g! v; tround(n,d)  
% d' Z: c) f, t返回n的四舍五入值,保留d位小数(d的默认值为0)  - v0 H/ m0 m% q5 m; K4 Q6 W0 R
mysql> select round(-1.23);    5 G# C+ n/ b6 G/ ^4 W
  -> -1    : B% H" S$ I& i* \
mysql> select round(-1.58);      T% _1 R2 Z, l/ J+ i4 {' T, v" j
  -> -2   
: f# ]/ Y9 b$ x' z  hmysql> select round(1.58);   
' B& y, H1 Q( f6 l: C' T' [  -> 2    " ?4 O! e! H+ V+ h
mysql> select round(1.298, 1);   
; E+ g' A$ U6 [# Y+ P6 u  -> 1.3    ( s5 S! g" e6 e3 x: _' x% V; h
mysql> select round(1.298, 0);   
8 \, [$ i5 K4 p; c2 J  I  -> 1   
1 n* O( L/ L9 d2 B; R0 l $ b4 C% @7 R6 O2 \3 B( A* }, d
exp(n)  
5 M: j" u& t8 a返回值e的n次方(自然对数的底)  + B8 o  x0 Q* `) V* n. K
mysql> select exp(2);    2 j- K/ U" @$ l: P2 {
  -> 7.389056   
5 r* C0 `' ]& xmysql> select exp(-2);    4 p; F/ M7 K" S1 A! s0 X4 y' f# b; F
  -> 0.135335   
: g" Q9 n  l" [. K) x. B: `9 P
  N+ ?% ~1 {. h  d8 c* Nlog(n)  - w' Z1 L, z$ B
返回n的自然对数  
- m' p' B4 M( S2 m; E+ J# Qmysql> select log(2);    ( r8 H  [' [+ F( A
  -> 0.693147   
, }0 V" p( e* Q2 Y  amysql> select log(-2);   
, ]6 M. P: G9 @+ i9 q0 @& |- [  -> null   
/ ~5 r$ t5 X; N5 G4 d4 _; l. S, r & ]3 p( S% H- G: h& f: n, `
log10(n)  
  Q: X6 j- Y3 q/ D* O( h6 g8 x# S$ Q返回n以10为底的对数  4 S7 q+ J- e+ E$ }+ e! {4 ]7 l* l
mysql> select log10(2);    $ ?4 u' ?! R5 ?; Z: u
  -> 0.301030    * \) t6 g3 c: ]( N9 ]  R6 R" v) \
mysql> select log10(100);   
! w4 [5 S$ n% G7 Q8 M4 e" ~! v. T  -> 2.000000    - p1 O7 B: ^* }3 a! n0 A# ^
mysql> select log10(-100);   
& c8 J, s! Z1 F% V( J  -> null   
+ U/ X7 |6 c) ?- h2 D . R  h8 H7 [4 k: d% t, D
pow(x,y)   
: _& r* G5 _9 g7 qpower(x,y)   
$ ~" E! T9 R& V8 i, d* i! { 返回值x的y次幂  
0 q8 V) e5 v' @mysql> select pow(2,2);    2 n* U1 `/ D" X$ j
  -> 4.000000    4 p% L4 V: J" P* l# U* r
mysql> select pow(2,-2);    . J4 T9 L* R  R0 q& Z3 b- D
  -> 0.250000  
  ]2 i& E  e  S" P: f( {2 W5 E$ D, y: s2 B: G7 n1 c% q* e
sqrt(n)  / Z0 _/ R& \: k4 C
 返回非负数n的平方根  
0 {1 S% O& N+ m; ]; fmysql> select sqrt(4);    ( Q  c% h, H( J* ?3 c
  -> 2.000000    ' h% v! d. V9 i" Z
mysql> select sqrt(20);    6 C: y9 {) s" a; n. w
  -> 4.472136      P" C6 r: C" c" |+ u0 F) u! S

9 h5 |6 j8 n. _pi()    6 i7 z; e  i! L9 h. k
 返回圆周率   
$ a9 p! |+ L0 N  Rmysql> select pi();   
  z+ K: f# J! y0 Q, V  -> 3.141593    : H) {  H  q0 H0 Z# g. P

$ ?  Z. B, F: l$ z1 {cos(n)  / f: M% L; A" a- b9 ~  ?* S% |, R
 返回n的余弦值  
! s& z$ p; ]3 B- R( Imysql> select cos(pi());    z$ y% j" a7 \2 w1 K$ n* P2 G
  -> -1.000000   
. S. n9 @3 p$ ~3 [& c 1 V# q! L, g: a4 [/ e5 c( o
sin(n)  4 b) v& v' A/ E8 [" Z( z1 ], L
 返回n的正弦值   
( B! a3 [  M" Pmysql> select sin(pi());    ( b  F% L& {5 \
  -> 0.000000    / D7 U8 A4 ^7 B; }' c! n
& \/ k5 e5 ]+ V
tan(n)  
' m5 |6 Y+ a/ N& v: T1 o2 z返回n的正切值  
7 F5 d! E0 z8 b% d! Omysql> select tan(pi()+1);    % {% Q% T- G2 e0 h  ^
  -> 1.557408   
* u) z3 p0 D$ x: D1 y3 Z3 a: ]
) T7 d7 `; }" b. E3 ^acos(n)  
2 q, y4 C; s1 D. s8 b4 x6 z$ S 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  ( P$ B# S/ S# O
mysql> select acos(1);   
8 i7 s. l) E9 B1 E& X  -> 0.000000   
: W9 |9 W- ?" m' w- ^mysql> select acos(1.0001);   
3 S" A8 m- u& D. O$ }. u  -> null   
- z* T: I* p9 A- a. t8 H* ]mysql> select acos(0);   
& O! S) n7 b1 t3 z  -> 1.570796   
# N+ }/ Q' B# z0 h; I" c
, R! w% t8 E: I( E0 Q3 A( ^( T  f- T# easin(n)  
# u( B( \# z% K* b  O' e* S5 t返回n反正弦值  
! b3 b! {4 Y5 g( k; g% |' C0 F- ]# z0 gmysql> select asin(0.2);   
+ z( T6 W) X  X3 Z  -> 0.201358    1 x' D/ L; H$ b& l1 R  H% [7 R
mysql> select asin('foo');   
, f; {% p; f7 {, W" V  -> 0.000000   
2 N0 K2 q4 Q1 s- @
  _) v7 i& F) U. c2 ]: G; ~atan(n)  
$ g- s- t8 h  I* u1 z' [* i返回n的反正切值  , A. E. H2 _( g+ w5 r
mysql> select atan(2);    ( n: b" ^: ^) q
  -> 1.107149   
2 m& |+ f: e% y  Tmysql> select atan(-2);    & |& E3 x, g% P, _$ ]3 u
  -> -1.107149   
) y. {* h+ G; p3 E9 g" [1 _3 datan2(x,y)    8 I  W. o; e8 |! R9 k
 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  
  I4 k7 U% x' m" Tmysql> select atan(-2,2);   
0 L5 G, U/ u6 z3 x' Y0 H* f4 E  -> -0.785398   
$ H& m. I  m  x2 ^  F/ Umysql> select atan(pi(),0);   
, m( Z& c: f' A# a. L  -> 1.570796   
: u8 S8 P& P7 y4 j/ S5 U - p8 G$ Q' D' D' y, e
cot(n)  
, z: c+ m, Z. k/ d返回x的余切  ; w7 M$ I' [& H; z, x/ [! P! ~
mysql> select cot(12);   
6 h6 I9 M% g. K% Z& @  -> -1.57267341    2 a6 ^  A4 q) U6 z/ O6 E9 I' Y
mysql> select cot(0);    . n5 c2 I& y5 t" \( B0 G! @- ~
  -> null   
9 u7 i$ A6 s+ H4 }" @4 W   G4 _& m; @- \& J/ F
rand()  
4 r; l$ G& @- n0 N# n5 grand(n)    
( S( j' K7 P( c返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
8 f: s, c  |  }" `3 ~
! a7 m) M4 |% k# j$ Smysql> select rand();    ' |' Q* F& e: t9 K/ a& l
  -> 0.5925    % d+ d. z+ l- D
mysql> select rand(20);    " `5 g, Z3 e3 H2 W2 f' U
  -> 0.1811    0 x& \6 P2 a7 }/ u; W
mysql> select rand(20);   
- I8 W, ?1 d& ]4 l  -> 0.1811    6 o0 p7 n' [: T$ L6 z
mysql> select rand();    ' N! r/ x4 t" a/ M+ i2 w
  -> 0.2079   
6 ]; l0 [% o& Y" W7 E: {0 p# fmysql> select rand();    , d4 b0 d4 j( x' r( u+ E. O
  -> 0.7888   
. \% t. B  P. ]; ~. v( V
9 U* K$ z* e! c& y+ S" j4 Ydegrees(n)  
# y; y7 v9 M! ^5 x把n从弧度变换为角度并返回  
8 ~  L# T, w1 C! omysql> select degrees(pi());   
5 H/ D5 O* F/ A6 y% @2 U3 n  -> 180.000000    # B% }& A' N* Z, Q( s

7 g) s0 O6 C" J3 s' k3 vradians(n) . o5 z+ M/ n8 k# b
把n从角度变换为弧度并返回   
( i) R/ v9 I1 L& i! \& emysql> select radians(90);    1 [* N) V" v0 ?; Y
  -> 1.570796   
0 U" M, k! g/ T; j
$ j$ s2 r4 g& \: C' f6 ?4 P9 htruncate(n,d)    $ ]7 u+ G- {' {* B5 {1 i
保留数字n的d位小数并返回  ; W' \8 d* V+ P) ^- o7 m% |* }4 `
mysql> select truncate(1.223,1);    0 T; f. g+ C+ a: _
  -> 1.2      S- p4 H( W3 U) H6 y' G- ~  q
mysql> select truncate(1.999,1);    : ]. M" Y: n; m" r
  -> 1.9   
, O1 c4 D5 O/ y5 J5 p0 smysql> select truncate(1.999,0);   
+ b0 x9 \8 Z- R  -> 1    % G) C- L1 @/ l4 _
: r5 x4 R$ P, X* m7 N9 Z  [
least(x,y,...)   
$ i/ M  O! r% c1 q; T, y; b% E% Y返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
2 ]9 S+ a) X/ C" ~$ ?: N# gmysql> select least(2,0);   
+ E1 Z, ], x! k! O1 V  -> 0    - Q, @. [2 L- E* U
mysql> select least(34.0,3.0,5.0,767.0);    " G, E; q' ?2 j5 W0 e7 ]4 e) D  R
  -> 3.0    % u* ^8 ^9 }4 |  e' j0 K  X- H( }
mysql> select least("b","a","c");      [, {" {9 ]' @, t6 ~: k/ }
  -> "a"   
, R. M3 |$ A6 n- [0 D
! F/ j& z3 }1 X$ o! l+ \- _& hgreatest(x,y,...)    ! l% c5 N" }1 b  A3 Z
返回最大值(其余同least())  5 T* b5 ]0 d. b; {
mysql> select greatest(2,0);    4 T6 e* d0 m. P+ y
  -> 2    ; R0 |$ o9 H8 \, j! P$ D: n0 m) e
mysql> select greatest(34.0,3.0,5.0,767.0);   
' S4 w4 |* m- e1 V  X1 }1 T  -> 767.0   
" C3 k7 W6 x5 O* n+ Fmysql> select greatest("b","a","c");    3 p/ b4 V8 U: t/ _4 Z5 y) \5 ~8 I1 n
  -> "c"     
3 ^1 u) H, ?# u1 {5 ^6 Q% I& r' d& @/ N8 Z1 s
3、时期时间函数 ! C& K7 ]: P# s3 h
dayofweek(date)    * Y# C7 _- V: P# a
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  ) X+ o( a3 W9 J( `
mysql> select dayofweek('1998-02-03');   
' ^+ [- v7 B' `  -> 3   
5 e: s" Z2 G% Q0 R( W  @3 |8 Q 3 `: E6 t1 y) q  s% U+ F
weekday(date)   
% s3 [$ k! G$ h6 z返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 2 s6 ]9 y7 ^% r6 T/ t
  " b1 [9 Q& {' i- g3 F: {4 q
mysql> select weekday('1997-10-04 22:23:00');    ) f0 m: I  A9 U8 s
  -> 5    + i+ j0 v* w) |1 E7 D/ x3 S
mysql> select weekday('1997-11-05');    0 L$ H) V0 V  k+ S2 ^
  -> 2   
: b" b# B( a' f( V/ V6 W
$ q' g' O2 T4 udayofmonth(date)    
- ?0 I5 D8 ?+ u% i- W返回date是一月中的第几日(在1到31范围内)    & r# y5 H# ]/ P1 W
mysql> select dayofmonth('1998-02-03');   
% o' @# Q. e, z( R" M6 x  -> 3   
" |6 ]$ E1 U) ?9 Q& y( n8 w- h ' V7 e! a4 F7 w2 `! A) q" e) f
dayofyear(date)    * [% N+ Q3 @' o5 T7 c
返回date是一年中的第几日(在1到366范围内)    + h$ p- R# V! s; x# k+ ~
mysql> select dayofyear('1998-02-03');   
% Q" F* o9 ~" ?  -> 34   
. S- ]9 L& G) s + ]4 s* b9 T9 c/ J2 ]( }# n) V1 D
month(date)   
# e; m; o4 X5 J+ i4 S返回date中的月份数值    % [1 V7 x* a  J
mysql> select month('1998-02-03');   
2 e& W, s  i, Y3 d; c  -> 2   
( y1 r6 t6 A2 y' V5 L6 c5 K   W% J% P$ S4 G, P$ k8 h
dayname(date)   
' j/ [6 X  m" J' O3 c8 B返回date是星期几(按英文名返回)  
& s: Y1 \; {$ Z7 B1 Hmysql> select dayname("1998-02-05");    , s  A& s8 `6 p
  -> 'thursday'   
: ?0 y/ l9 ]4 D 6 e1 {" G/ i+ j7 c
monthname(date)    
# Y, H' k; B+ O* Z+ N" e+ C0 i返回date是几月(按英文名返回)  4 J' H3 \; u% |: l+ G% J& `2 I
mysql> select monthname("1998-02-05");    / `7 f8 m- ]6 l$ Q+ N: R) o- D$ ^
  -> 'february'    9 E2 S! n) \- h. b: U4 r+ j9 a9 T1 J8 i
2 b$ |. G/ j' {: l' C4 f
quarter(date)   
5 X% e/ ?0 v" s# P3 J返回date是一年的第几个季度    % y/ Z/ o0 |8 Q8 f5 c
mysql> select quarter('98-04-01');    # Y7 I. d- J7 B' ?1 H3 P* x7 U
  -> 2    + o0 H. I  B- P- {

* o0 G+ I7 t. I1 Q/ Nweek(date,first)   
: e9 @, ]' q, |9 {6 n# @8 U返回date是一年的第几周(first默认值0,first取值1表示周一是
* K/ R6 f# `0 @4 z/ E8 A$ }+ O周的开始,0从周日开始)  
5 G0 @8 z) M6 N# h7 X( qmysql> select week('1998-02-20');   
9 P! q6 g& k! X& C4 \2 [  -> 7   
0 S4 p  D7 I* W8 \- m% amysql> select week('1998-02-20',0);    , J" W. m% d2 f5 K8 {
  -> 7    . N7 q7 b+ l; D8 ]
mysql> select week('1998-02-20',1);   
% ]. z9 u% V1 A" z2 m# M  -> 8   
1 `) D( K" `3 j; V" t- f
1 J+ v* \! I/ m9 V2 Q! J& E8 \year(date)   
+ y% {. d5 A0 i返回date的年份(范围在1000到9999)   
- z, s+ D" Y, M% {. m- Vmysql> select year('98-02-03');   
4 V" }1 A3 Y+ d  -> 1998    & Y$ O0 j$ p; X% ]7 p/ Y& J0 p

, c! [: c3 X0 X5 ihour(time)    
" R4 E' d6 c' j; {8 t5 y  G返回time的小时数(范围是0到23)   % R4 j. M  b6 D! ~' U
mysql> select hour('10:05:03');   
: y& k! r1 M" l% i* r  -> 10   
# R8 L8 C; b# W  k8 p
4 R# M( y; k7 X$ b' L# \3 Q# Kminute(time)    9 z) ~; @" Q( c  U4 j
返回time的分钟数(范围是0到59)   
$ G; g7 p6 c/ D9 c# T, J) i& P1 Jmysql> select minute('98-02-03 10:05:03');   
- [+ l' k2 t6 o* ?2 Y9 d  -> 5    # Y9 X$ c* C. s- Y5 F9 g9 u
8 x/ {( h; |! N
second(time)    
$ t7 @4 u& {* U" Q9 T返回time的秒数(范围是0到59)   2 ~, B- c9 r& k. j* X$ v4 f
mysql> select second('10:05:03');   
6 R5 f  X' I' h9 }) Q  -> 3    / `+ l& d5 s7 f" X
2 c' \; y* T9 N, |% v& l% p' O- p
period_add(p,n)    ; F" S* P3 f! L/ p+ S
增加n个月到时期p并返回(p的格式yymm或yyyymm)    : \1 F  |( K* [6 I5 o2 M
mysql> select period_add(9801,2);   
' Q0 F9 @) E4 L- {3 M: I8 P  -> 199803   
7 v" `& ?" P0 H) V& O  d
+ V" b1 }% A2 F; C2 T& cperiod_diff(p1,p2)   
( f8 u. Q  t3 @- C' i" j* D4 U返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  
1 E2 N1 m, x0 H- M, |% B: |mysql> select period_diff(9802,199703);   
/ ~% |' r/ @; Y9 e$ J  -> 11    6 ]3 e. Q2 {; Z% ?# o

/ q7 b3 s! I1 u% L8 wdate_add(date,interval expr type)  . b% U, B- L9 t) h% ]
date_sub(date,interval expr type)   
" y. ^# B/ F# ]adddate(date,interval expr type)   
7 M3 w' [: O& Q& ?0 |7 t, fsubdate(date,interval expr type)  5 P8 W: w0 \# n7 o) w4 c
对日期时间进行加减法运算  $ C9 C$ \9 ?% n  w
(adddate()和subdate()是date_add()和date_sub()的同义词,也2 l  Y$ B! F  W, f! J, h
可以用运算符+和-而不是函数  
4 C0 _3 K' a1 K" xdate是一个datetime或date值,expr对date进行加减法的一个表
6 w7 Y, \8 ~0 \& E0 g1 w3 i达式字符串type指明表达式expr应该如何被解释  
. k; B2 v* i$ M; l" V( y6 D [type值 含义 期望的expr格式]:    D9 {6 P; U1 F+ a+ H
 second 秒 seconds    1 ~, \, h8 x+ ^! C! k
 minute 分钟 minutes   
$ t# M9 Q$ N% R7 [8 o hour 时间 hours   
3 ^0 o7 B; P2 k& O) [2 w day 天 days    2 P- |- i) p8 g8 ?
 month 月 months    9 N$ g7 Z5 p2 h! u# N2 d
 year 年 years    8 l; c1 j( r) q7 x# j4 u, ?
 minute_second 分钟和秒 "minutes:seconds"    7 A& G1 h& Z  R+ |' C% n7 w
 hour_minute 小时和分钟 "hours:minutes"   
5 H* e3 a/ f- o0 ~. x day_hour 天和小时 "days hours"    3 k- d" `$ a: Z1 l- M
 year_month 年和月 "years-months"   
1 T+ _" n' g! Y1 T. J4 |3 { hour_second 小时, 分钟, "hours:minutes:seconds"   
( s5 {% q! D' i# M9 V5 P% n day_minute 天, 小时, 分钟 "days hours:minutes"    & H8 S; H+ f% p! F8 Y
 day_second 天, 小时, 分钟, 秒 "days  ^; N/ C: T( J) u& X  K# ]
hours:minutes:seconds" 9 r8 p& I6 |2 T- v+ \
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个  ?* y0 C# q) w* g+ T4 r! s; m
date值,否则结果是一个datetime值)  
; j3 U7 B  |; U4 c  D 如果type关键词不完整,则mysql从右端取值,day_second因为缺! l4 Q8 f( v+ U' s% U
少小时分钟等于minute_second)  
0 u1 w6 S0 L; W 如果增加month、year_month或year,天数大于结果月份的最大天
% {, n( o9 K& C: _1 h2 s3 a# e. ]数则使用最大天数)   
5 g, V% m, Z5 `1 i. R3 P: X+ s" kmysql> select "1997-12-31 23:59:59" + interval 1 second;  0 I0 S/ I# l8 y8 `
7 Q0 d) ~' q$ `% ~! c1 e9 z0 Z
  -> 1998-01-01 00:00:00   
2 B+ j. }1 L4 zmysql> select interval 1 day + "1997-12-31";   
3 V/ n3 I3 W* }6 d7 W7 l  -> 1998-01-01    9 I% b4 W! K. H; p, H, u$ }
mysql> select "1998-01-01" - interval 1 second;    ' _9 y4 q  i. x9 ^, R5 K
  -> 1997-12-31 23:59:59   
& m/ r: v2 c& \( Z) mmysql> select date_add("1997-12-31 23:59:59",interval 13 k- c, V. _! ^' [7 ~0 g
second);    ( N3 O6 W$ F7 q$ ^
  -> 1998-01-01 00:00:00    $ y/ o. R& W, E3 L% a& C! S7 l% G, h
mysql> select date_add("1997-12-31 23:59:59",interval 1
- ?. K) O# J# |7 z2 A% \: Wday);    2 W- Y1 D. j9 V# ?- r/ V0 b
  -> 1998-01-01 23:59:59    . ^, L0 u! R% B( u; I: ?( U
mysql> select date_add("1997-12-31 23:59:59",interval& b4 m7 `8 C/ K5 y
"1:1" minute_second);   
6 |! e$ k+ Q. }9 n+ Z- S  -> 1998-01-01 00:01:00   
: b" w4 J* J. I; l8 e: V' @; Q% `mysql> select date_sub("1998-01-01 00:00:00",interval "1
, c. }, z% j- _0 B% l1:1:1" day_second);   
0 M$ a1 A8 y% |& u  -> 1997-12-30 22:58:59    # ^7 ?6 ^3 q. Y3 B/ g
mysql> select date_add("1998-01-01 00:00:00", interval "-12 X) Z3 _0 Q, |0 H
10" day_hour);  8 o3 u& u! q% u3 g9 z6 T! H
  -> 1997-12-30 14:00:00   
+ }7 A8 c2 o( W! ]  ^1 umysql> select date_sub("1998-01-02", interval 31 day);    1 g9 d2 e0 L8 b+ M# {
  -> 1997-12-02    2 l& ~$ t! o' R6 C! I0 }7 I  Z
mysql> select extract(year from "1999-07-02");   
8 H& S! Z; ^( c* ^! @  -> 1999    3 \& }0 G: o1 M7 x. L
mysql> select extract(year_month from "1999-07-02  _3 |: g& ^+ j( g6 B5 ^; l
01:02:03");    * ~7 ?. d  i8 v4 a6 A
  -> 199907    ( ]. b; O0 t+ r9 T$ t( o; K
mysql> select extract(day_minute from "1999-07-02
& c/ z6 u$ U% D5 d2 j01:02:03");    - Q; W6 R( Y- Z2 F$ k5 |
  -> 20102    6 v" R- }/ P7 x6 m

: v0 Q- p$ L* c' Fto_days(date)    0 f) y( m" I4 U, I
返回日期date是西元0年至今多少天(不计算1582年以前)  ' e/ ?: T) U0 ?/ r7 p4 G, B
mysql> select to_days(950501);    $ f/ r  c5 @; l. Q# z9 E8 B
  -> 728779   
/ ^9 a$ L3 j' r8 _  {+ H) o/ t! Imysql> select to_days('1997-10-07');    ! L2 z  @. ~8 g
  -> 729669   
1 V2 |6 _( @# Z& m7 M! N: r
' z' I# P8 ?0 Dfrom_days(n)    " u2 p0 V' c4 J$ _3 E' G7 R
 给出西元0年至今多少天返回date值(不计算1582年以前)   3 P1 Y+ l* U# L4 u6 p8 d: s# ~
mysql> select from_days(729669);   
7 _6 @0 p' O& G0 U9 w- N- A  -> '1997-10-07'   
2 r0 h3 R& P* o/ Q* M ( R* G8 d- z! E- q: y
date_format(date,format)    8 u$ L/ t) ~8 L( K1 }! F4 T: [
 根据format字符串格式化date值  * n. Y3 z: |, Y0 N5 C
 (在format字符串中可用标志符:  
# |# B( M0 `) o/ } %m 月名字(january……december)   
8 D; c, R; v0 I( \ %w 星期名字(sunday……saturday)    : o0 b; h# q, T) D. }. p/ G- n
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    ' F' S* E8 V7 V; |
 %y 年, 数字, 4 位    $ U) v# _: J4 Y3 u( h/ \' Q+ B$ Q
 %y 年, 数字, 2 位    # Q# O; u2 x' p8 Z1 W: N
 %a 缩写的星期名字(sun……sat)   
) B$ g& h9 R# c8 v2 Z %d 月份中的天数, 数字(00……31)    , o3 H; s) e4 v; D& e/ g" j
 %e 月份中的天数, 数字(0……31)    9 r* p5 r* x( k, a& b! r+ c
 %m 月, 数字(01……12)    0 a/ ]' K! d+ r. P4 C
 %c 月, 数字(1……12)    ; [! S- z4 M, h$ I, m% R
 %b 缩写的月份名字(jan……dec)    5 ?" S; \) `- \( K& P5 Q1 s, P0 O
 %j 一年中的天数(001……366)   
- F) Q) m" A9 M. } %h 小时(00……23)    $ k5 o. Y. \$ C, j2 J" L( ]/ A5 l
 %k 小时(0……23)   
. j; ~" P+ Z2 q, A5 d8 m %h 小时(01……12)   
8 B$ t6 P0 @0 {" s" `( R %i 小时(01……12)    8 ^& @8 Q; ~5 q  _) j
 %l 小时(1……12)    5 x: V' d( R& d4 X9 e. Z1 f
 %i 分钟, 数字(00……59)   
8 o5 Z; O5 x( s# D8 H6 f %r 时间,12 小时(hh:mm:ss [ap]m)   
1 v8 U  a* E- E2 ]: F  J* t %t 时间,24 小时(hh:mm:ss)    - ~7 k* A7 d) J  m
 %s 秒(00……59)   
; y! F1 F% |* Y2 R& K %s 秒(00……59)    . g  Q1 I+ I* ^& c3 G9 x+ c+ t
 %p am或pm   
( K8 a7 X3 I3 z' j. e %w 一个星期中的天数(0=sunday ……6=saturday )   
% [! H( e. h( j8 Z0 L7 x# A9 e8 a) B %u 星期(0……52), 这里星期天是星期的第一天    % [  K2 v% `) m* W5 b
 %u 星期(0……52), 这里星期一是星期的第一天    3 K5 V" b# d7 B' I2 Z
 %% 字符% )  
! q' b. a1 z1 x, b; ]  ]mysql> select date_format('1997-10-04 22:23:00','%w %m %# l( U. G7 _$ i* p2 ^  k
y');    $ H4 [- j4 \) m& A$ U$ r, i
  -> 'saturday october 1997'    / W+ S, v  W0 R0 Y  l
mysql> select date_format('1997-10-04 22:23:00','%h:%i:%
- r- w; G' C0 C# l5 u9 K" rs');   
+ r5 N: a0 R1 p) G6 _  -> '22:23:00'    ) o" r4 I6 n/ Y7 y7 m
mysql> select date_format('1997-10-04 22:23:00','%d %y %a
; k8 E2 \/ t" X9 Q: h%d %m %b %j');    ) N& `3 H: r* f
  -> '4th 97 sat 04 10 oct 277'    1 {9 x9 E; s$ }1 `
mysql> select date_format('1997-10-04 22:23:00','%h %k %i
: c3 |6 _, d3 g%r %t %s %w');    0 Q- Q" ]7 F% c2 j8 O" {  u! d1 I
  -> '22 22 10 10:23:00 pm 22:23:00 00 6'    ) F/ n, \8 F7 t% T0 ?6 Q8 _

* L' M. |$ ~' p: o# f6 Ytime_format(time,format)  ! D& J1 D' c1 A& ~* T6 q
 和date_format()类似,但time_format只处理小时、分钟和秒(其
& C' f! A# D# D& d! O1 S余符号产生一个null值或0)  . m  u6 q9 H. `' r8 z

) d. Q! @5 ~5 F  z7 S- [' Ccurdate()     9 y0 `6 n7 Y+ C$ c2 F
current_date()  . U2 i& H! c/ J
 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所( Q+ r( ~) K7 b; [/ z4 I$ \
处上下文是字符串或数字)   
3 @- |& r" K% D' }* y5 J" Umysql> select curdate();   
# N2 x8 ]( Z$ `0 w  ]6 r  -> '1997-12-15'    % Y8 y4 p  W9 Z3 p! A
mysql> select curdate() + 0;   
6 [9 w( f; |1 j# T7 f  -> 19971215   
3 w+ f1 r& f. b9 d" c2 _$ d" Y ! W* l$ U7 `, \1 g7 _! S: b+ v4 W
curtime()    5 B* _7 ]( E& {
current_time()  , D0 F; m5 l4 y1 y9 V/ \- [
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
" e' \' b" P2 U. Z, b! Y下文是字符串或数字)      9 \7 r% E' Z# k  Z1 C0 A0 A. k
mysql> select curtime();    / J% j' _/ n1 r* b- R
  -> '23:50:26'    3 B- F+ I; P$ W
mysql> select curtime() + 0;   
5 W4 \. N6 x$ I" ~9 R  -> 235026    1 q9 F  n" Z! U0 a+ a, V

( \+ I4 L, ?* [, o* vnow()    ; o3 m: ~* Z$ `- ?1 h1 k% c
sysdate()    ' ?. R7 T5 Z  e5 k! d
current_timestamp()  
1 ^9 Q7 S6 a2 H 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
9 I  ~. u4 V; A. v) B7 b时间(根据返回值所处上下文是字符串或数字)     , r7 z- A% n* g1 q7 b$ }
mysql> select now();   
& _% d; h7 a/ W) ?/ K+ S$ |  -> '1997-12-15 23:50:26'   
1 _, h* Z9 f; Hmysql> select now() + 0;   
! X% ^- U0 ~, T/ P& z6 c  -> 19971215235026   
% R1 B- t& O2 o) } # W9 ]8 n6 V# x/ `- h$ k5 R
unix_timestamp()    9 K  F$ F! b( W3 Q$ s( K, y6 T
unix_timestamp(date)   
5 \* _( \+ M) o7 r* D, Y' x返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
1 Z8 A! v4 }6 C" j" \数,date默认值为当前时间)  * ~" X5 S+ E' Z& I3 P
mysql> select unix_timestamp();   
% N1 C+ B3 r; n! S. Z* p  -> 882226357    9 I- y. i- j, e. k! Y
mysql> select unix_timestamp('1997-10-04 22:23:00');   
/ }! Y* [* Z6 |5 |' Z3 L: S  -> 875996580    ; s; Y' e5 T& s7 f9 U; T6 L

. y% p; V) B8 w# O9 kfrom_unixtime(unix_timestamp)    6 j1 j: x3 C+ J& q! C4 Q$ v
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的( B' C8 ?3 P( _; z
值(根据返回值所处上下文是字符串或数字)     
/ B" f* m9 }$ |2 Vmysql> select from_unixtime(875996580);   
' a6 ]/ I' G8 W# {  -> '1997-10-04 22:23:00'    * }6 Y% U( `, c# A4 v9 K. _: h0 s2 y
mysql> select from_unixtime(875996580) + 0;   
; W8 h5 F) x$ K# C  X8 o3 \  -> 19971004222300   
" u/ C1 G* D# T7 M* w. T% j6 k
, P1 L& F) c8 o: S+ M7 h* P" ]2 gfrom_unixtime(unix_timestamp,format)    
" K; d- {/ L  |' |1 F以format字符串格式返回时间戳的值  
, F* U; f+ k! ^' g4 m' tmysql> select from_unixtime(unix_timestamp(),'%y %d %m %
$ T0 w; u2 Y, b, }  \! u/ [0 dh:%i:%s %x');    5 @# p2 ~" F7 p
  -> '1997 23rd december 03:43:30 x'    5 f& ~% h- U' \! w4 f. F5 I

! \! A5 R# G8 `, n7 {sec_to_time(seconds)   
+ U, y: c3 Q( Q1 m& f以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     & O) x: C% {2 @% G9 q
mysql> select sec_to_time(2378);   
9 `8 v' ]8 N8 `. I  -> '00:39:38'   
# H1 u1 |# D+ w; t8 @: umysql> select sec_to_time(2378) + 0;    ; |8 X+ W" k1 T5 S- L- R& Y
  -> 3938    $ l( r) k4 j0 j5 i
& U& Z; V! i3 B* c0 f% ~
time_to_sec(time)   
( h! m$ Z3 }- ~7 P1 B返回time值有多少秒    # s* k2 f8 J* d8 C# k1 }% Q/ p3 ^
mysql> select time_to_sec('22:23:00');   
6 M* `! F4 N" i% F+ c  -> 80580    2 A0 E6 \: y) ^0 x* P
mysql> select time_to_sec('00:39:38');    0 Z) G& O2 _' K  |, a% y8 L
  -> 2378 : t( {. V. [; Q+ E, `/ R4 |
2 Q" h/ m: l( l* U
转换函数
1 k+ M% V$ u; }$ G: ?; ~cast; H. Q9 U' {  }" f
用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]. F( Q) w# H& S
实例:select cast(a as unsigned) as b from cardserver where order by b desc;
" r! g1 g' b3 J9 B% [+ sconvert:
  }" s& K* G# |4 m5 j& Q7 R6 _用法:convert(字段,数据类型)0 X6 O6 @4 N+ d; k1 J5 i2 J5 }' F
实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

( @" q, k. C8 H
回复

使用道具 举报

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

本版积分规则

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