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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数" v. K) }" F7 T. H% M5 C
ascii(str)   
: M" \- B( N: _3 w6 s( d. U返回字符串str的第一个字符的ascii值(str是空串时返回0)  9 C5 `- m+ s% P3 C7 A/ p
mysql> select ascii('2');  
# }1 y7 o' m6 x( s$ s* d  -> 50  
2 r$ X+ L. O1 b$ L) Mmysql> select ascii(2);  8 ~! P4 w1 b: j& K& y4 y7 r. v4 b+ x
  -> 50  
9 w: ~) r: c" S+ Gmysql> select ascii('dete');  0 U; \8 @, w1 }, `4 a
  -> 100

4 }. G, `' F0 }5 P, o9 O0 Gord(str)   
0 p( n, i! L9 V+ J6 ]如果字符串str句首是单字节返回与ascii()函数返回的相同值。1 D0 Y. f6 _9 e2 Q, l' ?* b( \$ x

( n6 \2 r/ [: U& P" K  @! f- f* `9 B如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  
7 |4 m( P: U+ p* v) {' wmysql> select ord('2');  
) R) [9 k' Y! T& M. P  -> 50  
  `& G9 z& Q4 t+ M8 _   ) ~% c0 \7 L( g, x& G% _% }; \; Y
conv(n,from_base,to_base)   1 @4 o4 `( T) K, T1 v2 ^
对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  . m* I" _8 V# Q% ?: Z9 u  C
mysql> select conv("a",16,2);  
$ i) \# s) f$ \0 f7 p8 X) f  -> '1010'
# L- ^# B; A$ a: h  Tmysql> select conv("6e",18,8);  9 g; P' l7 D: r3 u) z
  -> '172'
4 b- T0 O. C8 a" _* j3 g# Zmysql> select conv(-17,10,-18);  
) G! Q- K5 s/ d* i& k. b  -> '-h' 3 ^; I3 f4 `. N3 [# y
mysql> select conv(10+"10"+'10'+0xa,10,10);  
+ v, U+ V3 M0 X  A/ Z  -> '40'
. f& f5 a; \" |   
0 @4 g  v' r) X" P" @$ D7 ebin(n)   
' m+ L; E9 U2 V4 w1 J& J1 \把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
" ~3 C* s3 o* a8 V" D- A( n/ Tmysql> select bin(12);  
4 T6 `+ f& A  K* x  -> '1100' 6 _% i$ q0 U) c' Q) [3 _

' N) C2 v: P1 u7 c4 L! I( m* d! zoct(n)   
& F! Q4 k, X! X9 e: H: g, r8 z! O把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  + ^& S; f* W( v! Y0 }3 ^; i% ^  p" {
mysql> select oct(12);  % X2 [6 `# w8 p2 f) Z3 ^) P8 U
  -> '14'
6 A2 w9 p9 M0 l0 O; r( P' J   
) N3 j6 W1 c2 G  Lhex(n)   9 \1 A' H% d# b8 ]9 i) A1 m/ m
把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  % k: h5 z8 \$ J( I
mysql> select hex(255);  
$ m. W6 b. y+ \6 L" v# f  -> 'ff'
+ _  F) p; D. A. {0 b$ f4 d   
% U: V2 x( [4 G+ }char(n,...)   
! `) Q  t9 u' ?% l/ w: R8 P返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   * E! V! {/ e4 [7 ^6 r& ]
mysql> select char(77,121,83,81,'76');  + b7 W8 A" n. Q! o  |0 |7 v
  -> 'mysql'
! ]! H2 p. J- r, Pmysql> select char(77,77.3,'77.3');  
0 L0 _) ^; }0 m9 D' R  -> 'mmm'
+ ^# Z7 g$ f$ g& }( m5 _' h   
% A* Y+ w3 C2 U2 R' y$ |8 |9 Xconcat(str1,str2,...)   * v: S3 S5 s! S
把参数连成一个长字符串并返回(任何参数是null时返回null)  
1 Z! ~: T: Q+ ~* {; m. ]mysql> select concat('my', 's', 'ql');  
. @+ h2 @! G7 U# Y1 g% f* t  -> 'mysql' 5 o6 E- \6 D4 A5 K
mysql> select concat('my', null, 'ql');  
) h7 U, v. r2 A. d1 s  B  -> null # F5 i- d: E  U7 R6 \# D
mysql> select concat(14.3);  % d# f, z  O& U* y
  -> '14.3' 9 A# S+ G; [! H& F+ M

6 D2 {9 I. b' g9 zlength(str)   / \  w/ @5 t' g) U
octet_length(str)  
/ G0 y. |. }5 L6 schar_length(str)  
$ m" B4 f, g( J7 f& t3 d/ Scharacter_length(str)  
' a- P8 N$ f4 w& I! i7 {4 J# I返回字符串str的长度(对于多字节字符char_length仅计算一次)
" W  M2 a, W4 e# {  Tmysql> select length('text');  * ?" z, T: B+ u  y% ^+ z) [
  -> 4  
) j$ T, Y, l7 y, B& H) L2 y, ^/ xmysql> select octet_length('text');  ( R( j) b1 u% E2 x. t
  -> 4  + z! J* R) q  a( J) S

# V1 k0 G2 L1 |, e1 blocate(substr,str)   
+ F/ ^7 y1 {. @position(substr in str)   
$ {! @0 N) X5 n# P6 m8 E) n- T返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  , R% L* p" l2 [5 C) y% r: [
mysql> select locate('bar', 'foobarbar');  1 j+ W8 M: q/ o6 o& a) O$ m7 q
  -> 4  3 U' i; z9 m; j$ U
mysql> select locate('xbar', 'foobar');  
  M7 U/ W( I3 y5 C, I. {. ?5 L  -> 0  
0 G) }* r2 P& R# e: d; p. k    , B6 i9 h& Q! |$ N
locate(substr,str,pos)
( Q, M4 s# r! {返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
+ D1 I  Q% v) Z; O( ]" d& Bmysql> select locate('bar', 'foobarbar',5);  
  h1 N' Q0 {% i9 \( \! {  -> 7  
