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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数- S8 F3 b) z& }5 h9 f" _
ascii(str)   2 {, I. T  N9 R- I" N/ B
返回字符串str的第一个字符的ascii值(str是空串时返回0)  
* n; X0 o' r2 y$ n$ Ymysql> select ascii('2');  " B9 V8 B9 C2 W3 U" p+ q. S
  -> 50  ! F: f9 ~/ M! D: y% E; O
mysql> select ascii(2);    T. ~3 P) U% [2 z$ ^5 O8 ?
  -> 50  
$ D5 s7 S  c2 }) nmysql> select ascii('dete');  ! X3 B$ M. l; K" m1 E
  -> 100

9 D; f: Z# E% n; b. q: Yord(str)   4 ~  m2 l8 [8 h( R6 L+ q1 ^' ?
如果字符串str句首是单字节返回与ascii()函数返回的相同值。, h: n9 }- D- z/ o7 a
1 j- n/ u4 ^# b' j7 K5 M2 ^$ `& H
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  * `4 t2 J' N  p. P  U9 R
mysql> select ord('2');  
9 R2 |: a, Y8 {% l% C4 p; f& L  -> 50  # Z. N& _: i: R4 H
   - K1 z9 E) s( ]# f$ J
conv(n,from_base,to_base)   1 f8 U9 ^/ w" f0 E' N
对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  : V  }1 ?: L& _6 P
mysql> select conv("a",16,2);  
: R' O2 X, G8 s# q) G9 o" Z  -> '1010'
& \/ K9 |0 [1 ~4 [mysql> select conv("6e",18,8);  ' E$ ]4 O, [. C2 C5 x
  -> '172'
9 h! D( z% _' p/ tmysql> select conv(-17,10,-18);  + t9 u# S9 |& [& I1 t* i% v/ D+ V- a$ B
  -> '-h' ; R2 g  Y# M' d$ x* `
mysql> select conv(10+"10"+'10'+0xa,10,10);  2 [) x! s: ]8 j* X5 T: X/ w- H" ?; X
  -> '40'
6 s# a$ o- w! C/ P  D; O   / B7 B8 P) }" f3 X, h/ t5 Y
bin(n)   / }) `' Q) s3 y+ ~
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  2 m+ r, Y2 S0 h7 J: b' n$ [! p& z
mysql> select bin(12);  0 B, n( R/ i' Z2 p# ]
  -> '1100' 0 K1 }, G: D2 I: Q4 x
. v0 X8 _/ D3 E# @* B
oct(n)   0 i7 s  G4 W4 G; Y
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  9 V, n0 A6 o! r; S! g; K
mysql> select oct(12);  % C" E$ c: r5 l7 |  Q
  -> '14' # k/ G0 ]% O0 Q. g, Y1 C
   
# n9 F. L# n3 n( L5 t2 u0 i- q& Vhex(n)   
8 U0 M" s& u0 B8 q6 z把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  $ o/ C' a* L4 ]( y- g
mysql> select hex(255);  8 U* O+ z/ J6 H1 I- \6 U5 E) d
  -> 'ff' # @. l9 ~) F: M1 q! C* k
   
6 r0 p$ Z# e" Achar(n,...)   
( Q4 v1 c2 q5 \1 [返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   7 f" Q9 t) e4 y
mysql> select char(77,121,83,81,'76');  
5 t3 g4 J( [3 U  -> 'mysql'
7 t! n2 H. k" P! j  @mysql> select char(77,77.3,'77.3');  - c+ @* T$ ?! Y1 V! ?  U
  -> 'mmm'
/ r, y/ j8 W5 \$ E; _% E   ; X* L; r5 E2 [, F7 a) N# o
concat(str1,str2,...)  
* v8 O- e+ {3 L+ V, f把参数连成一个长字符串并返回(任何参数是null时返回null)  
5 s7 [3 R& Y1 a. y2 `: J: N, pmysql> select concat('my', 's', 'ql');  . Q- j/ p' x& y$ T4 [; ?" C
  -> 'mysql' 9 L$ O3 {/ \  X" `
mysql> select concat('my', null, 'ql');  
; Y0 F; {1 }& c! L+ ^4 \  -> null
% P1 v& P) b. C& v8 m# a3 J' Mmysql> select concat(14.3);  
1 q( ]# ]) i0 W: p) D. s( G  -> '14.3' 5 G0 U. G( W6 ^

7 X& }$ p2 L6 Z, ~; c) wlength(str)   7 P, J0 a1 Q! D1 c- N& ~! {6 Y
octet_length(str)  
! ^- W3 O9 W7 x9 a9 u; n* z& Uchar_length(str)  * V: T2 E/ H- r# x* Z: B; r
character_length(str)  
* g  e/ I: }6 E& }" x返回字符串str的长度(对于多字节字符char_length仅计算一次)' _% ~4 \+ d' p3 s; Z' F+ z
mysql> select length('text');  8 o! c) s9 r1 u" @5 M% v2 b: ~8 L
  -> 4  7 P2 P  Y# a6 o* ?- N& K
mysql> select octet_length('text');  7 e& I; g$ ?& k
  -> 4  : m6 S1 U( m' K# O( G7 e) t

+ V# u, t/ d7 e7 {6 [! Glocate(substr,str)   6 D5 X! {3 v- `9 k$ u* Y  }4 b
position(substr in str)   
$ d: i7 l0 f2 e7 P: U8 m返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  % W; I# K" b! t4 k
mysql> select locate('bar', 'foobarbar');  3 w$ H9 Y! Z; ]) X9 q* ~0 D: `# Z: w
  -> 4  
) i; H% u( A- i3 F# i9 n; `2 L! Dmysql> select locate('xbar', 'foobar');  
1 S/ p2 K& ]: j/ b, v/ |) R  -> 0  6 q7 R' y! I9 a3 q7 p- ^
    4 E9 z  |; i9 _) J7 |9 C# ?
locate(substr,str,pos)
7 A+ y% N, d; n1 c  C返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  % w4 i+ A! U1 I6 ^" _) s& K
mysql> select locate('bar', 'foobarbar',5);  
; P9 L0 P: c2 k2 ~; B  -> 7  
! X% D& Z2 b6 h# f 6 c& a) a" D+ b4 J! x$ y* }
instr(str,substr)   " E5 K- Q& G' \- x; I
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
: a, ~) K. q% }. G  N1 `( xmysql> select instr('foobarbar', 'bar');  8 f6 ~1 b* x' ?% U
  -> 4  ' ?9 f# N0 `& z' x8 M% A* I% V
