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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数
0 g* d8 V8 d. b& l+ n" N; x. Aascii(str)   
; Q  l1 A* O! \; c% I1 C* B返回字符串str的第一个字符的ascii值(str是空串时返回0)  
) z0 j% @7 x2 `$ i; l/ {/ umysql> select ascii('2');  
  S; x* x+ i; ]" N9 e& _  -> 50  
7 L1 A! O: }; d& b" T+ Qmysql> select ascii(2);  
1 k3 Y( x# b' S- \0 o0 S7 Q2 z3 l  -> 50  
% E2 p$ d' W$ q6 n% Gmysql> select ascii('dete');  
2 O/ S! W6 s- X3 D' z! [( u! M  -> 100

% K2 ^9 V* C6 C7 s# O/ @& xord(str)   
4 T7 [6 M8 t+ |2 b如果字符串str句首是单字节返回与ascii()函数返回的相同值。3 J# x6 V3 o3 C! W6 w& Q: g
2 ?# G- u2 s8 ]* [% ^( ^4 x
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  
- D0 ?- c* A$ a3 wmysql> select ord('2');  
7 x1 z2 m* ?+ x+ Y) k, v  -> 50  
, o4 A# {, O& _0 L   
. i: o  ^3 C' _' F; u( ~/ s  h! q, Econv(n,from_base,to_base)   * r0 t6 B8 y7 {& B, b- n8 O# E) p% D" f
对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  : w8 t4 O. }' D% H7 T( m/ N0 H
mysql> select conv("a",16,2);  
- F' P" G9 f  |+ Z* e$ P  -> '1010'
: y. N. ]4 P0 {1 C& T; b( Jmysql> select conv("6e",18,8);  5 k$ }, `. ~% ^, ?9 w: M* F
  -> '172' 9 p6 v4 V$ i& p$ a1 u  ^