/ @! B: W0 S- w2 m$ L
$ e! Y0 I/ {3 o. oinstr(str,substr)   # n+ L/ ~- l  h, c+ F: Y
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
0 X6 h: b, g% M* a8 Emysql> select instr('foobarbar', 'bar');  
2 _& [- @; \$ Z1 y0 W  -> 4  
0 L) \- a6 F  zmysql> select instr('xbar', 'foobar');  ( _7 M- c" \5 h, R
  -> 0   
% Q! B' h4 B0 A7 r 8 v% L. ?  I4 H" A
lpad(str,len,padstr)   ! \3 w- Y' k; [% V3 g: a+ F  x
用字符串padstr填补str左端直到字串长度为len并返回  8 U9 F1 J. q/ S% ?7 w* P4 u5 f, N
mysql> select lpad('hi',4,'??');  
% R6 I0 F# F1 ^, k7 D  -> '??hi'
+ p  R' F; \7 F/ ^  J$ r   
1 x% W# Z. T( h! rrpad(str,len,padstr)   ) e# K& w( ?8 t) T
用字符串padstr填补str右端直到字串长度为len并返回  : p- h1 W# x8 Q2 T/ ~% d% D: [+ o! {
mysql> select rpad('hi',5,'?');  
" _. l5 E( `, j/ L, [  -> 'hi???'
  X) Q( A3 `/ v# d4 _( n$ t# C2 \
5 x" Z: a, F8 h4 h. k' Z1 _left(str,len)   
/ D& l& T; Z' \  p返回字符串str的左端len个字符  8 M+ Q7 p/ W2 Y' ]7 E
mysql> select left('foobarbar', 5);  
% e& Q5 S! e' o- X& W  -> 'fooba' + X* P3 E2 Z& \* P1 o
  z1 L! A" z: _( y: ^' f
right(str,len)   
( s0 a6 o/ `+ B返回字符串str的右端len个字符   ' W  E  j+ |5 b/ {4 Z7 H2 I
mysql> select right('foobarbar', 4);  
/ Y0 X" s$ ?- _) t' f  -> 'rbar'
" J5 o' v. T1 N1 ~# l3 S; K; \
& }8 M; [1 P  x: O- w& K+ V0 Dsubstring(str,pos,len)   
9 C  z. V. n, z+ ~substring(str from pos for len)   . T# S1 Z+ \. ^( i
mid(str,pos,len)   
- M+ T$ e- a6 Y/ Q* S5 T返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
5 |3 H9 Q* D2 M% o& H8 @  -> 'ratica' 9 |) G0 k" h' k
+ e' m% [' C4 N% O( T, u+ H
substring(str,pos)   
; c( {) m, C; l; ~; Usubstring(str from pos)   ; a0 d8 B( }9 f# _5 y$ y3 x! q
返回字符串str的位置pos起的一个子串  - G2 W7 ]/ B9 `1 H' v0 F$ Y9 r
mysql> select substring('quadratically',5);  ! m5 V7 y  a; y, l! w
  -> 'ratically' 3 p, t$ _0 A/ h$ k- H
mysql> select substring('foobarbar' from 4);  ! T# j5 W. n8 {5 e1 d/ S& z
  -> 'barbar' ( h! I3 n, [* d! j1 p2 I
6 i1 B/ J4 s2 q& `# r* s
substring_index(str,delim,count)   
! E$ _9 \3 j  ]1 [- f' R返回从字符串str的第count个出现的分隔符delim之后的子串
0 _! O  X+ ]* U* y7 Z9 D5 ~(count为正数时返回左端,否则返回右端子串)  
  p/ {; _4 A0 a) Tmysql> select substring_index('www.mysql.com', '.', 2);  
: C& K) f* g. t3 {  -> 'www.mysql'
5 Y4 x0 g2 j4 u7 pmysql> select substring_index('www.mysql.com', '.', -2);  
& ?% N1 D2 \) ?" j: n  -> 'mysql.com'
7 q  _$ x7 {% ]# Z% L: P
2 x9 K0 `1 A1 n  qltrim(str)   
! d5 d$ z% w3 q$ h. o: _: P返回删除了左空格的字符串str  
; E+ n7 M7 s! \* a( k( E, jmysql> select ltrim('  barbar');  , L) \5 d! S7 y/ D2 r
  -> 'barbar' ! [3 @! L: |& i5 l3 {7 C

! C/ B4 l3 c5 v( R% x  Drtrim(str)   
5 c+ H; m1 j) p& G/ B: z返回删除了右空格的字符串str  
: ]4 c8 e* H* Z* O$ Bmysql> select rtrim('barbar   ');  3 ~, J# Y7 l% Q0 H1 Q/ d( }$ U: W
  -> 'barbar' $ B$ g! ^+ Z' `7 a

3 W6 Z6 ?  j3 jtrim([[both | leading | trailing] [remstr] from] str)   4 }/ R* w& v7 y- l$ ~- K* ^+ M+ P
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  2 }' T3 ^3 _9 ?8 L  h, M: Q- w* q9 q
mysql> select trim('  bar   ');  
# ^9 W) T, C0 }5 T4 W( I+ L  -> 'bar' ! `, [% k- |: k* n& @1 C
mysql> select trim(leading 'x' from 'xxxbarxxx');  
3 t4 e& m: W4 h! B4 c/ ^  -> 'barxxx' $ r" }+ A# }4 @$ f3 q! x  ~! G: b
mysql> select trim(both 'x' from 'xxxbarxxx');  + b6 i4 b. t( Y7 r6 X& i
  -> 'bar' ! }- o. C. X/ `$ o; F) X' h
mysql> select trim(trailing 'xyz' from 'barxxyz');  
) M+ ~4 Y* l8 a0 B4 z* \  -> 'barx'
5 ^9 A, E  q4 N& {  [+ | , T( c# z  t! q7 l( D! ^
soundex(str)   
5 \: ?7 }' o9 L; a返回str的一个同音字符串(听起来“大致相同”字符串有相同的
' f4 t8 c' O! g* Y4 P同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  & ]% @3 E( V6 d$ J4 V! `: ^
mysql> select soundex('hello');  
6 |# u: k' x& h8 B0 k- |  -> 'h400'
* l6 _8 N/ E" F1 h+ Y) omysql> select soundex('quadratically');  " N4 ~/ K' R1 G/ H% P) ~' V9 s
  -> 'q36324'
5 y2 A7 g) m8 _4 [2 }   
; v) i# ?" a' `$ m9 n6 J/ vspace(n)   8 y9 H" s4 V3 o6 k
返回由n个空格字符组成的一个字符串  $ R# p$ `3 O: F1 H0 h5 _; t5 u- C1 p
mysql> select space(6);  * }  T" j2 t( |2 {3 Z
  -> '      '
- W+ \* t* i# l  c& G7 f   ( k# R% S) f" T/ q1 t6 `' s' u, o' `5 f
replace(str,from_str,to_str)   
& c% Q" X6 T2 }6 ^( f用字符串to_str替换字符串str中的子串from_str并返回  : o/ I/ m- k- r7 ?. m+ f( p
mysql> select replace('www.mysql.com', 'w', 'ww');  
$ ]6 k0 l" b) r  -> 'wwwwww.mysql.com' & \, m+ B$ f* x. v, ?" Y% }2 P

) D( S' L) r( E! o! R8 T% n- Drepeat(str,count)   + K4 }5 u2 A/ U% u) n
返回由count个字符串str连成的一个字符串(任何参数为null时! J* Q0 _0 |# G7 R; ~1 r
返回null,count<=0时返回一个空字符串)  + i' F$ r2 o5 A
mysql> select repeat('mysql', 3);  
/ O$ l+ n4 z# \0 ?: j  -> 'mysqlmysqlmysql' % M$ }7 J' W9 ^5 O6 {. j+ g0 P* s
   * w: m- @4 ]. W. V. D
