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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数, `: x8 B* z9 x7 S7 K
ascii(str)   # ~; c2 ^2 {- f5 ^2 w
返回字符串str的第一个字符的ascii值(str是空串时返回0)  
- Y, O! I/ {) X3 kmysql> select ascii('2');  
( x2 x9 t& t' }- A, c  -> 50  ; d( u+ U. i: N6 q
mysql> select ascii(2);  " f: F7 ^9 ?( A' b$ L( M
  -> 50  : x9 a( f/ A7 [; K
mysql> select ascii('dete');  8 G4 o  C; S- o6 e  N0 a
  -> 100

4 c1 S1 f; ~. V5 vord(str)   
! Z/ m: `$ S2 m5 o8 {如果字符串str句首是单字节返回与ascii()函数返回的相同值。
% A5 Y; M3 V3 P8 @, d% A# G- }
1 C" d; e& {2 p2 [, Y4 ^# N. q% \如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  
* h+ e5 N# F; d' P% ^# Z' A# zmysql> select ord('2');  
; I2 R% `, I4 a" {7 G2 E  -> 50  " H6 L2 o, j. |" Y2 X4 V6 @% V8 r
   / D6 D; P+ T! Z) z( u2 V% P" p+ B
conv(n,from_base,to_base)   
1 h& L/ m4 }9 Z# w) r对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  6 t5 E/ v: p" w" M" f
mysql> select conv("a",16,2);  
* J  S8 @' g, |! f% k8 }" W  -> '1010' 0 q5 ?4 K$ c% ~$ a: E2 s
mysql> select conv("6e",18,8);  
( E& K) W! H+ x, N0 h  -> '172'
. A- N% n, T  r) C( M8 fmysql> select conv(-17,10,-18);  9 @" n& o0 S4 E
  -> '-h'
& u" W1 t- _4 i" O0 [mysql> select conv(10+"10"+'10'+0xa,10,10);  + {0 W/ t8 l2 V, O4 \: N8 F" E( ^
  -> '40'
; a/ x% i. b  L% o, f4 b   
1 g1 V& u! u* J. J) cbin(n)   1 ^' c  V( G9 z  j5 x0 e
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
+ T! \. l3 s" Smysql> select bin(12);  / k4 Y0 t5 E% V; Q9 I9 i5 i7 P
  -> '1100' 7 z) Q( w/ I$ @2 Q1 e

( r& {2 N6 C* a2 Y% u$ koct(n)   0 z' u% o( |3 U/ i' z
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
4 ]  N/ s! ~; q" ?4 `& Qmysql> select oct(12);  
3 b; c: h5 M1 Y- R, C  -> '14'
- d0 C$ `- |2 i: Z# C   
3 O& d( d- t' N) R; z" e# Q0 Xhex(n)   2 _1 u& P* L, q3 c4 m$ O
把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  
" A- t# |. R) }2 J. b3 H2 p8 Umysql> select hex(255);  
  K% w3 Z/ J, ]5 h" [5 [; f3 Z* c  -> 'ff' ! x" m; S: E/ H6 L! o6 f
   
; H, f- j+ z2 A1 q1 jchar(n,...)   + o/ J% q9 z- K7 L$ z
返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   
& D( d2 J3 e0 o# tmysql> select char(77,121,83,81,'76');  & z/ L" Y% p, z) z
  -> 'mysql'   M6 G0 u4 ?; @- u
mysql> select char(77,77.3,'77.3');  # V/ I  \: _2 M" m# s  q* F9 Q
  -> 'mmm'
( ~2 f9 y& A* K5 P   
- S; L; Y9 T& ^9 D5 @( l- pconcat(str1,str2,...)  
) @- l# q5 `, n5 i把参数连成一个长字符串并返回(任何参数是null时返回null)  
, a$ }1 M! d6 ^3 H( d3 `$ V( omysql> select concat('my', 's', 'ql');  
( c: D5 E/ C! I  -> 'mysql' 0 ?  l, K) f1 |9 e6 i
mysql> select concat('my', null, 'ql');  
: X; R7 _) x% G9 r: h  -> null # B/ e& q, s5 {7 E( v% u/ o5 J! v  @
mysql> select concat(14.3);  
* r- i' |) p- n0 W( q  -> '14.3' 4 V+ {; K# x5 I2 d% b) @) r
- g4 P) K( u% c! `' O, T
length(str)   
5 Q$ ^7 L" d' L& toctet_length(str)  3 i( {& r( R( \# X7 S3 h2 k
char_length(str)  # a# U0 X0 C* O, P& {6 ]% W; N- O/ M
character_length(str)  
- D4 L1 |4 S+ b返回字符串str的长度(对于多字节字符char_length仅计算一次)
. z( `% z  C- h/ ~1 ymysql> select length('text');  
2 U- w) R* I5 {" i) D# g+ W  -> 4  
  r0 w) m# W4 K8 G( }+ P4 Smysql> select octet_length('text');  9 x/ ]" b( M' \
  -> 4  
  o$ d/ w# I; u2 W # Z0 g. \. I* h7 [# C
locate(substr,str)   
% O* Q/ H- N" w( kposition(substr in str)   ' e; h1 A) Z" _/ q$ H
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  ! t! k; p( W8 C* N( U1 f: \
mysql> select locate('bar', 'foobarbar');  ' ~( X/ Q( c6 h, Y
  -> 4  ( K% H; q( i. P# M2 A
mysql> select locate('xbar', 'foobar');  
6 `, y# _* P' m  x  -> 0  ! f8 E" {$ g* o. `
    # S: Y* k8 [- v; K, @5 d
locate(substr,str,pos) + F5 b* a2 w/ f2 t' e0 J
返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
, T+ G4 z9 b+ Q9 c/ f1 m8 G: lmysql> select locate('bar', 'foobarbar',5);  
8 M7 \; W" b9 N9 x2 |0 N6 H+ I: e  -> 7  
2 k0 E8 G- A/ P; j- |
6 G. k. w# u5 b6 ~( e- cinstr(str,substr)  
7 L! m% A9 r( ~+ G返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
0 ^0 C5 E6 h4 ^! F1 Pmysql> select instr('foobarbar', 'bar');  
* m6 ^7 e) w7 @2 H) T8 J; C! b3 u1 J  -> 4  + S+ ]  B% W2 {- S) b
mysql> select instr('xbar', 'foobar');  . X9 w+ u( @* g+ L0 {- p
  -> 0   / x) d, `+ Q! o7 ?( U' u
0 q2 S/ F! ^& g# N. a6 d! u
lpad(str,len,padstr)   
& ~6 }; \, x  ~+ z- r( E. w  X  P用字符串padstr填补str左端直到字串长度为len并返回  
7 _$ r! t1 v4 R: x) }- J& smysql> select lpad('hi',4,'??');  
% m' m; `! t( t9 i1 W! X- h$ q. b: `  -> '??hi'
; M0 F1 d- D/ {, {! J   . v& t4 ?6 }! w" ^7 `1 {
rpad(str,len,padstr)   3 [& y* F# f1 P& ^' `- h
用字符串padstr填补str右端直到字串长度为len并返回  
$ t& i: F, e0 }mysql> select rpad('hi',5,'?');  
8 A2 P$ j; b# H  -> 'hi???' 7 p( [2 f! o$ Y  C! z* S

9 S8 v$ i0 k- V+ u' Sleft(str,len)   
9 O" f# a) h: f5 z* N返回字符串str的左端len个字符  
- X2 }% Z, @% tmysql> select left('foobarbar', 5);  
' _3 K/ h6 |, B* g  -> 'fooba'   l4 J, Z7 t8 n1 `) y5 {( Z
+ Q# J4 R1 V  C( b! y
right(str,len)   
3 M% j3 o- G4 r8 w! c4 V# y& {返回字符串str的右端len个字符   
  F: D" ^! I% Hmysql> select right('foobarbar', 4);  
  _' E) ?5 H1 |4 s# B" x  -> 'rbar' ( v- P' o( J  T1 E$ F( s5 f
  K; R9 ^# G1 h: L
substring(str,pos,len)   ! m# F  v4 i) Y/ F* a( G
substring(str from pos for len)   3 D$ G# b: y( C6 T' b, ?
mid(str,pos,len)   , w7 `. I0 s$ V
返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  ; d- d' O, p1 k7 c% B$ j
  -> 'ratica' 5 d! ~3 G2 v, O0 H" e" j
4 s- Y* r: L  W2 B1 H
substring(str,pos)   / S+ [; `. r* t) Q
substring(str from pos)   . Z' |8 B: b3 {0 h) y
返回字符串str的位置pos起的一个子串  9 y$ R# ^4 ]: p1 ]* b+ B
mysql> select substring('quadratically',5);  + x7 L, C5 Q$ o( P4 N
  -> 'ratically' 5 L2 h5 r8 @6 b, [6 h  l
mysql> select substring('foobarbar' from 4);  
7 q) p& C; N+ w  -> 'barbar' 7 }3 N9 \2 O# R# s( f
  J' c/ N: h, N) T$ f
substring_index(str,delim,count)   
- @, d( M3 ^* B2 z返回从字符串str的第count个出现的分隔符delim之后的子串" E* V( o9 M4 w" v- [0 b
(count为正数时返回左端,否则返回右端子串)  - E' ?' ]8 ~7 e  N3 l! D
mysql> select substring_index('www.mysql.com', '.', 2);  
4 {( l* @' c% K+ t4 [9 c6 s  -> 'www.mysql'
1 P) [2 Q4 X: L6 N- ymysql> select substring_index('www.mysql.com', '.', -2);  - V- C, _6 S! t6 K; h
  -> 'mysql.com' + h& a' Q" @# K1 s

+ y6 b: w, J8 v2 ]3 p( _/ r9 `ltrim(str)   ' a# c( s* _6 @. w
返回删除了左空格的字符串str  
# U8 c$ \3 ^, F* hmysql> select ltrim('  barbar');  
2 O7 n: U3 h+ I. J; k  -> 'barbar'   F8 Z# S7 W! N+ M( J
/ b) d. t0 V% L0 ]! \
rtrim(str)   8 t: E5 }$ X9 v
返回删除了右空格的字符串str  9 K7 `7 i* C5 T- r" W5 x
mysql> select rtrim('barbar   ');  # I" c4 b6 D* }+ O
  -> 'barbar' . Q& C& S) S# L) A$ v. _
# x: R( w7 `" D
trim([[both | leading | trailing] [remstr] from] str)   0 b3 M! S: O6 d( C0 l' _4 N
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  / h! b$ u6 b' d" L; e$ n3 {2 _
mysql> select trim('  bar   ');  2 Q9 x( C+ u. K; R
  -> 'bar'
! `! N8 n. `6 ]mysql> select trim(leading 'x' from 'xxxbarxxx');  8 h% `" v; b7 i* J# y
  -> 'barxxx' $ b& `" i  L) V: K7 O
mysql> select trim(both 'x' from 'xxxbarxxx');  
. O; z. g* I, l% l+ y1 ~  -> 'bar'
( V7 x2 C' D8 ?! G3 h9 W6 Q- pmysql> select trim(trailing 'xyz' from 'barxxyz');  . b2 W5 j: e; m- Z
  -> 'barx'
0 T2 w& ]7 k6 ~& L; s+ E & w3 G' i% v' B- S, E
soundex(str)   
8 \$ ^& F5 D$ z) J4 i返回str的一个同音字符串(听起来“大致相同”字符串有相同的) ^% }: r9 J' `1 X! P0 `/ j% B, @
同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  + v# D3 Y. _0 y) Y5 Z
mysql> select soundex('hello');  
0 k  ~& e/ Z1 R; D$ B$ C  -> 'h400'
# i* L5 b; a; ]4 k% _mysql> select soundex('quadratically');  9 J9 n- a4 V! I' Z& S  M* W
  -> 'q36324' ; |0 F! P8 u, T; Q* w$ I0 k; a# W& g
   " ~+ i0 q3 x  l/ o
space(n)   * U# p+ ~: F" y& o# W/ j3 q
返回由n个空格字符组成的一个字符串  0 Q& f% ~4 B2 H2 c
mysql> select space(6);    O- o8 d' H6 V- B- F
  -> '      '
  U8 \$ B8 M# W  i   
8 k* u* g- F+ Q: F1 A6 areplace(str,from_str,to_str)   
- A  J- \* `- ?6 U用字符串to_str替换字符串str中的子串from_str并返回  
, |5 I- @5 N' T6 y3 ]: |mysql> select replace('www.mysql.com', 'w', 'ww');  
6 E3 u. i8 p% I5 S4 i- M+ x  -> 'wwwwww.mysql.com' , F$ y; \8 b0 w3 m; L9 T: c5 j
) y$ T' z8 h' ^& K) e
repeat(str,count)   & R1 _' A+ ~7 o( r2 \3 E
返回由count个字符串str连成的一个字符串(任何参数为null时5 o6 Q# A. u- y5 e: W
返回null,count<=0时返回一个空字符串)  2 @' a# A2 m' b! t6 O1 r  g
mysql> select repeat('mysql', 3);  
$ {6 l& s7 C4 v# `  -> 'mysqlmysqlmysql' ! p: Y) a: \* @  |! @- @
   5 p8 Q  y$ K' q
reverse(str)   
; [/ D$ i+ j  K2 y4 j( s$ [' H# L颠倒字符串str的字符顺序并返回  ( w& a0 _" s) W. ?, k
mysql> select reverse('abc');  : v( L: ~  {4 n+ H7 W' ^
  -> 'cba' ; k) f% c9 `; f2 O4 a9 }4 H! f
6 X) u& ?! P6 f% g# k
insert(str,pos,len,newstr)   7 ]0 l6 }5 t  q; s/ ?. S7 i" e
把字符串str由位置pos起len个字符长的子串替换为字符串4 }7 b4 g3 M; o& m9 Y
newstr并返回  
0 q$ c& c; t8 [( G4 H" ?mysql> select insert('quadratic', 3, 4, 'what');  7 n7 l& M1 ^. L
  -> 'quwhattic'
3 K' F; B/ w4 f* Z( P, k$ A# x 9 p% ]* o3 {& T& ^5 ]
elt(n,str1,str2,str3,...)   
; s2 u( e6 h. m# Y3 @  z1 o返回第n个字符串(n小于1或大于参数个数返回null)  & t1 y7 C, _2 s4 v
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  
2 S7 X* M. w6 j  b2 F  W  u7 @* p/ Q  -> 'ej'
* i3 {" ~/ y- K9 q$ Z  xmysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  * t1 m5 ]: Q6 J  n# R" \
  -> 'foo'
. C: N' \  R0 U5 U7 s6 h " h% O( x3 k& z6 C
field(str,str1,str2,str3,...)   " L7 Z" {& F- P) q
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
" _( O, b9 m& O* x' r7 T) Mmysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
/ N  H( y2 z1 J! z' n'foo');  
& i& m7 m; X6 e/ S' L  -> 2  
8 T$ N+ c' \3 R4 [. p6 N/ d& D3 _mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
, N7 l; Q, h( X: L1 B) v+ Q'foo');  
  k( {1 `5 U1 F' K  -> 0  
" Y/ \+ o, N! d/ m8 ?/ H$ u8 |7 c
8 C/ k% `6 O/ p7 `find_in_set(str,strlist)   
. R0 [  f3 n4 h5 t* F9 H1 R返回str在字符串集strlist中的序号(任何参数是null则返回! u. W+ X8 S; [% j6 z4 U% [( ~8 D
null,如果str没找到返回0,参数1包含","时工作异常)  
7 f) b& X& @' x( ]7 u/ Omysql> select find_in_set('b','a,b,c,d');  
0 Q, A/ L3 ~3 o& I$ Y. U/ c; q- U% q  -> 2  5 x% _. q# Y1 m4 a) Z. N: M
   # S& N4 b; e; v" S2 t9 F
make_set(bits,str1,str2,...)  2 T: y- M: n: X) P8 _% {& W$ W) i. A
把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应* K+ |1 ^0 g5 D$ Y7 x
位置的字串选入字串集并返回(null串不添加到结果中)  1 J" r3 c# e* U5 O
mysql> select make_set(1,'a','b','c');  0 ], T- p  i4 c
  -> 'a' + d3 {# q' j6 c8 h3 g
mysql> select make_set(1 | 4,'hello','nice','world');  8 r& |6 ?% a3 Q/ V3 \  D1 @
  -> 'hello,world' 0 j9 c7 g9 b9 g  U$ S" I" N3 V  k- T
mysql> select make_set(0,'a','b','c');  
; _  |, l4 o) o1 m  -> '' $ b4 x; s1 m0 r7 M
1 _) t5 @( z0 j1 x
export_set(bits,on,off,[separator,[number_of_bits]])   
6 \$ ~2 |% S+ S! e; M" h, ^按bits排列字符串集,只有当位等于1时插入字串on,否则插入& _2 T5 {/ ^; l, V( }. ?3 k
off(separator默认值",",number_of_bits参数使用时长度不足补0
& e, S* e2 p9 `0 P* }而过长截断)   
6 y, }- i" h7 ~* g( _" f8 h2 fmysql> select export_set(5,'y','n',',',4)  # q; K& B# I% |: o* Y
  -> y,n,y,n   
# a" |% H1 ]* q% H9 }. z * Y) @1 u; ?  m+ u9 I; g: g7 |: m
lcase(str)  $ @9 W, }$ d3 t
lower(str)   
. w- M1 E4 }. a返回小写的字符串str  
0 |% n( @* C3 ~3 O9 smysql> select lcase('quadratically');  
# l3 P! A3 k' z8 L9 {/ N# |$ M- F  -> 'quadratically'
' F2 U: B4 Y# G0 l+ Q   + K' h) @! j$ o* ]/ L
ucase(str)   : B/ ?5 o7 G: S4 o
upper(str)  
! b) ]# u* R, k. M4 D返回大写的字符串str  
2 s% m1 J& O# p6 H6 nmysql> select ucase('quadratically');  " q4 \. p7 I, v' z# ]6 ~6 G
  -> 'quadratically' 1 M5 G; ]3 H) E- s2 v

# \- Q" Y1 h! L/ m' u! U* w' Gload_file(file_name)   
# Z' ~' \4 ?3 D- _读入文件并且作为一个字符串返回文件内容(文件无法找到,路径
" I6 w' ~8 W5 w- a不完整,没有权限,长度大于max_allowed_packet会返回null)  
, w% Z6 t1 P. h+ t# C) t! I$ vmysql> update table_name set blob_column=load_file' V. X; G5 p3 H
("/tmp/picture") where id=1;  
, w5 ]& N2 {  Q3 l
& w, a; i& I$ P0 a) ?7 n2、数学函数6 f0 O  f2 L  F- [, q# |
abs(n) 7 K. X8 `1 u2 a$ l( O
返回n的绝对值  
" n5 L6 T0 O% S2 ^mysql> select abs(2);   
* X( o3 ?% `; o1 u1 j" V% J  -> 2   
( t; Z& o( T7 D- g3 Y1 E. `& rmysql> select abs(-32);   
0 _! M; z4 ?; V$ P" a; _  -> 32    / W# r( O4 p) b, M3 v8 `
   0 V5 S# \3 L5 N
sign(n)  
/ o8 a+ K" Q# B  j7 K返回参数的符号(为-1、0或1)  1 H) J& v2 {$ f0 n
mysql> select sign(-32);   
2 S: z  s/ A; t2 h: p, ^  -> -1    0 ]: @: y) i% v( V8 ?/ N/ S& I2 O
mysql> select sign(0);   
1 s9 p! _' V: A; o  -> 0    / G4 Z" F, y8 Z& ~7 g. `+ F
mysql> select sign(234);      n% C/ N$ j# W( Z" R: \
  -> 1    . H2 L: T+ A+ p

5 ]5 V2 Q1 C' x. n4 n: }mod(n,m)    : S3 {: w0 [" G) f% [
取模运算,返回n被m除的余数(同%操作符)    9 k* `" a+ q% S+ U
mysql> select mod(234, 10);    & x8 j, {+ T+ v6 h/ V
  -> 4   
1 O$ z2 O4 r) u! S3 G$ I" Rmysql> select 234 % 10;   
9 q$ L5 c& W# E3 k0 U/ N$ M5 h+ C  -> 4   
; A: h1 D* ^$ L, Z7 ^  Jmysql> select mod(29,9);   
  x6 G* z! r8 X" g( k9 |0 q- K  ?  -> 2   
2 M) f3 r: G2 w  M5 s6 J+ z 0 y1 A7 @( X  i. O  k5 D3 X
floor(n)  4 T0 E* J4 t' R" y, c. D4 a0 ^
返回不大于n的最大整数值  
- t1 M( V$ e5 n0 ~- |6 @3 c2 M1 Rmysql> select floor(1.23);    ; O) b! ]) w3 C  H; f0 M, _8 H
  -> 1   
/ E7 M6 S* j/ P9 s5 z4 wmysql> select floor(-1.23);    & c# n$ p0 ]; Y
  -> -2    1 ~7 G# P) O: A2 O+ W) Q
0 i: ]* U" ^: V" A1 d% z$ ]" `
ceiling(n)  5 j3 k7 u5 l* d  \$ L7 i
返回不小于n的最小整数值  
5 B$ k) d/ H$ V/ hmysql> select ceiling(1.23);    0 \( e2 t+ Z! c7 x
  -> 2      D, S  O' G6 P- f7 n" h. v
mysql> select ceiling(-1.23);   
$ k3 R3 {8 P* u% X6 R, `% @  -> -1   
9 L" j9 S2 q1 }4 }! n+ V, G2 p; E) _ 0 V3 Q3 [/ e+ {5 P! Q$ W
round(n,d)  : L2 b/ j+ i$ t1 h0 z! a
返回n的四舍五入值,保留d位小数(d的默认值为0)  
% ^1 H  n2 y! j1 r6 g$ Lmysql> select round(-1.23);   
. z) ]9 ~6 g, q: L2 q* f1 z* R4 ~, i  -> -1   
, P: j& c7 |( i1 ~mysql> select round(-1.58);    # P6 O* B& P6 R8 N  Z
  -> -2    ) q; j) K& q% K9 ~( `- h' ~  g
mysql> select round(1.58);    / h7 G' P' D( h. w  p
  -> 2   
9 {7 `( y  c7 I2 l- y" M. ]8 E& ymysql> select round(1.298, 1);    1 b7 G% ^# o/ s: |
  -> 1.3    9 c* V$ z  h; G: ]
mysql> select round(1.298, 0);   
% ~: R4 r7 I" r  -> 1   
9 l- z5 D3 \2 w1 x* u 2 y, {8 r! U' L/ p3 l' W
exp(n)  
+ d8 r- O0 |5 r+ ]$ T/ D: ], O9 \返回值e的n次方(自然对数的底)  
; G6 n, k; @' Y! w3 D; \& pmysql> select exp(2);   
3 {: P% h( n/ `/ w5 h7 h7 Y- C, l  -> 7.389056   
/ Q9 h# y0 q6 z% j- h: kmysql> select exp(-2);   
7 G3 H3 k: z) F" T1 p  -> 0.135335   
6 D; G+ `; h* I
2 u) h" A; V: e9 |* p* S6 Alog(n)  - Q* s* T' D4 @0 M6 x5 L6 F
返回n的自然对数  
! Y  w' p" ?  a% Dmysql> select log(2);    4 m  u" l) ?! p0 o" h& n
  -> 0.693147   
3 X; k4 Z) F' O% @" K1 ^' Cmysql> select log(-2);    : Z$ P$ ]/ u: ]. b
  -> null    ' T+ P& z0 Y" P1 d
; k: Q; V( w8 m/ P2 [# [5 y
log10(n)  + O; d7 m' T+ a4 p: u" `6 b
返回n以10为底的对数  
  f( x4 L+ A: B7 B2 |* amysql> select log10(2);   
- e$ E$ ~- v: m8 h0 c  -> 0.301030   
+ `$ t7 s' r0 Dmysql> select log10(100);   
, z3 P3 f8 N" _" k/ \% u+ G  -> 2.000000    + u4 E. m* b+ _5 z9 D1 {" M. z4 i
mysql> select log10(-100);   
( N, g0 w7 l( Z  -> null    : k; ^+ L" ^9 y# }; z2 d

1 V' h$ s/ K# w3 h5 C8 G- W7 tpow(x,y)    # s: L$ C9 O; x1 ^# s
power(x,y)    ) r9 f- F* g: J5 A
 返回值x的y次幂  
- P: K$ `$ ~% i7 y: u& Tmysql> select pow(2,2);   
+ r6 |" t: {: j  U2 h' J* X  a2 q" i% @  -> 4.000000    5 f1 |  }& w/ b" Q" b/ W
mysql> select pow(2,-2);    / q5 ]+ D  f1 d0 Q9 Q- P3 J7 S' A
  -> 0.250000  
9 w- m9 k) }* l( M# Y2 q  @6 E& p4 \2 G3 H8 c
sqrt(n)  ( T% J% @9 A. A: d/ v+ M- H( ], F" {: z* Q
 返回非负数n的平方根  
! g+ ~. ?, V' w! H! I' r% Umysql> select sqrt(4);    2 o, p' D, G( Z, a
  -> 2.000000    8 C2 S6 n" I( r- D1 H
mysql> select sqrt(20);    3 x+ E* z5 Q3 S
  -> 4.472136    : o3 w" B7 n5 p/ X

( S$ m* z1 X( Bpi()   
; e+ D3 L$ g- P+ D9 Q: t4 v8 J 返回圆周率   
4 w: Z" `% A: `) e& {3 x0 v3 [mysql> select pi();    + C1 q& s1 J! [' \
  -> 3.141593   
) q  v9 k% s! T9 d0 |4 S) r. Z$ q7 C
6 u& p  y# S& M2 n. R1 E5 Acos(n)    b" m# G+ T& X
 返回n的余弦值  
" ~7 x; s' L3 L1 c. r; r/ Nmysql> select cos(pi());  " m* t$ i. a( E6 T
  -> -1.000000   
' d2 w. j  `3 }: z  a5 g& m1 T
% f6 a! D* L7 U/ x" Hsin(n)  
1 q+ s/ t5 w# K1 D) c1 i 返回n的正弦值   ! f$ c; t, n/ c7 }0 j
mysql> select sin(pi());   
7 s7 Y3 t, \+ b9 z1 M) V# K' W  -> 0.000000    ) L% b2 I- W1 J' D
4 N: o1 D& L- J
tan(n)  
1 h3 _# V) _1 ~% |5 h8 M- n返回n的正切值  
4 O: A3 p1 i& Emysql> select tan(pi()+1);    4 K# n* }; L( q7 y( P
  -> 1.557408    # l* V; t0 M; ?4 }( e
% s; \! g* r% S( ?/ `3 H1 r
acos(n)  
% B5 X  S3 @: p& Y! x: f9 S 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  0 P0 ]7 L1 m* S7 p3 x/ _' K. U
mysql> select acos(1);   
. p0 `5 A4 f$ }6 i  -> 0.000000   
+ @  I. m  B/ `  wmysql> select acos(1.0001);   
1 J5 l/ d$ z3 ~  K) S  -> null   
' _* L' n+ l+ F! }4 G- `, r3 Wmysql> select acos(0);   
$ l9 ^! {$ Z+ @3 B  -> 1.570796    " ?# f  f7 I/ F6 l

, p1 E: x! l8 D! B/ v* jasin(n)  : b8 B) l1 t( O4 E+ ?
返回n反正弦值  
. X5 o( ?' e- |mysql> select asin(0.2);    3 g9 q) J# U9 X% L4 Y6 R! y
  -> 0.201358    & r) E, }- ^) w9 _3 O. p  H
mysql> select asin('foo');    + u( G' v8 y. A; i5 ~0 S" w$ T
  -> 0.000000    ! z  U. [8 O# Q
: l  a+ U& D% B  _7 D
atan(n)  
7 O# |5 l* l. n- M' p- O返回n的反正切值  9 ]# u6 \4 @4 ^( _$ {- M* L& I/ f
mysql> select atan(2);    6 ?7 N2 k1 U2 t
  -> 1.107149   
9 A& N% P% B  Q4 Kmysql> select atan(-2);   
8 Y- R; h, n$ N/ I: n  N  -> -1.107149   
2 }; _+ L7 I1 L# natan2(x,y)    9 ?$ ]& b( |" q! c& w# O  |
 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  . r9 V) T" n. G# D$ j/ \
mysql> select atan(-2,2);    + d1 h% j" j4 p1 o
  -> -0.785398    5 o: c0 _0 r7 b" j$ ~
mysql> select atan(pi(),0);   
+ t6 I! u0 V% }- L3 W  Y  -> 1.570796   
# S3 S' p4 k- ]1 X - z* o' T9 U4 x8 K, S
cot(n)  # C9 h/ s  t6 b( e
返回x的余切  & {# d! I) S) p" I, [# M
mysql> select cot(12);    ; L1 ~- C3 `- T" y% A
  -> -1.57267341    3 i' a% O. j/ a5 z/ {7 T2 A
mysql> select cot(0);    " S  q" {. ^! H- m
  -> null    7 q: C+ P8 c, m3 z# A
- Q1 {; m3 {: Y. @2 ?) q* N/ O5 U
rand()  & C  o5 {* P. p0 l4 `& Q$ Y
rand(n)    
1 `! |: i+ S4 n9 x返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
& R/ e* Q/ _' `/ c/ Z) \9 m" v " d+ X3 d- f9 v- T% J" Q, n
mysql> select rand();    ) C. `1 G' B# s+ O. E
  -> 0.5925    " Q5 V- @  y: w
mysql> select rand(20);    ' Q% W& h) P" I0 Y" a' `  y
  -> 0.1811   
9 Q" L# f6 C; o8 T1 ]mysql> select rand(20);    + f$ L/ v/ D# N, A) M
  -> 0.1811   
' `  A, n# ?0 F2 F0 {0 zmysql> select rand();   
3 t- [" C% ~! ], x  -> 0.2079   
& m, a1 U: {% r  h% U' s' Gmysql> select rand();    9 W" A, _' ?2 h2 u- N1 t
  -> 0.7888   
& n* L; ^9 b% l/ J
4 k( M  \% e6 ~* Z7 e: \, ~' @degrees(n)  
4 _: H$ r. E8 S) U1 n把n从弧度变换为角度并返回  
7 C6 Z3 M6 _* y; e, n/ pmysql> select degrees(pi());    % M, k! U) v( ?* q2 W6 z
  -> 180.000000   
% q2 C  Z" q: N, I, K4 k6 A# D6 y6 `
, A- d4 g, P4 z) pradians(n)
% S9 V' Z& B" q8 m把n从角度变换为弧度并返回   
- A8 P: G% h$ U  W- Amysql> select radians(90);   
: z- n, W1 c) B, ^' E$ o  -> 1.570796    + K: R6 M4 f4 j# l  E$ ~8 f; N

' C, u+ p9 U+ }- h2 d" Ztruncate(n,d)    & g" H6 ~/ ^0 n9 V2 P
保留数字n的d位小数并返回  
4 J+ @8 }8 {7 ?  X, O  J! Vmysql> select truncate(1.223,1);   
# G+ z& _5 N' Y5 C+ B6 |  -> 1.2    , o/ P  g0 H  v5 j( w. i1 M2 j& Q' t
mysql> select truncate(1.999,1);    & k  p* K7 X* s5 i" Q1 p3 O
  -> 1.9   
+ U; y( H* E9 e# C# smysql> select truncate(1.999,0);    / ]4 P  \3 z. p1 }7 o( [& N6 P
  -> 1   
2 `  J* p- f+ W6 }$ u0 P
* i$ R' V' M6 Rleast(x,y,...)    - }2 Y/ o) K3 e1 x# B5 \( h
返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  7 Z4 t3 l( j# n, h* O% W) w
mysql> select least(2,0);    7 T% i9 L. \" t9 {" U# m$ H/ x
  -> 0    0 v: U0 n7 b* [5 p  _9 d
mysql> select least(34.0,3.0,5.0,767.0);    8 Q- c$ e& c: A3 ^
  -> 3.0    ( S, e1 L5 {# C7 R' h: U, `' K1 C
mysql> select least("b","a","c");   
: ~7 f# Y# G6 @1 Q2 \, M* t  -> "a"    ) J7 y8 y& R& T$ V  A

& a% [% h7 B8 l$ E2 wgreatest(x,y,...)   
: D8 A9 W  x- h  ~返回最大值(其余同least())  * z5 M( O1 p& R4 O) A$ f" I7 I" _% z( `
mysql> select greatest(2,0);    5 ~* _) G+ O- p9 ^6 F  ]
  -> 2    ! Z8 {9 ~* L7 F
mysql> select greatest(34.0,3.0,5.0,767.0);    ( L) v. W* d# Z% ~/ c: J" Y
  -> 767.0    / ?5 J" D$ r  A$ o9 c
mysql> select greatest("b","a","c");    3 b6 O  l# D) b1 g/ n( w/ x9 R+ l
  -> "c"     0 {. `2 L! t' e# W+ a8 r( g

1 U4 x1 @  B) L/ T' F. i8 g7 D$ c3、时期时间函数
% t- w, d" N" O4 ?, c6 Vdayofweek(date)   
* u* A/ a: O' {, x/ D) P! \6 i返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  1 n" Y" p2 {! e( C
mysql> select dayofweek('1998-02-03');    $ Z* ?  P: z* y6 P( X" J3 G
  -> 3   
' W* x! J# A! [% m! w1 W; s- Z % Y) o- C& i- t7 O  H# T
weekday(date)   
! C2 o6 E$ a2 ~; F8 s/ `返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
4 ~& w9 W7 e' F  
! Z8 k' b6 |% U. wmysql> select weekday('1997-10-04 22:23:00');    # U" B: X+ D2 W) t
  -> 5    6 d4 x5 _9 Z* v7 K
mysql> select weekday('1997-11-05');    9 ?7 k8 j- m8 x3 N7 ]! I
  -> 2    ; J9 e6 h: Q3 g4 r& P5 H8 r; b
' t# k& d/ V8 I$ I2 }4 _
dayofmonth(date)    - H) G; l. G" t! t) Z
返回date是一月中的第几日(在1到31范围内)    " Q! f9 j9 x1 ]$ q2 g/ m* [
mysql> select dayofmonth('1998-02-03');   
! B: q$ `) x3 K! G, h  -> 3   
! t# e8 }0 R8 H: B. s: R0 P: e
$ j6 q7 x. M; a' M5 y1 T! L5 {* Adayofyear(date)   
1 v* R+ G4 I" i* j: G! M+ s! h返回date是一年中的第几日(在1到366范围内)   
3 H$ K4 |2 I6 Z5 O+ `$ ~( r$ U& ~mysql> select dayofyear('1998-02-03');   
1 c% c1 g4 y+ a9 m, Y  -> 34    9 o3 T0 q4 H9 Y- _5 J$ a# r& W# l! T

, S. X: u" g' p) s) p" e" xmonth(date)   
, ], u( d+ m0 f8 f0 W) l3 H, ~* X返回date中的月份数值    . A3 G# N, C. R' Y  o
mysql> select month('1998-02-03');   
! E  Z$ b% t5 F9 U) n  -> 2   
5 D* y# f* t1 T4 M- G # i4 e& A3 M/ T8 u1 R4 W1 ^9 N4 |
dayname(date)    5 E* y5 l8 I( L/ J( S# Z* A
返回date是星期几(按英文名返回)  
! Q& q" T( a* j# U  E; }mysql> select dayname("1998-02-05");   
: d& b/ O( W+ w8 _; ?  -> 'thursday'   
1 q6 Z) o' D) l; M ) b8 [  Y! s  [& P+ V- |
monthname(date)    
, I6 {# u7 e& b& w0 O返回date是几月(按英文名返回)  
% E# x; D" h4 m2 omysql> select monthname("1998-02-05");    ; e# K; k! m# _% ~; q! r
  -> 'february'   
7 I- r5 B' c* V
! u$ C7 V1 {( `quarter(date)    - @  K; `, r( {  a! A
返回date是一年的第几个季度   
- @+ C% A$ ^" z5 k! bmysql> select quarter('98-04-01');   
+ ]* m% O  [, n6 N  -> 2    7 B3 Q3 X2 C; J+ k9 k
) R7 I" R& W9 I: U# s& u  Y) L
week(date,first)   * L+ o9 R9 d' k) H, k3 r
返回date是一年的第几周(first默认值0,first取值1表示周一是
4 i1 w  E3 l5 i* U周的开始,0从周日开始)  
( Z/ c0 E4 ^7 z7 J- P/ [/ }mysql> select week('1998-02-20');    ' r3 ]" ]0 s0 j! g' X* V
  -> 7    3 U* L  V' Z: I9 U  \' S
mysql> select week('1998-02-20',0);   
2 f# T3 _% P% S: V) Z  -> 7   
/ J& r' \; z8 x" q2 Z! imysql> select week('1998-02-20',1);    # M8 {9 H  N' R- R+ @
  -> 8    ( t& i/ y' [, X3 L/ `. e

" ^" o$ k* \+ n  J2 \- _year(date)   
* f2 \8 h+ |! D) g返回date的年份(范围在1000到9999)    6 E$ e0 A* I  a$ _2 M; V
mysql> select year('98-02-03');   
- w# t2 N- L0 p. F. l' G/ j  -> 1998    9 k% {4 _, j% F4 e

* q8 x% |$ K# D9 V7 G4 qhour(time)    
* b1 W0 r5 a5 o返回time的小时数(范围是0到23)   ' I5 v+ ~. s8 T5 N, e9 ?
mysql> select hour('10:05:03');   
* {7 o& P5 p; p, g3 f  -> 10   
* P4 C2 l& O( f+ z
, i! ]& \- s4 M0 f) @; ?# Lminute(time)    ( K/ @2 [6 D5 P8 w; w" ~* d
返回time的分钟数(范围是0到59)   
  c  g4 F( ?4 l+ O" r; Jmysql> select minute('98-02-03 10:05:03');   
, w$ ^) W' O5 h4 _  -> 5    3 B# ~% d1 K$ j3 z/ h, E7 z% y+ H: |

7 @6 o, k$ m, h' a) [% psecond(time)    / g( b! J- T4 F4 ^' R) L; N3 t2 ^
返回time的秒数(范围是0到59)   5 K8 j% |4 \2 K) P8 a
mysql> select second('10:05:03');    ! Q; a' G9 @' |- {& s) B8 N
  -> 3   
1 A7 ~: W6 j* n. \) d
- T' |5 |7 x9 T7 q: [( Speriod_add(p,n)    6 I% m; q- m/ v: [
增加n个月到时期p并返回(p的格式yymm或yyyymm)    " A5 J: y" @9 i3 @- K
mysql> select period_add(9801,2);   
- y0 v) [  Z2 N4 ^0 Q3 h  -> 199803    4 X' |) u9 b: f! S: Z$ ^

9 q! L$ `* g6 [, W9 h5 G: U2 n0 b4 Z" [8 wperiod_diff(p1,p2)   
* u) Y3 `* m; Y8 C/ o  {返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  
5 x: U% `' i/ S* P) B: V7 v+ Y  rmysql> select period_diff(9802,199703);   
. F3 J% p  K; v: r  -> 11   
+ ?, ~8 H% o9 ^4 D4 z3 y
' M: a1 T: }  s) xdate_add(date,interval expr type)  1 J* K0 r' r- r1 ^: S9 ~1 m
date_sub(date,interval expr type)    . p+ G- p1 L, X5 J8 s( H' v+ I
adddate(date,interval expr type)    - K- v3 N8 ^. F+ H  V
subdate(date,interval expr type)  / X4 R( @8 ~5 E
对日期时间进行加减法运算  8 F2 A+ S: u( \, n# A1 k1 M% e5 p( @: q
(adddate()和subdate()是date_add()和date_sub()的同义词,也& B# f/ |7 c1 ~( H" J7 @% r3 O
可以用运算符+和-而不是函数  
  ?) c+ {4 k1 O& \7 edate是一个datetime或date值,expr对date进行加减法的一个表
8 \+ U% j3 {4 E) f3 g达式字符串type指明表达式expr应该如何被解释  
7 a( O! H2 f. k  ^; ~# V3 Z1 Y [type值 含义 期望的expr格式]:  
- o4 H! `% s2 o7 R1 K, ] second 秒 seconds   
4 t5 `6 R, A" q' v$ f minute 分钟 minutes    9 U* ^6 _) e; a9 Q& x$ R- M! P
 hour 时间 hours   
$ }5 a6 K' V  g) R day 天 days   
, l* ^/ y3 t% r5 k$ M4 P: M& \0 ~4 A month 月 months   
$ N6 t8 J2 b; U7 r" t, R year 年 years    6 ^% y( w0 V% A3 c, t3 Y: o
 minute_second 分钟和秒 "minutes:seconds"    . q' w" V/ W/ O$ t0 u$ u7 q/ F# S
 hour_minute 小时和分钟 "hours:minutes"   
) l( m$ o% {2 r' m& ~1 u5 j day_hour 天和小时 "days hours"   
. p! {: p' k" n& _" G" B5 R  g year_month 年和月 "years-months"    ) _( A( s) s* K$ ^8 k' O
 hour_second 小时, 分钟, "hours:minutes:seconds"   
7 l- Q" g6 F5 n9 K. ^" Y9 J, | day_minute 天, 小时, 分钟 "days hours:minutes"    ' Z$ u8 P  M( Z, T. ^4 H+ x* P. d
 day_second 天, 小时, 分钟, 秒 "days
, s! G9 r* f& qhours:minutes:seconds" # p  Y3 \6 `4 n/ x( I/ F
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个
$ z9 }( p5 a4 }# Z0 n6 bdate值,否则结果是一个datetime值)  
, d+ {: p* V: [1 p2 E 如果type关键词不完整,则mysql从右端取值,day_second因为缺7 y% u5 u; B4 U
少小时分钟等于minute_second)  
3 p8 _! M8 Y  ` 如果增加month、year_month或year,天数大于结果月份的最大天
) O% ?3 M, _7 G2 u数则使用最大天数)    / X; G/ R( C3 H% c
mysql> select "1997-12-31 23:59:59" + interval 1 second;  
6 ?. H( ]/ v! r( r, [ 2 _: i9 v; V% M+ V% L) f0 s3 l$ U
  -> 1998-01-01 00:00:00    5 B+ D; z1 {. k% U, p/ _  m! m# k/ q
mysql> select interval 1 day + "1997-12-31";   
/ x8 p% P1 t( A' L2 k+ I  -> 1998-01-01    * \2 ?' L! e6 ]$ Y& v" M% Y
mysql> select "1998-01-01" - interval 1 second;   
' m9 X5 V2 X. T2 K, j  -> 1997-12-31 23:59:59   
! B; K% i0 z  x' I5 m9 n+ q' kmysql> select date_add("1997-12-31 23:59:59",interval 10 `4 O- }# ~( }! j  z1 M
second);   
7 B2 r/ p( l1 Q5 K8 u$ }  -> 1998-01-01 00:00:00    + h& u4 [* i2 f! a/ m6 C2 g7 ^
mysql> select date_add("1997-12-31 23:59:59",interval 1
7 y$ [, m( a" j2 R5 Eday);   
- d, B% ~% `0 ]  -> 1998-01-01 23:59:59   
' h' P$ d3 ~% ~9 Q& Tmysql> select date_add("1997-12-31 23:59:59",interval
( A; w+ x) F; y- K0 B"1:1" minute_second);    ( q' F, W* v# n
  -> 1998-01-01 00:01:00    . y7 Y/ t+ _; _  ]3 d$ X; J
mysql> select date_sub("1998-01-01 00:00:00",interval "1+ c9 t) Q0 u6 D" O' {, `
1:1:1" day_second);   
; l3 }2 I* p" J' g4 S  -> 1997-12-30 22:58:59    ( {" S2 I8 }# v+ ]
mysql> select date_add("1998-01-01 00:00:00", interval "-1: N( q( E9 }8 e7 T/ o; ]
10" day_hour);  
; }- P( R& P# {2 @* h( _2 h) f  -> 1997-12-30 14:00:00   
! D: N1 u& c3 K8 A& ymysql> select date_sub("1998-01-02", interval 31 day);   
. U/ q1 q! E- a/ Z) N3 L0 F  -> 1997-12-02    ' _* c& Y- p5 a, L/ h
mysql> select extract(year from "1999-07-02");    ( G! e+ O- T9 t$ a; m7 ]
  -> 1999   
9 [" v- l) G' I8 Z7 K* I6 e' T  qmysql> select extract(year_month from "1999-07-02. c) i# K! Y/ n8 v+ Y
01:02:03");   
2 X1 S$ Z2 [$ p  -> 199907   
( s/ I  t$ Q2 S: W/ qmysql> select extract(day_minute from "1999-07-02
8 U- a; K# g; i" e" _; ~& M9 F01:02:03");   
, ?3 r$ T& m% V( v  -> 20102    0 ~" d4 M7 t/ [) x$ e9 S
3 u' ]$ A  v$ Q# c3 `8 N: q3 _
to_days(date)   
7 ?2 n' U& t1 P7 e/ B- o6 k返回日期date是西元0年至今多少天(不计算1582年以前)  2 I3 M7 `4 }; K2 Z; K* h2 f
mysql> select to_days(950501);    + U+ \1 p% X' B- I4 V; s
  -> 728779   
) A1 L& S) m1 Q* r9 [' wmysql> select to_days('1997-10-07');   
0 D! o6 U: z$ s; _1 F3 M  -> 729669    5 @9 m" h# O+ _

$ ?4 q  h  K1 |+ B2 ]/ t9 ufrom_days(n)    4 \; i, d9 E  W9 j0 d% i0 @4 V
 给出西元0年至今多少天返回date值(不计算1582年以前)   
$ K5 `8 ]: L1 O- }4 bmysql> select from_days(729669);    5 S7 V/ Q5 Y8 ]% w0 [% b
  -> '1997-10-07'   
+ d. C) g4 I7 Q" ?
( I2 Y0 U- z1 Odate_format(date,format)   
# e5 ?8 C# X  j/ G5 ] 根据format字符串格式化date值  ) S: Y5 x- o) p7 P. y) B
 (在format字符串中可用标志符:  0 m* v5 a( y- ~
 %m 月名字(january……december)    - T' I7 w8 ^' U% M4 a/ r
 %w 星期名字(sunday……saturday)   
0 b8 r- J+ F. |% c* H %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    * _5 g. u! R4 o: |
 %y 年, 数字, 4 位   
. ?5 ?6 E: \" y$ G %y 年, 数字, 2 位    9 c( ~4 P4 I3 s! t4 M- w! k7 l2 }
 %a 缩写的星期名字(sun……sat)   
& |3 z0 u6 L4 j6 W( ? %d 月份中的天数, 数字(00……31)   
. C  {, l) B/ s: w) p7 N5 l %e 月份中的天数, 数字(0……31)   
7 A% Y2 g$ e4 s, u# ^; ^: [; ? %m 月, 数字(01……12)   
. D) m3 Y7 J7 W' T0 G! v# `% m+ U6 l %c 月, 数字(1……12)   
3 g' W4 C0 N& @+ T/ }0 `! Z %b 缩写的月份名字(jan……dec)   
1 {2 E% q5 J! T& U" t %j 一年中的天数(001……366)   
* I0 p2 x6 e1 p0 N/ M9 l %h 小时(00……23)   
) l9 Z; Z3 [$ R %k 小时(0……23)    ; X# u7 o+ ]( `
 %h 小时(01……12)    9 P- }) x, r: k$ f% a/ T9 N5 Q8 i5 k
 %i 小时(01……12)    $ r7 H2 s; {* b' J' |- A
 %l 小时(1……12)   
/ P3 O  V- b: q- `/ G %i 分钟, 数字(00……59)    % S- g! e3 L- e
 %r 时间,12 小时(hh:mm:ss [ap]m)   
8 g/ [+ @  U( G$ s+ H* k8 a %t 时间,24 小时(hh:mm:ss)    % b: C0 v) n: @& \! p
 %s 秒(00……59)    5 \8 A0 a( A( \3 X; y
 %s 秒(00……59)    ( e  B: @8 K  i
 %p am或pm   
; ~( M2 A0 v; o %w 一个星期中的天数(0=sunday ……6=saturday )   
' ]! w* _0 B" h# x+ ]6 z- D %u 星期(0……52), 这里星期天是星期的第一天    4 ^0 M. S' y0 d+ p
 %u 星期(0……52), 这里星期一是星期的第一天   
# y" s% R6 w3 \ %% 字符% )  - G: d% y+ f/ d) l
mysql> select date_format('1997-10-04 22:23:00','%w %m %3 q6 M- h' a9 y# T) s' G! c) }
y');   
2 V& r0 i7 O- ?/ B0 s5 P  -> 'saturday october 1997'    8 K! J1 a5 H1 b
mysql> select date_format('1997-10-04 22:23:00','%h:%i:%* M5 Z6 D/ \7 C! p( D! c" i4 i. X
s');   
9 h6 ?* e' _3 X, ?  -> '22:23:00'    0 p/ w6 L8 ~1 Q7 k  Q
mysql> select date_format('1997-10-04 22:23:00','%d %y %a. f% L+ [. @$ }$ B8 M! B
%d %m %b %j');    # u# Y" H" E# x6 _8 P0 t. N
  -> '4th 97 sat 04 10 oct 277'    4 I  ~" H* z6 B# E* C
mysql> select date_format('1997-10-04 22:23:00','%h %k %i
# V4 P& G- x" x; q  q9 V%r %t %s %w');   
( M+ N. @0 u3 C! |; f" d5 y' E  -> '22 22 10 10:23:00 pm 22:23:00 00 6'   
. V! b7 E* d5 e
7 `( t0 P" ~: W5 \. itime_format(time,format)  
& q6 i. Z: u9 t 和date_format()类似,但time_format只处理小时、分钟和秒(其
, V% V4 ~' {- G0 Z* v# N余符号产生一个null值或0)  
! e9 @7 U+ }5 z! } # r5 u9 {( s# Y6 i/ [8 J  i0 ?
curdate()     
5 i0 h! Q. a5 {/ `1 d/ Ncurrent_date()  + g3 O6 v' `6 Y7 G' w) S
 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
# }0 e3 O) F8 l. y1 l- b处上下文是字符串或数字)    ) f5 U! J- _& g  T& ]/ b. H
mysql> select curdate();   
# p2 }& p; b5 v% [4 B  -> '1997-12-15'    ' r4 q$ b+ c7 |! O$ X% ^
mysql> select curdate() + 0;   
& b' c: R/ V2 \% H  T2 Y  -> 19971215    . P0 _+ I- v/ h% Z
. Z/ P: o3 f% s, h
curtime()    0 z( P( X! K, `6 b4 N4 D
current_time()  
6 q" L! S/ ^7 ~% z 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
; H: p# E# I! p! c; J下文是字符串或数字)      
) o, t8 m0 k0 o& Q2 z2 \& U( Y- umysql> select curtime();    2 Z, L& q8 d. R  ^! Q1 F! ]
  -> '23:50:26'   
2 a/ {* b1 q, e& r6 ^3 f( Vmysql> select curtime() + 0;    4 n) k' Y+ T) L* o
  -> 235026   
1 x( h+ @5 _; x# ]& f  }$ |4 |
( x( `$ [% t6 x. S& R" J9 vnow()    8 \$ C; n) B) I# _
sysdate()    
1 T$ D" b# I. A1 s* e* Ucurrent_timestamp()  
+ D( R. p0 B! s+ A 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
) p2 y( ?+ X0 w1 T/ G时间(根据返回值所处上下文是字符串或数字)     
+ H1 b2 T( N& ^# b* Cmysql> select now();   
+ c4 v3 K0 Y: B( B8 J/ r  -> '1997-12-15 23:50:26'    ; N# k8 v' ~8 R' R1 X/ b" q
mysql> select now() + 0;   
/ c1 B& Y$ M% c1 U8 p  -> 19971215235026   
4 v. A2 \+ B6 c. f
; Q6 U- D  R- vunix_timestamp()   
, k+ y( l( h& J( Z; f) u3 `5 Y+ kunix_timestamp(date)    # P' S7 j% ^* |
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒1 G0 b+ x+ a3 O+ o; W
数,date默认值为当前时间)  
- \; V* f% N1 P" Y7 [mysql> select unix_timestamp();    * A9 V3 q# A, K$ n  P/ r
  -> 882226357    " P$ e# W; _6 G  z
mysql> select unix_timestamp('1997-10-04 22:23:00');    ' x6 v' K9 u. n/ D' }: F
  -> 875996580   
  ]; ?; m; A1 V2 A% E6 z & l* n# B( f0 o- I$ A9 _9 g4 f
from_unixtime(unix_timestamp)   
5 F8 a; M8 Y& p# x( Z5 B8 g3 S9 w以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的7 W5 a0 E$ j6 _/ }
值(根据返回值所处上下文是字符串或数字)     ; ?* W3 [# [" O& |! t
mysql> select from_unixtime(875996580);    # O' A% H1 \' \+ ]: _# W
  -> '1997-10-04 22:23:00'   
9 j& {# _- T" P  omysql> select from_unixtime(875996580) + 0;    8 I, r/ ]" J' f/ D
  -> 19971004222300    4 C8 s8 s7 f' K3 A5 o/ k$ |" {" n

7 ?& d, V) G; h- Sfrom_unixtime(unix_timestamp,format)    0 d3 |# v+ D' M3 y0 R2 q
以format字符串格式返回时间戳的值  / F) k  }& @9 A) O
mysql> select from_unixtime(unix_timestamp(),'%y %d %m %
3 _" S, a( |0 {3 u5 [4 Wh:%i:%s %x');    / o% u! @/ f# t% Q; O
  -> '1997 23rd december 03:43:30 x'   
! u% C7 C  R: L: c& \: r * T" K4 \& K0 }7 t9 ?6 b
sec_to_time(seconds)   
5 i; g. {$ Z8 m, j) }7 E以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
/ i4 |' L& g* H3 v' g' emysql> select sec_to_time(2378);    ' u; I+ ?! @( N2 U% l+ u0 a9 b2 f; e' s! ?
  -> '00:39:38'   
9 _( u' w+ O$ `, wmysql> select sec_to_time(2378) + 0;    ) P( l6 K, h- g8 i
  -> 3938   
* N) G- }1 U7 v+ M1 r2 J. m9 p
4 y9 K. `6 R  m  n$ Rtime_to_sec(time)    2 \) G4 V2 U" ?" K, K  {
返回time值有多少秒   
2 w/ ~+ s% A# u1 B6 x- p9 }mysql> select time_to_sec('22:23:00');   
8 q% ~' X) X: a% x6 i  -> 80580   
# ~8 n7 @8 ]  H& e% W0 F# \* Kmysql> select time_to_sec('00:39:38');    " a8 Z6 X( a8 S4 ~: k3 U4 ^
  -> 2378
* f2 D' l) A$ X# I 6 C" L8 e8 w) |: I- T$ T
转换函数3 w  R, h# `2 H9 \6 H3 p& F
cast* T1 I- m/ k9 R, G7 g
用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]
' q% J2 M, Y0 ]* \* t. y实例:select cast(a as unsigned) as b from cardserver where order by b desc;
; Y: O6 ]% \5 X) F+ F2 l: g; Tconvert:
! c; L# \7 R) V4 t; E( U. e用法:convert(字段,数据类型)
1 o9 S& s' x  ^- Y. \! ?实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
5 @  {, v8 q5 t$ {+ o0 z8 f+ _* m
回复

使用道具 举报

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

本版积分规则

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