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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数5 r5 _* {4 T5 e. N9 J4 r
ascii(str)   
2 l% C# k" I4 f# v6 b2 `& s/ ^$ S: f$ R返回字符串str的第一个字符的ascii值(str是空串时返回0)  6 Y4 q" Z' n+ N
mysql> select ascii('2');  
6 H' X& B7 C  C  -> 50  $ v, g/ |2 }% o( `
mysql> select ascii(2);  / c& y* ?- H3 }, B" m
  -> 50  ( l& g- E5 n3 @  B
mysql> select ascii('dete');  5 b+ Q8 G. b5 \4 G6 W
  -> 100
0 c8 V( j! S) V3 K) ^# ?
ord(str)   6 }; O) M1 y; N  A; Q9 c1 V
如果字符串str句首是单字节返回与ascii()函数返回的相同值。! [4 g; ]. R6 O& c  P

  {; @6 G/ s' v! y6 e; b/ |' m3 y& m如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  
/ j0 Q0 _2 r1 V( Omysql> select ord('2');  
$ y6 |" ~* T( _- O+ i  -> 50  
  n0 f3 v+ m9 @9 U3 d: X   
: i2 s, b, _* x+ g/ nconv(n,from_base,to_base)   
# I7 T- T. E; e  ~/ \1 E4 h- i# k对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
+ I0 |; z4 U$ vmysql> select conv("a",16,2);  ) y; G+ g( t$ c3 q; K5 h) D
  -> '1010'
0 z( |0 ~" D1 A8 x6 Amysql> select conv("6e",18,8);  
0 M  O& ?- w7 l2 G  -> '172'
( }6 s: [; ^+ M  xmysql> select conv(-17,10,-18);  
4 p) q9 p2 J9 D  F0 Z5 |& C  -> '-h' # U6 ~: w8 L2 h3 d! O) B4 |
mysql> select conv(10+"10"+'10'+0xa,10,10);  2 @0 T+ w- p. k( ?4 ~) |
  -> '40' ) i" C1 Q6 S% m5 |. L* \
   
& \; z! R6 Y% Y3 ?% E5 Hbin(n)   1 \) w2 j: p' A* j$ l4 Z3 z- O
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))    A6 _0 C9 y- ]  V8 u! d
mysql> select bin(12);  
( \' e+ Z: v7 h8 c+ g  -> '1100'
) @' K/ m2 N) C2 t' d7 L+ a * ~6 R$ r. y3 _- y" ?, A
oct(n)   
; v5 Z. W! @) ^0 `把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
! @5 F$ W& T* b" `0 @5 A( C) Jmysql> select oct(12);  ( i, L" Z# Q9 O6 p+ B
  -> '14' ) `& d0 E( B8 ^# w" o/ [8 x
   
) h  H0 l/ O5 j. s9 F7 u- Mhex(n)   8 c0 B9 [4 L2 ~) \! t$ T
把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  : U' M+ F& K8 N
mysql> select hex(255);  7 ]$ d2 Z3 D; w0 q! ~: D* |& R
  -> 'ff'
0 l: t" B- ~( E6 D   
- A7 D  W9 Y5 M4 x# Gchar(n,...)   
+ m; l) V7 o8 k+ T& h, H- n* l& q返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   
( d5 E6 i, B* X. h( S' O0 ~mysql> select char(77,121,83,81,'76');  
; k4 l  p9 n& v* u. W4 X8 a  M6 m& d  -> 'mysql'
1 j# o& `- C" v& dmysql> select char(77,77.3,'77.3');  $ G# F6 b1 m% }3 u
  -> 'mmm'
9 b( k0 }9 M+ {+ H7 b. N4 ?" Q   * K4 G3 R# L, u; o
concat(str1,str2,...)   % V' Z) ]; B& V
把参数连成一个长字符串并返回(任何参数是null时返回null)  
/ [8 s, X5 A" F6 q' z& Umysql> select concat('my', 's', 'ql');  
5 H/ [( C. k. R" B1 _$ }  -> 'mysql' : _# V- b8 b; e: j1 d
mysql> select concat('my', null, 'ql');  
. ]9 P0 C! b$ F6 @4 @. b1 T  -> null
* r& H6 ]6 b, w% |mysql> select concat(14.3);  : E/ i7 i# [2 F! e) \, U2 d0 `
  -> '14.3' 4 l2 r" ]- O0 I
( d: o0 E+ s& H% b( U
length(str)   4 }: f  P, T1 j
octet_length(str)  ( D, Z4 s# H; ~# a  P
char_length(str)  
1 q1 T; s- M; R# c5 [character_length(str)  : C4 S; t2 l6 T
返回字符串str的长度(对于多字节字符char_length仅计算一次)
# a/ H  P& S1 b. Umysql> select length('text');  
* u) B: K3 H" C  -> 4  # Z0 S4 P! F/ T6 Y
mysql> select octet_length('text');    n2 u- B$ e9 h  \) e  }
  -> 4  
) G) a: i) P+ B6 d- s
1 j/ _- t$ }- z* K# D9 \+ ulocate(substr,str)   , M5 {  s5 ~* z3 @* q- {# s
position(substr in str)   
0 q8 H+ y* t7 A: u( x2 b/ e返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  - X6 w  N: I2 i& q' n& u# S& b
mysql> select locate('bar', 'foobarbar');  
6 @. e& y3 f  V+ K6 r+ M2 M  -> 4  & i6 \1 X2 F' k. W# x
mysql> select locate('xbar', 'foobar');  
4 W+ G6 v& U$ \6 Z8 I  I, ?& F  -> 0  ) q" N8 C" P6 G" {  ]# Y
    ; Y7 L' A' l+ _5 x" N5 @: G