reverse(str)   
( h4 H* ]% G# v颠倒字符串str的字符顺序并返回    A+ ~# A  o, K4 Y6 u
mysql> select reverse('abc');  7 ~6 `+ f/ K1 q& F
  -> 'cba'
. I  N) A2 X( t. f
% z& D, T  ]) A9 r& B& i) ^4 F) Vinsert(str,pos,len,newstr)   ; j9 K2 B1 F9 a' G5 G
把字符串str由位置pos起len个字符长的子串替换为字符串+ ?3 ^7 f2 K4 W: @% `6 M" T
newstr并返回  7 d$ c$ Q- I3 x% M& U
mysql> select insert('quadratic', 3, 4, 'what');  
' x$ B  j6 P: m: ]6 c8 {' R  -> 'quwhattic' ' {0 x, d9 F# v4 Y4 R
9 |: q& c$ A+ e2 g) u& \2 \* }
elt(n,str1,str2,str3,...)   ' X* r9 @  I) M7 x+ i+ Q% u6 z
返回第n个字符串(n小于1或大于参数个数返回null)    `5 y- @' t, T
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  ) G  A7 `4 R/ a; x8 L- L0 B
  -> 'ej' ! V8 h* u3 }( ~4 L2 L5 B5 A
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  ; ~6 L" E4 S/ c
  -> 'foo'
) z# K' J$ n5 j  G! Q
7 ^4 `% q9 v+ k; R5 L8 Kfield(str,str1,str2,str3,...)   . Z3 d! w  c% P) f
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  3 D7 D7 c( v1 m) M3 ]' S: ^+ O- Q
mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',, W0 B* ^9 K: g3 o9 p, j
'foo');  
1 w3 J8 N' t8 W0 w! O2 U/ q  -> 2  & z: C) B4 s" W+ H! p2 z( {' `  J
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',- \7 \4 x8 W3 R/ F8 r) `) [
'foo');  ; `$ |- g" R3 i5 {! i; w- K+ X
  -> 0  + w. c  r* P: p% ?  d
6 B. D  W+ V' s& N- q& A& O. c
find_in_set(str,strlist)   ' |* T: S0 T  h. O6 i4 C: _
返回str在字符串集strlist中的序号(任何参数是null则返回
9 v" D8 ~/ O, G  Gnull,如果str没找到返回0,参数1包含","时工作异常)  
* G5 D( p, u; H# K1 b3 H8 e4 Gmysql> select find_in_set('b','a,b,c,d');  ) ]9 i) |5 w$ ?4 _9 S
  -> 2  + \$ u2 g# q  P9 Z/ v3 K4 k
   " `9 v3 a. l: Y% Z
make_set(bits,str1,str2,...)  ! H5 T( x" B: Y3 n) E; u) k
把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应3 C  }' X: {- P$ }" E
位置的字串选入字串集并返回(null串不添加到结果中)  
+ o; B  I4 K9 u: A: I+ Wmysql> select make_set(1,'a','b','c');  7 ?- p( Z# N* o+ M* ]
  -> 'a'
$ o+ n7 f" G7 O/ m4 {mysql> select make_set(1 | 4,'hello','nice','world');  # w$ M, R+ C8 L8 F- W9 P
  -> 'hello,world'
) q1 h: O$ ~. ^& ?6 smysql> select make_set(0,'a','b','c');  9 r# g3 C& Z' ~# T8 ?- r/ S
  -> ''
0 `& H7 R% i/ y( k) Y2 M
$ V2 q, @' X# qexport_set(bits,on,off,[separator,[number_of_bits]])   5 q0 o( `  I* a+ A
按bits排列字符串集,只有当位等于1时插入字串on,否则插入
6 ]0 u2 N0 @% k7 Z/ @5 roff(separator默认值",",number_of_bits参数使用时长度不足补0/ ^+ I" A0 \! U
而过长截断)   - W4 ^5 [5 y' O2 N
mysql> select export_set(5,'y','n',',',4)  
1 U  o8 M0 n1 C6 M/ Q  -> y,n,y,n   - j$ H* y" j  S0 Z- t- ~) \' D4 {

7 X0 N: G8 l+ R* G& n/ |% vlcase(str)  & v8 ?. G8 j# C1 ~5 H& K
lower(str)   
0 e1 i( M3 p+ ~% x1 o返回小写的字符串str  ( z2 H+ a9 `! i# S
mysql> select lcase('quadratically');  
6 n3 Z. y4 s9 S' e  \  -> 'quadratically' 3 x, p9 ], w/ a! t3 P$ L" f$ ?
   
9 y9 \6 f: C2 ^* \* S7 eucase(str)   
0 Y! o, ~9 [. R* }4 r# gupper(str)   3 t& y* r- p6 F( h3 I1 C
返回大写的字符串str  
7 c: s# K; q3 `8 k3 O- u3 Wmysql> select ucase('quadratically');  
3 J9 B+ g' `) j4 j# X5 |  -> 'quadratically' 4 {& \8 m# f# K( ?- e
* W- i* V5 E: u. L& \$ r! v/ Y
load_file(file_name)   
* T$ l2 Z  J2 N& r* Y% {读入文件并且作为一个字符串返回文件内容(文件无法找到,路径, M9 @. c; _. r" M. {+ X% V! w+ r
不完整,没有权限,长度大于max_allowed_packet会返回null)  6 J9 w2 w2 v7 Y
mysql> update table_name set blob_column=load_file
/ H. Z+ t, I1 l("/tmp/picture") where id=1;  - l$ a  {, v( {5 w9 e: z# N8 G
# H4 e: z7 U/ {5 w4 L1 z
2、数学函数
" Q& D3 L5 M7 F: Z) labs(n) 2 [4 a7 `( s3 f! M
返回n的绝对值  $ a( C5 y) z+ l$ B! v
mysql> select abs(2);   
% E9 M- E1 u) B( _) N! ]9 h  -> 2    % T: `8 P( o* P1 ]; g7 z
mysql> select abs(-32);   
1 R& `, Q8 A5 l3 V6 x6 _' o2 i  -> 32    ) e) E3 w/ P  {; T' }% S  }
   ! D, U0 i: {+ W6 R0 {  H) |; {! |. y
sign(n)  
4 @% R: M8 O, ?% `$ J返回参数的符号(为-1、0或1)  
. R, Y1 A& T7 i7 }9 Ymysql> select sign(-32);    2 t# q: W3 u7 _$ X. ^' V
  -> -1    % t) G1 K6 q3 Y, z6 j+ w$ J
mysql> select sign(0);   
) x0 t: I" u- ~1 c  -> 0    / `8 l/ s7 g1 m+ Z- |7 h# T
mysql> select sign(234);    ! M1 l& E6 `. {: X4 e
  -> 1    8 j! \* G* ~( g* G0 K+ ^
1 a1 ^. ~4 v( U) J5 `* Y
mod(n,m)    * l' F* T( ~* y9 u7 h" F; d
取模运算,返回n被m除的余数(同%操作符)      K& T" d3 _0 _' X2 D. X9 T
mysql> select mod(234, 10);   
+ `/ |8 r7 \9 }# u" z  -> 4   
4 l1 B3 C% |/ ~8 P; wmysql> select 234 % 10;   
; A% A  U+ I" ?" E0 m4 b5 u  -> 4    1 R) ], i( O/ I$ V" h/ ^
mysql> select mod(29,9);    8 E  D; w# {! S, Z+ P
  -> 2   
, }& @, ]2 _* J' S& o
) A3 T/ s0 ~7 e# Cfloor(n)  
, t' `9 P# u" }3 v  c0 M返回不大于n的最大整数值  ! u7 S* j3 A8 v# T3 q1 D+ r: G
mysql> select floor(1.23);    $ q+ c3 \8 i! J* t
  -> 1   
: C. q7 M) x6 |" tmysql> select floor(-1.23);    % K* l+ P5 J) M- I$ N
  -> -2   
% C$ O0 y  ]3 ^8 }
$ }/ Y: X/ l2 ]2 Gceiling(n)  9 I# W( E8 J$ e  l: E/ y
返回不小于n的最小整数值  & U, \" m: f# A' }9 x% _' U" V
mysql> select ceiling(1.23);    8 Y1 @9 h! g4 T! F
  -> 2   