mysql> select instr('xbar', 'foobar');  
+ d/ ~( B" _, T' l/ B# V5 x8 }  -> 0   
6 N5 b, r0 F' o+ {9 e2 _2 \* Y$ w
4 K' G. ~: f- [8 G# g5 wlpad(str,len,padstr)   
- r* d/ }% x, a+ Y0 s2 Y! O/ W用字符串padstr填补str左端直到字串长度为len并返回    g% h3 \! I( l! a
mysql> select lpad('hi',4,'??');  * R  Q6 L  M' z
  -> '??hi'
+ B8 v/ q; \  V7 N3 p' `     w, i) E/ x2 [+ V  O5 S
rpad(str,len,padstr)   
* H' Y, j' o* I8 c7 }2 f用字符串padstr填补str右端直到字串长度为len并返回  2 I0 J/ |# y! ~! S
mysql> select rpad('hi',5,'?');  
6 z6 M' K( E$ ]3 E* v) X7 [/ e  -> 'hi???'
4 m8 S( {7 B/ x% t7 V/ X
1 [5 D- \% Y% {1 fleft(str,len)   
) e$ V  t8 E/ M7 b- t) J% D返回字符串str的左端len个字符  
  p: M; {7 }( u6 A. x( Gmysql> select left('foobarbar', 5);  ' u: I& w: K7 B: c* ?& ]
  -> 'fooba' 6 \+ S$ K0 ^1 X
* q1 \; K6 a$ S, y3 t, O: t
right(str,len)   ) Z9 j' F& ^0 ^: |# m: R4 @
返回字符串str的右端len个字符   
  W  R' m5 L2 R& S1 o1 Xmysql> select right('foobarbar', 4);  : I9 a7 _* L0 {3 d7 Q) Z* |; E
  -> 'rbar' , I( @9 b$ i+ c. b5 }$ u$ r( C
0 O/ L4 H$ t# \/ e
substring(str,pos,len)   8 N9 Y9 E# Z7 h
substring(str from pos for len)   7 j* f* M1 B( @/ {
mid(str,pos,len)   
  l+ m6 q" ~# e2 p$ c% u4 t/ v. P返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
7 M5 k( e6 a$ N1 Y! {( R  -> 'ratica'
! C4 v* P0 ^" T/ w/ a4 \5 k ; \' k. N; v: \5 I/ T
substring(str,pos)   1 d+ p/ j: C3 |
substring(str from pos)   
) g1 t) y' k8 _% a" ~: _返回字符串str的位置pos起的一个子串  
2 Y; Y0 f. r1 s- |0 a3 o# @7 X" \mysql> select substring('quadratically',5);  
3 d! o1 |' ?5 E3 k4 ~2 A  -> 'ratically' 1 S+ V+ x% c: N! N' h$ Y
mysql> select substring('foobarbar' from 4);  
' _/ }4 G# W6 w, _/ c! V6 ^3 C  -> 'barbar'
, {$ x. _! b9 \2 g) M- H  U: O  k( [ ) W& i# I/ r) G. ~( F. W; T; G
substring_index(str,delim,count)   * d  p; V# ]& \+ I# f5 [' C
返回从字符串str的第count个出现的分隔符delim之后的子串( B+ G5 h+ E8 g, |9 V4 u7 b
(count为正数时返回左端,否则返回右端子串)  
* Q) j) m2 B9 L4 }% _; w* ?% mmysql> select substring_index('www.mysql.com', '.', 2);  ( y8 J/ i8 D1 o+ u# ?& k
  -> 'www.mysql' / D* }9 s# G5 i, O0 o4 k( r
mysql> select substring_index('www.mysql.com', '.', -2);  . _: U$ G' A. ~' o7 V& [
  -> 'mysql.com' 7 f3 C1 G& ]! c0 O

; H4 X* z* s6 A9 k* Z, A5 S  ?) _. nltrim(str)   ! a% J. c! s& ~# L2 U
返回删除了左空格的字符串str  / p+ g/ j! ?: X4 c; n* t
mysql> select ltrim('  barbar');  
' Y3 B6 w" [! j  -> 'barbar'
$ k# T" _8 {0 k$ \$ t8 [! h7 _$ L+ x- Y 0 U7 F7 y8 g8 p! C
rtrim(str)   
( B+ K; a1 D8 q返回删除了右空格的字符串str  9 a! |) C2 w# y' R
mysql> select rtrim('barbar   ');  
" G( a$ e! X$ B! T, S* B9 w# B& Z  -> 'barbar'
' [; N. l" ~, m6 Y4 Y# u 6 y( b6 o1 i, X0 ^$ \; I$ V
trim([[both | leading | trailing] [remstr] from] str)  
6 ?& T; Q( e1 w5 L: w返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
) X; E- e# z0 z5 I+ \* I- [mysql> select trim('  bar   ');  
; c9 v5 w3 W7 l5 V5 a% k- M, k& b  -> 'bar'
; ~% g5 {( K+ c) y: kmysql> select trim(leading 'x' from 'xxxbarxxx');  
0 }& X( q7 {! ?3 g  -> 'barxxx'
4 e8 G* A6 J6 V5 g5 w* T- ^, Dmysql> select trim(both 'x' from 'xxxbarxxx');  : n6 N4 v4 r; f: j! _- W8 b( ]% K: L( v
  -> 'bar'
- A: f' M) R8 s2 E7 [, l: Dmysql> select trim(trailing 'xyz' from 'barxxyz');  ) i; G" B. g: S1 ?$ N
  -> 'barx'
2 B% M4 T& A. h3 F: r* x4 _ - r3 P9 c: c4 ]* `: {8 b' H
soundex(str)   
- U! L8 `7 ]' y0 g: s( @返回str的一个同音字符串(听起来“大致相同”字符串有相同的5 A$ \% ^3 |+ K$ y; b( p- ?, |
同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  0 ^8 o  @& _: Q. ?+ Q/ d( H& c
mysql> select soundex('hello');  ! ]/ U$ ]5 z3 b1 p- J2 A
  -> 'h400'
. f9 _( v5 o  B; \; L! a7 R2 Nmysql> select soundex('quadratically');  5 L# X5 B6 j9 [
  -> 'q36324' 4 j4 A' E8 Y+ ?0 |" d
   " S5 M% H* R  ]  r# s
space(n)   
: Z2 c$ Y7 N& }0 S# H& W1 Y返回由n个空格字符组成的一个字符串  
1 m  |3 R3 R3 x6 Jmysql> select space(6);  9 b+ s& E+ ~3 ?6 D9 I: a
  -> '      '
$ @  a1 G. _$ r- G; y   
# _% W5 J7 j" I+ d( C9 ~, v1 Y4 R8 yreplace(str,from_str,to_str)   0 i& Y2 T) i' T: F4 T* l5 O3 Y
用字符串to_str替换字符串str中的子串from_str并返回  
; h6 U' ]. O+ u- C  O4 emysql> select replace('www.mysql.com', 'w', 'ww');  
9 l; Q$ x1 Q3 Y( ~  -> 'wwwwww.mysql.com' 6 y2 x# t4 J3 m& l& u: p
/ r7 ]2 X3 b4 B( K# k
repeat(str,count)  
# P" f4 P: m  F返回由count个字符串str连成的一个字符串(任何参数为null时
# h- J! _6 t( Z2 S7 T4 L  ~2 i8 P返回null,count<=0时返回一个空字符串)  : T/ ^0 {. [( A" U
mysql> select repeat('mysql', 3);  
  U' r6 g; S! D% Y3 |4 @9 N7 w  -> 'mysqlmysqlmysql'
: m' p) P% e( C: {4 E7 o9 ?   
  j+ m! e% J! o2 E# x5 ~reverse(str)   2 E2 H( n& T7 k& A4 |0 P
颠倒字符串str的字符顺序并返回  ' |4 ^2 o8 R6 z; n1 @
mysql> select reverse('abc');  
3 P2 Q4 Y, `: \8 G  -> 'cba' ' g- z; j$ O" i1 p" A( @

9 g' c/ U) I- Yinsert(str,pos,len,newstr)   
* i$ W8 x* k  l( c把字符串str由位置pos起len个字符长的子串替换为字符串
& J6 G- Z8 o% q) Z7 e: Mnewstr并返回  0 X/ K" e* Y7 ]" Y5 ?! l# |
mysql> select insert('quadratic', 3, 4, 'what');  
6 a5 C( G0 [* @# }% G  z  -> 'quwhattic'
' n1 F# \! K- a, Y7 s8 X - U, G: P$ \# w( k+ a& F& j
elt(n,str1,str2,str3,...)     }9 f+ p7 m! N4 U4 B0 b6 P
返回第n个字符串(n小于1或大于参数个数返回null)  ) ^  c7 c% v+ v( N" M6 G8 D# k$ `
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  7 ?. x0 u1 |# S/ o: {4 d) h
  -> 'ej'
! c1 \6 Y$ |+ y6 q; p' `mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  ) U0 X7 Q% _( x9 _
  -> 'foo' ; ]0 }* S' ]$ }% m

6 c7 w4 H2 T* y1 k5 x. C( J8 Dfield(str,str1,str2,str3,...)   & t+ r" j8 ~( Y) Y# F! Z
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
$ c$ Y  o% l9 amysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
: c3 H2 n9 G* {+ J$ {2 F$ A' U'foo');  $ [! K/ u4 L2 F: m' e' A' V3 s$ T
  -> 2  % Z5 R8 R; D6 ^; ~0 {7 X
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',1 a2 o4 a: N; V
'foo');  " e" i1 x1 x1 e. R
  -> 0  6 L+ p& B4 h$ _! F8 f* R

) h" s! o+ a) U+ y; Q& J6 \- Ufind_in_set(str,strlist)   ( p8 n4 c7 Z7 b4 i4 n# ~7 Q( L, j
返回str在字符串集strlist中的序号(任何参数是null则返回' a# V4 l7 x( ?/ c
null,如果str没找到返回0,参数1包含","时工作异常)  
, v, w! ^  R+ w% Emysql> select find_in_set('b','a,b,c,d');  
7 P3 o7 J$ @/ s* m  -> 2  . b) }  J0 c, b
   3 `# t8 B5 V8 s6 `2 I* Z7 u- b8 b
make_set(bits,str1,str2,...)  
1 r* o  x  n  l" B, b把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
- T* g  V! k+ W6 k. S位置的字串选入字串集并返回(null串不添加到结果中)  
4 }( R# r4 t8 }4 z; U# m7 @mysql> select make_set(1,'a','b','c');  
2 v4 ^0 ^# Z8 M7 [  -> 'a' 3 w+ c, Q& J7 j: W
mysql> select make_set(1 | 4,'hello','nice','world');  0 f1 I" q5 q! o& O
  -> 'hello,world' 6 G$ C1 g3 j& L5 ]- F
mysql> select make_set(0,'a','b','c');  
6 x0 x5 G* a9 j' ?  -> '' 3 w. F3 W" \8 I% Z
" k8 a  R. w9 q0 Q" w
export_set(bits,on,off,[separator,[number_of_bits]])   3 n3 i6 \$ s8 s
按bits排列字符串集,只有当位等于1时插入字串on,否则插入
7 \. {- I" }, A. ?  z, Q' Doff(separator默认值",",number_of_bits参数使用时长度不足补03 c$ Z( U  p, J9 ?# |2 o( Z% O9 J
而过长截断)   
( H. R/ C6 |+ t+ f/ Gmysql> select export_set(5,'y','n',',',4)  
1 G& K( V# @" d4 n( y3 @  -> y,n,y,n   , v+ X. Y3 T/ J' w' p% z+ _0 y
+ q$ @) v* h! v  _
lcase(str)  
7 q+ Z. F) U+ E* \! v) [3 Blower(str)   
* F: e$ j+ V" d; H: g. ]返回小写的字符串str  
" l) Z4 k. t/ Q" E# I  b% xmysql> select lcase('quadratically');  1 ?# M: T9 G4 j* G$ h. P- f" g! N1 c% a
  -> 'quadratically' ; D. U' Q% s/ o+ v' I
   3 @( j1 c( e0 @: x; j
ucase(str)   2 L' i- r& {6 q+ k8 Y8 b
upper(str)     V# Z4 b' f8 o$ c- M7 p
返回大写的字符串str  / i0 N- c9 _+ I6 _  C
mysql> select ucase('quadratically');  
6 ^' f+ ^9 q& n  -> 'quadratically'
, x( l1 K% r" g4 A 7 {+ \. @( {! |; T- N
load_file(file_name)   / j9 J2 G2 r3 G; y0 b; S
读入文件并且作为一个字符串返回文件内容(文件无法找到,路径1 e% f4 z- M6 B8 u3 t9 S
不完整,没有权限,长度大于max_allowed_packet会返回null)  
' l: S  ]+ j( D# `/ gmysql> update table_name set blob_column=load_file
: W2 m( u3 I7 u4 j2 F0 V) S("/tmp/picture") where id=1;  % ~2 [( w& F% x
( S& d: m8 @( @+ {. t. I2 n
2、数学函数
, s) |3 e, D9 x+ R& V7 a! M6 Sabs(n) ( p4 j- a' F+ ~+ G, U
返回n的绝对值  
1 f! |  t3 v( [8 Imysql> select abs(2);    $ _" F3 p. F: w: B. _
  -> 2   
5 d, @9 _5 t& e5 c5 Qmysql> select abs(-32);   
, ?5 v) w  d9 b  o6 p. a  -> 32    " N2 u8 T  B2 G
     }3 ?1 _: U2 M/ f* H3 a6 C
sign(n)  % `- O" M7 g0 R& Q- F
返回参数的符号(为-1、0或1)  7 @. i- W2 ?2 a$ Q% G! A1 V# Y
mysql> select sign(-32);    ' z1 }* v8 ~3 x+ m8 J
  -> -1   
# d$ n4 ?1 c  n5 {mysql> select sign(0);   
8 K* E. k# @+ ]1 I6 D$ \5 S  -> 0   
; N1 s6 q7 y' ^+ ]9 W* a5 Omysql> select sign(234);   
/ s$ H  N  m: ^. e! W  -> 1    9 u7 N) K' g7 [# k! k

+ F& o# g6 j4 S; _mod(n,m)   
' C2 R9 g8 F+ H取模运算,返回n被m除的余数(同%操作符)   
5 A7 `& }* q" K# L- f/ S8 ~. ^+ Rmysql> select mod(234, 10);   
. L" k  R- E* H, _, U5 h5 A9 D7 o  p  -> 4   
) J; R! {' Q0 C, Smysql> select 234 % 10;   
! r! K1 v' P- ]. B1 x( S  -> 4   
9 j+ j/ W5 H9 `, M. Y$ Xmysql> select mod(29,9);    ( Z2 T+ C  z) x6 F3 I. A- L  y
  -> 2   
, q' \7 K9 s+ k* F; f' A; w$ o
3 m9 r  l  p/ n- B( b8 G, w  pfloor(n)  9 B" x* m  l$ f' u) b# X
返回不大于n的最大整数值  
4 ~) O" D7 J/ \9 B" xmysql> select floor(1.23);   
7 r" J5 g8 T+ E2 \  O  -> 1   
8 }" E* `5 I! g" R7 H4 V9 g% f/ O/ Wmysql> select floor(-1.23);   
) Q) }: [& }" v: o  -> -2    7 P) h; v/ v$ a" O
. a, ^6 d5 u; J2 Y& b% d
ceiling(n)  3 D$ R% p  A; h1 @
返回不小于n的最小整数值  ! N+ v0 Q7 x- o# V- k) X& X1 m8 B
mysql> select ceiling(1.23);   
: B2 l8 R& T8 X9 q0 S  J1 X& l1 s, c  -> 2    + M- A% ~3 f0 g$ b0 ]/ D- ~" v& B
mysql> select ceiling(-1.23);    . R3 h; D( f7 S. m6 \
  -> -1    / u8 [5 I* {- [4 h

& \# _' L1 W" J) uround(n,d)  1 l. \9 H. v# d+ d0 H8 x
返回n的四舍五入值,保留d位小数(d的默认值为0)  
+ b% D- ]1 H9 `# |mysql> select round(-1.23);   
. J* ?- l- v5 _) D3 T% k5 d  -> -1   
0 C' H' \7 m4 `mysql> select round(-1.58);    4 l! n, [$ A% ~0 V
  -> -2   
  q: k3 n; H& I0 q( g  amysql> select round(1.58);   
! ~5 ~8 o  ]5 t9 |  -> 2    / \' D5 f0 u2 l6 H. t; O  K* R
mysql> select round(1.298, 1);   
! A, {) p$ C: V$ c  -> 1.3    7 b  `% S" W2 ?1 g/ F* y& c; B7 M' `
mysql> select round(1.298, 0);   
) x, n) Y+ {: u) o/ r! P3 v2 E% Z  -> 1    0 g) c% x9 I7 Y. c
. ~; O6 c) B+ G/ j
exp(n)  
- T  _/ n; M8 C返回值e的n次方(自然对数的底)  
+ Q; h! Q) _7 O# I; |  W% x8 Nmysql> select exp(2);    5 r- @' ]4 P4 {: ^
  -> 7.389056    4 M# T9 }+ A1 E3 e% S1 z. I- l& k
mysql> select exp(-2);   
0 D& ]& s% \2 G8 v. B; P8 O  -> 0.135335    ; g$ ^8 Y* b8 t* V7 e

- R& b' t8 t7 H. p( Z) t! Tlog(n)  
( P; m5 f9 ~9 z$ \, S3 X返回n的自然对数  
0 O& t) X- L8 H5 Z' F* c$ Pmysql> select log(2);    # ~3 f* J" e9 c
  -> 0.693147    # |; y" W: @2 P
mysql> select log(-2);    3 a0 p3 C! E2 ]
  -> null   
+ [2 H* V# h& B, f* z
. k! l& Q: d4 \; B& K7 c: ?3 Plog10(n)  6 e; E$ d9 b# {( B$ f0 K
返回n以10为底的对数  
7 T, P+ U3 y) m" F$ Y) fmysql> select log10(2);   
, j) t: Q; k% p2 X9 I7 T: R" p4 z2 m  -> 0.301030   
) M0 W; b* v/ Bmysql> select log10(100);   
; ~3 c* U7 z- o8 j" a& G2 g, _  -> 2.000000      d( b# Y1 s8 z& n1 C' h
mysql> select log10(-100);    1 z1 ~1 H1 ]& `; S. \
  -> null   
6 j  Q( y4 z+ @3 g
  ~( K" [  W& ypow(x,y)    % v& O3 D8 I" P3 G) r3 Z
power(x,y)    * [- P/ P6 u4 V0 `* k# F
 返回值x的y次幂  . x% V5 u7 ^+ j2 L  \