locate(substr,str,pos)
8 w% A$ M) C! H% f! M返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
7 k! T: B" U9 a7 mmysql> select locate('bar', 'foobarbar',5);  
( t( R3 S* g0 o& q  z6 L2 {/ B. C! l  -> 7  8 _( _% N! @: s

! `0 `' G: @; z" K% Uinstr(str,substr)  
6 o/ f$ L8 H& J% h返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
; a' L- X2 U  N$ S6 u: Amysql> select instr('foobarbar', 'bar');  
' g$ R" K1 K$ I9 a" {* s/ ]  -> 4  , n7 k" U) M, D' _
mysql> select instr('xbar', 'foobar');  
6 t, P  w# ^3 j3 N1 B  -> 0   
" H8 V& t2 p. m, x
4 K6 i/ F0 H- y5 B% A* p* f0 @! ~lpad(str,len,padstr)   
% f/ S  {2 M, q3 f用字符串padstr填补str左端直到字串长度为len并返回  
' x7 E. z8 R% T" K3 r7 U0 emysql> select lpad('hi',4,'??');  3 |9 E. y1 s8 ?
  -> '??hi'
1 b' @+ u& U; v" r* |/ Q   6 }( ?' u5 d0 }. Z! T, @: c
rpad(str,len,padstr)   0 K; b7 `9 \7 F: p/ Y
用字符串padstr填补str右端直到字串长度为len并返回  1 S1 n+ m+ E1 i' o+ {( w
mysql> select rpad('hi',5,'?');  
( \; v% s' f6 L" f+ _  -> 'hi???' ( L3 ~0 H7 u( B

4 M( r8 T7 m6 n/ `7 ileft(str,len)   
2 P/ D) I; b2 ~返回字符串str的左端len个字符  
: A# ~5 a8 b  R  e( |mysql> select left('foobarbar', 5);  
* W  C1 R, z( u) J. D: i( L8 U" Z  -> 'fooba'
, D7 Z8 \+ y9 S  p0 d5 d$ I
0 V, i( }$ U  U( V) V" t$ u8 l$ P' U0 cright(str,len)   , U% c1 @0 N& n5 u0 @% T& Z
返回字符串str的右端len个字符   : m# t/ i* |* v6 ^
mysql> select right('foobarbar', 4);  / q# Y0 ]# a5 `0 `, }0 d& J( E
  -> 'rbar'   l& o' Z1 R, ^7 G8 [- C

3 S. c$ \0 E: R8 P, E: d$ _substring(str,pos,len)   
4 f- K3 T9 a4 C5 N7 Nsubstring(str from pos for len)   
3 }% ^4 z+ s% n' }mid(str,pos,len)   ) I3 I) U, \/ Y+ i& ?. e: ^  ]
返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  ) o: {& J7 Y6 I$ H- W% H  Q# U
  -> 'ratica'
+ Y* {3 x) f! N! E* H, g+ t( x 6 a0 \: [; z% Q$ R. F
substring(str,pos)   
$ Y. }+ O. Q7 o( f3 }. A5 msubstring(str from pos)   
: h6 m( Y6 S; q9 Q% y$ s2 ~$ u+ A返回字符串str的位置pos起的一个子串  
$ d% B) y8 f5 p) O! _2 I9 qmysql> select substring('quadratically',5);  
. j" c& g3 B2 P- l: C$ z  -> 'ratically'
/ j/ K) m: ]. m! p* m' C, imysql> select substring('foobarbar' from 4);  
6 R6 x- {7 R+ i6 s' p  -> 'barbar' 8 y4 X7 s- x% @$ w: ]/ N1 ]" }4 E
6 M* r# \, i4 n4 }# J9 P# d1 d
substring_index(str,delim,count)   
) K" j/ k& j$ A% b# S  @返回从字符串str的第count个出现的分隔符delim之后的子串! t& G1 z1 G) v; o2 Q$ y5 t
(count为正数时返回左端,否则返回右端子串)  9 M- C& g0 N* c
mysql> select substring_index('www.mysql.com', '.', 2);  ( l  z2 b. t7 }$ k
  -> 'www.mysql' : l! z6 u% N) Q2 `
mysql> select substring_index('www.mysql.com', '.', -2);  
1 @5 K/ u" o* B, Q2 A  -> 'mysql.com'
% e, k) q  u2 n) C& q$ U8 d6 p
3 t% w) N. j/ T1 eltrim(str)   3 d: Y9 t6 E+ l) R7 o2 e
返回删除了左空格的字符串str  
" h: N; E% c: p. D4 r! ]mysql> select ltrim('  barbar');  
/ d- |1 J' g- r5 f, b' X  -> 'barbar'
$ W  M( U9 w7 z0 f" @& i0 y! v7 E 6 s! u1 s  e1 P. O  {
rtrim(str)   
, ]4 O7 l( L8 q* g3 f, G2 ?$ i) N返回删除了右空格的字符串str  4 B1 B! z% S% l0 y3 U
mysql> select rtrim('barbar   ');  % a# K4 u; z% t
  -> 'barbar'
* O, y6 ^* o& l3 h2 S$ Z4 M' x 9 `% I9 D8 d0 N+ r- U- l0 N% ?
trim([[both | leading | trailing] [remstr] from] str)  
4 [, v( R8 Q9 p; V返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  ; X5 J. X1 d, R+ ^5 a) d
mysql> select trim('  bar   ');  2 r3 {8 I" p  M0 i4 p# d& c+ f$ }
  -> 'bar' 0 }6 K2 t' ?% x
mysql> select trim(leading 'x' from 'xxxbarxxx');  
8 X, Z4 N3 e: Y+ ~; H$ U; y  -> 'barxxx' * V) a# A) o6 f+ R9 ~
mysql> select trim(both 'x' from 'xxxbarxxx');  
. E2 W0 N5 ?" J5 |* F/ p5 ~/ j: C' V  -> 'bar'
+ J4 {' o$ Y# @mysql> select trim(trailing 'xyz' from 'barxxyz');  4 |7 G. h% ?- K: h
  -> 'barx'
* z9 x7 O5 B0 ^2 y * |, N, T7 c" z9 k
soundex(str)     a% E/ H% k8 a9 f# ]1 S6 d
返回str的一个同音字符串(听起来“大致相同”字符串有相同的
" |4 g  K* g. Z同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  
+ z* a' p- U6 Q3 ?7 ?/ smysql> select soundex('hello');  " w7 x3 |: a9 S1 I9 B! A$ g! |
  -> 'h400' + C- u) d6 p5 ?
mysql> select soundex('quadratically');  7 H9 M0 H, b. u& w+ k
  -> 'q36324' 3 T3 g' G  t4 a, Y: @3 D
   - z! B  }4 h4 v7 B* [( I& S" N
space(n)   : [, D- [- R! p# B7 h9 W
返回由n个空格字符组成的一个字符串  & M% W# f5 S1 c$ S7 s+ q' S
mysql> select space(6);  
3 s  V: G2 m4 |  -> '      ' * E3 N* l% I+ y- v* f  E2 N
   
! W( N  u! N3 k7 v+ Vreplace(str,from_str,to_str)   
! l8 S* c6 F) b用字符串to_str替换字符串str中的子串from_str并返回  
9 L# a& R/ K5 B% p: J6 Tmysql> select replace('www.mysql.com', 'w', 'ww');  
& B, A' i) b; O5 Q4 ?' j; {  -> 'wwwwww.mysql.com' 9 q2 A5 {! _; C* E
% j2 u8 Z; D  u5 m# D; h' B9 D
repeat(str,count)  
; c; Z  Y3 C0 y2 p2 K/ C返回由count个字符串str连成的一个字符串(任何参数为null时
  ?- g5 b/ C" x# K" D! p# p5 }返回null,count<=0时返回一个空字符串)  6 O) E: k  b) N$ P, Z% K" i& D
mysql> select repeat('mysql', 3);  2 H: a9 @. K, z6 r. ]
  -> 'mysqlmysqlmysql'
# E5 I# A& M+ H+ ~3 g. T2 O1 |/ l/ o   
- U, y* a/ S2 T1 y2 Mreverse(str)   
7 q9 a. `2 B+ b4 L8 C  O颠倒字符串str的字符顺序并返回  2 O" l: k" J& e9 \; `9 s9 l5 R: c
mysql> select reverse('abc');  
) Z5 k6 x+ P8 _# l5 ?' \1 S- r9 B( w  -> 'cba' * p" T9 T$ r1 [
+ Z7 `( @) f9 n8 G, t, q
insert(str,pos,len,newstr)   
  N* T, W  O7 t$ O$ T: K( f( Q6 ]! z把字符串str由位置pos起len个字符长的子串替换为字符串1 R& Z4 g; {2 v, n
newstr并返回  / `3 ?2 f! o5 ?$ b4 n: N/ t
mysql> select insert('quadratic', 3, 4, 'what');  6 `. p3 Y" O9 N" K* |
  -> 'quwhattic'
0 _3 _! G8 ]* H- k* w
" M0 y, |- P6 B' r! u( Xelt(n,str1,str2,str3,...)   : @; J5 Z" \4 Z) m) {+ w5 c6 g: X0 V
返回第n个字符串(n小于1或大于参数个数返回null)  ! a& m# ]5 M  o% g6 P; W$ u6 n
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  9 U4 R* M% e1 \& U
  -> 'ej' ) K& C2 u5 G$ O, A) u- X
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  
5 i9 R) I4 A  Q3 v* d; a  s1 c  -> 'foo'
9 V, Y- z( @4 F2 U! K
3 f% A* v9 n& `! Cfield(str,str1,str2,str3,...)   6 X3 ~1 s) L, j
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
% I$ i7 w0 v8 `* G; @mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
% ]4 V. h1 y+ g9 `4 _) B'foo');  
9 H7 Z6 C6 Z* V  -> 2  : ^# b* O2 A. r5 s# }
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
$ V, d# v$ k  k  y$ a9 l'foo');  
% x. X2 F! g" o/ o) ^" D+ F3 I  -> 0  & r8 |( W; S% X% R( l# Z% m
, v4 K( A3 S+ ^+ D- t
find_in_set(str,strlist)   : k$ [. `0 W. t1 W) `2 |9 S
返回str在字符串集strlist中的序号(任何参数是null则返回* [3 L$ w- o2 z. p: Y" H2 o  V
null,如果str没找到返回0,参数1包含","时工作异常)  * w3 O! a5 s/ B  V4 Q
mysql> select find_in_set('b','a,b,c,d');  
. L4 Q) W& w  i# L' l" ^7 e2 R  -> 2  % v6 O: {7 o) i7 g
   2 F# |; k/ d: ~8 U! Q
make_set(bits,str1,str2,...)  0 B% Z1 g* ^: p8 u' U
把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应2 {, D4 r8 ?. X) S
位置的字串选入字串集并返回(null串不添加到结果中)  
9 F9 n) C* L$ j+ ?mysql> select make_set(1,'a','b','c');  5 M2 n$ M1 @4 X" P) {' @
  -> 'a' . Q+ D6 a) w; I1 T7 d) L8 o
mysql> select make_set(1 | 4,'hello','nice','world');  
* ?& z5 D+ O+ x4 Y" c  -> 'hello,world' # W5 ]+ m  |( Y- ?
mysql> select make_set(0,'a','b','c');  
3 \3 E& Z% D, G$ c9 C" G! C3 R  -> '' ! T, {7 F- C: W) V/ t

2 w* o  z$ L9 j6 C( f( M5 f" W3 N1 Nexport_set(bits,on,off,[separator,[number_of_bits]])     W* A1 _. H4 f. F* f5 Z1 j1 F! ]
按bits排列字符串集,只有当位等于1时插入字串on,否则插入1 F$ e1 ]+ y# z3 k: ~- P
off(separator默认值",",number_of_bits参数使用时长度不足补0
: ^! C" F- `3 h/ C0 u3 s' A而过长截断)   
, _- R6 Z& F. Smysql> select export_set(5,'y','n',',',4)  $ j* T% i: d/ Z4 r3 h1 w* ?
  -> y,n,y,n   
9 I: V4 T9 S6 t6 K& j
. c# M5 Z! I2 h: ^' b( g2 Ylcase(str)  
' I- y/ Z+ ~1 h* \0 B6 l$ |2 G& xlower(str)   
/ a" b  x5 R; }- [返回小写的字符串str  
' V' g' e4 x( |+ T; e. M5 `mysql> select lcase('quadratically');  
& m3 W3 ?* q3 j( C" `5 @+ g, M$ b4 @  -> 'quadratically' . T1 @3 L7 {: a: R2 ~4 G
   ( U* v; [: j1 h9 c  r7 n: \
ucase(str)   
* c1 v% M9 U, }upper(str)  
" [$ ?  y9 ~+ r5 I9 U) i% ~返回大写的字符串str  3 A/ v6 n. r& z0 ?& R0 K0 T
mysql> select ucase('quadratically');  
2 k6 p9 _( Y9 y  -> 'quadratically'   B# A$ ~$ v( S# R. H. I  D0 H
3 b7 w1 ?  b% Y3 Z8 p5 W
load_file(file_name)   # |$ ?: }- F2 E$ g9 b/ i$ g( L5 v  x
读入文件并且作为一个字符串返回文件内容(文件无法找到,路径
8 A* \: @8 ]2 c8 `: c+ [( u6 K! R不完整,没有权限,长度大于max_allowed_packet会返回null)  
! g$ k3 D" l$ z+ l# Y, G0 [mysql> update table_name set blob_column=load_file" y% X/ m. c! Z* w5 R6 N
("/tmp/picture") where id=1;  
" S  y0 K. S* a0 h ; H3 r: J: u1 J, j5 S! u' M
2、数学函数3 ?/ `% U* x' _" ~: {7 n, P- W
abs(n)
4 B/ z& d5 ^+ A+ M1 w返回n的绝对值  1 o, n' g$ N; W- i
mysql> select abs(2);    + M: a9 h$ N0 w# a
  -> 2   
6 z0 a8 V5 S2 T8 {/ E1 Q* S3 Pmysql> select abs(-32);   
" Y' |2 d* w4 P+ u  -> 32   
3 `/ u* C/ a$ D4 J7 }   , h+ [8 W9 g. ^6 B/ f6 c
sign(n)  + v0 {" R+ j! e9 @+ G
返回参数的符号(为-1、0或1)  
- [4 ?9 G; ?7 {; R2 X# q5 Xmysql> select sign(-32);   
$ A6 e5 q* ^4 y  -> -1   
) I9 E! }) ]* h1 a8 }mysql> select sign(0);   
' a( y6 |5 E2 N+ m5 ?7 g  -> 0   
3 M  {: S/ g! K+ pmysql> select sign(234);    " T8 Z  u3 j5 S& e, `6 t3 Y8 Y, F7 {
  -> 1   
. O" W1 j# ]: E% k% b% y% c( _
8 Q6 S. s8 n/ a' f4 cmod(n,m)   
: v. \: M8 [$ }2 c取模运算,返回n被m除的余数(同%操作符)   
4 ]4 I' k9 f7 v9 ~7 vmysql> select mod(234, 10);    7 d2 i0 e$ v, M4 T: m6 u$ r
  -> 4   
3 W; ]" x% v! g; Nmysql> select 234 % 10;    1 o9 n' @' o/ p
  -> 4   
+ E1 k- T8 u& _" Kmysql> select mod(29,9);    + i+ F( g2 V: Z$ U! M
  -> 2   
  e0 O  k& ^! m4 T4 {0 S
% t6 q+ i" e1 _) W& Y0 ^/ o' Vfloor(n)  1 z" b" C/ E' {( x
返回不大于n的最大整数值  
& b% f  R2 h0 Dmysql> select floor(1.23);    9 ^* m5 s4 h# S5 _: L# V) l
  -> 1    ( l  r  M: W* {
mysql> select floor(-1.23);    8 h: \' u. m2 w, {# l  U  a
  -> -2   
/ ]2 e7 A& H+ l- r- b8 o: q
! i1 q* ~0 u- Mceiling(n)  
! y" _- j- y. g4 Y3 p返回不小于n的最小整数值  
" l1 n  F5 N1 Q2 fmysql> select ceiling(1.23);    8 U: r! t; `  A, v: @
  -> 2    / D1 \  u9 n. _) B
mysql> select ceiling(-1.23);    ' B% i5 p: n: K) ]
  -> -1   
/ W* G* e  X! ], A; D4 d2 n; o
/ P% l5 z* z) K, Q7 w7 `$ Sround(n,d)  
& B& @* _8 F6 V返回n的四舍五入值,保留d位小数(d的默认值为0)  
, ?" A+ v& {4 |9 r% C+ v7 H% kmysql> select round(-1.23);    ' i6 i9 G5 ]. \1 j" f2 L, c; e" @: |
  -> -1   
- [0 V2 c3 D. d' ?2 Hmysql> select round(-1.58);    ( g! h. z4 H9 y9 ^8 _1 ]$ x
  -> -2   
6 |5 _" A4 e: Q% t: m9 [mysql> select round(1.58);    & q# y7 F0 U& R; D$ E8 y
  -> 2   
3 M' N" n4 K' d* hmysql> select round(1.298, 1);    9 c, h$ y, ^' d( P7 T) G$ u' ^
  -> 1.3   
3 o  R* D! q2 |4 r' B4 j& Omysql> select round(1.298, 0);    6 |6 `. R# d6 N  y5 ]
  -> 1   
1 O  a+ L/ I+ Q2 Z8 Y! x $ d. }; v8 {( Y* I$ M; E
exp(n)  ! Q4 z. n/ [5 X) W* i) q4 X
返回值e的n次方(自然对数的底)  
6 d% G+ k) `1 C* Emysql> select exp(2);   
, _  \2 p5 Z9 D% N8 u" [) u+ Z  -> 7.389056    1 j$ x: O) G) S. M
mysql> select exp(-2);    5 S( K5 M3 @5 b( k8 u: {$ y) R
  -> 0.135335    7 v  p6 x; Y* V6 Q5 K

8 d2 t% K+ M8 N5 _log(n)  $ L6 M& ^# {( W9 N: r* }
返回n的自然对数  5 q  n7 w6 s' g. c; U: A8 @
mysql> select log(2);      {8 w* [) s; {. ?, p; d- t
  -> 0.693147   
7 k: M" V( F* _. ~$ A" v0 o. |5 S( i) vmysql> select log(-2);    . ]" b' d: x: B: x% d
  -> null   
( y" h( L7 u" b8 }6 ?# Y8 V( R" \
2 d, A- ^  u/ Blog10(n)    }6 P; A( n* Q2 p6 x' |+ ~
返回n以10为底的对数  
! n8 K0 k" y( D4 M) {  C! r# V5 `mysql> select log10(2);   
% r# _# c4 j( B: @  -> 0.301030    6 t; r3 n' X3 b6 V) v5 ?" L4 R' S
mysql> select log10(100);    ; D* C. ^4 V7 D9 B) V8 w3 m. K
  -> 2.000000    " U' t) j( f( l2 Q9 p* S  H. m
mysql> select log10(-100);    $ t2 S; P* e# c, n+ c
  -> null    3 \; P: |6 {1 n
& v3 Z) ^+ D# D0 `
pow(x,y)   
% r* K1 t9 i8 |+ S* fpower(x,y)      a" Y% S4 ~# A0 ^4 `! K
 返回值x的y次幂  
# D4 Y$ m7 {8 S/ |6 t/ umysql> select pow(2,2);    9 _3 w2 V4 M  k3 ]4 I+ m! E
  -> 4.000000    ( d4 R" o( G0 L: \2 ^4 w" \" z
mysql> select pow(2,-2);    7 S* S" F2 c. \- \. I) Q/ u" g8 `, X
  -> 0.250000  % X3 a1 }$ Y" @$ q, z

* C+ V' y2 V2 }) ~+ o5 ]1 ]sqrt(n)  
4 ]- C  n% b& U/ I& Y 返回非负数n的平方根  
2 Q, B$ E7 T6 m2 g5 Wmysql> select sqrt(4);   
7 F. g& p7 j" H& O9 k7 l: R  -> 2.000000   
  Z! j' E& F9 O& B& d% Dmysql> select sqrt(20);   
6 |3 w/ V/ V8 {8 v6 p5 n  -> 4.472136   
/ i2 e( }* q# w, L+ ] . Z' l& L1 ^" k* b8 _
pi()   
4 B. s# S, D" h& M  T1 l9 H 返回圆周率   - v. l1 ?( G: t+ W0 T- I3 f( r- x% \
mysql> select pi();    * B2 G9 t/ {1 e
  -> 3.141593    9 }/ y% e  s1 i3 `7 {4 E5 H* a4 P5 q& i
) M2 H- }* ~) L& m
cos(n)  9 [( I3 j1 }* B$ `5 V  g
 返回n的余弦值  & |6 w& `3 c: f4 w' j% p8 F
mysql> select cos(pi());  
5 d2 S. I) x3 e) u+ W  -> -1.000000   
) c9 \$ n- _3 ?! f5 G
  i" p( \# k. c. Q9 v) Y4 Hsin(n)  2 M% @, H2 w. K1 N
 返回n的正弦值   ) c) p( @/ ]- F# h