0 J9 V3 M* W- F) p' jmysql> select ceiling(-1.23);   
$ Y; T6 A% b( ]; C; L7 X  -> -1    * ?# V- b6 s, P, _! G8 G- z! B
: t! l% g/ u5 r# \
round(n,d)  4 ?1 x2 t  v& _
返回n的四舍五入值,保留d位小数(d的默认值为0)  
8 N: q/ `" Q* n: zmysql> select round(-1.23);   
" M3 C1 n9 @8 _* O! M. E8 P& y# n  -> -1   
* }4 {* p# T# f( Z5 Xmysql> select round(-1.58);   
, h. N6 M" I7 V  -> -2   
2 v& |( w' o1 nmysql> select round(1.58);    : G# S; U3 N# X5 A
  -> 2   
. v9 F: Q: k- f4 d5 P4 U# {mysql> select round(1.298, 1);    3 K" w: i. y3 M& [; |( x, u
  -> 1.3   
4 Z8 |8 a) C# J8 G! h/ z/ q( L8 @) [mysql> select round(1.298, 0);    $ }0 G" C9 r1 N
  -> 1   
& w' v% x6 P! W1 ^& N/ ?
* n. L" A7 j) Y! G) rexp(n)  5 S! [, t0 J, v. ]' s: j
返回值e的n次方(自然对数的底)  ' [: P/ y" j4 J, M. W6 j
mysql> select exp(2);   
5 \. t  y" l, O( \  -> 7.389056    # {- e$ W: E( p& s2 Z1 W
mysql> select exp(-2);      a7 W1 m) r* _9 B/ T
  -> 0.135335   
0 p7 L1 }7 ]5 E" M: b( g
" N% e$ e# F, e+ ~  C& H1 dlog(n)  
1 F2 m% \  ~2 |! Y返回n的自然对数  9 s% K3 s* M" o1 J" i: K
mysql> select log(2);    / u& z" H9 e% E; E6 j6 ~% V. T. T
  -> 0.693147    # j1 {  }8 W, r3 E5 N
mysql> select log(-2);   
; O3 K2 q' P) T6 }6 Y$ h4 e3 z# D  -> null    ( ?2 o2 d2 d3 l6 w$ H

' o; Z4 d6 S) v. xlog10(n)  " D. j  X+ B9 G8 Z8 m
返回n以10为底的对数  
( d; u( i0 I& _9 I0 p' Bmysql> select log10(2);   
0 m6 L" D  X8 P9 K  a1 U4 {  -> 0.301030   
4 a, O( ^# ~4 |mysql> select log10(100);    ' K% ~1 {; B) o4 v# x  a
  -> 2.000000   
' h/ C- _0 }3 j9 }9 m- E' k; Ymysql> select log10(-100);   
# O. t& j6 E# ~  @% K  -> null   
/ ^  z) G0 x5 s$ S
9 }6 Y" t" @0 p/ @6 gpow(x,y)    5 z2 x9 O  [2 L8 ^" {
power(x,y)   
6 @5 v3 S% b$ \4 `1 H 返回值x的y次幂  
0 Q1 a$ _. I2 l0 Gmysql> select pow(2,2);   
* W4 X9 _% m/ W7 h2 i6 J) D& Y: f& J9 u  -> 4.000000    , Z/ {' |/ t3 ]7 I$ X) A
mysql> select pow(2,-2);    - N8 J! A4 g; s7 ~8 {
  -> 0.250000  7 N8 T8 W5 A2 ]: e
! B2 z+ c& ?6 m+ g" Z
sqrt(n)  
; q9 K& u! Z6 H* H( @/ H0 v 返回非负数n的平方根  7 {& D9 b. A0 G( |. M" n
mysql> select sqrt(4);   
1 H$ V- r6 R, u) j  -> 2.000000    1 F: T; k( x3 i: `
mysql> select sqrt(20);   
: f2 r' V- b9 J4 P" f* V0 b1 @  -> 4.472136   
0 N! k& [* N" B. z/ _4 w 8 m# n, c' Y: X+ x$ B9 g/ i% O
pi()    8 [4 r0 a2 r3 h" E4 n. f
 返回圆周率   
6 R5 L) P$ u7 @5 v/ W: Qmysql> select pi();   
" {5 T& X+ D( w% n/ Q( q3 P  -> 3.141593   
7 P8 ]% ~& q& t) ^7 } - N1 W: K; O- Q8 G6 Q' Q8 f
cos(n)  3 C1 a( L* J% L% s6 ^
 返回n的余弦值  & u+ b  r" T# f+ \2 l
mysql> select cos(pi());  
- Q; ~  }$ G2 L, [$ H  -> -1.000000   
0 ~, H; f) A8 h8 J* ?- g+ G% P/ E1 o 0 a0 I9 z8 f3 k
sin(n)  
( V$ U; {+ Q) f/ o2 a; T( ~: b6 X 返回n的正弦值   
) E: D/ m6 v+ \* rmysql> select sin(pi());    7 ]' |; c* Q- r+ x
  -> 0.000000    0 ?6 H. |7 h# P: @/ E

/ s* L; U5 W8 n" j1 D2 wtan(n)  8 }% o1 ~3 h. K9 R+ Z
返回n的正切值  
7 @; x8 \0 I9 H# |# v- umysql> select tan(pi()+1);   
6 T" x5 \. i7 _  -> 1.557408    & V( b+ M( w5 O0 o/ W3 H& W
) x' L. N; l7 n) ~& l) ]/ F
acos(n)  " }9 L) @0 A; @3 Q8 \
 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  5 s1 b6 ^. h8 T0 y/ i- g1 z  @; s& u
mysql> select acos(1);    8 {4 G$ L; h8 V- q' l5 ^" Y! Y2 {
  -> 0.000000   
7 |2 U; G) L. Y3 n  `' h: ^6 bmysql> select acos(1.0001);   
. Q4 P8 s$ O9 {! n; a  -> null    ( ]# g/ A2 a0 W8 B5 w
mysql> select acos(0);    $ ]& i$ X3 e& i4 m2 y1 f' _# Q
  -> 1.570796   
& J2 r$ ^* `6 P& [" y# l
$ a7 X1 n2 V0 @. z& p* H" C) ?asin(n)  / J/ W& S2 Y( c8 @
返回n反正弦值  
6 h2 z4 c/ d% `' G/ ?: d1 pmysql> select asin(0.2);    5 P" B/ ~% U$ t' X9 g& o" F+ J# W) n$ b" n
  -> 0.201358   
% }7 u* m  X% p# A* U# J) }% Amysql> select asin('foo');    4 A. c3 R1 p( x- h1 @
  -> 0.000000   
: _) f4 a- r7 R4 y' y4 b6 m
5 }% D! p: k6 h" Watan(n)  & x6 g- T- `5 h1 d. z2 O
返回n的反正切值  ! c7 P5 j0 ]8 s' P
mysql> select atan(2);   
: j# G* q) u( y# J! _  -> 1.107149   
/ a' Y4 w2 O9 imysql> select atan(-2);    % p! Y7 _5 p9 M4 a, J3 c5 ~: \
  -> -1.107149    3 x  w4 a7 {" R$ w