mysql> select pow(2,2);   
3 g8 C  m' ]$ [8 C! U# m9 l5 y  -> 4.000000   
0 }2 t/ N/ c" U( @mysql> select pow(2,-2);    ' v  o# }, X& \  O5 i/ x/ k
  -> 0.250000  
/ z- m' d0 {7 w3 ?! S
, {! v  k+ [. d2 y6 U/ Z( z/ zsqrt(n)  3 W7 s0 \  ^, {: R
 返回非负数n的平方根  ) L1 ^* p" N! C# V+ r
mysql> select sqrt(4);    5 ~; e* d* I* j
  -> 2.000000    ) b( M3 N4 W9 r0 |: [
mysql> select sqrt(20);    ' J8 Z% {- q; {( [3 m) ?  g
  -> 4.472136   
3 ^0 ?2 Q5 H9 `# k, P / d  r7 ]! J8 O$ g2 b) f! O
pi()    ! _5 Q. C5 v. P9 i; J
 返回圆周率   
1 ~. m  B2 K8 O# [mysql> select pi();   
' J: f  y: T9 o/ y. X- h' t1 H  -> 3.141593    - H" P& z% X8 g8 c, K

. d1 ~' _9 J. h/ acos(n)  
. v  F+ Z3 C2 X 返回n的余弦值  
3 Q' \1 s: Q& R! i( B0 F& Rmysql> select cos(pi());  " n* _6 l: P# r6 i/ b
  -> -1.000000    ( I* P  |# S( |5 s  j, b& P

' b6 {) @4 y8 O' o  x9 H: Psin(n)  
$ e6 r: ?) P- j2 ~+ _" l8 @ 返回n的正弦值   : d: i4 o/ ^: U" b+ e* X( A; R. L
mysql> select sin(pi());   
1 b% h9 b8 i/ o0 ?6 q. \+ r  -> 0.000000    ( e" F0 I1 S4 s9 p

) ?9 ^4 ]0 R( s% ltan(n)  
6 X0 n7 o% |6 w; y返回n的正切值  
3 O. Y0 v, O  N+ m* l0 omysql> select tan(pi()+1);    4 z' l  B8 n/ ~" e
  -> 1.557408    ! z+ X: k+ T; \( k0 o. k' d

" @4 H5 a+ J: ?acos(n)  
, \0 M9 T; L5 W' M2 p! \ 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  
+ l" M# ~8 i6 F" N; Imysql> select acos(1);   
8 `9 s6 L# x5 A# W  -> 0.000000   
! @: u$ W+ R) e0 ^4 q; F3 wmysql> select acos(1.0001);   
' {, \; N6 A: [* Y6 C" _" W  -> null    + x) U$ {9 d. B/ B; X  _
mysql> select acos(0);    % T( {+ M, u- C& v; ^  h
  -> 1.570796   
1 a/ }! J5 A- q" N0 |; {
/ Q- B" W4 O' }5 Rasin(n)  # d, V( o; E! H/ r4 R' [# m* S
返回n反正弦值  
/ x* E' ^; z- \$ T8 u6 amysql> select asin(0.2);   
+ u# C# d$ [3 }2 d, ]9 |  -> 0.201358   
% X' K8 Q8 b# |5 b" N6 Amysql> select asin('foo');   
  {3 o. J: T4 R/ f  -> 0.000000   
: ?7 R! R6 ~: D& @ 4 N: f! [% l6 j7 W, W
atan(n)  $ ?) V) F: Q$ d
返回n的反正切值  ( H7 y5 ^9 W) W
mysql> select atan(2);   
  o5 P9 W3 V% B) w, n5 E" P8 q  -> 1.107149    * y5 ~8 ^) @5 x! q& W: D, [
mysql> select atan(-2);    6 L( k' P: g9 K6 K3 q7 G
  -> -1.107149   
9 L2 z- w: S0 E) L1 b% {% |, c0 L5 |atan2(x,y)   
* T# b4 b: T( h7 o# e0 W 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  
. s  m- `# r3 j0 V. p( Lmysql> select atan(-2,2);   
  ]* [0 y: R# O# P- a7 L5 i  -> -0.785398    $ y: f7 G9 g) e: G. |4 g
mysql> select atan(pi(),0);    # b2 c, I* y8 W+ \
  -> 1.570796    ) h! t3 e: M* i9 g# w

8 M) `; D( U8 A9 N  F/ p5 fcot(n)  ; x; ^2 f& e1 d
返回x的余切  
1 j; ?. b( Q& ^  T9 Q- Wmysql> select cot(12);   
1 P/ V% Y) T3 G" L  -> -1.57267341    % G6 i4 I* a" i4 o6 r: C
mysql> select cot(0);    * D6 M9 g: E8 ^4 H; _, u1 f8 @3 a
  -> null    % ], z& l8 s9 ~8 [4 j0 D2 _

: P, n4 P; H* K5 F" s; n1 J' drand()  
# Z4 P9 r( H, L* |+ Yrand(n)    
# r0 o4 ~/ _1 P5 C返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
- K& _9 L  n" a' a% i0 ^
- y7 H: F! B! f7 u9 F# J6 Smysql> select rand();    ' u. M2 Z/ w+ n! c& V- g% x
  -> 0.5925   
8 J" H, p! X) P8 B' l( z, j; Nmysql> select rand(20);    3 k5 E: y& R( ~6 d3 z  y( P# W
  -> 0.1811   
7 E- v  h  G. i* ]( gmysql> select rand(20);    9 ~* z/ R" C9 A- ]7 M0 t7 N( t
  -> 0.1811    * P) U8 R- ]) u' ~
mysql> select rand();   
- C$ H, x, O7 ]  -> 0.2079   
% B% u- N. ]* x& h9 M# G  Vmysql> select rand();    - C6 l- }' l% G) m9 A& g
  -> 0.7888    ( Y& p: Y$ G* N1 l

  `- O/ e. W! B# c4 sdegrees(n)  & }% i+ I+ b' X, @
把n从弧度变换为角度并返回  
$ D- k* d& D6 G% @# e( |1 c* emysql> select degrees(pi());    + E$ `& N3 K8 |, `( a
  -> 180.000000   
2 G8 U# [+ [4 s/ _
: x# V5 d* O5 _' gradians(n)
& _9 J0 O3 r/ E& S6 \6 }9 K) ~把n从角度变换为弧度并返回   
0 j3 [+ @* Z+ R' H' Jmysql> select radians(90);    % ]9 _3 n8 \+ ^# e/ l
  -> 1.570796    ' ^8 D- n# w$ r5 e1 Y
7 U4 P6 ^" O' c/ ?3 S4 V
truncate(n,d)    1 N( S! s: X$ @( s* q
保留数字n的d位小数并返回  
/ j) I& q8 x% f9 i% xmysql> select truncate(1.223,1);   
, I: E5 Y! T. q5 O  -> 1.2   
+ t) Z' e) f! t* C5 m2 Bmysql> select truncate(1.999,1);    6 w: z' L7 }0 T) `+ M
  -> 1.9    6 i8 Q  O# i5 B5 U& Q2 T$ S
mysql> select truncate(1.999,0);   
4 j2 \0 F+ \# A% a; R, A  -> 1      N( H; w3 a6 [" c6 S" `# O
+ |& m. F+ v9 M. b
least(x,y,...)   
  F. W0 G  c6 ~! Q; I+ s7 Y- `- d1 {$ F返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  " c+ }( x8 u5 `* N
mysql> select least(2,0);    3 B7 `8 u- j( R$ Q
  -> 0      f" M$ R" x+ @  L+ U" H: ~" ~
mysql> select least(34.0,3.0,5.0,767.0);    * F  y' m/ l0 f- E
  -> 3.0    5 i# V$ d8 |3 d1 S" a7 K6 p
mysql> select least("b","a","c");    % W8 _* e; `/ d4 X/ K( c/ I
  -> "a"    * j" U; p; k, Y4 ^

3 ]* x2 D" `' N/ l1 M! P/ D! p* ?6 R$ \greatest(x,y,...)    2 o2 x( A8 b! j/ ^" R5 t5 u* r+ q
返回最大值(其余同least())  
6 [  |# M! @$ O" p  |mysql> select greatest(2,0);   
5 p; Y& L1 v* M! P& E  -> 2    ; }0 ~8 {6 K$ L. D/ K4 b% n% X
mysql> select greatest(34.0,3.0,5.0,767.0);   
* D4 U$ H+ k3 \3 C  -> 767.0   
# p- u) t6 J3 ~mysql> select greatest("b","a","c");   
# b* R( K1 l) U  -> "c"     
3 W) `% W5 w% a1 w5 |, C# m9 f5 I/ N$ F% G* K0 m
3、时期时间函数 - C1 W# L+ b! F0 i; [
dayofweek(date)    ! v6 _, f0 b+ {7 t
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  / A+ I; V: X* N$ v% M' O. O3 e
mysql> select dayofweek('1998-02-03');    2 n  \. b- A% M& g
  -> 3   
! ~8 a0 ^( |' C+ [
  r' @6 }/ a7 D7 n5 Hweekday(date)   
+ S5 {% B4 u. C1 _, E) G3 r返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
5 P" C- ^# j. z( v% @  
- h; s3 r6 }7 ?& {! tmysql> select weekday('1997-10-04 22:23:00');    & }) E$ \1 p4 S: Z- |. o- \- m
  -> 5    # I0 J4 c" }. k- K# t. u, C
mysql> select weekday('1997-11-05');    8 u+ F. O& }* I6 S- E0 \
  -> 2   
8 r2 M+ q0 c' \5 K  K% }5 v1 J 3 q4 b! Z9 n4 j4 Y+ l: x/ q
dayofmonth(date)    
( c0 e. R/ i, L, P# Y0 f1 H2 k返回date是一月中的第几日(在1到31范围内)   
* U+ v# G- ^- r. u$ mmysql> select dayofmonth('1998-02-03');    2 v  A- f6 n( C
  -> 3    . w) C3 b7 m4 c: [

, t9 {0 Y6 _2 _# rdayofyear(date)    * F: m6 p( [. X& D& z
返回date是一年中的第几日(在1到366范围内)    0 W. c9 Z# H: z' o) w5 K
mysql> select dayofyear('1998-02-03');   
. z. b& n% ]" \  Q$ b* r& u  -> 34    9 E. N% F" I4 n# m) U% L& Q

. N& `% K9 \+ t6 p8 @month(date)   
; c. `0 D  ?$ |; d$ U( Q/ a/ [# V8 k, f返回date中的月份数值   
. k# i, g. \- b- Bmysql> select month('1998-02-03');    . M0 c) [  w+ i
  -> 2   
3 ]; B' Q9 R+ k7 k! ]
& {, e1 {3 `4 _1 d9 N) z1 \  d( Zdayname(date)    ( }. G. ]. I) V* A
返回date是星期几(按英文名返回)  $ Y( k" A0 j2 d# C" v
mysql> select dayname("1998-02-05");   
! v& m! t, ^% ?% V$ k  -> 'thursday'    % `3 p" W7 ^, G. C. J

1 B! J2 y0 {( p* c+ ^" q: e9 Kmonthname(date)    
5 L6 |8 m* i; X: W: w/ e返回date是几月(按英文名返回)  
  g! u, W; P, _7 n1 l0 hmysql> select monthname("1998-02-05");    : s3 I! S2 `3 h6 M
  -> 'february'    9 w/ T% B" H" e, t3 |
* A# |4 p# H9 v- V  _/ F6 \6 b  _
quarter(date)    9 t; d+ B3 n& D+ B
返回date是一年的第几个季度   
+ P3 {5 y9 ?- y- A: T7 A  smysql> select quarter('98-04-01');    % R5 a& I& D( V. Q& N- r0 L1 n  Z
  -> 2   
4 @/ h6 b& ~5 `6 w! u% ^, s: p
* j: @' A' ^1 D8 G: N/ kweek(date,first)   
6 R4 o! B6 M' T返回date是一年的第几周(first默认值0,first取值1表示周一是- c+ H5 V; O. k
周的开始,0从周日开始)  
7 |4 v# c  X+ `2 c+ Kmysql> select week('1998-02-20');    & ?3 U3 g' x( C
  -> 7   
7 ^0 `4 b" c) O: @4 C6 q: A" kmysql> select week('1998-02-20',0);    " k6 c( a" D4 X0 K( ~& w
  -> 7   
# h" u! W/ A+ ^! f3 Gmysql> select week('1998-02-20',1);    ! o. F/ J. w% Q4 u
  -> 8      z# o5 }" L: Q# a2 P

6 C( z" r/ p- P+ o. \8 gyear(date)    * ]; h4 S9 \) B7 W
返回date的年份(范围在1000到9999)    + N0 q. v1 Y) B1 A. T7 P
mysql> select year('98-02-03');    3 R: q* P: N; k# W
  -> 1998    6 o& z  o7 |9 z3 B, r* C
0 z0 O: G( `. z% j3 O
hour(time)    
- m9 I% \( P( E' e; C% b7 P返回time的小时数(范围是0到23)   / g* H( i/ [2 f5 S3 b
mysql> select hour('10:05:03');   
" l. \3 s4 y) e. P% p  -> 10   
$ p! i* H: t& N0 k+ f# D8 ]- Q. L
7 T$ y6 n- l1 Z4 j7 `minute(time)    ! T' }4 e, D6 L  D1 b6 s2 W
返回time的分钟数(范围是0到59)   
  l0 |* E: @/ b0 xmysql> select minute('98-02-03 10:05:03');   
2 W& Y% g0 b# k) w+ k/ ~  -> 5    ) k: V& `4 k0 k" U* k

- |2 u# |3 d) J- _) V) x: c* ksecond(time)    : s9 [+ K, D3 `( X
返回time的秒数(范围是0到59)   
, b8 T9 l- o; }8 x% d' v3 Bmysql> select second('10:05:03');    0 N# \/ M+ y4 ^: D/ ^3 ~8 V* W
  -> 3   
# \' h+ i; y" |1 H$ r1 z$ G  n - d5 d& y9 `: G% y% b
period_add(p,n)    8 J/ u7 \, O) F
增加n个月到时期p并返回(p的格式yymm或yyyymm)    + M- T& X) V# W! c: D4 ~% e
mysql> select period_add(9801,2);    ; M* d/ F5 M& x
  -> 199803    0 Y2 s5 z  v2 O  t0 D8 X

8 Q( r: b# i* m9 ~0 `period_diff(p1,p2)    4 |2 ?# n; z& [. Z
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  . X+ T+ X- I3 Q& ]. t" B2 N& I
mysql> select period_diff(9802,199703);    2 I; v1 F5 g* N& {2 U/ X
  -> 11   
6 s8 d2 u( ?5 \4 u6 I6 O- y4 A; u 3 l& B+ R! E0 p! ]) x( d, Y
date_add(date,interval expr type)  9 t& s/ [- e, D4 p5 K% K  L8 ~+ U
date_sub(date,interval expr type)    " }5 g) Q9 K$ |7 P% n# g9 ]3 x
adddate(date,interval expr type)   
5 Q: x+ g# p# ]2 }! C% Ysubdate(date,interval expr type)  
7 J2 L5 V7 P& A7 \' i对日期时间进行加减法运算  
8 A' w+ N% i( r' \& E(adddate()和subdate()是date_add()和date_sub()的同义词,也, m- [) p3 @. S$ r6 }  k" Q
可以用运算符+和-而不是函数  / c- I* C5 }- p
date是一个datetime或date值,expr对date进行加减法的一个表
/ ~) C8 s3 }" M4 c达式字符串type指明表达式expr应该如何被解释  
/ E1 s+ @8 y1 x, a9 h* y+ \. R. ] [type值 含义 期望的expr格式]:  5 D' `# ?/ h# ?6 x- I
 second 秒 seconds    7 L+ k/ \" F) c% \  }
 minute 分钟 minutes    8 w" a7 L% ]- G, O$ y' c
 hour 时间 hours   