mysql> select conv(-17,10,-18);  8 P! W0 q* H- t; J
  -> '-h' " ~, @1 F% G3 b) v" g; a( V; @
mysql> select conv(10+"10"+'10'+0xa,10,10);  
' |& h- [9 b8 @  f7 a- E+ t9 `  -> '40' : A  d1 d3 B8 p8 M
   
& x# ~  r/ }: k' E  ^7 t: mbin(n)   
6 _6 R/ K  ~  L( E% Q5 v把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
5 C6 Z' Y2 l8 F5 Xmysql> select bin(12);  " r/ ]+ F/ R$ T7 Y) x" K/ n5 ?" {
  -> '1100'
1 ~: t* \3 z1 p: R- J5 [+ i # j! |( p4 \5 p: E8 e0 N) c
oct(n)   
1 b1 S" \: y) R) c把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  8 N# a$ i: _! _# q: s9 E- t
mysql> select oct(12);  * D6 U& e, f; @" e$ x
  -> '14' 6 _! N9 `3 x" q  J1 T8 ^, h( A$ j
   ; w; |1 v( H3 r* w) _
hex(n)   
. U- b) j& g( k* i8 I$ s把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  : j+ {, p* ^3 O* z
mysql> select hex(255);  2 ~! n' F6 C, q) L3 ~! m
  -> 'ff'
" F9 D4 x7 D, h* d' h   
9 e1 y& M& o- S+ s2 o3 |9 S- ]+ Hchar(n,...)   
* o7 V/ Z  ?  Q返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   ( R. }; c, S$ h# C# }
mysql> select char(77,121,83,81,'76');  
; l/ D0 T* J5 {( p/ E- m: f( C  -> 'mysql'
, W; Q+ i! J/ I8 g/ H; I: n1 xmysql> select char(77,77.3,'77.3');  0 W, {9 m" O2 X5 G5 r" c! k
  -> 'mmm' 6 p" ^5 i- w1 l1 C5 j
   ! d$ O2 ?8 D+ Z8 C6 q
concat(str1,str2,...)  
, U* ?: a/ E  x& N把参数连成一个长字符串并返回(任何参数是null时返回null)  
" `" R% y$ o8 |0 F2 {mysql> select concat('my', 's', 'ql');  8 |. `9 K) C5 z5 |
  -> 'mysql' $ ?' N/ p0 _* _7 K- s/ \. ~9 i
mysql> select concat('my', null, 'ql');  
9 F! ~8 _8 `8 S$ K8 u2 V% U6 s$ `  -> null * Z1 f' q# p; v! E5 M9 z4 f/ w$ {& a
mysql> select concat(14.3);  # ~; x* W* V0 y: p
  -> '14.3'
+ U+ g: J4 C9 _) \7 [1 u" C
4 z/ [: k. \+ \length(str)   
+ d& p. ]) }& B3 O2 D& \3 h* Eoctet_length(str)  
8 w! P8 V6 h( Zchar_length(str)  $ G* a! b. m7 {0 s9 h
character_length(str)  0 }, M" j8 H: F2 k
返回字符串str的长度(对于多字节字符char_length仅计算一次)& c1 j7 V  U: G5 b8 M0 ^
mysql> select length('text');  # W" }$ ~! b; _% M3 M/ r2 ~0 [
  -> 4  # s# u# @4 D6 A  r/ I7 A
mysql> select octet_length('text');  4 b+ e  x6 [" q* ]1 l9 f
  -> 4  
' B" u0 u9 |$ H+ F, |+ T0 w7 y
; v8 y1 |& c& w! flocate(substr,str)   
/ r  \1 X( D/ v  q# [- ~! M  uposition(substr in str)   
! u7 Y  ?) I3 ~" o2 J! B返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
% P5 P" P! S; U$ ]7 \! |mysql> select locate('bar', 'foobarbar');  / ~8 N/ N& ]) X: L
  -> 4  ! u" D8 u3 i  C0 b/ m- T" k$ Z4 q
mysql> select locate('xbar', 'foobar');  
0 {. H  s7 ~% W) z  -> 0  
( o" d7 t& G/ E' J7 B+ f: @    & Z, t7 o# S) Y$ R
locate(substr,str,pos)   q* A0 F& V' D
返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  - V- R1 O0 I( m/ y
mysql> select locate('bar', 'foobarbar',5);  & }: Q% T2 z$ @" [. T1 l
  -> 7  9 ~3 O6 {$ i# l6 w5 B
: |% a" n+ K; q7 ?7 @
instr(str,substr)  
% e/ Q. U( g  }返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
& K" |' J' @% `) D8 |6 q$ @& Kmysql> select instr('foobarbar', 'bar');  ( |( T# l( ~+ ^2 j$ j$ C
  -> 4  * g* a+ Y7 F% N* f: b$ g( C
mysql> select instr('xbar', 'foobar');  
- h  d" O2 N/ k7 k: _' n  -> 0   7 e" Y4 p2 \) L% D

$ g8 E& t2 k0 s% P. h7 V9 `9 @1 Glpad(str,len,padstr)   + S% }& O6 P& r& c6 g( ]$ y
用字符串padstr填补str左端直到字串长度为len并返回  ; d) i2 a) v) T4 K# q
mysql> select lpad('hi',4,'??');  
0 y1 Q8 C4 H$ l4 h  -> '??hi' 7 Q, t, J& p+ n% V( t
   / V! Y( Y* f6 A3 P6 U* X
rpad(str,len,padstr)   , b, ~  \8 n( X2 N& v  B( z/ M
用字符串padstr填补str右端直到字串长度为len并返回  $ t! |4 s" N8 \2 U1 k
mysql> select rpad('hi',5,'?');  
! y2 i) G8 L" X4 S( c  -> 'hi???' 7 l2 E- ]/ N: k
7 l$ f1 x/ @3 s, n, g* M  F
left(str,len)   
/ \9 \3 E* R* S3 x0 H7 o# Y* e) [( c, a$ @返回字符串str的左端len个字符  
/ _2 Z/ `; `" V0 x" X: Emysql> select left('foobarbar', 5);  3 O! b5 B$ O9 X% G" \
  -> 'fooba' ' @4 b& `% W" Z8 F* K" b

1 l0 F) j9 V# l. yright(str,len)   
# k( x7 w( k- Y& U" C3 M  r返回字符串str的右端len个字符   # c9 Z2 {. d/ u5 Q4 f; k( A6 X
mysql> select right('foobarbar', 4);  
$ d' W3 x3 V' ~  -> 'rbar'   Y8 _& c3 |8 ^* u- i7 `& [
# X& e6 O, e6 E: E
substring(str,pos,len)   
& s$ V, ^2 R& L1 A3 nsubstring(str from pos for len)   4 _3 Z6 A* }- Q
mid(str,pos,len)   
0 A6 ]8 W3 v, }$ V, v- ]# p0 N返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
! V: y' ^: ?9 }4 W7 }  -> 'ratica'
9 v; p; N. t8 q5 L, K1 _
2 n: f7 U2 u! `( [* W0 Y0 Z4 O& Ysubstring(str,pos)   : ~: F0 G; Y: m' Z& U
substring(str from pos)   
0 O6 {# }  F* z3 D. s/ ?返回字符串str的位置pos起的一个子串  - f2 o8 d% q) j" f- |& c# D+ g
mysql> select substring('quadratically',5);  
% W9 o6 T2 j& \. J2 [, V8 {6 F0 o  -> 'ratically'
7 @  E2 r- L  _5 a( H( x1 ]mysql> select substring('foobarbar' from 4);  
1 V9 T/ r! E$ m( ]8 J  -> 'barbar'
4 O2 n3 o1 W& z, V9 l; \
: U! J3 j% @8 k1 }substring_index(str,delim,count)   6 J! f  C7 p( w; j
返回从字符串str的第count个出现的分隔符delim之后的子串  h4 r; S; [! `  i! t) \
(count为正数时返回左端,否则返回右端子串)  1 f3 N; n% |1 h# u
mysql> select substring_index('www.mysql.com', '.', 2);  
/ Y% [1 M- L8 w( R/ z. {! g  -> 'www.mysql'
: S7 `9 {) v/ Y& E4 w% p. imysql> select substring_index('www.mysql.com', '.', -2);  ; I! u, M, x* k3 v0 @. J
  -> 'mysql.com' - H+ V, p3 S# i8 J: v
; g5 ^, n1 V) r  U0 |5 `, D
ltrim(str)   
6 g, l1 D$ ^( Q0 C* _% R: `返回删除了左空格的字符串str  
3 ^, N% \5 [* g. D7 u4 g+ l  `mysql> select ltrim('  barbar');  $ Q) X1 @, c) x- q; F1 {# B: Z
  -> 'barbar' 4 ^* F2 l# ^4 B8 ~& D4 d$ H
3 D! R1 |1 Z! [2 M
rtrim(str)   # Z) D3 N; x* z$ ^; N, `0 G
返回删除了右空格的字符串str  & p* y- i) ~9 h) d' V
mysql> select rtrim('barbar   ');    y! z' a9 r# ~' m- p% k+ r
  -> 'barbar'
7 x7 q* {+ |- F  x2 V ! \! _+ V6 ]+ b% v
trim([[both | leading | trailing] [remstr] from] str)   5 T, p# c4 x$ Q6 u: B( {% h" o  z
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
; a4 U/ L- _" e& zmysql> select trim('  bar   ');  4 u" ]# y$ \/ H! P0 o' F
  -> 'bar'
" G! u; w5 S2 D, Z7 J$ O- k9 omysql> select trim(leading 'x' from 'xxxbarxxx');  * i4 B- ~5 v% O7 }' Q. w" A; d
  -> 'barxxx' $ K8 u5 w/ b  s: J! c9 V
mysql> select trim(both 'x' from 'xxxbarxxx');  
$ c, c: X8 q6 }3 J  -> 'bar' ) F3 u  g5 S4 J! ?1 K
mysql> select trim(trailing 'xyz' from 'barxxyz');  
% g. p3 O6 q. \' J. b5 [4 ^* u  -> 'barx' ) V' V/ b3 G6 x2 {! _; O
( K8 P8 C$ t7 v& d
soundex(str)   * a* ~) ?. b# v& v: r+ L
返回str的一个同音字符串(听起来“大致相同”字符串有相同的, }2 d/ L+ {. f5 c3 H8 a
同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  
9 n; T& n6 f2 p. L2 J5 {* Kmysql> select soundex('hello');  
) T  X& c$ j5 |# V  s  -> 'h400'
- E% w1 ^1 i. f# _3 bmysql> select soundex('quadratically');  
2 G$ N6 ?" _1 r2 L* z( z  -> 'q36324' 6 {6 }$ o0 z; ?' f' D7 L! S1 K
   8 X! B" n% c6 ]
space(n)   
( p" F& c. A4 z) [( b% r% d. s7 A. k返回由n个空格字符组成的一个字符串  : A) H6 Z, G. h. i7 w* }. I
mysql> select space(6);  , m6 T2 R8 K7 l
  -> '      ' - x! h) m. `% O5 U: o1 S, L
   2 w0 ]. \& P- q+ r' F
replace(str,from_str,to_str)   
# c0 m! n' T0 X( N3 H6 c2 R用字符串to_str替换字符串str中的子串from_str并返回  * s  [# h" x) p5 n) {6 R) V
mysql> select replace('www.mysql.com', 'w', 'ww');  
, r5 g' C3 z: S6 x  -> 'wwwwww.mysql.com'
! b! E5 u; w- @
+ d3 B( H/ N/ ?4 a  _) \# Irepeat(str,count)   : L+ Y/ B6 N1 i3 ~0 D; \
返回由count个字符串str连成的一个字符串(任何参数为null时
7 b2 _9 ~! C; a' R% r' i4 C: U" P返回null,count<=0时返回一个空字符串)  , |  C  D9 E& N4 h4 m
mysql> select repeat('mysql', 3);  . W' |, v1 S( m/ l6 E
  -> 'mysqlmysqlmysql' 5 l5 i- W% Z4 a
   
% P3 G1 y7 F( U% Hreverse(str)   
3 B0 G" L. }2 H% D) }1 W: X颠倒字符串str的字符顺序并返回  2 a8 Y" Z+ A4 V0 z; n9 a! K' \
mysql> select reverse('abc');  & M* T5 Z# `% Q( }
  -> 'cba'
6 k7 g  W# b; i& F) j% R* S
! C5 M  i# _: q: Winsert(str,pos,len,newstr)   1 l; u8 Z5 }8 A
把字符串str由位置pos起len个字符长的子串替换为字符串
+ B2 ~: e: N* `  g) Y2 rnewstr并返回  
! M) H6 U  A0 h  S0 a8 W$ Nmysql> select insert('quadratic', 3, 4, 'what');  0 F5 e9 K" Q% G4 J
  -> 'quwhattic'
9 b  \5 y4 V( A2 W   i$ E, O3 ]; O2 E
elt(n,str1,str2,str3,...)   , x& X7 e3 b- N+ r, e* x) v
返回第n个字符串(n小于1或大于参数个数返回null)  
3 Z% R% b" d+ X" {" _mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  . f7 M* s3 H8 |' o
  -> 'ej' 6 f% G% B4 ?8 N2 P- l# V
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  
" `* c  H. `2 F  P5 B  -> 'foo'
2 n4 V; m  `' R) n8 l- o
+ r" w, ^) O& k' t* F) d$ Wfield(str,str1,str2,str3,...)   # s5 ]! `9 [. q" T
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
, e6 H$ w9 g% q1 I1 N8 B) Jmysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
* ]$ I/ s$ z; d. }" ]. V1 T'foo');  
: f3 p# Z1 Y# ^, B0 n  -> 2  
0 L. I/ t* m( r- J' Z) z7 v7 c% ]mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',2 H  G. S4 n/ n
'foo');  9 Y( U4 R3 P- y5 m) W6 q0 b5 G8 _
  -> 0  1 G- f' E$ O" m9 u" I+ Q
; ]1 h$ `4 O$ J- C' c+ H: a: L
find_in_set(str,strlist)   
* y+ \6 S5 k3 J& }$ Z8 B返回str在字符串集strlist中的序号(任何参数是null则返回% e/ c+ q% k  j8 R
null,如果str没找到返回0,参数1包含","时工作异常)  
0 X6 v5 ~1 w! v$ z6 ?. R0 Wmysql> select find_in_set('b','a,b,c,d');  0 \' B7 `% @! r
  -> 2  
7 B, O. Q$ y+ u3 y# _8 b   
3 `% f% l& {( m: e5 P5 wmake_set(bits,str1,str2,...)  
( W, D# K7 |* i/ p把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应; [! H3 L" A0 M  h% f% F
位置的字串选入字串集并返回(null串不添加到结果中)  
! y/ e& g: C$ Q9 W; J7 W% umysql> select make_set(1,'a','b','c');  4 f1 \7 I$ a" G- ^
  -> 'a'
% X( c# X( @5 Xmysql> select make_set(1 | 4,'hello','nice','world');  8 q9 R5 T" H# V+ P: Z  R
  -> 'hello,world' 3 r& G' S! e9 d7 |2 o
mysql> select make_set(0,'a','b','c');  
3 y: N, x: E4 a  x; G  -> '' . i5 C' l% t& y1 i: P* M( \. \

! n: k9 m  L& a8 a- Gexport_set(bits,on,off,[separator,[number_of_bits]])   3 Q( y  T6 }, w) s  R
按bits排列字符串集,只有当位等于1时插入字串on,否则插入
$ G' P9 L7 i# m" D' W2 x/ d- Uoff(separator默认值",",number_of_bits参数使用时长度不足补0
! i/ `& M6 C0 ~  E% G% j3 Q而过长截断)   7 Q, K) `0 H5 L- x
mysql> select export_set(5,'y','n',',',4)  
- e: X) D' U+ a  -> y,n,y,n   
% W$ v; |7 b/ x & ?. X) V& H% x  C' a
lcase(str)  
4 ]5 r: N7 E- @2 Ylower(str)   / Y6 [  }5 U* j% p" k6 x& F+ Z
返回小写的字符串str  
) K/ U7 H- @  M/ X/ V6 E3 B! h4 ?mysql> select lcase('quadratically');  6 Y3 C" R* H) V4 h5 `
  -> 'quadratically' & C1 E' g8 C) Z% ]% s
   
! s, M& V6 B% \' J9 S/ p6 cucase(str)   3 }! y0 Z7 W5 }, D+ F0 n4 ^
upper(str)   ( {7 k2 Q0 K* }. a  v+ S2 p/ }* B0 G1 M
返回大写的字符串str  
9 p/ m2 d' M5 ?' m; lmysql> select ucase('quadratically');  3 L- g- e4 a  T  N8 {
  -> 'quadratically' - z0 o/ Z+ R) C0 l  T
' \/ l! J5 |9 _  p, \" x1 H
load_file(file_name)   
& B0 p( v' {# ]4 u$ G1 t2 Z: j6 Z5 m读入文件并且作为一个字符串返回文件内容(文件无法找到,路径
9 k' T3 }. w  O- N! G& Q1 M不完整,没有权限,长度大于max_allowed_packet会返回null)  
% v1 A1 Y3 ^9 ^$ x1 t5 l" ]mysql> update table_name set blob_column=load_file
& Y+ V' F: h0 x4 ^" Y("/tmp/picture") where id=1;  
* H# z9 S0 @. m' W3 ^- z6 e0 P( U 8 c& I: h! i4 f
2、数学函数
3 J) ~! q; ?, f+ d, {abs(n) $ B$ N7 y8 v% A1 g* b  u
返回n的绝对值  ! ?6 _0 C' X2 Q8 H# c6 l" q
mysql> select abs(2);    ) A- C) |, [5 h' h3 h
  -> 2   
" m( D0 Y  N0 [0 A( K5 T3 }mysql> select abs(-32);    / G$ U( r; M5 _4 M& c
  -> 32   
0 r# L' J; v' O1 |1 Z6 i   
# ^( x# v3 X, g+ C% e" c: zsign(n)  4 V$ ^4 i$ L/ ?' j# L6 [
返回参数的符号(为-1、0或1)  / V, o# X3 J: }! i6 \$ M1 v7 d! Z
mysql> select sign(-32);   
) H8 U6 k2 D: u7 K# g  -> -1    $ V( Q1 n2 L9 Q& h
mysql> select sign(0);   
( q7 z$ K" y2 G- K: \  -> 0   
% e0 o3 p( Z  f1 _% o; Fmysql> select sign(234);   
, E1 n0 s) m4 g" Z  -> 1    ! @8 g6 m5 _$ O7 e+ Y( Z# ?( r' V

3 j( X. c: i& L% imod(n,m)   
' t1 I$ j  r3 v取模运算,返回n被m除的余数(同%操作符)   
$ A% |: @$ [& @4 `" Q/ G, S; jmysql> select mod(234, 10);    8 ~& q- }9 f$ b" R! b
  -> 4    8 n, p4 w! O; o0 ?+ d* j6 H& E3 P1 Z
mysql> select 234 % 10;   
9 b* q% a0 H. e  -> 4    : H7 a! Y/ m; I8 v3 r! R/ \
mysql> select mod(29,9);    4 S% C% N0 i$ L4 Y* W& O! j( |
  -> 2   
7 j) P- T9 ]; c4 C& |3 Z- y
" m0 \: B0 y& }+ }' I9 u8 s* c, rfloor(n)  
6 ]: m: z$ Q( y8 m% U' Q# Q6 a返回不大于n的最大整数值  
+ a7 g, d9 u/ Q$ `  e5 ~5 @mysql> select floor(1.23);   
5 v% e4 Z. v1 {5 }  -> 1   
8 _( `7 t' g) y3 {+ Y) qmysql> select floor(-1.23);    ' Z1 g9 S1 U* v: Q9 k* e- d* C' [; j
  -> -2   
0 p( ]* M6 O; G2 F2 H0 v
0 h& R0 D2 O1 Q& uceiling(n)  
( I9 c7 \) p! |" I返回不小于n的最小整数值  
2 h; D" i& B1 i* r; imysql> select ceiling(1.23);   
4 g; z# d9 h5 j; b! N) N) F  -> 2   
8 h2 U2 o# [# n7 T5 p( k0 pmysql> select ceiling(-1.23);   
/ L" U' s7 l: h3 f  -> -1   
, [* d$ p; N) B& t9 \
+ p. g# ]1 S7 {: J5 e7 Lround(n,d)  
$ j6 @2 e* B+ J1 `+ Z返回n的四舍五入值,保留d位小数(d的默认值为0)  
- Z. N  G! f1 Emysql> select round(-1.23);   
6 h) ~6 `9 W* C4 p  -> -1    ( }  ]1 C- `& l) p2 p- Q! {9 q
mysql> select round(-1.58);   
& H* f: b  a3 D2 i0 J( K. r# s$ a  -> -2    5 w9 I* d2 l7 K& o8 z' E" H( y
mysql> select round(1.58);   
5 q( U6 z; L4 W8 w4 P  -> 2    9 ]' G  R# [4 C3 Y" V- e1 F
mysql> select round(1.298, 1);    8 D6 G7 {, M/ x
  -> 1.3   
0 p/ P5 A) _! O- w6 }' b% x( X+ \7 Amysql> select round(1.298, 0);   
# {& t6 m  I, ?8 E: K% A  -> 1    ! e0 X2 G& P9 S5 P( `/ P

0 l/ N9 f7 [2 s. `/ `exp(n)  + D3 I1 Q( b- O0 F0 e1 Q
返回值e的n次方(自然对数的底)  3 O: b1 N' n/ h6 K3 i$ N/ h
mysql> select exp(2);    / ]7 M7 l% ], u
  -> 7.389056    - M- r" M- _' p2 `* s- ?
mysql> select exp(-2);   
6 m6 q7 Z) W; q/ g7 R2 y- [9 t  -> 0.135335   
$ }+ @& S2 |0 P; B9 a( c! G& h% a7 [* F
6 y, A7 e/ y$ |2 L" \! Nlog(n)  8 L, b9 K3 {* V7 a
返回n的自然对数  
6 q2 l9 Y# s6 C1 O7 v; R# Y5 Hmysql> select log(2);   
/ ?$ A' x  z& m  -> 0.693147    : r! H0 K& L( m8 p# x
mysql> select log(-2);    6 v6 A9 q0 G' U5 t0 r
  -> null   
/ \8 H2 i. A3 ]; u6 R( ]
8 e$ W# O6 e: X. i$ l  g& glog10(n)  - k8 L' H! Q) R3 ^
返回n以10为底的对数  2 S+ D: G9 t! P1 n  Y2 ]
mysql> select log10(2);   
( p- D, U0 b$ t; z1 o4 e  -> 0.301030    % ?5 K: R: C0 T5 ~
mysql> select log10(100);    , V" z' U7 @4 G6 l$ Y* K2 Y
  -> 2.000000    2 \2 Y5 R5 m% ]0 I" @
mysql> select log10(-100);   
/ [5 p& k% G( U" P3 R  -> null    + t& I% H9 ^/ ^+ Q/ e6 t
% v* j' W, z2 X3 Q) U
pow(x,y)   
( w! |( [; q5 W/ c3 r9 J' Mpower(x,y)   
/ q' X; x, k$ Z, V6 M/ c! o 返回值x的y次幂  
, U; L! E8 R2 ]* `2 M/ J! Lmysql> select pow(2,2);   
+ I) y3 w' o# q' u  v& C  -> 4.000000    ' ~  [: v: f: o- E7 I% \# L1 R" j
mysql> select pow(2,-2);   
6 x. }  J9 o/ y: A- H1 b) }  -> 0.250000  5 f7 E# H- f( c

, U  \1 Q* b* ]7 p% vsqrt(n)  
% y: p  e2 T( D. I0 `- k 返回非负数n的平方根  0 b6 `0 q. y& d0 E7 H& h( f) Y
mysql> select sqrt(4);    + W6 _; I' \8 b7 i. {2 [
  -> 2.000000    5 G$ v( x+ _7 k# x6 \* c
mysql> select sqrt(20);   
8 u; y& G3 X* u9 B  -> 4.472136    ( h2 {+ Z8 I& D* w8 p2 f* a+ K

' a  U- e# d# [% M& R- _pi()    ) i( ?, }9 M$ U  z! Q
 返回圆周率   
- r" D) z" h* ~mysql> select pi();    . U( U, S( e$ ?# W( l
  -> 3.141593    8 s( G/ Q' B+ r! V% B

/ E# u' m3 V2 s/ T  [2 dcos(n)  & g7 z9 i4 g" i, {  W
 返回n的余弦值  
. j/ a7 W% a: P- e+ q/ f" _mysql> select cos(pi());  % x# C; s* N* \! \7 q% w! l$ K
  -> -1.000000   
  s+ Y+ t3 I' `( ~
. x! v9 ]6 |9 g6 J& R3 K3 b& jsin(n)  
& r5 Q3 x) J/ e3 k7 ]# Z 返回n的正弦值   ! p) K( @% ^! t5 p( N' \# r3 @
mysql> select sin(pi());    & T% @1 I. c+ M( `  \6 A
  -> 0.000000   
  _: ?7 O. P: A, B: z9 d + A7 r9 s& k; @" t2 t' {
tan(n)  * Q" S- z8 \, t% W; M
返回n的正切值  ' L1 `" K! z1 r9 T9 F  Z% p' R
mysql> select tan(pi()+1);    : a8 D3 O# C+ y* R
  -> 1.557408    8 W5 O$ x  [! ]) `8 t# n
" F7 D" [9 M8 M4 Y' J, Q& O
acos(n)  
6 X$ h+ q+ ]. V/ ~* s) Q/ w 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  
; }; v# Y2 k* A0 N. ~  L% ^mysql> select acos(1);   
# F+ I! T/ k. F* p! W, X  -> 0.000000   
, K* I7 Q& r5 k4 m$ a3 d6 Bmysql> select acos(1.0001);   
) G$ j; }! S5 Q! V3 f  -> null   
* ~0 e; U8 a$ wmysql> select acos(0);   
1 E/ X7 j5 F! [6 f' Z  -> 1.570796   
4 C: R' j$ C/ _2 s. Y; z: L : ?( A7 s! H' v, k0 y8 U  s3 n
asin(n)  5 A1 C! [8 {1 O! H8 Z) D+ ?6 J9 m" M
返回n反正弦值  
% p: @: ]6 o4 D; v' Q' I7 lmysql> select asin(0.2);   
- F5 }) j5 Q/ q( w4 F7 U  -> 0.201358   
* s8 X8 }3 B+ r) G; E* U9 v+ qmysql> select asin('foo');   
( T  y; E- H" L4 J8 y# `' n3 s& w( s  -> 0.000000   
% U, E+ t1 a/ e4 @( z% ]3 ^
) _' A4 q- F2 V+ W0 w" Z" M! b% Tatan(n)  - s8 A" b' {. z" P/ ?) j) k
返回n的反正切值  
$ {) C3 p) I; B( `* umysql> select atan(2);   
) n4 t3 }- K3 u* l/ o  -> 1.107149   
) `" ~: y# ?. K, Omysql> select atan(-2);   
, G* O! o7 y$ B2 w$ w: C: E  -> -1.107149    . E! l& u0 k  {
atan2(x,y)    7 M! e- T% v* `- ]6 k- ~
 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  / v  V7 A' t' k) d# k& W2 G
mysql> select atan(-2,2);    * f6 a3 J  u' I/ M0 S( s
  -> -0.785398   
  J5 C- S# n* K( Omysql> select atan(pi(),0);   
% n, C2 y, |1 a* R8 B, O) P7 Y  -> 1.570796    , ]  A% w& O1 H

1 ~, s9 x: `! \! Lcot(n)  : _7 p5 b# ^, y4 L/ s
返回x的余切  - v) Q- O+ H6 h# `
mysql> select cot(12);   
* _$ _% r/ S$ ]  -> -1.57267341   
, F. e) i  Y) V5 Bmysql> select cot(0);    & C/ f0 k" P. e- F/ D% R9 j
  -> null    / G. c  z5 `8 x3 [4 F1 I
# }9 _  K5 p/ v0 R
rand()  
! S/ b; r6 Z7 S# B( M/ brand(n)    # R4 C, q+ B' G* j8 R1 R' C
返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值) . d7 q" |& [; {. x( j/ [; N
8 |; r1 d, A+ H
mysql> select rand();    - X4 M. [9 D$ Y* ~$ t; U
  -> 0.5925    / V* m9 ~1 y' |- i
mysql> select rand(20);    6 C; B6 ]4 p7 w8 y  x
  -> 0.1811    % U- c6 O/ m) n, W7 p
mysql> select rand(20);    ' I+ s) F* ?2 ~7 o* i
  -> 0.1811   
. `$ O+ J5 h+ a: j+ x0 g: s! p8 omysql> select rand();    1 J- O4 q2 U3 S" m
  -> 0.2079    7 O2 S) `% h- A7 p3 N
mysql> select rand();   
: g# g( ~* S$ g$ X: w  Q; s' i  -> 0.7888   
3 v: d2 X5 e/ ~8 g4 N6 |0 p1 O % I, X) d4 Q" \# _5 x& A0 {
degrees(n)  + D! e1 D& _" K) ~# V) x+ f
把n从弧度变换为角度并返回  1 u0 z* y5 H4 X% }
mysql> select degrees(pi());   
8 u# c. H" v  B: L+ ~6 s  -> 180.000000   
. s% i3 b- g7 s3 r5 e3 v
# ~6 l# \" a7 l. D* }- W1 Oradians(n) 3 k$ [/ e7 K4 t, X; ^
把n从角度变换为弧度并返回   
/ H* l' l3 \+ g+ J4 x0 B6 Q: c" C& ?mysql> select radians(90);    " C5 c8 G$ b2 P; n% a9 V
  -> 1.570796    ; W" S+ h" ]" m3 j! x: v
; H- G& Z0 Q9 o* g
truncate(n,d)    & P' h/ U0 c# P& D
保留数字n的d位小数并返回  ( `, B$ T* C) i) o; O
mysql> select truncate(1.223,1);    # T2 Z/ k: X( K0 U/ l
  -> 1.2    ) K& j8 c8 S1 \  x4 W2 P5 [- F" C; p" A
mysql> select truncate(1.999,1);   
1 Q5 c4 A( t8 Q  -> 1.9   
+ R6 y% X/ l, P. f3 t  J2 Wmysql> select truncate(1.999,0);    + P  z9 ~2 \; r/ N
  -> 1    9 o. W! E) a! e- x

) i& l! b- [7 |# I+ o2 j/ n; L- rleast(x,y,...)    + g5 h4 i' X9 U* l
返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  2 L& T& J6 m0 t# ?
mysql> select least(2,0);    5 y6 t( y( P! a& M
  -> 0    7 k# ~4 K$ ]" [) |$ G
mysql> select least(34.0,3.0,5.0,767.0);   
# [3 Z9 e% @3 ?! j0 W  -> 3.0   
0 h9 d2 E% F0 U5 O1 E) Tmysql> select least("b","a","c");    2 b( O* w4 D. N7 n$ J6 q
  -> "a"    $ P  e8 E3 R# x
- t) m3 Q6 }9 D, Q; J" F+ `; ]7 [
greatest(x,y,...)    $ S* @# E. X5 V  U
返回最大值(其余同least())  
# @2 j4 V. I( }* {mysql> select greatest(2,0);    % n# p% ~& Q2 g/ h$ T  C
  -> 2    9 B5 S) s7 T9 x$ K' F