atan2(x,y)    ; B; ~3 G3 W  l% ?9 I! w9 o4 }
 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  
4 A: D% T6 |* d# `( q' mmysql> select atan(-2,2);   
% A  O5 @- R, ?! b- C% r. a  -> -0.785398    4 U1 s9 ?5 L$ c$ l) I4 u
mysql> select atan(pi(),0);   
0 f* e+ @- o( n4 q/ Q  -> 1.570796    0 U/ q1 v) j; k, E- Q: j% }- I
# j/ l: ~2 h- _: B9 b
cot(n)  
3 V% W7 f! b( E7 b' r0 S* j. Y返回x的余切  
. c* T0 {5 z7 F3 ^" Wmysql> select cot(12);   
) l3 y" _9 t$ S/ z5 H7 T( d" N  -> -1.57267341   
/ \: H9 X3 z$ L9 _5 zmysql> select cot(0);   
, M- M' u/ z  C. a) h$ ]7 b  -> null    * N% J( B  N, ^' }8 g) O# G* U
2 U6 @% ]9 `  V6 O# [
rand()  
" A) j2 C. W4 T( nrand(n)    1 i. ?5 u( D( T- B- z2 `' b
返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值) 0 u9 `) H& h! x% d$ c
" O7 o  j6 y) S
mysql> select rand();   
9 k' O) c, ^9 ]6 _4 k- }  -> 0.5925   
6 t. J$ ^$ u5 O2 }- Ymysql> select rand(20);    6 {' ]$ S8 `8 m0 A  W  p. c
  -> 0.1811    & ^# W. P4 y; {) g6 I" L( [
mysql> select rand(20);   
* w1 ~3 m' q  m9 o8 s  U9 @  -> 0.1811   
) J6 m, {* w2 l, Y3 n' m$ M7 dmysql> select rand();    2 P$ S0 ]$ R* v: B' q: V- e: Y
  -> 0.2079   
' @; c6 R9 @6 T7 b; o, l" f! T8 Omysql> select rand();    2 L7 |! p" t" b; Y4 d8 {& e( p
  -> 0.7888    9 t2 H8 h( E5 f3 S9 K' X

* ~. \7 J* Z* C# Z0 Ddegrees(n)  ( q4 T) m' @: a- [- `" ^9 o5 B: q7 G
把n从弧度变换为角度并返回  
# K& Y6 l/ b% @9 a" Nmysql> select degrees(pi());   
. W) ]/ |  x6 W3 o! K. I6 d  -> 180.000000   
5 }8 \" [+ u1 M6 p; N
* g( n: l+ O+ U9 ?radians(n) # k$ n! X3 z: d. J
把n从角度变换为弧度并返回   
; T* i% k. K+ t/ O' Z# Emysql> select radians(90);   
; d/ r5 T6 v* _5 e6 L; i  -> 1.570796    ) ]4 z* E( o8 \" X6 U
5 V/ K$ a, P  i& u  Q) J. R% @
truncate(n,d)    % t4 G$ W5 C' ^: F" V1 u$ y
保留数字n的d位小数并返回  
+ {4 e/ _4 N" H) {$ B# omysql> select truncate(1.223,1);    ( i- {, G. u  O5 f! K( R
  -> 1.2   
& K1 b& ]6 H' V7 k. }& K5 H. wmysql> select truncate(1.999,1);   
( N+ H2 k) S1 k) J0 E4 Y7 b  -> 1.9   
  B7 ~6 Q& O4 x# Y+ _5 jmysql> select truncate(1.999,0);   