3 N* g0 H- `0 n# f4 P day 天 days    1 D' n7 W$ S$ C) g. f8 {
 month 月 months   
+ f& b# G$ k' _; g year 年 years    $ {: m$ f( y) E
 minute_second 分钟和秒 "minutes:seconds"    + u) h, f9 Y2 Q0 m, _8 C, c
 hour_minute 小时和分钟 "hours:minutes"    $ V) X! s1 Y! \
 day_hour 天和小时 "days hours"   
& L$ U( _0 e: f3 c1 K1 R2 p year_month 年和月 "years-months"    : f1 P; a6 E1 T* D& v% B5 @7 Y1 J- n
 hour_second 小时, 分钟, "hours:minutes:seconds"    1 f' K* ^' I) j
 day_minute 天, 小时, 分钟 "days hours:minutes"   
0 I+ U. @% Y5 X day_second 天, 小时, 分钟, 秒 "days8 J9 b! K1 F. ^9 H9 l- d% a6 J
hours:minutes:seconds" ; g( l. [3 y' R5 o- W  Q* N
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个! i/ L. b# ?# C( H# b, `7 C
date值,否则结果是一个datetime值)  7 A3 T* j) e  ^# ?# I
 如果type关键词不完整,则mysql从右端取值,day_second因为缺/ w+ `/ ?' d7 k3 S( M8 k
少小时分钟等于minute_second)  
$ T8 z' v- W6 [ 如果增加month、year_month或year,天数大于结果月份的最大天7 N: Z* ~% x; V5 [% C
数则使用最大天数)    % a! h! _$ F# r5 N, ^) h
mysql> select "1997-12-31 23:59:59" + interval 1 second;  
# p$ c. t2 k) {, e 6 R1 S* p, j& u! t5 e; Y. G
  -> 1998-01-01 00:00:00   
3 `1 f. ^" c( U$ U3 M5 ]# Wmysql> select interval 1 day + "1997-12-31";    ; s4 C1 L" g% s4 K* ]& ]" r7 @
  -> 1998-01-01   
) j5 l5 {, P: b- ]mysql> select "1998-01-01" - interval 1 second;    0 w5 J) x) i& K
  -> 1997-12-31 23:59:59   