mysql> select greatest(34.0,3.0,5.0,767.0);   
7 c# x$ y& V" _! B  -> 767.0   
& j% c* i- F! `$ Z$ C" z7 |1 T) [% _mysql> select greatest("b","a","c");    9 |& `& \4 l: j) B0 ?" l* Z
  -> "c"     1 [- M" r5 r) Z6 ?- [2 P1 _# a, s& |
+ i! }* T! ^% P2 c
3、时期时间函数 6 n  I' L0 N' Z5 l. [6 e
dayofweek(date)      t1 A9 m  C: q/ ~5 I) D
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
4 H' I, B, w- c' U" T3 x& Q, V2 qmysql> select dayofweek('1998-02-03');   
+ B9 K/ |# J  m+ F0 Q$ L* _  -> 3   
" \7 v9 M1 y- T6 Z( ] + h' V( O; @$ J& k- p# j. m
weekday(date)   
- }: d$ z  ~( D1 p返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
6 |. a3 |8 C3 g( k% ~  ( M! {. K7 S# ~7 B
mysql> select weekday('1997-10-04 22:23:00');   
: ^) F2 l: K, C6 E% k) g  -> 5    8 Y: f+ N2 o+ H: {& G0 F
mysql> select weekday('1997-11-05');   
9 z( T3 E' t, R: s$ [# b  -> 2    : E$ L" K" r6 r; A) k6 i4 z' D0 |) O

& U/ A1 A) T8 @+ d( w% p& {dayofmonth(date)    1 Y! q; W0 D4 [" b/ s& [
返回date是一月中的第几日(在1到31范围内)   
' Q( [; a4 q+ y' F$ f. nmysql> select dayofmonth('1998-02-03');    ( H1 g. a# |$ u+ T, a1 I
  -> 3   
& I4 o- a; S* T: P
  T% A( w2 T1 }1 z* [, cdayofyear(date)    ' e6 I; _$ `2 f$ I% r! T0 A' t
返回date是一年中的第几日(在1到366范围内)    + S4 D  I6 z" u: z
mysql> select dayofyear('1998-02-03');   
% `" R# ^+ S5 u; ]* D9 o. ]  -> 34   
' f, h: _$ Y0 p  }6 G # B8 P7 P* n- z" r2 N2 S4 i$ h
month(date)    0 S7 w1 j3 P5 s& N; O
返回date中的月份数值    * K! ^4 I( t& F* O
mysql> select month('1998-02-03');   
" H8 D! M  f* o9 x  -> 2    5 y3 |5 [4 u0 ^2 ^& B
6 [/ k$ Q* V, O" W/ K' H/ ?$ J
dayname(date)   
2 `- ?* m+ O) G! C返回date是星期几(按英文名返回)  
# o9 B2 l. S) `9 ]' j. `mysql> select dayname("1998-02-05");   
( X; m: T* X. o, i  -> 'thursday'    ( ~& Y. e3 Q* I  q; H% d
/ H# R4 d' Y+ d: o2 u* V; q! C
monthname(date)    : `! }) l& a/ r) S
返回date是几月(按英文名返回)  " \2 D  C6 D: O$ J
mysql> select monthname("1998-02-05");   
) V0 b9 k1 u, q: u  -> 'february'   
( O+ B# A* g4 G- |9 [( A% C! y, N
' ]- m% x% b0 F! B9 c" l+ w! lquarter(date)    $ f5 P6 Y7 j1 f. Z4 J
返回date是一年的第几个季度   
, |: I# ]2 U6 A1 X3 L0 X" fmysql> select quarter('98-04-01');    ' J9 l  Q) N1 l/ {) D
  -> 2   
- M: l; G% x& }8 K+ m
7 H% p& P5 Z+ Z1 a" Nweek(date,first)   6 V2 V" I) A9 p/ c0 G$ x! a
返回date是一年的第几周(first默认值0,first取值1表示周一是0 e5 O: X( ~- P
周的开始,0从周日开始)  / {, k, B4 ]; E  z$ ~9 _4 h7 m
mysql> select week('1998-02-20');    + c5 q% o- h) s
  -> 7    " d8 l/ r: e5 v% A: ]
mysql> select week('1998-02-20',0);    " I( {  |5 B1 a7 d8 F$ x; N. \
  -> 7    9 t* R# z  Z5 k1 `! p0 P* L2 w
mysql> select week('1998-02-20',1);   
/ I8 s* U, L* r1 n+ F3 t  -> 8   
" |4 H0 H5 z% K+ z; H5 @
3 Z3 m$ v) r" g/ m! ^. M9 Nyear(date)      B) Y$ v' b$ ]! v" u* u, p  }' ^+ [$ y
返回date的年份(范围在1000到9999)   
! Q  @6 U/ u8 t* tmysql> select year('98-02-03');   
( a/ i. ~8 u/ l, e: S. D  -> 1998    6 t6 t5 T4 k& @# ~% f

% u! I4 ]: R% U7 B" [% ]" ]; Bhour(time)    
( @% u; O1 D# L) |6 Z. b6 f返回time的小时数(范围是0到23)   
! o) S$ L: l, c# Bmysql> select hour('10:05:03');   
1 M! ^/ h8 w  M& L# s  -> 10   
8 N9 D) x6 V- c* g. K , c( k' M5 M5 f; I7 P. u9 a
minute(time)   
" ~9 y3 C9 M- q, |; K返回time的分钟数(范围是0到59)    . b2 j# C+ B) |6 M" j1 h
mysql> select minute('98-02-03 10:05:03');   
. b; i: c  y1 S- p7 ]  -> 5   
8 H: h5 q9 |/ @: ^$ s* ^3 m ) _' k2 P3 v3 S3 m
second(time)    / U& c- O6 w. ?: H& u
返回time的秒数(范围是0到59)   
* d4 i" n; g% Y1 ]) K4 p: ?$ Tmysql> select second('10:05:03');    ! E& T, t& {: a7 }, G. Q
  -> 3    - g& p( i, i% z. n2 T/ \1 e" g

' b# ^9 n# n% C$ \! Yperiod_add(p,n)    + D3 @4 T" A$ m: K: G) Z1 L
增加n个月到时期p并返回(p的格式yymm或yyyymm)   
' P* u7 {* x! N  u, X" I' N: `mysql> select period_add(9801,2);    ' ]( m: n! z3 E- ?& w' k. V0 O
  -> 199803    8 B& J# f5 V7 `- s/ p5 ?
0 y$ x& d* X# E& H% g8 B7 O/ l, W
period_diff(p1,p2)    2 G: s' x* {5 ?% M2 J$ s/ D
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  
0 f* Y0 z( U8 p4 D9 z# `mysql> select period_diff(9802,199703);   
+ C1 M# d. V  _0 z; g: I! g( `  -> 11    0 ^2 a  I$ s4 `2 o. @) J& e

! N2 ]+ s7 R# D; K3 idate_add(date,interval expr type)  
0 z. {2 ?3 t9 U. S5 cdate_sub(date,interval expr type)   
7 s3 \6 x3 R8 k0 l- H: C3 Wadddate(date,interval expr type)    4 T, M8 k6 t: s- Q
subdate(date,interval expr type)  
& k% I, y6 Y4 f9 I/ `8 i' l对日期时间进行加减法运算  * n1 j3 D8 F8 N) C$ y
(adddate()和subdate()是date_add()和date_sub()的同义词,也
0 d! Q1 `5 S4 ~5 n可以用运算符+和-而不是函数  * v& U! q' E7 Y+ N7 V4 L
date是一个datetime或date值,expr对date进行加减法的一个表
2 \$ V: U1 x% ]( ?4 z" D达式字符串type指明表达式expr应该如何被解释  
" M9 \; F* A% e8 `* h [type值 含义 期望的expr格式]:  % ]* R' G3 A7 a) F$ h8 u
 second 秒 seconds   
* d# V0 R* \( |5 T6 z& n! j( s minute 分钟 minutes   
3 o& p+ n2 Y7 J. v( e+ k$ H. K hour 时间 hours    / R8 S3 V3 I4 S: [9 o4 \: h
 day 天 days   
% r. y2 [1 z7 `8 P  G2 I month 月 months   
! X9 C8 K' S$ V# K4 x year 年 years   
1 Y: {8 q. f8 f& [4 r1 {) X, I minute_second 分钟和秒 "minutes:seconds"   
9 F( z7 y+ L/ Z hour_minute 小时和分钟 "hours:minutes"    & W0 z- m1 {, `$ A6 Y  p
 day_hour 天和小时 "days hours"    * D) b) \  Y  n* y
 year_month 年和月 "years-months"   
$ x' i: O$ }% }+ b hour_second 小时, 分钟, "hours:minutes:seconds"    ' n( T7 j  n# M; i
 day_minute 天, 小时, 分钟 "days hours:minutes"    7 B" x# U  o, l4 x) d5 r" L
 day_second 天, 小时, 分钟, 秒 "days
9 J4 z  r6 e2 z! khours:minutes:seconds" - x9 z' Z9 ^7 k
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个
3 I6 i6 }! K: n! G* P+ ~# k9 l" Ndate值,否则结果是一个datetime值)  
! e  e5 s4 M* @8 ` 如果type关键词不完整,则mysql从右端取值,day_second因为缺; W5 s7 `' m1 ~$ u( P/ C4 h
少小时分钟等于minute_second)    K" [! @, B, t9 T
 如果增加month、year_month或year,天数大于结果月份的最大天
" g. z- V2 f) Z% v. F. X数则使用最大天数)   
$ T9 s8 N# ^/ ^/ x! wmysql> select "1997-12-31 23:59:59" + interval 1 second;  
' Y+ d8 ?) F3 |/ }5 {9 D+ y / l7 f9 ~; A5 c, i1 _# c7 n
  -> 1998-01-01 00:00:00    # u/ s6 A+ e- _) r
mysql> select interval 1 day + "1997-12-31";   
. @) G- U: U' ^# R+ e9 {  -> 1998-01-01   
3 }  t* m$ g6 J4 Z3 ?5 I9 J1 imysql> select "1998-01-01" - interval 1 second;   
- y9 x( l- w) F* ]* h  -> 1997-12-31 23:59:59   
0 N9 l; L$ F  m7 ^9 H6 ?mysql> select date_add("1997-12-31 23:59:59",interval 18 C6 n% h7 {2 Q& V
second);    ) B0 `' |2 |: N
  -> 1998-01-01 00:00:00   
+ N! r/ P& O- d! d  b9 l: _mysql> select date_add("1997-12-31 23:59:59",interval 1
$ S* c% a5 z: Q! zday);    2 ^' O) ]7 u& }' ?8 f
  -> 1998-01-01 23:59:59    - u2 c9 P  @( D' C: I! n* |
mysql> select date_add("1997-12-31 23:59:59",interval
- o8 q: x- v. L5 y+ ]$ p"1:1" minute_second);   
) l3 o; O8 K! E4 \! j  -> 1998-01-01 00:01:00    & p( a' a0 V& e7 @9 k* t6 F' E3 c9 x7 E
mysql> select date_sub("1998-01-01 00:00:00",interval "1
" a. P4 D$ Z1 W1 A5 p- Y' ]1:1:1" day_second);   
' q- b) l3 h, j* R& ?- u9 K  -> 1997-12-30 22:58:59   
+ m& s' i, a, M: e. w: O, Rmysql> select date_add("1998-01-01 00:00:00", interval "-17 l/ B3 I: V7 J7 v, J' I# P
10" day_hour);  / U# q5 h& B" J" x( u
  -> 1997-12-30 14:00:00   
  `' z2 D7 U! S3 `% v; pmysql> select date_sub("1998-01-02", interval 31 day);   
+ M" m9 e3 U$ w/ V. M8 N; j  -> 1997-12-02    ) g6 B* t6 s2 a. h) c5 j
mysql> select extract(year from "1999-07-02");    + a' L  x) n4 H
  -> 1999    3 ~4 U' r( L; j+ E: I5 [# T
mysql> select extract(year_month from "1999-07-027 z; t8 I+ x! M* r
01:02:03");    & G: K; s, I% S0 y0 H0 Q
  -> 199907   
* H; p6 A( g. g; kmysql> select extract(day_minute from "1999-07-02
* e& N6 ]% g% m01:02:03");      B8 x& t; V* d7 k) L& ^; M  h
  -> 20102    9 L6 F  S: b# ~7 j- T/ X9 H

; ^' `2 t, u, F! l7 F8 `to_days(date)   
2 _6 q. b+ B. i" u: B  b, I. S返回日期date是西元0年至今多少天(不计算1582年以前)  ( s+ O1 c% ?, h3 a  I9 R
mysql> select to_days(950501);    3 O! E6 Q: r4 p9 h. j- m
  -> 728779    $ _( `( Z* C2 o
mysql> select to_days('1997-10-07');   
: C' L: @. g3 T/ I4 g! O; s  -> 729669    8 L( c" B; }6 P" G/ N

/ e, p/ ~% N0 ?5 [7 m+ Afrom_days(n)    & }1 n& a) \* T' e- L# i5 u
 给出西元0年至今多少天返回date值(不计算1582年以前)   ! a$ ?1 O1 Y  f; ?* X2 W
mysql> select from_days(729669);      y% j/ k' s; w" @9 ~
  -> '1997-10-07'   
9 c  L* W& b9 N6 K$ ^
+ Y3 A9 c% T' K! p3 K2 B- L% d: y, fdate_format(date,format)   
' J2 w5 D# N+ E; ]* } 根据format字符串格式化date值  ) B: I" N& p/ g. w1 a
 (在format字符串中可用标志符:  6 A& b  u( c* r# T% _6 z( y3 l
 %m 月名字(january……december)    3 s6 E; T, \& {# X; J8 j4 B+ V
 %w 星期名字(sunday……saturday)    - M1 U. [  o3 P- h* s% L. S
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    & p" l8 @! j. m0 }' S7 ]+ A+ j6 ~$ Z
 %y 年, 数字, 4 位   
* j9 `& ~8 k- S$ }) m %y 年, 数字, 2 位   
$ {) g+ k3 ^3 M %a 缩写的星期名字(sun……sat)   
* `+ M5 N+ R. F6 y& c %d 月份中的天数, 数字(00……31)   
0 q/ D8 Y0 K4 k9 M4 D8 e %e 月份中的天数, 数字(0……31)   
" U# e6 x9 H% ^0 {/ J4 Z %m 月, 数字(01……12)    4 q- G" |9 {) d8 @. ^2 J
 %c 月, 数字(1……12)    8 D7 K" X( K+ M  V9 w0 R& w
 %b 缩写的月份名字(jan……dec)    + b- z& e% y) i- t# T  y% l
 %j 一年中的天数(001……366)   
4 r' e  g0 A7 O+ T6 R6 [0 y( F- q9 m %h 小时(00……23)   
! }' H! Y7 K3 g9 Z8 k* N: M %k 小时(0……23)    9 w/ ^, r( G# H- p% ?7 M
 %h 小时(01……12)   
% `& N! Q8 F; o$ b& e %i 小时(01……12)    4 p9 T: E3 S; b3 m6 W: R
 %l 小时(1……12)   
6 _$ f; w9 V1 J; ]; S  z %i 分钟, 数字(00……59)    ; ]) s( V) O1 J7 Z5 N7 O
 %r 时间,12 小时(hh:mm:ss [ap]m)    / U9 ^) c+ b7 j( U: x4 N
 %t 时间,24 小时(hh:mm:ss)   
! S# `( _1 d9 d3 E7 O# Z %s 秒(00……59)   
/ _. F- J- N$ U2 {+ L %s 秒(00……59)   
" a" t) N, U& N& T %p am或pm    ! z; ?* ^2 H- U- k1 k" \
 %w 一个星期中的天数(0=sunday ……6=saturday )    $ ]0 Y% P% n$ t$ o* k
 %u 星期(0……52), 这里星期天是星期的第一天    . I3 y1 M, T( `) }# X3 m
 %u 星期(0……52), 这里星期一是星期的第一天    7 P' H, ]; B4 F  X
 %% 字符% )  , D  C/ k1 E; ~
mysql> select date_format('1997-10-04 22:23:00','%w %m %% ~3 d" }( A# k1 \! J+ J1 E5 Q
y');   
4 j! o- D1 s# f* r1 L8 U; d  -> 'saturday october 1997'   
# d! s4 ]9 U5 Bmysql> select date_format('1997-10-04 22:23:00','%h:%i:%) y1 p/ \$ @9 Z7 U, [
s');    9 K  o/ W  ?! n& E% Y# W
  -> '22:23:00'    2 R& H5 o( W" L, w+ p
mysql> select date_format('1997-10-04 22:23:00','%d %y %a
5 x: Y6 X+ W# n  s%d %m %b %j');    % v' q0 t0 u) ~+ g. X, |. v
  -> '4th 97 sat 04 10 oct 277'    2 l% M. W& Q/ e
mysql> select date_format('1997-10-04 22:23:00','%h %k %i
3 a- g3 H9 b5 n) o( G, B%r %t %s %w');    - Q+ u, R5 Q6 T: b# a6 o
  -> '22 22 10 10:23:00 pm 22:23:00 00 6'   
% b+ h% v4 U- ^- B
. ^  k) o) ?# }$ Atime_format(time,format)  
, b' A" E$ f! o  g 和date_format()类似,但time_format只处理小时、分钟和秒(其
6 Q. ^2 g, h( Y: D余符号产生一个null值或0)  
5 @2 q1 K& A( J- I
: v; E: T3 `9 G, c) ?curdate()     
. R- S& `& W1 S3 `# q7 b4 Qcurrent_date()  
/ J" k" A  ^; h" f) L, } 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所5 w7 b" a% D, f+ K  z
处上下文是字符串或数字)    2 o" |4 ]2 k# c0 S: u+ K+ B' C" f! U
mysql> select curdate();    + p: h+ C) ~" x  E3 }7 }& z
  -> '1997-12-15'    : D4 F4 K- i6 j$ {  u3 Z$ a$ g& W; F
mysql> select curdate() + 0;   
# \4 N8 {5 u$ l7 d  -> 19971215    3 E* }. i/ U! i

: p( n2 m. a2 u% U5 u8 Y8 _4 Vcurtime()   
9 m% y: k6 C9 G1 o7 kcurrent_time()  
$ T) J# l. t0 x6 W! Q, d& V 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
7 w- V5 r9 V* `下文是字符串或数字)      
. u0 x. y6 E9 ~2 }; m+ X% gmysql> select curtime();   
- x  [9 x- q- o+ ^  -> '23:50:26'   
) D& w7 ^6 m4 h, W' amysql> select curtime() + 0;    * f# B6 J# L' E  P% q( d) v
  -> 235026   
9 G" [1 y! O, i4 w6 ~" J
6 g+ v" h" b$ Y) ^1 a# xnow()    ' M2 m* }( C/ u# [" R
sysdate()    
: n$ ^5 I3 @1 l' k4 |7 }+ S% acurrent_timestamp()  4 T/ h8 I: L$ h4 k. q( a
 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期; u. c/ `8 ?- y5 k1 V) ~& W