mysql> select sin(pi());    $ f3 l0 G/ v, z1 L
  -> 0.000000    0 G. q( R. k6 U( ?& v
, D/ g) f% R3 G( w, R3 T% j' M
tan(n)  / Z9 [" |8 W7 W8 H
返回n的正切值  ! G, j$ @) O5 I9 x& f: k
mysql> select tan(pi()+1);   
: b9 @/ ~% c" B8 g( y  -> 1.557408   
/ W! @5 w- `/ ?  U3 S$ @; I0 E2 c ! W, F2 S  c! a/ V: C( w
acos(n)  6 C, o- _2 O% Y4 O/ D/ i2 b7 z1 W
 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  # T- I+ X3 Z8 e1 [: E
mysql> select acos(1);   
% M- j; F1 ^  h6 z, m  -> 0.000000    & c9 |: m, Y0 W6 f8 M
mysql> select acos(1.0001);    1 O5 m8 {( v5 R
  -> null    - ~2 [4 j( M  @2 t  p
mysql> select acos(0);    1 c/ p2 t2 g+ f! r& w! F
  -> 1.570796   
8 M- K) Q" U; R! T: _ # Q- g. u3 s# {( t. |
asin(n)  
, f/ a- j0 `2 R- P- B* f. W- H返回n反正弦值  % G3 s/ x: D+ a" V2 G
mysql> select asin(0.2);    - r6 b9 D  h: h) X. S1 F8 i
  -> 0.201358    ; V( d9 u7 O: r3 c. K
mysql> select asin('foo');    5 d8 N' A, N1 r8 P: ?
  -> 0.000000    7 d2 x; \, A3 w

( o) D) p8 K0 w3 `- t7 e1 f$ ]atan(n)  ! U- ]* J( C: w+ Z
返回n的反正切值  , _- ~6 N3 V: e5 G! J/ `
mysql> select atan(2);    ; b3 N. ^& i7 u3 n
  -> 1.107149   
0 m" i4 F( ]" O, V$ q8 \mysql> select atan(-2);   
9 B: ?: E6 S  o4 r8 M, Q  -> -1.107149    9 V5 Z! e, {  P  _
atan2(x,y)    8 W/ d4 c, g& U) t) t
 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  : T3 }, u6 ]! [! t/ V# H
mysql> select atan(-2,2);   
0 _1 k" E3 i4 \9 j. o" B; R& e% q  -> -0.785398   
% S  a- @( ~" a; O5 C# O. Wmysql> select atan(pi(),0);    . C* H  t6 O3 t: Y" \$ i
  -> 1.570796   
8 Q6 N& S% K6 H# v9 r6 G8 @ 2 O/ k5 x+ B( c) E5 f1 [
cot(n)  / X8 A& T! ~  o( P( U) q4 c
返回x的余切  
+ l7 o1 N6 R% L/ ]* d5 Cmysql> select cot(12);   
0 D1 T( |1 i" e3 B- d; h6 _' Q  -> -1.57267341   
$ J. k1 B5 g) z1 P* W' b' X4 Imysql> select cot(0);    & P8 T7 U$ ^( p/ p
  -> null   
  j: B+ y7 W" o  e: K ; J1 Y6 H9 A' T' ^0 E
rand()  
% P: [; o# m: f- d. R' G) Brand(n)    
/ Q" ^7 X. z2 i6 G" O+ T0 H* g1 H返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
# I- N1 |- ~' z) A - z3 I+ K* ~1 A
mysql> select rand();   
6 q; y# E. Y2 z7 Q  J  -> 0.5925   
/ |6 C/ _' b" y7 `5 y- _mysql> select rand(20);    9 S; \8 p) w  a9 T! r. t, J2 Q
  -> 0.1811    % d5 ]: g' `. W6 D$ ]/ j
mysql> select rand(20);   
" r6 ]# f5 D' @; ?  h- b  -> 0.1811   
+ Q( E9 d* S0 Cmysql> select rand();      |5 y  g, ^5 b$ i# T+ T
  -> 0.2079    # S$ x  R) f6 Q7 `9 f, v5 K  T4 m1 S
mysql> select rand();    8 e- J4 E' l% M. i. \5 X3 O2 D
  -> 0.7888   
3 f1 [9 v) n6 q3 {' \7 z! X 4 o& i2 |" P) s, \
degrees(n)  
- [% }2 Z0 u$ X; n; \. ?# Z把n从弧度变换为角度并返回  
& k% w: P$ D: D+ Kmysql> select degrees(pi());   
: M% n# Y/ {3 c2 z5 z  -> 180.000000   
: S$ z& k# ~0 h3 v - Y% ]4 p6 C! P7 z' v: ~
radians(n)
8 ~( A& t- u2 T. r$ j3 t把n从角度变换为弧度并返回   ; e( s& e; A$ u. b2 }, b8 l
mysql> select radians(90);    ; v# J8 q- w  a' o
  -> 1.570796    ; X9 \2 G( S2 z7 M3 n# T/ i' q
4 Y6 W1 \. V) H1 e* N' O* J
truncate(n,d)    , A$ s. o/ c5 }% G5 b- ?
保留数字n的d位小数并返回  
. W0 J2 T+ B7 n" l7 jmysql> select truncate(1.223,1);   
8 a5 s2 M, [5 z- y  -> 1.2   
9 s/ n- o% S- U$ b, K$ Fmysql> select truncate(1.999,1);   
; X: H3 ~0 _* k' R! B) {! m& I  -> 1.9    ( v; ~! o; V: |  S  u! S0 K
mysql> select truncate(1.999,0);    9 ~: u) {0 ^- b; [
  -> 1   
: T0 y' Z3 x, B! r5 C % H" U5 B+ h5 o$ Y7 W  k
least(x,y,...)    $ r% k& B( T7 E. \- I. Y" v
返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
  H2 A  o5 z' W9 Omysql> select least(2,0);   
, X! w- W/ p4 I$ f' R2 e% I& s  -> 0   
$ ]" z& q8 y8 Y1 D$ N1 T4 [2 ]6 X8 \mysql> select least(34.0,3.0,5.0,767.0);    0 ~! K3 M8 B. p" v' A( W. L
  -> 3.0    " w; g* h8 l! z+ Z1 [
mysql> select least("b","a","c");   
: c* H: c  R! `/ \3 L2 |; I* u  N  -> "a"   
( I% d# F2 v% y3 j) \ ; ~* U8 p. Y& f& u0 R
greatest(x,y,...)   
7 K1 D$ H3 @$ @) ^" l0 s返回最大值(其余同least())  
0 s% E) C1 k0 ~* |, s" r- Smysql> select greatest(2,0);      {+ K- S+ h; A4 N- W
  -> 2    % L+ n4 o( N& {
mysql> select greatest(34.0,3.0,5.0,767.0);   
) W$ M  s$ Y9 N( n3 a/ e  -> 767.0    ( p  l, M' S( P8 H
mysql> select greatest("b","a","c");    $ c$ h6 q  o  {) V4 B
  -> "c"     
: K4 S4 j0 ?8 b( _  @5 z4 t- f, h
3、时期时间函数
% Z0 ^( Q$ f# N% M! Udayofweek(date)    + [2 U1 f+ G2 t+ V8 u
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
" z% c0 e( m+ Q! Q, }mysql> select dayofweek('1998-02-03');    0 O/ i, q6 o3 M" ~+ [! m" {# A
  -> 3   
; ^5 v+ Q3 X  b. G) p5 |* |0 M
3 F5 g$ |: l. A4 w6 \, h$ Sweekday(date)    . `, a6 u6 N. K& U
返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
" O) A1 c  \( r' e4 X  4 {  Z* B( {# g
mysql> select weekday('1997-10-04 22:23:00');    * y5 {2 t$ R: ^. T6 c% ~/ G
  -> 5   
9 b% [/ j' J7 N, dmysql> select weekday('1997-11-05');    1 c- q9 s0 P0 t" p- t/ ]
  -> 2   
; P' {2 _9 E$ H: n* i 3 [6 s1 Z3 I5 m
dayofmonth(date)    % w: S, t( w" O9 A5 ^
返回date是一月中的第几日(在1到31范围内)    9 U* m0 U5 R$ `
mysql> select dayofmonth('1998-02-03');   
: P/ o* }( {, y3 l  -> 3    9 G) D6 F/ H5 P& I, y( [2 u

) w! U* }2 t8 y( k- E$ Qdayofyear(date)   
- o. U& |/ ?9 U( B) h返回date是一年中的第几日(在1到366范围内)    4 K9 L$ F; w5 n3 h; }4 p% t7 b# e
mysql> select dayofyear('1998-02-03');   
3 t/ ^- `# I$ B  h  -> 34   
' m5 }" ~3 U+ r. U% L " C# u- |/ {& d
month(date)    & T/ P* E# \9 K+ X& H; o- f
返回date中的月份数值   
5 R- I. l) d3 s) |mysql> select month('1998-02-03');   
& ?5 Y6 u  A" f# ?- u# W9 \9 o  -> 2    - f9 R5 X! I8 `4 S: ?
, K" Q0 s9 r( f9 p
dayname(date)    6 t: Z- P8 f6 \1 x4 M5 ]' A
返回date是星期几(按英文名返回)  
3 s. D0 O9 y- Ymysql> select dayname("1998-02-05");    2 N* i3 G2 _1 D, j6 F1 E9 n: w
  -> 'thursday'    ! e/ `$ ~- T% P

- N/ ^9 h% p3 Jmonthname(date)    
& N$ x5 H. ?' @2 p返回date是几月(按英文名返回)  
# ?0 J0 }7 h4 D: ?mysql> select monthname("1998-02-05");    5 I" M* r( m( m2 y9 \
  -> 'february'   
$ r7 x# X1 v" l+ A' |
) d" k2 ?+ I4 o% j. |) y- N/ xquarter(date)   
1 o" @, {0 ~  H) ^7 |- b返回date是一年的第几个季度    0 A3 d& v' q0 T' S  W5 }
mysql> select quarter('98-04-01');    . K+ N0 {% r8 Z0 M0 Y7 y3 y
  -> 2    ( V; D( f. U9 }( X
- n/ D; j  X8 @! b
week(date,first)   
* d, A* p* z1 A! p) q1 ]* G返回date是一年的第几周(first默认值0,first取值1表示周一是
" |2 |" U. P( x周的开始,0从周日开始)  
' K! s0 R- ^* e' W1 Ymysql> select week('1998-02-20');    ' t5 x* Z% L( T2 R7 w3 R
  -> 7   
- b. |2 O4 m" x, q0 B% kmysql> select week('1998-02-20',0);    " B% X2 N; H) R/ Z3 A; f
  -> 7   
4 C& x; L, a3 v% O( N; Tmysql> select week('1998-02-20',1);    $ v2 T. ^$ v+ y
  -> 8   
& o4 e" H. O" p0 E
5 ^1 a, `- [. p: g4 Jyear(date)   
" I3 E$ `  @5 T返回date的年份(范围在1000到9999)    ! H9 {3 p# J9 E0 v: ?# d
mysql> select year('98-02-03');    . p3 M' X6 m; W: T, f8 E7 l
  -> 1998    9 Y) [  ]: Z1 K, C1 L7 r

' K1 {; f/ J+ o& ]) `9 whour(time)    
$ t% P, S( a2 |2 \$ I返回time的小时数(范围是0到23)   
# V5 ^+ q: m' m" |3 S' hmysql> select hour('10:05:03');   
; i# K+ F5 u; J9 ^1 g1 M: V: i, R  -> 10   
' E  g4 u& s, R3 {1 U, @
, {6 Q" P! V6 i  Y+ qminute(time)   
* _3 }4 z0 n! p% R# @8 o返回time的分钟数(范围是0到59)   
) i6 B, s+ [8 `# Z( {' i$ Smysql> select minute('98-02-03 10:05:03');    " G6 Q% J$ x8 T/ o
  -> 5    " G7 a% W% U$ A; P) A# x+ n

, y5 Z6 K( S' h0 a  V) J- `# Gsecond(time)    
6 _+ p2 F4 Z5 ]) i返回time的秒数(范围是0到59)   : Y' a6 J  ]& }" ^% j+ H+ B) h5 o
mysql> select second('10:05:03');   
( F1 R, x9 O7 n. F8 X6 \  -> 3    5 A- M& @* Q: t9 J
6 s1 {- S# R: j4 Q8 h! u
period_add(p,n)   
" Y# _$ C) e8 b1 }9 V5 P增加n个月到时期p并返回(p的格式yymm或yyyymm)   
1 g- p5 |) J  Q, F. Rmysql> select period_add(9801,2);   
5 H5 m5 ~# |# Q/ f: {  -> 199803   
. M: `& n) @+ |, I  b2 E6 x9 P
5 P. [+ N! c, U% z# {- [period_diff(p1,p2)   
3 j0 ~7 y! f/ O6 L返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)    A! o! }9 V+ H) \
mysql> select period_diff(9802,199703);   
: N3 I* R$ S6 m4 L6 V  -> 11    " M8 u- B7 L; \' y0 p1 r4 c$ ?
/ C2 f  b# r( s! K, K% }6 p
date_add(date,interval expr type)  9 [# g3 u3 R0 |9 T6 o! n4 k. d
date_sub(date,interval expr type)   
% ?. {% e' J+ k4 n0 C/ k( Y7 H7 G6 @adddate(date,interval expr type)   
/ @' |4 R% j) X& W: ^- h; Osubdate(date,interval expr type)  # T: q) {  k( G
对日期时间进行加减法运算  7 E5 S$ n5 O' m0 T
(adddate()和subdate()是date_add()和date_sub()的同义词,也+ q, {: C  O8 I% R; A) N! @) ~
可以用运算符+和-而不是函数  
" a7 p4 f6 q% F# Cdate是一个datetime或date值,expr对date进行加减法的一个表
3 f6 a3 Q2 p' m# r$ j达式字符串type指明表达式expr应该如何被解释  9 f7 A- E9 X7 t: Y) {4 l/ T
 [type值 含义 期望的expr格式]:  
" N6 [" j0 c2 C5 c second 秒 seconds    $ @3 ~# S7 L0 n+ l# m7 C6 f
 minute 分钟 minutes   
6 q3 p+ P4 [1 {& [2 o! s5 H. L4 q9 J hour 时间 hours   
! E. z* M: H, K6 a; R+ F$ w! } day 天 days   
& E/ w& l5 h" P; K; E month 月 months    # E- d- k; @7 ^
 year 年 years   
. u2 x, [) c6 ~4 p5 T minute_second 分钟和秒 "minutes:seconds"   
% i) r9 v" ^0 T& M; o& u hour_minute 小时和分钟 "hours:minutes"    + J( W$ V2 U" `0 P: S3 d
 day_hour 天和小时 "days hours"   
/ s1 L# O  e* J9 S9 e) D year_month 年和月 "years-months"    : I6 ?. _. w& I! C& J
 hour_second 小时, 分钟, "hours:minutes:seconds"    ) O6 H  l4 l7 v
 day_minute 天, 小时, 分钟 "days hours:minutes"   
+ O; R- e' {! k, @% q day_second 天, 小时, 分钟, 秒 "days8 J, `* s3 G7 N
hours:minutes:seconds" 8 P6 y. K* S' B8 o
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个
1 K: w6 g5 J: edate值,否则结果是一个datetime值)  
% k2 ~3 V/ X) L0 ^+ }" n 如果type关键词不完整,则mysql从右端取值,day_second因为缺
$ L/ [3 G. r) c7 `! l, G6 h9 h) \少小时分钟等于minute_second)  ; h8 p. A5 v# @4 j
 如果增加month、year_month或year,天数大于结果月份的最大天
  ]' g2 O; I8 W数则使用最大天数)   
1 Z3 f3 D# M+ W+ c; J# Smysql> select "1997-12-31 23:59:59" + interval 1 second;  
( @$ r+ s3 W6 Q( U
9 e5 H) ?( I  C: g  -> 1998-01-01 00:00:00    . s4 z2 v6 }3 a3 a2 ]) s- y: P2 `
mysql> select interval 1 day + "1997-12-31";   
- r. |% g' Z$ o$ K, ?6 }; R  -> 1998-01-01   
, H9 N5 |* f: Q0 Imysql> select "1998-01-01" - interval 1 second;    " e& N# K/ ~) W) e
  -> 1997-12-31 23:59:59      ^( |9 Z/ ]; B7 T  \
mysql> select date_add("1997-12-31 23:59:59",interval 1
1 d: x- z: ~5 u. V# W- k4 E8 Ksecond);    - f( k$ k7 @8 u3 L' L/ }0 a7 b
  -> 1998-01-01 00:00:00   
3 R+ \" M: V6 W7 amysql> select date_add("1997-12-31 23:59:59",interval 1  M* W8 [% p4 S  Q: G3 {
day);   
1 Q# K) b; d% E  E  -> 1998-01-01 23:59:59   
& L! M( P, S  M3 O, U1 J5 {mysql> select date_add("1997-12-31 23:59:59",interval9 @0 P5 K# Z- F4 Q7 v( N
"1:1" minute_second);   
# b8 f) J( w  d0 ^, t4 T1 p  -> 1998-01-01 00:01:00    4 y% T# @! P% A- Z) \" J( c
mysql> select date_sub("1998-01-01 00:00:00",interval "1% U5 e2 J9 f3 T. [! O& i0 [' p5 H" E
1:1:1" day_second);   
4 R0 H$ [7 s- `7 G! I3 b  -> 1997-12-30 22:58:59    / r' {5 Q. h( M' l
mysql> select date_add("1998-01-01 00:00:00", interval "-1% C( ?4 y& G1 L! Q; S( M
10" day_hour);  
/ k# i1 B' b5 h0 @  -> 1997-12-30 14:00:00   
. [* w3 C) q; \( k% G  @mysql> select date_sub("1998-01-02", interval 31 day);   
$ k$ d" K0 \  T; q  -> 1997-12-02   
7 y/ d( }/ u$ |2 h$ t$ |* Lmysql> select extract(year from "1999-07-02");    7 n. w4 W% w, T8 p- u
  -> 1999   
- w/ A4 ?, ?+ J0 E9 e! u. x2 ~; ?0 xmysql> select extract(year_month from "1999-07-02
1 {- K. p/ ?3 z9 ^5 d( Q8 |01:02:03");   
! o$ o0 y% E: K- i, ~3 S( ~) U0 [/ T  -> 199907   
% I" x+ J7 e: H# A2 d: m( mmysql> select extract(day_minute from "1999-07-026 V) X9 b  P0 E) D0 o. _
01:02:03");   
/ G# [/ a" u8 ^% E( M$ X  -> 20102    0 C/ z( b1 e6 _* n1 k# x: z4 K

! W9 {+ c, c4 V: g2 Kto_days(date)    % W) b, ?' p! \* `
返回日期date是西元0年至今多少天(不计算1582年以前)  
  `. r/ ~# F% Y4 dmysql> select to_days(950501);   
8 {2 {8 s  N) |$ p! t- X' ^3 i( W  -> 728779    2 M0 A. R4 X* p* ~. @2 X) v" G. F
mysql> select to_days('1997-10-07');    3 X, w% f- J4 h2 p+ d
  -> 729669    ( l% X  Y% V% x  Q6 ?- j
) S) K$ \0 G$ o0 n- h5 I1 V* ?8 L
from_days(n)   
9 H9 |) {! v- h$ j- n) @2 J) V 给出西元0年至今多少天返回date值(不计算1582年以前)   3 O% b6 D( ]9 Q/ G% D1 a  z
mysql> select from_days(729669);    9 Y9 n0 K8 w3 O, `
  -> '1997-10-07'   
/ I! B1 V# ?& l5 d) H
* w2 d; A4 p' ]5 s- Y* udate_format(date,format)    / `0 ?% i2 d1 r6 C4 E1 {5 w: p
 根据format字符串格式化date值  
$ U2 m2 b/ p% \2 e" _ (在format字符串中可用标志符:  . O; o; v, ]* s" ~7 S. I
 %m 月名字(january……december)    * m' _! k% O6 h( }/ }
 %w 星期名字(sunday……saturday)    ; g) r1 q+ o8 b+ u5 {
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    $ T& b2 f) S* y, j
 %y 年, 数字, 4 位    ) _, w( q/ m4 T* e; X. ^
 %y 年, 数字, 2 位    ! ^& h! I0 ]' E' J; K/ O
 %a 缩写的星期名字(sun……sat)   
. i  u$ f' Y  g$ E( t1 p" Q" d %d 月份中的天数, 数字(00……31)   
/ |* K7 z, d5 {) L- O; ^: j4 b7 N %e 月份中的天数, 数字(0……31)   
! @3 _* n. C4 P% O& g$ G %m 月, 数字(01……12)   
& h9 D9 C) G1 X% n+ k/ I %c 月, 数字(1……12)    + m& t/ q+ z3 i' |. B: {* G
 %b 缩写的月份名字(jan……dec)    / g5 x# c! Z' o0 r, l& n. n2 u. h
 %j 一年中的天数(001……366)    $ N+ g) |0 m, q& Q" q# }' ^3 g7 v
 %h 小时(00……23)    . m4 w% H+ h0 z+ r4 `+ C
 %k 小时(0……23)    7 @! k: w) D7 I3 `
 %h 小时(01……12)    , ?( T+ D6 g, H
 %i 小时(01……12)    8 g7 i: \& _# H. G# Y1 r
 %l 小时(1……12)    5 L9 T# f6 K% ?$ T( p4 e
 %i 分钟, 数字(00……59)    9 O: \" g. u: _( s' m, p" C
 %r 时间,12 小时(hh:mm:ss [ap]m)   
! [8 A. T; C. r4 m6 Q %t 时间,24 小时(hh:mm:ss)    * X2 ~0 s2 W0 t  ~
 %s 秒(00……59)    & F- G- J1 x0 N8 j! f
 %s 秒(00……59)   
+ ]/ T$ N2 y4 u( F7 W) G2 f: y %p am或pm   
1 i) U: @% ^! M5 ^) g %w 一个星期中的天数(0=sunday ……6=saturday )    + D9 c/ _! ~. S! x3 K
 %u 星期(0……52), 这里星期天是星期的第一天   
* _7 W* S6 Y6 E# ]1 H1 E. n %u 星期(0……52), 这里星期一是星期的第一天    , @; ^+ y0 _3 m2 S! `
 %% 字符% )  8 N* U1 r8 a. N3 h" U4 l; O- t
mysql> select date_format('1997-10-04 22:23:00','%w %m %8 }( i- b4 F. Q7 L/ M! D, N1 A  q* N
y');   
3 o* f7 t$ b2 B. k  -> 'saturday october 1997'   
3 U. A+ z+ i! p& I6 y. Fmysql> select date_format('1997-10-04 22:23:00','%h:%i:%
1 n! L( e& K: Z5 A5 G% r- us');   
" l" K0 O+ y8 n2 R9 A0 V8 Y5 J  -> '22:23:00'   
7 O; ?3 b. w/ j% Jmysql> select date_format('1997-10-04 22:23:00','%d %y %a  Z# t% ?# J. b- D4 g1 s" d
%d %m %b %j');   
; K$ C6 n3 H9 W  -> '4th 97 sat 04 10 oct 277'    / I5 z' R1 |, m* @2 p( o
mysql> select date_format('1997-10-04 22:23:00','%h %k %i
* D& g* s8 J+ p! x0 I%r %t %s %w');   
1 x1 I" \0 p; N" J( R  -> '22 22 10 10:23:00 pm 22:23:00 00 6'   
3 L2 A9 `1 h6 K5 S3 q. h* @- ?3 y# z . |# u) M+ z, |, _+ W+ {0 B0 q
time_format(time,format)  
1 M& v9 H6 Q$ ~* X8 w" v 和date_format()类似,但time_format只处理小时、分钟和秒(其
" I: w) ]# k+ t' |2 p余符号产生一个null值或0)  ( r! w  G+ a4 r) V

! Z' x& w, C: T% o. X  kcurdate()     & V: a7 L/ {/ D
current_date()  
/ E! b; |( g6 `, F1 n3 V 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所2 `% N. X' P. }+ l( \
处上下文是字符串或数字)   
3 f6 d  o: f* w) Q, J  V6 Gmysql> select curdate();    3 F& w+ k1 r( w- x3 _2 g
  -> '1997-12-15'    , p! z2 o) c# }' x8 A
mysql> select curdate() + 0;    ) h1 K) _; f0 T( h5 ^! m# _7 ?
  -> 19971215    ! ]! F5 p+ C( T1 e8 P
9 C3 O3 x& R! l. Y4 _
curtime()   
" [% B$ e4 n( k- Y2 y( Q6 n, p4 W% xcurrent_time()  % A1 m; |6 U# i1 s
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上* w% o: a1 i0 {  [
下文是字符串或数字)      $ Q8 S3 p% ?' D$ u! @0 u4 [, t
mysql> select curtime();   
3 {* k5 j2 `* i! w( N  -> '23:50:26'    1 }! X/ n: L8 u" n% @. Y9 {% p6 g( U
mysql> select curtime() + 0;   
) K+ P  e3 B: H' H  -> 235026   
7 J0 Q  V' O: w: T2 i- Y
+ z6 B4 A7 W/ ^( P% ?# cnow()    
) Y- K$ K6 O2 S/ b+ r5 f! }3 Msysdate()    " j6 j1 S) U4 U6 @( s8 V9 I
current_timestamp()  
9 y$ W% M) W3 ~ 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
& H( G" z- E9 U时间(根据返回值所处上下文是字符串或数字)     
$ l) N$ f5 n7 i7 p. r" _/ H& cmysql> select now();   
! p: {4 _0 \7 M8 u  -> '1997-12-15 23:50:26'    : E4 i* m- w- J% h2 K
mysql> select now() + 0;    9 `' A6 ?- U1 l
  -> 19971215235026    - |% w: j0 S) m1 Q: C5 l4 K) Y5 B2 K/ ^

+ E9 n4 ~* X: tunix_timestamp()   
/ o5 ~6 V* ^/ a6 v8 K8 M) E' V1 Uunix_timestamp(date)      M0 S8 [; M/ ~7 ^
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
6 _- I% ]- w8 m* p7 I# l数,date默认值为当前时间)  
9 X2 ^8 C2 a/ Y5 ?( [! Cmysql> select unix_timestamp();   
+ N" w- }7 r- @7 |7 j5 {  -> 882226357   
! {, E) i" _& K* v. v, v. ^4 umysql> select unix_timestamp('1997-10-04 22:23:00');   
3 p6 M# N$ T: |3 b, i) Q, p3 g  -> 875996580   
1 ?4 f' w$ z; ?! t+ C' H& G 3 z' `+ c# |) t6 y4 r0 j
from_unixtime(unix_timestamp)    " x) i5 H/ i! X$ j
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的
+ d7 B- u4 I8 P4 v值(根据返回值所处上下文是字符串或数字)     
2 X& d0 Y2 F$ _mysql> select from_unixtime(875996580);    1 T: q' I" G1 b% R- O, |
  -> '1997-10-04 22:23:00'   
& a2 Q; r) e; x( y+ omysql> select from_unixtime(875996580) + 0;    1 z# Z+ |# S; x& H2 B# ~. w
  -> 19971004222300    8 s  w5 E1 Z) ^0 {; S  D

, ~/ V2 d2 J2 ^+ _; N8 G/ P  }; Zfrom_unixtime(unix_timestamp,format)    
; x$ ~- p/ I. q. J% ^以format字符串格式返回时间戳的值  ! ^) i8 b2 u" c1 r  u+ a0 x# O
mysql> select from_unixtime(unix_timestamp(),'%y %d %m %
8 v% Z$ _: N( W; Gh:%i:%s %x');    9 h! e4 [( P; J" Y' ^
  -> '1997 23rd december 03:43:30 x'   
* B- V% J' H; [5 }/ d5 y: W4 p2 [ 6 l0 b5 |* D8 s  Q& F8 |
sec_to_time(seconds)    9 ^- I2 t+ L+ c$ k+ R  c
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
& C) M8 x' W: U$ g! J1 umysql> select sec_to_time(2378);    1 M3 S8 s2 j' ]. s3 o# V: o" @
  -> '00:39:38'    " K1 C  A9 K. t
mysql> select sec_to_time(2378) + 0;   
& Y% t; ?& t7 s' Y" w3 R1 N  -> 3938    % {' C2 ]0 N6 K/ p

" i* Z% K6 ~3 ]- m" j9 b; I# I- utime_to_sec(time)   
2 X9 ?) |$ r, \3 w. I7 \& H返回time值有多少秒    + f0 K2 i3 q2 ?, M
mysql> select time_to_sec('22:23:00');    ; K+ O  I: j0 M+ O" T( B
  -> 80580   
  a5 l; L: W3 }5 Lmysql> select time_to_sec('00:39:38');   
% j4 i: r. I: G* g9 c- c# z  -> 2378
& j8 z* ~9 w; M- @1 R ) p6 G% N% w) T4 O+ l
转换函数
6 \5 _0 ~& _0 y1 z3 A6 R- w. q8 dcast
  [: Q+ f8 ~# a9 e3 \" c+ b用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]% l  a5 j$ u0 E5 }6 @- `
实例:select cast(a as unsigned) as b from cardserver where order by b desc;
5 j- \7 |0 o$ G4 h# I8 pconvert:
$ E' Y  J1 q* k4 g3 f7 t用法:convert(字段,数据类型); W' z/ |1 m& A9 k4 t- ^
实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

9 a* V3 q* B& D& i6 S) m- Y
回复

使用道具 举报

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

本版积分规则

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