: d' K* \- ~& d/ d: w, w7 J6 x0 hmysql> select date_add("1997-12-31 23:59:59",interval 1
# Z0 V( e9 n; L. [0 Tsecond);   
4 d8 _6 b# ]' v7 v! S) Y& Z- y  -> 1998-01-01 00:00:00    8 V3 Q& P& n$ J' {$ t/ n3 R5 D9 \
mysql> select date_add("1997-12-31 23:59:59",interval 1" j& d. f: v; {: X* }( }, Z0 E3 h' @
day);   
" K- S7 U6 K0 y  -> 1998-01-01 23:59:59    6 h% t# ^/ w( @# |% F
mysql> select date_add("1997-12-31 23:59:59",interval
6 T; Z# p* h) }! C0 n"1:1" minute_second);    ' n$ \) _) z7 R
  -> 1998-01-01 00:01:00   
( X+ ~: B! K' O1 Umysql> select date_sub("1998-01-01 00:00:00",interval "12 D& Z( a2 L! _* U* P2 w% t
1:1:1" day_second);    * \, n: i3 g$ O- J" i- o% R3 H: |  n
  -> 1997-12-30 22:58:59    ! j9 ]9 E$ ~9 T. p0 H1 R
mysql> select date_add("1998-01-01 00:00:00", interval "-16 h& C/ l3 W& n. y3 F8 }
10" day_hour);  : l$ A0 k3 J, G9 g2 @/ Z$ |
  -> 1997-12-30 14:00:00   
' W: l6 z1 ?* lmysql> select date_sub("1998-01-02", interval 31 day);      w% H3 b9 e- o+ ?8 W  I
  -> 1997-12-02    ; [& }* M5 Q  L+ w! o, U
mysql> select extract(year from "1999-07-02");   
1 V' h2 F' N  Z% ]0 `  -> 1999    3 x8 w  f* E  I
mysql> select extract(year_month from "1999-07-02
1 A5 I! g9 L9 Z9 x01:02:03");    9 F) M4 p* E# ?& i* Y
  -> 199907   
; o% c3 F0 {8 \( \mysql> select extract(day_minute from "1999-07-02
! T! q7 U% P/ v- a1 f5 C* v01:02:03");   
3 g2 B- ^: e+ C" \8 Z& I  -> 20102    - Y2 p$ Z2 I2 X9 l' {

0 p# q- Q' D" Gto_days(date)   
$ h$ D  w3 b- w返回日期date是西元0年至今多少天(不计算1582年以前)  
. J2 d$ n, c5 c+ q6 a4 o- Ymysql> select to_days(950501);   
$ c) X7 `: \0 \1 d8 T) Y  -> 728779   
3 j4 s" E; S! D9 G% ]) d" V1 omysql> select to_days('1997-10-07');   
9 c% w/ Q0 l, l9 K! ?0 x  -> 729669    $ L7 P  d# i! `5 H6 j0 Z