时间(根据返回值所处上下文是字符串或数字)     
! t: K9 p8 [6 r4 ~9 s- B& Ymysql> select now();    + D: l, F8 m7 [  m, s
  -> '1997-12-15 23:50:26'   
8 D, S, ~$ ^" r+ C- ]' I5 y& qmysql> select now() + 0;    0 C  B9 }2 H9 e5 }
  -> 19971215235026      j2 a6 m% x8 B8 O
: [$ g/ b* ^. M; x/ f& i1 W
unix_timestamp()   
0 N6 R% @9 Z6 [; d9 Runix_timestamp(date)    0 @% U) A" P. l; @% {/ G
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
, m0 W+ c1 b0 R3 P数,date默认值为当前时间)  
' D& v& X( R! Nmysql> select unix_timestamp();    , G0 b6 w4 O" k- q
  -> 882226357    & l. j5 Q9 \2 q0 I* O& y% ^4 [" }
mysql> select unix_timestamp('1997-10-04 22:23:00');   
9 k) L+ ~) a; n2 k  -> 875996580   
: u' P& U- l  z+ [
* S  {9 ?$ s; D. M7 Qfrom_unixtime(unix_timestamp)   
8 S% K' I9 d$ g1 z& {5 b- }1 l以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的
, S) ]* f2 e* @8 Y值(根据返回值所处上下文是字符串或数字)     
5 C0 {2 e2 `0 x5 [7 j1 cmysql> select from_unixtime(875996580);    & k( ?' |: L5 q* T1 y2 O
  -> '1997-10-04 22:23:00'   
0 R! [8 ?+ |# O! @$ _2 B/ O6 q2 mmysql> select from_unixtime(875996580) + 0;   
; i0 t8 Q; d; S1 O# [. q  -> 19971004222300    & t5 G. ^: _0 _$ q# L$ i  N- Y
) }# F: X, n0 l+ q$ k
from_unixtime(unix_timestamp,format)    
* T1 n1 _" V7 R- O4 B以format字符串格式返回时间戳的值  - L" W; q& ]  `! M
mysql> select from_unixtime(unix_timestamp(),'%y %d %m %7 |+ S/ u6 }- s; U. j* b! M0 o& B) Y
h:%i:%s %x');    - d- J" ~2 b9 i$ D3 V- k
  -> '1997 23rd december 03:43:30 x'   
8 x) {, Z' J+ H: v
5 D% i. C/ R3 K$ Osec_to_time(seconds)   
& p6 C, h. v& z9 k( k& s! o以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
% w: S& G+ @; e( nmysql> select sec_to_time(2378);   
6 ]2 {# |0 U5 T  -> '00:39:38'   
4 K6 A; l7 X. m- M; \mysql> select sec_to_time(2378) + 0;   
1 j* D0 D4 Y) D  -> 3938   
1 i3 D5 o8 \2 G: f1 q! U4 x
9 e/ j) p+ @: _% xtime_to_sec(time)   
- [* ~1 o+ w$ F6 w9 H/ T% A7 X返回time值有多少秒    % c/ U2 J% z# g1 S
mysql> select time_to_sec('22:23:00');    % A8 U5 t4 x- Z0 r* v3 a5 m
  -> 80580   
/ v+ Y3 a  L5 Lmysql> select time_to_sec('00:39:38');    2 c8 B' g" T5 a1 O
  -> 2378 ; x) g6 Q  t: x) I+ \5 g
; `# S/ l. b( |) }6 W6 s5 m3 k
转换函数9 O6 w! B+ g3 ~6 H+ c5 r
cast9 g' P* p+ @8 C
用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]! r8 I6 i/ E7 a3 f1 u2 Y% a! ~' a
实例:select cast(a as unsigned) as b from cardserver where order by b desc;0 {* B6 k2 t- a
convert:" p2 ?  t8 [) O! D/ [# l/ [3 }
用法:convert(字段,数据类型)
  }* Q: [; j; ^2 p实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

0 o2 v/ j; r& \# M
回复

使用道具 举报

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

本版积分规则

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