# e( V* n/ p+ t6 z  I1 R& m  -> 1    + J4 O2 ~' ^0 _
1 t7 [8 [, P! \. G. R- M3 E
least(x,y,...)   
* Z: K7 c, ?( U" z# O& ^( Q7 A返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  ' {1 ?" s+ U8 ^% `" A
mysql> select least(2,0);    & H8 E% v) V$ d6 {2 H
  -> 0   
$ D% H  K/ W& Y5 m* H" U6 u1 O! Lmysql> select least(34.0,3.0,5.0,767.0);    / x2 t; K* v, b- x
  -> 3.0   
0 i; b1 X8 l9 X0 Z2 pmysql> select least("b","a","c");   
3 W1 G: C4 l- ]/ L  -> "a"    4 x. s, \$ V% |$ v0 T. T
6 S4 T0 M+ @( m: S5 |
greatest(x,y,...)   
) G+ n2 K% i8 q: M6 b/ `返回最大值(其余同least())  
9 k9 u% W$ `' rmysql> select greatest(2,0);   
4 {1 ^3 U. p2 f; R, a  -> 2    / c. F5 [0 u1 p2 n! N0 I
mysql> select greatest(34.0,3.0,5.0,767.0);    4 G1 u/ p% Q& _1 r! u6 N3 Z+ C
  -> 767.0    ; Z, E+ h" T6 a, W  ]4 I" ]
mysql> select greatest("b","a","c");   
# E  c9 r0 q5 ?" P" o  -> "c"     * ^4 ?  Z8 F" S2 F

& b" Q$ k; l# r! d7 g$ n3 D' O3、时期时间函数
+ p4 E( H, ?6 p' t. idayofweek(date)    , u, K& \$ z. b- r6 Z+ p& B- I
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  . C9 S2 N$ n) F4 A9 X$ b4 ^
mysql> select dayofweek('1998-02-03');   
2 P6 i: |7 F% A9 c! z  -> 3   
# Q1 B6 l* r, k( X6 j4 `+ v
! _9 C! g" b( O+ A8 mweekday(date)    ( W8 u- F, q2 z$ I) W
返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
" J$ ]' z/ [6 M  h6 B  g  , F+ Z- T+ P9 T
mysql> select weekday('1997-10-04 22:23:00');    & y. v3 b! h& L0 t* g% @: [7 g
  -> 5    4 I& Q6 m; T9 L# `
mysql> select weekday('1997-11-05');    ) }; K8 F7 T7 L( W
  -> 2    $ i2 {5 b! e" g/ c* {
8 f5 ~! T; D; m" b
dayofmonth(date)    7 A; s0 N8 z, I9 b  u
返回date是一月中的第几日(在1到31范围内)   
. p; ~% P; [( ~" N& _mysql> select dayofmonth('1998-02-03');   
& a" E1 ^( E5 N* O2 i. i4 i  g  -> 3    . p# _, a/ ~  @

1 A" r; s' u) R3 B  ydayofyear(date)    ) I' D. k1 |! q: w( C4 h! h
返回date是一年中的第几日(在1到366范围内)   
, T* W# a; d% M' [mysql> select dayofyear('1998-02-03');    & T5 o$ g! x2 z! h
  -> 34    , F! b/ V0 `  N: p8 s; r$ {) e
' W, Z! N4 z8 D/ T6 K
month(date)    " r0 Y# l, O! I
返回date中的月份数值    8 I9 u( a( t" a4 B+ E6 F9 p
mysql> select month('1998-02-03');   
4 T, E$ ]. |3 _5 v; f! b- e* w  -> 2    & |5 z5 {- u9 w& C' |

+ n0 n7 b: }5 J: ^5 `dayname(date)   
; [7 [2 z2 _' h' Y返回date是星期几(按英文名返回)  # T' w. R0 Y6 W1 f, W/ M
mysql> select dayname("1998-02-05");    3 b. |# k+ T/ v& K
  -> 'thursday'    % ]( p* U; F. \# s) I; F9 Z6 n

2 o- _" ^; m2 X1 Z4 r( smonthname(date)    
8 e0 Q! G0 p/ y0 n返回date是几月(按英文名返回)  ! p* s8 ~: m# `
mysql> select monthname("1998-02-05");   
; q, n$ q' R7 X& _  -> 'february'    6 u: s" V  F7 ?  r$ Z4 h+ b
% J. \# {  i* Y1 p; Z% M# p
quarter(date)    # Y' g  m8 p! e5 z0 O4 C% ]$ T
返回date是一年的第几个季度    * N2 y4 v% b0 ]3 @/ ^
mysql> select quarter('98-04-01');   
$ s4 k. X( g0 N/ |# q3 D" o0 k( M  -> 2   
; d3 u+ ~: }3 Y- Z8 ]% }5 a% e
" I! }# J3 ~7 Gweek(date,first)   
. {, o& [. [8 u返回date是一年的第几周(first默认值0,first取值1表示周一是
" c% L) F/ V' ]$ x3 f周的开始,0从周日开始)  
8 k) w. q1 n) R+ {; {mysql> select week('1998-02-20');    ( L2 X! ]  K9 @# y  p
  -> 7    9 j- J# j4 g0 X4 L5 l. j  j
mysql> select week('1998-02-20',0);    ) f% p, j( r# w5 W
  -> 7   
6 s" o0 e2 c. R7 Y2 D4 Wmysql> select week('1998-02-20',1);    $ ]7 G. E; S5 @5 r0 |
  -> 8   
7 t) v4 O0 @/ X$ S
0 y# b) P/ S+ S, oyear(date)   
2 L. B- s  N9 h% r/ i* ^* V/ j返回date的年份(范围在1000到9999)    ' V3 D- @0 ]' w) R6 [5 @6 h
mysql> select year('98-02-03');   
7 |  T& y, n4 R2 ?) c; K& k* e  -> 1998   
8 x! S. r" m& C8 L2 j
- U! Y5 q7 m) E, Hhour(time)    4 v( t4 e1 q6 x7 f2 e
返回time的小时数(范围是0到23)   
2 u/ e2 f1 c& f* ~mysql> select hour('10:05:03');    % ]* A7 C0 ?+ C" `
  -> 10   
  ~' v6 `6 O5 s0 O# G! ? ; l6 C; @9 a1 O; Y* u
minute(time)   
4 P# }0 e7 F$ ?- @3 R返回time的分钟数(范围是0到59)   
+ m9 R0 @# t2 c1 s9 v8 C' }  }mysql> select minute('98-02-03 10:05:03');    4 S2 ^1 b2 A# \$ d2 U. }, M; n
  -> 5   
$ k6 c8 x# ^/ q1 k6 }, U" r 4 F, O+ S% f/ b+ ?! e
second(time)    
4 \) _2 C! a7 G( r/ ^' G返回time的秒数(范围是0到59)   8 S- h3 x2 H2 @/ g0 _+ v
mysql> select second('10:05:03');    ! Z( Z% s( K2 Y6 D4 g
  -> 3    , B% Z# [- J: ^) a  k2 g; Q+ }

9 c: s$ w+ g+ t; K# bperiod_add(p,n)   
( M& o1 F$ x- A( @3 ~增加n个月到时期p并返回(p的格式yymm或yyyymm)   
/ G6 n: Z8 K% A: L8 T5 `" i; R' fmysql> select period_add(9801,2);    ( I# Q9 p# D7 P+ |# ^) {/ K
  -> 199803   
1 S' z3 i. ^! W4 s; l3 |) K
9 c' J4 J) ^. V( g: Xperiod_diff(p1,p2)    ; U+ a, Q" V1 n6 Q4 ~
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  & V. E0 n. T/ b, c/ b3 }9 b9 P
mysql> select period_diff(9802,199703);    $ q! {' Z, x4 }' \- L
  -> 11    * X4 l$ f2 E2 _* t/ N$ Z& E9 y7 h

  c& p, C' ~$ S) q) Y$ V* rdate_add(date,interval expr type)  * f0 E. A' S/ F. S$ _9 K$ @
date_sub(date,interval expr type)   
/ H5 l. n" J8 h) c6 d6 G3 jadddate(date,interval expr type)    6 q3 d. T6 M, ?2 T
subdate(date,interval expr type)  
8 `1 U$ H1 m/ W! T, T$ f) e7 X4 C& ]对日期时间进行加减法运算  
( t! C# N* q0 i( w(adddate()和subdate()是date_add()和date_sub()的同义词,也+ W+ P& W5 ]+ [) f( ~3 b; ]
可以用运算符+和-而不是函数  
( q5 D0 s+ G4 M+ D$ `( Z; gdate是一个datetime或date值,expr对date进行加减法的一个表
- |! {: M: T+ v3 ^达式字符串type指明表达式expr应该如何被解释  9 |. r& b9 z5 v" }) T
 [type值 含义 期望的expr格式]:  0 I# f) k. f& V* U+ i
 second 秒 seconds    + ?: q7 ?4 s" ~* K+ ]
 minute 分钟 minutes   
' l# H* Y5 l& V( o" |7 g hour 时间 hours   
) a7 i0 @6 |3 f- v( V9 q day 天 days   
) d: O! {; b- l month 月 months    / _7 s9 v+ n' |7 ?2 W( V) I
 year 年 years   
' ?* D; s: p* E  E! }1 j& [) \  R minute_second 分钟和秒 "minutes:seconds"    4 ]# N. u( A# w+ c
 hour_minute 小时和分钟 "hours:minutes"    ) h7 v0 G) G3 L0 z/ \  a1 n6 n
 day_hour 天和小时 "days hours"   
( \/ Z6 D3 j# P& s3 n7 O year_month 年和月 "years-months"   
, H$ T; `+ Q; V7 t hour_second 小时, 分钟, "hours:minutes:seconds"    % s& F" n3 a% s9 V% N# ~' ]! e
 day_minute 天, 小时, 分钟 "days hours:minutes"    ! N! P' h9 w, g  g! E# P
 day_second 天, 小时, 分钟, 秒 "days
1 i  ?% @- h& s; G/ u: L% Z% Xhours:minutes:seconds" " p( j( S% L* e. `5 Z& Y# s
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个
# J' v' w4 V  G+ S/ {5 k# P7 Hdate值,否则结果是一个datetime值)  
/ ]1 c' Z0 F% h3 [' C, e2 l) S 如果type关键词不完整,则mysql从右端取值,day_second因为缺- E" ?6 v. }, j4 x: R7 Y- H" L
少小时分钟等于minute_second)  ! g' [/ d/ U5 w5 f, W, E" J
 如果增加month、year_month或year,天数大于结果月份的最大天! z5 t: A4 I; }
数则使用最大天数)   
0 K" M, C4 T5 G. y2 Nmysql> select "1997-12-31 23:59:59" + interval 1 second;  
. a  I' D( g' E3 e$ w
8 N+ y6 w- f% ]& N' e4 f/ M3 C2 x  -> 1998-01-01 00:00:00    # n0 b% z2 f5 [2 f) |( p$ m
mysql> select interval 1 day + "1997-12-31";    , A# N$ Y! [% {. E& @( N4 J  a
  -> 1998-01-01   
: m4 @2 k/ S8 ]# J' F6 o% a+ W  }9 K0 fmysql> select "1998-01-01" - interval 1 second;   
0 S2 I2 r: O5 l; [+ c6 _8 ]  -> 1997-12-31 23:59:59    & [) E7 T. q) f7 T2 [- {: u# [
mysql> select date_add("1997-12-31 23:59:59",interval 1+ F. M4 v& [& c2 ]# W
second);   
6 ]5 N1 A. s* q  V( J6 l( }8 h' k  -> 1998-01-01 00:00:00   
+ V# U0 I# k9 {! l& w7 ~mysql> select date_add("1997-12-31 23:59:59",interval 17 p' q1 L' H9 E, Q+ j' }' s
day);   
2 [' j4 y% B6 K% f% J. K7 R  -> 1998-01-01 23:59:59   
) e/ {# S: G/ e8 Nmysql> select date_add("1997-12-31 23:59:59",interval
8 |& Y$ c0 c) y"1:1" minute_second);   
' E/ z- W9 ~. t, c% ?+ g1 h; H; Z  -> 1998-01-01 00:01:00    " S) I1 E% p3 n& i
mysql> select date_sub("1998-01-01 00:00:00",interval "1
6 L, C8 f$ c: @+ B1:1:1" day_second);   
6 T- E2 X) _! w, q! C' Y' @( G# K  -> 1997-12-30 22:58:59    & B& c* m8 ]3 ^* b1 O
mysql> select date_add("1998-01-01 00:00:00", interval "-1
' y* x7 J8 k3 N2 m3 m" Z' a3 x10" day_hour);  7 n2 I4 T' r% A- O. k
  -> 1997-12-30 14:00:00    $ H- w4 Y6 @' B/ O% Q! y
mysql> select date_sub("1998-01-02", interval 31 day);   
& g# V* I% J5 Y  -> 1997-12-02   
* J, |, X3 L, e" M" Umysql> select extract(year from "1999-07-02");   
: V6 m2 O. p# B5 H1 ]/ E3 S  -> 1999   
/ R9 l" f4 D5 M+ b9 Zmysql> select extract(year_month from "1999-07-02
! Q: j) A; J4 l, `* R  J01:02:03");   
2 D  \$ q- n3 S9 j: _1 \  A) z  -> 199907    ; J% _  s( b" ]# z- r
mysql> select extract(day_minute from "1999-07-02
9 R, i& ?- H6 @: X, D01:02:03");    $ w4 I$ m/ i+ n4 V3 r  G1 i) H# J
  -> 20102    0 M, @. [, ]8 X: p% b
, X& _* s7 j' S' b
to_days(date)    7 h5 @: h0 |* b
返回日期date是西元0年至今多少天(不计算1582年以前)    @5 c/ V" O! `6 Y% {7 P. k! {9 _
mysql> select to_days(950501);   
( E, |" w( B: P/ r- l% d& \% n  -> 728779   
2 x/ v- Z3 i3 M' V% cmysql> select to_days('1997-10-07');   
! H7 J  S5 w  r, e1 _6 K# U, {  -> 729669    9 p7 |/ F" h: \5 `: q

" ]9 p. D) m; ^$ v# R, B% Dfrom_days(n)   
( L2 o" d; X4 q+ _8 E: D 给出西元0年至今多少天返回date值(不计算1582年以前)   
) h) m( G1 ^% V" f6 Imysql> select from_days(729669);   
& x6 h0 Y5 [. D! v# o  ]' A* V  -> '1997-10-07'   
3 M5 ]8 c0 j6 X6 v: ^: p3 r
4 t: ]9 f6 ^2 `) ]4 O6 f" \; Qdate_format(date,format)   
/ K0 _% D8 |4 P) o+ c 根据format字符串格式化date值  , D" e6 g, L6 V
 (在format字符串中可用标志符:  0 F: F/ m4 J# U0 N
 %m 月名字(january……december)    1 }# p5 U: m% \; p8 V
 %w 星期名字(sunday……saturday)    ( j- X$ x9 o8 [# ^
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    $ ^  _2 X, G" d0 v1 S' }  Q. {7 ]$ j% [
 %y 年, 数字, 4 位   
( F. o  z- t' ^5 O7 V %y 年, 数字, 2 位    ) E7 l! U$ o& t/ I5 K# K
 %a 缩写的星期名字(sun……sat)   
0 L1 i$ `  @' ^/ @; D) T %d 月份中的天数, 数字(00……31)   
! z. C6 m2 _" T5 \ %e 月份中的天数, 数字(0……31)   
/ D  d$ Q) s* l5 w' o. z( o% d %m 月, 数字(01……12)    / O" z& e! o9 |  U+ y% C' b1 g
 %c 月, 数字(1……12)    2 s3 y# D# Z( f+ L0 v3 ?% l
 %b 缩写的月份名字(jan……dec)   
" w/ K; N2 t! l7 V# @5 a) x- P %j 一年中的天数(001……366)   
9 x: m8 Z# n& E5 W3 K& @ %h 小时(00……23)   
( R9 p% V: A% O5 v2 r %k 小时(0……23)    " D. y6 a8 d$ R# n' L
 %h 小时(01……12)    4 R% o3 r7 _# o7 }
 %i 小时(01……12)   
; ?9 W/ G. W" m' k %l 小时(1……12)   
: M) c; T1 B( {, n1 ^* W6 p %i 分钟, 数字(00……59)    " U# w, O8 @% l$ j( d3 q
 %r 时间,12 小时(hh:mm:ss [ap]m)    % T+ Q5 ?, c% y4 @, a6 Q
 %t 时间,24 小时(hh:mm:ss)    ' C! J1 p) p! Y# b+ V
 %s 秒(00……59)    ( d* G! Z& p) y1 R' h
 %s 秒(00……59)   
# i/ U$ N% f6 E) F$ r: b1 m  ^ %p am或pm   
/ C" N1 U/ v$ Y5 t" m: W6 V7 c %w 一个星期中的天数(0=sunday ……6=saturday )    . z' w5 s: N, C- b1 \
 %u 星期(0……52), 这里星期天是星期的第一天   
! E3 N7 n* z2 j %u 星期(0……52), 这里星期一是星期的第一天   
0 E& F- R! h) M6 w+ F) J %% 字符% )  : c3 n; N8 d( Y
mysql> select date_format('1997-10-04 22:23:00','%w %m %
! Q$ V" ?$ M0 c& m8 {( Gy');    # Q2 f7 `% M5 m9 _2 c
  -> 'saturday october 1997'   
* O& P' w. R9 ^8 f5 R' h7 Umysql> select date_format('1997-10-04 22:23:00','%h:%i:%6 W- E) T' K3 `4 o2 ?. n# N
s');    1 R# P- ^' j( V+ z( l
  -> '22:23:00'   
4 D% \: [1 L/ `mysql> select date_format('1997-10-04 22:23:00','%d %y %a
( L2 B! D# K, o+ j6 p%d %m %b %j');   
4 H( e; d3 X% B. c  -> '4th 97 sat 04 10 oct 277'   
5 ^- z9 s. d0 Y* nmysql> select date_format('1997-10-04 22:23:00','%h %k %i& j% I3 F6 |) m5 \- k8 v
%r %t %s %w');   
2 D, c; L, V3 t1 y  -> '22 22 10 10:23:00 pm 22:23:00 00 6'    * P/ F0 R% I) h  v+ k

; \" o! h* @, K0 O. etime_format(time,format)  8 U- w. |' C# }2 e* x  x+ P) N* m$ u
 和date_format()类似,但time_format只处理小时、分钟和秒(其. Z, x! j1 V2 e! ?* t/ ]7 _
余符号产生一个null值或0)  # F5 D* D$ L- Z& M3 E
3 r& p! z# F4 A+ @1 E6 S5 C3 @) a
curdate()     5 D( n) z- q$ U! q; U+ Q
current_date()  
% K/ F: p/ U. ]2 H 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
1 @- P% [' M9 a/ S6 V  E5 ~处上下文是字符串或数字)    + Y( H+ `1 @1 C& X/ u
mysql> select curdate();    & g! s0 Y0 C% c- ~
  -> '1997-12-15'    - \$ C0 R* \& c4 v0 r  N
mysql> select curdate() + 0;    8 k  e, z8 @3 ]1 |
  -> 19971215   
9 r' w% M5 @1 K, H
, Y, i+ s- |) y( A# Z7 z5 Vcurtime()    ; m5 j) v) v6 H- a+ C+ d
current_time()  5 H! Z) o/ L7 N% }( A! F! J1 ]
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上- t* S* ~- Q' Y& w+ t* ?' {
下文是字符串或数字)      ( e' g- V$ p0 v0 Y7 U
mysql> select curtime();    + K9 v) j6 a3 Q+ A; F, K3 j& a; F
  -> '23:50:26'   
. M% m: {8 v+ e! ~mysql> select curtime() + 0;   
, W1 ]" }+ e6 G4 @9 H  -> 235026   
5 A( m7 J4 e, e( b+ I: p0 `
7 w$ Y. |  i7 C( w8 p! d3 u! pnow()      f: ]% u4 f( E9 a* w
sysdate()    
' b% p- q- S& ]; o. Ucurrent_timestamp()  , f0 F6 R1 }, I, E
 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期) S5 x% g2 y  ?- T) o# Q/ _
时间(根据返回值所处上下文是字符串或数字)     ; M8 A9 G; w# D. b
mysql> select now();   
0 E7 @) _3 L# R* F$ a7 z8 q  -> '1997-12-15 23:50:26'    # z8 E2 M+ D, f5 H) G7 I
mysql> select now() + 0;   
$ |; d$ \  @- |$ c" b  -> 19971215235026   
; V  M" G4 d1 s1 |( ?
2 \" A# u: m9 b. m& Funix_timestamp()    . B; a* N: N9 l
unix_timestamp(date)   
# m  b) t! s1 J返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒7 R; ^" Q4 `5 \5 X( M% j0 B
数,date默认值为当前时间)  0 e% U; O' M% m5 [) f2 \; h
mysql> select unix_timestamp();   
/ X0 _8 g" [; k$ m+ I& j  -> 882226357   
. x0 f. C; w+ J1 a8 c7 wmysql> select unix_timestamp('1997-10-04 22:23:00');    & k8 i6 S( x: |
  -> 875996580   
- D9 x( y! [9 E9 q* R
% v% H! i( q! \- }* N& ~from_unixtime(unix_timestamp)   
( F, k/ U/ r% `以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的! ]. i2 u5 G4 m9 m. p/ A/ m# [3 ?
值(根据返回值所处上下文是字符串或数字)     + t5 C9 M2 R4 E" K) b
mysql> select from_unixtime(875996580);   
2 j' T( S( d5 x/ k8 Z8 E$ }  -> '1997-10-04 22:23:00'    ! ^1 C$ A# I$ C% Z9 v
mysql> select from_unixtime(875996580) + 0;    ; u- ~  {' E" |( \. C$ ?, P! P* a5 w
  -> 19971004222300   
+ N, V( t" E0 |% W( | , l' W2 T2 z, E$ V% C
from_unixtime(unix_timestamp,format)    7 T0 P  ?$ m* p2 T( [
以format字符串格式返回时间戳的值  $ l7 r$ K0 j+ J) N( S4 O3 T+ T
mysql> select from_unixtime(unix_timestamp(),'%y %d %m %
2 p1 u' I2 l/ X0 i$ f' C9 fh:%i:%s %x');    / j/ P6 q2 @+ c3 ~
  -> '1997 23rd december 03:43:30 x'   
- |) V. h/ O$ z( H! I6 W& Q
4 b) ?# N5 x6 isec_to_time(seconds)    ' D; J, u: ?* R/ ?% t* c
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     * }5 n1 A! s5 f, ?9 T
mysql> select sec_to_time(2378);    , p5 U- j* ?0 _# y! b
  -> '00:39:38'    9 n* P6 ?+ d8 s, c" }
mysql> select sec_to_time(2378) + 0;    ) A2 n- I7 o$ K7 l* B
  -> 3938   
8 k$ y2 j4 [/ s0 }# {6 S0 t- c: A" s
1 Y" m: J" U5 L* U# b9 e: A, gtime_to_sec(time)    % _: n4 G6 @% u$ t6 g" b; V
返回time值有多少秒    4 l! W1 t2 p9 J9 d" c9 N
mysql> select time_to_sec('22:23:00');    . g  Z, ^2 J/ F* I
  -> 80580    ! L  C( n( k: W5 s! Q" W/ C8 ^, h
mysql> select time_to_sec('00:39:38');   
4 i8 n4 A7 ^9 V  -> 2378
" i. }) {7 ~" {/ S4 ]5 T9 k% l
( y" M0 s& K7 w8 _+ v5 S$ E转换函数1 x" F# b  q: s
cast
' P+ P: U' z( Y9 V& Y* r0 T用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]
" F" r" I* x4 N3 c8 f实例:select cast(a as unsigned) as b from cardserver where order by b desc;
* P# \- e" t3 J8 F3 D; {4 t" W1 jconvert:% U5 G+ n. k  l
用法:convert(字段,数据类型)
# [# k8 S, R) M7 M1 A实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

+ l/ Z! M2 S1 u: B
回复

使用道具 举报

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

本版积分规则

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