# u5 O7 L8 @( m+ \from_days(n)   
% g" ?9 I( ^' y" Q/ a 给出西元0年至今多少天返回date值(不计算1582年以前)   9 z  d% c$ A6 T! `4 s) ]& t
mysql> select from_days(729669);    % T2 j! z% X+ Y" f4 I5 I5 Z' I' @) X
  -> '1997-10-07'   
; s! ~# _/ g- u; Y. w 7 n" I5 a/ a2 q
date_format(date,format)    $ [( B8 `1 O! b' w8 [, e/ D
 根据format字符串格式化date值  
7 V7 l' ~( Q& k0 `7 E (在format字符串中可用标志符:  
7 U0 G: F- V4 A7 t% u" i' E* M %m 月名字(january……december)    & D1 {: u/ u( W8 l  L! ~
 %w 星期名字(sunday……saturday)    % O3 @0 C- M6 p' k
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    ' j" ]0 N8 I) ^
 %y 年, 数字, 4 位    & ?: B& _9 J# l9 C' I, L
 %y 年, 数字, 2 位    . E( c$ m. f1 ?" }' l  l
 %a 缩写的星期名字(sun……sat)    " F- n- d2 J& c3 y( z& U
 %d 月份中的天数, 数字(00……31)    - C( x% y4 Q' Y
 %e 月份中的天数, 数字(0……31)   
+ {9 v+ w1 c( R$ H: m" i  R %m 月, 数字(01……12)   
# f- [8 N9 u2 g/ a8 I8 i %c 月, 数字(1……12)   
2 C3 Z3 G3 v( O2 f% v %b 缩写的月份名字(jan……dec)    7 S0 g) H" m6 l" F
 %j 一年中的天数(001……366)   
' H8 v! Y. p0 L" u4 ?; M %h 小时(00……23)   
! O& d! n+ \% p. d5 Z$ ~* L! K %k 小时(0……23)    1 X7 N/ b- P4 ?( |2 c1 F) i
 %h 小时(01……12)    % }3 ~& i- o  Y) }$ |$ q2 }
 %i 小时(01……12)   
7 e1 ^. U! d/ H6 ^  u8 c %l 小时(1……12)   
" h4 W; u& e. m* u- K! n %i 分钟, 数字(00……59)   
  P: }4 Y$ c) \" H6 C %r 时间,12 小时(hh:mm:ss [ap]m)    7 f) t; K1 _! E+ N
 %t 时间,24 小时(hh:mm:ss)   
4 c5 a. B4 B1 {+ }: l %s 秒(00……59)    ! |$ ?; l5 s' e/ O! m% n' h
 %s 秒(00……59)    . n& {4 C# f! G
 %p am或pm   
; H+ L0 [, V/ R5 r* w; B %w 一个星期中的天数(0=sunday ……6=saturday )   
8 m* r1 i6 O/ C; _' T %u 星期(0……52), 这里星期天是星期的第一天   
2 E: y9 m- a- z: s %u 星期(0……52), 这里星期一是星期的第一天   
$ Z; B# F! Q" m; F% v %% 字符% )  0 r$ `' o5 e$ j" K# ]
mysql> select date_format('1997-10-04 22:23:00','%w %m %% s; D* E; k/ K/ p
y');      t& O, @3 o. w9 e2 S6 u
  -> 'saturday october 1997'   
$ i6 V: H) C) F  Gmysql> select date_format('1997-10-04 22:23:00','%h:%i:%+ y2 s% [5 q) b6 X+ r8 o, [
s');    # O( W$ ]1 [$ O' p+ @% `
  -> '22:23:00'   
; a7 [+ W' f- b5 f' P7 ~2 ~mysql> select date_format('1997-10-04 22:23:00','%d %y %a
0 C, T' d: \% m: ]8 V- s; a%d %m %b %j');   
- X% k+ L0 f, m% ^  -> '4th 97 sat 04 10 oct 277'    + P) R- }3 v! W/ o+ r8 w
mysql> select date_format('1997-10-04 22:23:00','%h %k %i7 }) q  r1 J, ~$ O  y% M
%r %t %s %w');   
8 k8 K( x% a  b# r9 {1 a0 _  -> '22 22 10 10:23:00 pm 22:23:00 00 6'   
) P% ^& }% l0 c; N1 E6 l7 }2 m
+ Z+ S7 Y, f$ W0 d5 X5 atime_format(time,format)  
8 l9 e. \# c+ Z" Q 和date_format()类似,但time_format只处理小时、分钟和秒(其
/ E: u2 K% S9 q; J余符号产生一个null值或0)  
1 v3 @# M8 W, d  B & K+ ^; \& a# T8 F+ c) D2 P- E
curdate()     0 @2 a  p6 h8 y* t
current_date()  3 n1 |5 z# N5 |3 L2 e
 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
) G* U6 R' Y; K) ]2 P  l处上下文是字符串或数字)   
$ i- X+ l4 \2 O- c) F  Bmysql> select curdate();    : |& ?( y& G) B* g" p
  -> '1997-12-15'   
8 A4 ?6 b1 O' ~2 `8 Vmysql> select curdate() + 0;   
* |4 M( C# ~+ s/ {; d6 ~* H3 p  -> 19971215    ) b6 }- N0 r8 n  i

  |' d' M, Y; P' t/ N2 Jcurtime()   
# ]5 K; o7 i- |; {* ^current_time()  2 |; C* Z8 r. U; ^0 I2 _8 V
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
6 Z1 D% [  ?" |下文是字符串或数字)      ; R; c. {5 F1 y6 p* x$ V& h
mysql> select curtime();   
* s4 i( L/ O* x. b) k- f5 W  -> '23:50:26'    . x( M8 P# |' ]4 j: H/ B4 e/ [
mysql> select curtime() + 0;    * B7 }% s+ F5 u5 Z( D
  -> 235026   
$ W  j6 R$ d5 R  { , r0 y+ K. o6 Z+ M$ U8 Q
now()    4 Q0 a; D5 T, {7 n1 V9 n
sysdate()    ' m# A1 |4 b& m, n4 e2 P3 r, D
current_timestamp()  ) O+ H, Z6 e: Z$ l) j% X$ ]% G2 Z- U
 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
% o3 s7 \+ ?' f2 R0 B9 ?1 S时间(根据返回值所处上下文是字符串或数字)     * Z) h. F( d0 F" |" i7 x% r. I
mysql> select now();    2 P5 [( ], J' [% v6 U% d
  -> '1997-12-15 23:50:26'    1 ^9 t. l  E6 S) ^, b# A
mysql> select now() + 0;    / ?6 g" b8 \+ U
  -> 19971215235026    ' D7 z% b- B) l) N& M
9 a0 d- A; {" o% ]
unix_timestamp()   
/ v4 ^/ Y; ?, {6 ]: s/ gunix_timestamp(date)    2 ?; l* A+ z8 k% _5 _9 G
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
, }# r# S1 c) c. h数,date默认值为当前时间)  
, L  k- W" `+ Z8 a; Gmysql> select unix_timestamp();      C. [8 a: D, \7 i) l
  -> 882226357    $ q* p. ?& ], Q! ?, y
mysql> select unix_timestamp('1997-10-04 22:23:00');   
* H7 t& d6 }& f  -> 875996580   
  r, V+ |5 z. g8 r, q) q7 v
* r$ _3 O" n$ z# A! h9 Lfrom_unixtime(unix_timestamp)    5 O2 l/ i6 z3 S
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的( e" m# R5 {) h! k; O% H  F
值(根据返回值所处上下文是字符串或数字)     
) `- q$ D# E) \, @! {' Wmysql> select from_unixtime(875996580);   
6 |' N; B- p8 s- ~; N* ]+ K/ J  -> '1997-10-04 22:23:00'   
# O8 m0 O  a0 F- n: omysql> select from_unixtime(875996580) + 0;    ( E. g* d. F, {( p* ^4 f) a& f
  -> 19971004222300    / T: ]0 b5 [  p! J7 B$ _, h, g7 Q
" _5 k3 y, V. U) `; K
from_unixtime(unix_timestamp,format)    
* s* A  Z# x. e/ t以format字符串格式返回时间戳的值  
5 B+ ~9 x' K5 ?3 s6 j1 d) Cmysql> select from_unixtime(unix_timestamp(),'%y %d %m %# L5 s" L, J' g/ {
h:%i:%s %x');   
* I' {# h- o" G7 D, Z# Q  -> '1997 23rd december 03:43:30 x'   
. J) k; V! z, d2 I
9 U/ z0 l& i3 ]! \( csec_to_time(seconds)   
0 o! V: A. h3 e以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     - y  U; q- C2 g- ?) s
mysql> select sec_to_time(2378);   
# R* b; a2 K6 [/ Q( [( `& p! X  -> '00:39:38'   
4 t& l7 ~% ?6 q' F2 t2 h* vmysql> select sec_to_time(2378) + 0;    ! a$ i, N- n# I9 p  Y  I& n% i
  -> 3938   
1 t" e( r+ `. k! K. p
8 z# r% |3 E, u; d, C: w! [; ctime_to_sec(time)    2 j, u9 D: X$ u; @
返回time值有多少秒    9 E' |( `/ x7 Q5 F, z+ q  m
mysql> select time_to_sec('22:23:00');    ) [( X" {7 G6 o0 [" u
  -> 80580   
/ Z2 r% f$ _3 d$ Z0 fmysql> select time_to_sec('00:39:38');    ! g7 B# H! v7 N: B
  -> 2378 4 z' ?' D8 `9 x
& ^7 \7 A7 G7 G. Z; f# z; @2 ]
转换函数7 N4 F! v0 K5 A' z
cast
4 @1 H5 p' t8 N* L. B* R6 n" r用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]6 j  x% H$ B9 F" G& @9 G7 t* G+ G
实例:select cast(a as unsigned) as b from cardserver where order by b desc;
6 K* _0 @4 J6 d6 i, d% Kconvert:# A/ D& F, a$ L
用法:convert(字段,数据类型)
' A& D/ l$ N% ?0 [实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

# L/ j2 U% n8 }, k
回复

使用道具 举报

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

本版积分规则

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