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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数
- r7 z7 m" t2 Y3 jascii(str)   ' y1 @. l. w( \
返回字符串str的第一个字符的ascii值(str是空串时返回0)  
! l% o. {: u7 f0 Z3 |1 [mysql> select ascii('2');  
5 B" ?0 j( x# W3 j& i( H  -> 50  
# E/ g# t9 x# pmysql> select ascii(2);  
) }3 V: a  M6 Q* Q/ D# p2 k  -> 50  3 k' `/ m; d& N, r. Q5 e* D
mysql> select ascii('dete');  
' t& i7 t$ X& g, g  -> 100

3 g! w0 p/ g# i8 s5 R+ hord(str)   
6 B5 ~  [( [; O" X, a如果字符串str句首是单字节返回与ascii()函数返回的相同值。. u5 h0 }& [: t7 u
! A+ K" `7 u6 m" n7 J1 N& y
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  
2 W( |7 f: P$ N3 Pmysql> select ord('2');  / H# y+ ^9 _* B! z% Z: s" \3 ^
  -> 50  3 R* C3 A! E  a) @
   " h- O; |) D9 u- ^, s7 ]$ O
conv(n,from_base,to_base)   
% i3 u6 t  I% W对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
, @- F2 i6 b% f; N6 R( dmysql> select conv("a",16,2);  
7 r/ }  j7 A) H9 G; m  S  -> '1010'
( I, Z# s  P6 u( ~mysql> select conv("6e",18,8);  6 n) x& L5 \1 h0 o: q
  -> '172'
5 ^8 I) ~% e2 R% K: pmysql> select conv(-17,10,-18);  + L9 u2 Y( x, x8 i2 M. Y, m: v
  -> '-h'
( f2 O/ `" s1 A* r- q; S4 Xmysql> select conv(10+"10"+'10'+0xa,10,10);  
) O9 v) S! z1 z0 \# x- K* B  -> '40'
" }5 M& \% ~7 N7 \) W. K1 m   
9 _: |/ @! E3 N7 _bin(n)   ; u3 G) C- o6 ^9 e
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  - X" x& b( T$ u+ M- t
mysql> select bin(12);  0 F0 {2 d! q1 }* b( b0 T/ C; T
  -> '1100'
( e  i4 l" ^0 h- O
6 o+ S* z( \' O: N, a: Y5 G% B4 {oct(n)   * E& I3 j: [& @8 M& q, r. S& c% I
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
2 F* R6 ?0 n. jmysql> select oct(12);  
6 S3 e' o% {: n6 S' n+ q6 h3 A. ?  -> '14'
' y" N7 Z4 U' p+ Z9 a3 T" j- e; m   3 A, c) K. B* B# N: C, I' E9 T" C
hex(n)   
" l4 k/ V" A) x) u把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  + h: u( k. F/ E$ M  k
mysql> select hex(255);  
( Q3 p8 N* E! c: Y  -> 'ff' 5 j+ ]- A3 ~) R& K" i/ k5 _  l
     `3 w# S  l9 l, o0 G% a, G9 B
char(n,...)   
: v! a7 b6 j/ M返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   
; {8 D8 x; W8 ?1 Y4 `  L+ e0 V! V  Pmysql> select char(77,121,83,81,'76');  
. V+ Q: a* w, |  -> 'mysql'
( m. N9 i5 v( Y2 z8 Smysql> select char(77,77.3,'77.3');  
" k" G1 d6 T1 a  -> 'mmm'
2 v8 z* e- W% N0 Z: k; w   
' j: `, [. o+ l' A8 F4 fconcat(str1,str2,...)   9 Z8 i8 p1 D( m* w( X( D
把参数连成一个长字符串并返回(任何参数是null时返回null)  
1 I1 h0 w- V9 p- amysql> select concat('my', 's', 'ql');  # D4 `+ E5 h/ n) ]% w! Z$ q
  -> 'mysql'
9 ~; |; m: |* x1 p! M" G4 e& Bmysql> select concat('my', null, 'ql');  . s$ U( v; k; }7 l' Q' K: ^
  -> null 3 ?, q# V* S# ~6 _  {6 B% X
mysql> select concat(14.3);  + U4 G8 D* V' E4 v) c
  -> '14.3' - a( z& V, J$ N

0 f2 U4 ^4 k  e6 {- olength(str)   1 D0 N6 g; A( `: W
octet_length(str)  5 A& W; R4 d# `3 R+ w) W
char_length(str)  
- a6 l" n1 J& o# v) `. K' dcharacter_length(str)  ) o" Y: i! z7 n. ^
返回字符串str的长度(对于多字节字符char_length仅计算一次)
$ S; V+ M7 S; @2 E  z# R7 ^9 }9 [" Gmysql> select length('text');  
$ T. R9 R7 t. y5 K  -> 4  
3 ~4 y5 y* e. wmysql> select octet_length('text');  
4 ]8 l5 Z( B% _& c8 X+ X3 X- z  -> 4  4 I9 N( V! @0 ?& ~! q' K
$ w% B. `$ E3 r; l; Z  v
locate(substr,str)   & r# k1 W7 y- v" W2 s3 ?: m
position(substr in str)   
- Y( d9 ~: I2 I* n( @& K  s$ l返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
% @+ ^# u% ?( V. S9 D$ s" |5 smysql> select locate('bar', 'foobarbar');    @( v5 U# R  a/ h' ]8 s- c
  -> 4  6 O5 v- g+ a! L8 N, k# r
mysql> select locate('xbar', 'foobar');  & l; \: E$ S/ x. y' Y
  -> 0  . P! }% D1 x7 k, V( P$ l$ a
   
  s- B- L/ C) @9 L. p& i. Xlocate(substr,str,pos)
# d+ U$ |  r$ T* H, i0 k) S返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
9 Z8 e6 l) }1 W0 \# w" A" @+ @% U; jmysql> select locate('bar', 'foobarbar',5);  
* }; @& @/ }  h2 f6 Q. ~! J) T* n  -> 7  6 e0 V. [0 Q% h% Y5 l

' G: x. N. U+ ?2 _1 f9 T7 |instr(str,substr)   $ C5 J7 C0 z! g8 @$ _2 F0 l
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  - O2 C5 ?# y- E/ R; q* s0 I2 l
mysql> select instr('foobarbar', 'bar');  
. Y: v. D! P4 T( Q( A7 i  -> 4  9 D7 N* V9 |2 f) E% X. q
mysql> select instr('xbar', 'foobar');  $ Z+ d3 K# m$ F9 X
  -> 0   / c" }2 d$ c" X" T* M* x; B" w
, z0 a' z% Q# s! V. M' D
lpad(str,len,padstr)     r  `" S0 |5 u  Y$ |
用字符串padstr填补str左端直到字串长度为len并返回  
% c1 z) o/ H1 \6 e9 S" f- R) B: Rmysql> select lpad('hi',4,'??');  & ]2 [. K4 f% d: r1 J
  -> '??hi'
9 `' w' h9 r4 ]   / Z8 t) d' t1 `6 k' V% \3 b, c' W6 o
rpad(str,len,padstr)   
5 m) N3 E% y  B" \" j- q用字符串padstr填补str右端直到字串长度为len并返回  6 @; N& a0 l' f# @2 m! V8 S1 L
mysql> select rpad('hi',5,'?');  * h/ v3 I6 f5 N+ g! A4 X" H/ i
  -> 'hi???' 1 ~7 S! c2 M; }+ }4 T
3 l) D0 Y" Y2 r5 E
left(str,len)   ! B9 u: S4 R" k: U3 J* M5 ~) x6 S
返回字符串str的左端len个字符  8 ?9 Y' f2 G0 F( C
mysql> select left('foobarbar', 5);  * L" E' v! W# i2 i) I
  -> 'fooba'   y7 S) H; z2 v) J: g, l: A( D9 E

& f5 V, m7 C" @9 ?/ S: L4 j7 `* Wright(str,len)   
. e5 A8 l' p! r返回字符串str的右端len个字符   # |% c# C( M1 r5 M$ q1 C
mysql> select right('foobarbar', 4);  
; O+ h0 v) i/ @: a  -> 'rbar'
0 v, p4 H, i$ \7 C3 o, S ; F- d( E: k$ M# p9 e
substring(str,pos,len)   
& |! G2 c, D- ?5 m2 n! l1 H1 M6 Gsubstring(str from pos for len)   
3 A( G! M/ u3 s9 h- fmid(str,pos,len)   5 M# k" [# @* o2 N8 W1 L0 i$ j
返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
1 [5 V3 s! Z% \0 Z1 o  -> 'ratica'
+ R8 b( @4 T* Z  J# N : j* ]/ d7 T% q3 o: C/ |5 K; U
substring(str,pos)   
6 f9 F" \" k0 ksubstring(str from pos)   $ H6 C* r! q; V
返回字符串str的位置pos起的一个子串  ( c& ?( ?! k' D: W7 d% M+ m8 m
mysql> select substring('quadratically',5);  * V' v& Z2 J" R. T" _
  -> 'ratically'
" b! q% Z7 p' t+ W" g  fmysql> select substring('foobarbar' from 4);  
9 U) u! C6 u7 o9 V7 ?+ C  -> 'barbar'
+ L$ ~3 L  ]" E2 R- J, Y
- d/ o# f# R* f- C4 I" P% xsubstring_index(str,delim,count)   / n* ^( Z& _& Z' a
返回从字符串str的第count个出现的分隔符delim之后的子串# K: c$ q9 C4 j- G! H
(count为正数时返回左端,否则返回右端子串)  
" Y' T, `9 ]6 a. i" |, {+ ?3 p6 Vmysql> select substring_index('www.mysql.com', '.', 2);  
# Y% ^$ }& I& _  -> 'www.mysql'
: k" |% N$ O- s. R* Y  |1 Imysql> select substring_index('www.mysql.com', '.', -2);  # C; u7 y# v( `) x
  -> 'mysql.com' . S0 S; ]/ n1 |$ {
" }( ~" d; ^$ |1 L$ M
ltrim(str)   
1 M) [5 \" F; }返回删除了左空格的字符串str  
2 p, s) p$ j( G5 a. A+ e8 Xmysql> select ltrim('  barbar');  ; X$ i( L/ Z, s9 y; J
  -> 'barbar'
( j/ w  g2 b' `2 G0 \3 H
+ j8 [# Q6 Z. ?1 J: vrtrim(str)   8 I; ?% V+ m, q- K
返回删除了右空格的字符串str  
9 N5 e1 P5 T  [( B" H" Mmysql> select rtrim('barbar   ');  , ~2 Z9 U) U/ r+ F$ l2 g
  -> 'barbar' 3 w, f& k, T8 d  H- h( D. l
5 J( T3 q: c* b9 g* d6 V
trim([[both | leading | trailing] [remstr] from] str)  
0 Y7 P. K" O/ c* N) B返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
3 p. C% m: E+ }mysql> select trim('  bar   ');  
  i) l/ [! M+ W' _  d( `  -> 'bar' 1 }( ^: [6 j: B8 Y% S4 J
mysql> select trim(leading 'x' from 'xxxbarxxx');  
  o: ~5 X9 p2 t' i5 N  -> 'barxxx'
% X4 `$ \; G/ tmysql> select trim(both 'x' from 'xxxbarxxx');  
" V* I9 C  T0 {$ P" S  -> 'bar'
8 m$ ~9 u% d/ T  w6 W, Lmysql> select trim(trailing 'xyz' from 'barxxyz');  9 |+ _% \2 k! g+ C4 A# I7 @
  -> 'barx'
* g9 F2 `3 K) G) F: q- m9 s
% k* w# j3 e% G0 ^1 H! B! asoundex(str)   
* _. P% z/ l# E5 e返回str的一个同音字符串(听起来“大致相同”字符串有相同的' t; i% i3 d0 ~; T1 k9 M/ K  T
同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  
8 x& A# C; t1 K8 F; U2 k% A' f- fmysql> select soundex('hello');  ; y0 K. [4 z$ x6 O8 \1 K  R, {
  -> 'h400'   Z: f: |5 L3 Z6 k4 \$ ]& i& u
mysql> select soundex('quadratically');  
6 p7 W% {4 z- |$ w- j9 |  -> 'q36324'   v5 v+ N( X8 V$ F- r
   
3 u- N7 X1 e8 G6 M; ~space(n)   
- G8 n( `2 H, E/ b: V+ m返回由n个空格字符组成的一个字符串    ]/ d; g4 e/ a0 l
mysql> select space(6);  ; p6 d, V  G  J, d
  -> '      '
3 |: I* k2 Y: R; N( m   
( e) n9 J3 T2 S6 P! a' _replace(str,from_str,to_str)   
# V0 x! e+ V4 f( r) X7 N用字符串to_str替换字符串str中的子串from_str并返回  / E1 w- D0 _* T
mysql> select replace('www.mysql.com', 'w', 'ww');  : E% W% R2 W8 n8 B- K
  -> 'wwwwww.mysql.com' 4 h/ S6 D6 [- A+ s! n% B
+ v5 l1 V3 s9 o' V
repeat(str,count)   # p8 M+ G: n5 w4 p  J) y9 T# k
返回由count个字符串str连成的一个字符串(任何参数为null时! l6 f" ], |% v. |# B+ J
返回null,count<=0时返回一个空字符串)  1 N4 e1 h: Y5 x; t! t( L$ i0 N
mysql> select repeat('mysql', 3);  
, `6 \5 f  v7 {7 ^4 }: Y) `  -> 'mysqlmysqlmysql'
1 \; C4 `, A: s7 J   
+ P3 X1 V7 W7 F8 i( t6 Hreverse(str)   4 H/ X1 A, C; \7 a6 z3 k& X% d
颠倒字符串str的字符顺序并返回  
( W$ l9 h6 X7 L0 K& z3 w: kmysql> select reverse('abc');  
$ A( b: o$ P) Q4 _  -> 'cba'
$ ^  ?% v: j% }8 ~/ A$ U2 X' w* s5 ^ 5 {( y- z( T, h% b# k
insert(str,pos,len,newstr)   
/ g' }5 U) A, @3 ^1 P; B$ P7 u# x" [/ `把字符串str由位置pos起len个字符长的子串替换为字符串# \4 E" o" k7 g3 S9 ?
newstr并返回  
& o; C: O6 u3 `5 Y9 R' E9 ]) D& ]; z5 Mmysql> select insert('quadratic', 3, 4, 'what');  8 m# N' `3 o9 Y; K; U
  -> 'quwhattic'
, ~& M% Y8 [' q ' d) R- S4 d) k6 K) f8 p
elt(n,str1,str2,str3,...)   
1 {1 P+ {. e% c% j返回第n个字符串(n小于1或大于参数个数返回null)  2 Y' W. R" E* K8 [) S9 V2 N
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  
5 q8 y% ~6 w& x$ O& b0 m/ Z  -> 'ej' ) c6 x3 Z/ \  m) y' S
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  9 e2 ~) E9 d# `6 s7 D3 n0 M
  -> 'foo'
/ ]4 ~; O9 e1 l) t% e
; i5 `! c( c  ^2 c4 Qfield(str,str1,str2,str3,...)  
# a8 e8 L% j# k4 ~) y2 R返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
! R' L# {, t1 i3 H  lmysql> select field('ej', 'hej', 'ej', 'heja', 'hej',; ^# l: i1 Z* U. n
'foo');  
4 X0 c' \2 g" l1 D2 Q, L, n, D; h. V9 m  -> 2  , W- v! a* c4 V. U3 i& U, a' Q# p9 _: M
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
- A+ W- j; I8 ]" H. k7 s6 F+ ]7 f( h'foo');  
' R' g. G9 B8 P4 z  -> 0  3 q5 O$ s2 N( x5 h+ W

' w, S! r; K7 t9 G' O& |& y# qfind_in_set(str,strlist)   " \$ \# y. b0 j/ u
返回str在字符串集strlist中的序号(任何参数是null则返回/ X4 `  F6 E# F, u" `7 q/ M
null,如果str没找到返回0,参数1包含","时工作异常)  - q3 U, {, p2 J  l% ?
mysql> select find_in_set('b','a,b,c,d');  
/ _. E4 f9 `  p( p, Z$ k  -> 2  
6 n; \3 r5 e8 w  b/ U   5 ]8 }: P$ C6 }1 [
make_set(bits,str1,str2,...)  
! i1 H8 T& \8 R! S& ]" [把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
/ s, e: [2 x" w位置的字串选入字串集并返回(null串不添加到结果中)  
8 N2 u. ~  L, |: t5 c5 Rmysql> select make_set(1,'a','b','c');  
) s4 D, R# e) ?0 T/ D, x) T  -> 'a'
. k2 g( i2 u$ t. ^! z: x* E+ `mysql> select make_set(1 | 4,'hello','nice','world');  
7 k5 d# o. t! u& [0 @. c$ E  -> 'hello,world'
: u0 D$ o% ]/ h4 Jmysql> select make_set(0,'a','b','c');  
; ~1 _. T  p' }) t0 e  -> '' ; |4 D+ _, M* R2 L0 U4 d5 E( p
, d! H, ]; [4 {: d
export_set(bits,on,off,[separator,[number_of_bits]])   % C- l2 U) O  X
按bits排列字符串集,只有当位等于1时插入字串on,否则插入% J7 Y6 H1 |: d; e
off(separator默认值",",number_of_bits参数使用时长度不足补0" l6 ?. {2 ^8 Z- d6 F
而过长截断)   4 f5 i. p7 Z7 k
mysql> select export_set(5,'y','n',',',4)  + D8 O6 T) R+ T1 x
  -> y,n,y,n     R6 j8 C! c9 X1 T9 H

$ X# v( r+ v9 u3 Rlcase(str)  
1 f2 @& J: A4 V/ Ilower(str)   1 p5 [) i2 Q5 I# \. o' }
返回小写的字符串str  & U3 B0 R) C3 Y; T
mysql> select lcase('quadratically');  
. L( r* h+ Q: U5 D& C  -> 'quadratically'
5 Z' ?* y! i; P6 [7 V+ n+ ^0 Q% a   * J* w. O% a2 n, Y9 E, A+ |
ucase(str)   ) X3 s7 M5 L6 A8 K
upper(str)   ! F  S9 U* s" J3 i' o' M9 _9 A
返回大写的字符串str  
1 H4 Z0 A( ~. `0 b& Hmysql> select ucase('quadratically');  
4 Z& {6 ]$ u# D  -> 'quadratically' 9 p3 l8 k9 @' w  F% Y: J

# j) ^) a* }# ~; l  lload_file(file_name)   ! c: O2 \7 T) H% U' S4 u9 v  R
读入文件并且作为一个字符串返回文件内容(文件无法找到,路径6 m5 X: A' Y2 Q3 `- H( f  H
不完整,没有权限,长度大于max_allowed_packet会返回null)  
4 c* \6 j1 l- I* d1 _) [4 imysql> update table_name set blob_column=load_file
, N5 f0 g8 l3 ]  f("/tmp/picture") where id=1;  5 p. F. I8 J# X8 r6 b% W
8 q. j/ r" B4 E$ {2 C
2、数学函数
! K1 x, S( v1 s  I$ i0 Vabs(n) 2 i0 [! S" `* U0 N. J$ k. ~# ?
返回n的绝对值  : a8 M5 M! B3 `5 Q. Q- k
mysql> select abs(2);    - O- f9 q: o2 i, Z0 t  m
  -> 2   
9 r" V. h# b! y6 C3 N4 M: @2 [. pmysql> select abs(-32);    " I# ^4 o3 v8 o; X/ D: P
  -> 32    & F# b# x7 s; O; P; |
   7 W% r' b7 _! y
sign(n)  
2 B. M% \* U6 h$ ]& n返回参数的符号(为-1、0或1)  ! {8 T2 C) ~3 o+ ~6 p+ W
mysql> select sign(-32);   
' D1 {( p6 [1 V" v3 @; P6 L4 \3 i  -> -1   
( Z" Q* G  h- \, O5 D4 hmysql> select sign(0);    + C' `; T7 j- S  F  y1 L8 L) j2 T
  -> 0   
* e$ D8 `+ _0 G, s) U1 \mysql> select sign(234);    ( f' ~9 ]( H  [/ d: p" u* F2 G
  -> 1    1 y. Y0 }4 A6 {3 x9 K2 C# Q4 q
" v, ~1 i# U1 A  n# |
mod(n,m)   
4 }) G% v7 `  f! l! j取模运算,返回n被m除的余数(同%操作符)    6 ^5 r9 _. v: L4 ~" P* o
mysql> select mod(234, 10);    , H9 t5 p$ T( {+ V
  -> 4   
2 Y6 T$ E' ]5 lmysql> select 234 % 10;    7 T" [% n% ~- v# @& `" Q$ ?- F5 L
  -> 4   
- {: w/ s3 |! g0 vmysql> select mod(29,9);    & }+ s0 I3 S& m0 r7 j, N
  -> 2    " b! j8 T0 y' B! N8 v' j: Z) I! M
! K% z' C) J4 ^. ~! n. |
floor(n)  
4 I6 x( S* _/ G! }返回不大于n的最大整数值  # a/ z6 L1 @. {% ?
mysql> select floor(1.23);   
$ J7 J( B9 K; `; {) R! P2 a5 _  -> 1   
7 U# p& n+ d' ?  bmysql> select floor(-1.23);   
/ n* N% [* W! o/ A4 O9 X  F. I2 p  -> -2    ) e% O( I/ U3 x% S6 m0 B/ e) r
+ R& d4 [8 u8 E( r' t
ceiling(n)  6 m4 @( a$ ?3 Y
返回不小于n的最小整数值  
1 ^% ]1 U# J' x! J  \mysql> select ceiling(1.23);   
  w2 H! z; x. h4 W" [  -> 2   
! X# b* `" c% n9 w2 H( x5 |mysql> select ceiling(-1.23);    8 {/ S& s1 u* u3 @
  -> -1    , l% H2 y, O( v! ^

) s+ w. a3 `2 n' L- N3 S; P  qround(n,d)    A. p9 j" \, n/ z4 l% _2 J
返回n的四舍五入值,保留d位小数(d的默认值为0)  ; y4 x6 t; h* z' h  e; z
mysql> select round(-1.23);    , `$ Z& m/ A% `3 i
  -> -1    5 A8 {9 K* X6 @6 U: f$ a
mysql> select round(-1.58);   
6 q- g4 z" a$ i1 [7 ]  -> -2    , o) e5 c/ p( z
mysql> select round(1.58);   
; a, Z9 R! a  L* |  -> 2   
0 D$ w* K, ?5 Y2 R& e1 imysql> select round(1.298, 1);   
( W2 T- H  p; N8 s2 J  -> 1.3   
; @1 c9 g/ [) vmysql> select round(1.298, 0);   
2 _* a9 c* T7 e# ~+ E  -> 1    / Y* m) V+ h: A: V/ Q- t& M3 S
% X, L' S4 c3 H4 `
exp(n)  
1 E  c' t! O1 ^, s返回值e的n次方(自然对数的底)  
7 `+ \1 u  v0 k/ b% W" `! tmysql> select exp(2);   
3 F$ M; S2 ?7 L9 m  -> 7.389056   
5 J4 d9 z5 ?  M+ V& Q( H+ i8 nmysql> select exp(-2);   
- m- ?$ i* W6 A2 j- a  -> 0.135335   
& q  g, r$ r+ c% |
/ ~6 X* k. m7 e3 ]log(n)  
4 T) S7 @/ c5 \! k2 n  b返回n的自然对数  
/ C# q  ^6 w' |! V: u+ Omysql> select log(2);   
0 A- z, x# u1 `' |; L  -> 0.693147    # y0 z. O2 H" q/ p
mysql> select log(-2);    2 i$ Q; W/ j, G
  -> null    ! X! N0 w8 R0 ~, N/ s$ g; y$ z
) R4 s% j4 `% I
log10(n)  
1 U4 q% C" k6 ]: X1 x返回n以10为底的对数  
. \6 t/ A; q- X0 @* S2 A) W$ ]mysql> select log10(2);   
9 E; I# V1 Y4 j+ @; S  -> 0.301030    4 t- f6 i8 _+ C, D5 ]
mysql> select log10(100);   
  B0 a$ M: H! e- a9 U  -> 2.000000   
4 F. y0 a- M' t- ~: B* tmysql> select log10(-100);   
! t' w9 O1 E+ r* i  -> null    ) ~) k* r6 }/ u9 ^0 p: n
6 |3 Z/ V! n) S( P/ i
pow(x,y)   
6 Z2 f6 e( I+ T+ G5 i3 dpower(x,y)    : ]* z. \  h& O2 N" Z0 i
 返回值x的y次幂  
  j( |# ~& H2 S8 q0 Wmysql> select pow(2,2);    & I: |4 T. T. g6 Y9 L0 z9 U$ V
  -> 4.000000   
3 D5 L! j# [" _  `# V  jmysql> select pow(2,-2);    / K  _+ r  j4 W. |$ d  |
  -> 0.250000  
0 }& ]/ {& b8 m2 i. l% m4 O
- o# R6 p1 N& e( G! b% s  Zsqrt(n)  
+ T# ]1 I* _; A7 g% p 返回非负数n的平方根  
) r$ b8 L+ F% }mysql> select sqrt(4);   
6 ?) u  H& `+ t9 J+ k  -> 2.000000   
( k8 x- a4 ], t* Pmysql> select sqrt(20);   
0 t0 Z. L: C- z$ m; G$ \  -> 4.472136   
$ T9 o/ ~# |) }8 a; {" S, p 1 X: X+ r( l1 M+ J9 A
pi()   
& N+ f. M; [' B, N$ C. D6 U' j 返回圆周率   2 {9 g; y$ ~* ?6 G
mysql> select pi();   
5 p# ~* R' q( T; R  -> 3.141593    * u" a; I9 ?* w9 t8 A% f/ p

% `5 r6 {9 a  k' u9 U4 S" `cos(n)  ( ~* x7 [: r1 |
 返回n的余弦值  3 f7 o2 `( u* `5 w/ S9 B; ~" P
mysql> select cos(pi());  " c  Y  e* S9 X7 U6 L$ M
  -> -1.000000    + W$ d/ a- j; p% L+ I1 s9 j* S

+ P1 u1 a' R- X3 e( I: ]/ I. ?sin(n)  
$ N* {; h" \7 @+ x, \, }- I 返回n的正弦值   $ z3 R2 ?, t+ g7 v
mysql> select sin(pi());    & @# z$ ]& |$ @% o9 j& R
  -> 0.000000   
, t/ {; R3 W0 o" S$ b& l 7 y( W" K) }" A
tan(n)  5 y. }/ N! K# C% ~
返回n的正切值  
: w: Y( W. i5 m& o2 vmysql> select tan(pi()+1);    6 P/ P; }) y3 R) b" K) z
  -> 1.557408   
! n: G/ z$ X( X3 l& b! S) L
0 B& w9 s8 n1 }. G4 xacos(n)  
3 ]( I* h7 W' q1 r* B 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  3 T6 R* Z7 u, m% H
mysql> select acos(1);    ) G2 S( }  ]' |% @2 u6 f6 i9 u$ W9 `
  -> 0.000000    ; S5 J" g4 c  \2 x
mysql> select acos(1.0001);   
+ C9 q, _& R! X) A  S  -> null   
: p# d# Y& @3 v* I' smysql> select acos(0);    6 z7 U4 t+ r: j" h0 n7 }5 f* i' g
  -> 1.570796   
9 H& Z7 Q; l9 `4 e8 z6 d , d) T& F# m, O+ {5 M
asin(n)  2 F8 _2 e; v  X  R; P2 F% F
返回n反正弦值  
3 o) G; D) T5 Imysql> select asin(0.2);   
, \- m" }" W9 l* K, ]/ q6 k  -> 0.201358   
7 ?6 f& _5 x% g+ z9 k$ I9 Smysql> select asin('foo');    . I' L' @/ P7 j# f
  -> 0.000000    # `7 w5 x5 e8 v( L0 t% A, I2 b
* w4 P5 X" ^5 k) u1 }% n
atan(n)  
% P2 X/ x; Z0 W2 W2 e返回n的反正切值  
( Z* k4 _7 S4 @- mmysql> select atan(2);    6 [- ]( n7 Y: V
  -> 1.107149    : u5 ~/ ^( m' O0 I, B, w0 r
mysql> select atan(-2);    7 `6 e2 ~! b& P, l
  -> -1.107149    " k; d+ ~- |  v) m( P$ h$ r
atan2(x,y)   
1 P* j& _+ Y% T9 h9 w0 K$ D% D6 c 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  4 }# A) e0 o. t' H4 \) h$ p  T/ X
mysql> select atan(-2,2);    ; N. b% `' ?; ^; C, k! Y
  -> -0.785398   
  q. P6 _, o# l/ o( Lmysql> select atan(pi(),0);    . ]" w2 t/ x  c$ \; {8 p
  -> 1.570796   
5 t1 m9 i" o0 c2 _7 P2 o4 P& \ 1 z% m7 ]' T9 s( @% j
cot(n)  ! Q; g" k) X+ S, f
返回x的余切  
' e; K( ]9 O7 Q4 k# w! |& E7 Wmysql> select cot(12);   
% x) n1 N" r+ d3 c" L+ X; r' k# B  -> -1.57267341    8 ~/ I3 s" b( Y, P/ p3 |, b
mysql> select cot(0);   
) E' [4 O; n7 L) `3 y# z  -> null   
/ B  R0 M% G# a- q % W) W# T; _! F; _5 B% l
rand()  3 c- k. x+ b) y, ~7 `! V2 d
rand(n)    
5 r  I+ `1 Y0 \' L! `返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
) \* e0 Y+ I5 C& d! l 9 H/ P8 a+ b1 b; p+ L; ]+ q' Z
mysql> select rand();    : l2 _" S' E& S1 M! k1 `
  -> 0.5925      c5 U# Y# l+ s7 t+ F8 t
mysql> select rand(20);   
% P# l0 `5 Q! U( Y: _  Y  -> 0.1811   
+ l, y9 {* G: F# j! fmysql> select rand(20);   
0 ]% S, K* a; N' O, V. }  -> 0.1811    2 A0 m! ]& Z3 J4 X/ g  z* @' ^. N; {7 E
mysql> select rand();   
2 V) w) Y4 T" ^* p  -> 0.2079    * l  H5 k1 z5 l$ |- G
mysql> select rand();   
6 C: w) }6 D& m. g# s, }  -> 0.7888    2 O# v/ d! ^( Q$ f

. {% d7 c: n/ q9 ]degrees(n)  
9 d( Q; T' g/ z$ n5 Z: c' I; L把n从弧度变换为角度并返回  
; Q, k* O8 v: J4 J1 T5 K/ dmysql> select degrees(pi());    - h% n# Z& k0 a$ s3 a9 u% f' ?9 Y9 G
  -> 180.000000    + [; c! P5 O9 v
. G1 ?8 b$ |: q  I, E
radians(n) 9 G3 ~, f/ z- h& M6 Q* N  a
把n从角度变换为弧度并返回   6 G% g- t! J# w. O' e  }
mysql> select radians(90);    ( ^0 m- f  x4 _- \! ~; c; M/ _" _
  -> 1.570796    ' T4 m, I9 f5 K! x
/ b1 y; w+ H. a
truncate(n,d)   
- ~+ u% M7 K; Z2 }3 L+ O- W- u) N保留数字n的d位小数并返回  ; Y, o+ K# x3 [5 W* W* H" R2 L& ^
mysql> select truncate(1.223,1);   
+ b( V: z& {& F) }0 \) L  D  -> 1.2   
- z1 c: t4 g6 A* G9 zmysql> select truncate(1.999,1);   
2 n7 U# J+ ?) i! s' v6 x  -> 1.9   
! u6 d& r% s7 R8 K  t4 nmysql> select truncate(1.999,0);   
1 o6 [% j% g) N+ K' R0 v1 [6 W5 X  -> 1    & O9 J3 M) }) t8 V9 s) M
) K" X* [# n% ]& t' t
least(x,y,...)   
. F( ?9 N8 _( g! E4 {6 v; E返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  3 L9 `, s7 s  b
mysql> select least(2,0);    % l$ D, o- y# M0 d* ]' b  W/ x
  -> 0    1 J% M1 }7 }- b  \9 K
mysql> select least(34.0,3.0,5.0,767.0);    ! s  l+ l3 F6 }1 r  v& F7 \  M
  -> 3.0    4 C0 @) h0 ^( @2 s2 K- V% e: t4 E# Q, p
mysql> select least("b","a","c");   
) Z  v! K8 l. R9 c' l  -> "a"   
; Z5 v9 q& P: i7 r/ W6 z7 B   V2 R  Z4 `; o7 s0 C
greatest(x,y,...)    9 r% _: H% C! S  H3 `; i7 T
返回最大值(其余同least())  0 ?) n  \/ R8 J) T* G8 W
mysql> select greatest(2,0);    & L; P# I6 z$ q8 Z- ^6 d
  -> 2   
, U! O0 D" e9 G# Vmysql> select greatest(34.0,3.0,5.0,767.0);   
  ~: a7 u& d! S* B/ p) E/ u  -> 767.0   
5 i, I3 U/ e3 K1 N, i3 {1 B6 xmysql> select greatest("b","a","c");   
6 c7 V8 u& u) e6 [  -> "c"     4 D& y$ ]# o- }' V+ Q6 k+ n* H
- q# f' W0 o- B3 G1 A' E" \
3、时期时间函数 2 s  V5 N) W  D! c
dayofweek(date)   
# T0 G; S4 `! c" V1 k' D. K返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
+ h+ M& s, x  K# h( _( Wmysql> select dayofweek('1998-02-03');   
' r$ i1 e' `5 W: X8 k5 |+ U. x5 ?  -> 3   
' U/ g& U/ }) i$ s3 s/ w2 h + M% y: H6 ]1 X# F: L6 A5 ^
weekday(date)    1 z; ?8 e# z) ]
返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 $ F, `" n5 O1 {# D
  2 o; I5 J9 d4 t. q0 q( c4 |
mysql> select weekday('1997-10-04 22:23:00');   
" r* V0 j& C  @6 x: X# ~  -> 5   
% m) |4 b5 k- dmysql> select weekday('1997-11-05');   
; O. [- j( {' p2 O5 o% m  -> 2    7 J- n" |0 Y$ n5 G

2 U+ O, a  W& W4 M. Ydayofmonth(date)    
0 y8 Y# L+ Q0 ^) b- j/ `返回date是一月中的第几日(在1到31范围内)    3 H* {; i3 V9 c
mysql> select dayofmonth('1998-02-03');    0 \! a+ W" ?/ H/ \- Z( }
  -> 3   
: Q0 O' ]/ P8 n+ h* M; Y& F) `, D
9 i+ N! |* V( d6 G- H/ fdayofyear(date)   
  Z- P/ T# _9 _2 L! Y5 q7 B& {返回date是一年中的第几日(在1到366范围内)   
# `7 @; f" d/ V) _mysql> select dayofyear('1998-02-03');   
0 \9 ~3 b" i* _: p' Z  h( l  -> 34    & a3 |2 ^' }- d( [3 V. e

8 U: h: C9 ?/ ]" M1 v3 Imonth(date)    8 e6 s; x1 o: C; i. K1 ]) W4 b
返回date中的月份数值   
$ ?( W0 N0 A6 p* I% Tmysql> select month('1998-02-03');   
4 Z5 y" H: ^2 ^) \- l  -> 2    6 ~# S0 ~  }) n: O9 U( J

7 W3 U$ f9 U- {6 m5 c; bdayname(date)    1 y: M8 w8 W3 I! ?9 c% F
返回date是星期几(按英文名返回)  2 L. D! k8 I3 i+ m
mysql> select dayname("1998-02-05");    9 w- R7 f! P8 D* y. l
  -> 'thursday'   
, O% i1 W3 [4 g. ^4 y
2 _, W3 ]& G  Qmonthname(date)    3 y3 D# r$ w+ w1 f; Y
返回date是几月(按英文名返回)  
) y# z( s+ m) c; k# umysql> select monthname("1998-02-05");   
9 _" D' \( ]/ V6 r  -> 'february'      v( g' N" [/ d) x2 X& d

$ T/ V1 h1 T* u, h; X' n# c- `+ kquarter(date)   
4 s; A! Q1 T$ q' `, ?% f返回date是一年的第几个季度   
/ O5 u! o! O  t* H2 g- E% gmysql> select quarter('98-04-01');   
% K( G5 e' j6 J6 S, P  -> 2    7 R0 z) A; J% a4 O# z5 F+ R3 S
$ G% e# N9 l& w$ `' C+ [
week(date,first)   ! l. z8 A' M$ M; ?5 ~
返回date是一年的第几周(first默认值0,first取值1表示周一是
. w% P# f. |: G) E9 M; j: X周的开始,0从周日开始)  
: J  P3 V$ R* [5 a, T' A# @0 emysql> select week('1998-02-20');   
/ P8 J, y' ?$ i( l- t  -> 7   
) v1 n9 O; v( P' Y2 tmysql> select week('1998-02-20',0);    9 C7 z6 p0 ?; I8 }3 |  M& g
  -> 7    : q- R! q* A# q5 j0 i. E
mysql> select week('1998-02-20',1);    2 \: A! M! r, e
  -> 8   
( A) [" V" t' ?& W ! k# x5 d. f% o/ n; M
year(date)   
3 f0 ^$ P0 v& ~4 h/ r* l返回date的年份(范围在1000到9999)   
4 L3 T% P8 |" Y2 S7 Z7 M% Emysql> select year('98-02-03');   
0 k! ~7 y1 e: W) }( x  -> 1998   
0 Z. l; v( h* f" e. U; e) S. ` 4 [$ ?: b2 X' W
hour(time)    
% @% i9 F" [+ O4 i* l0 z返回time的小时数(范围是0到23)   
" q- _# u& ^7 hmysql> select hour('10:05:03');    7 Z: m! s0 }5 ]' A
  -> 10   
1 B: [0 Y, t6 H. Q" [. {! y2 J 8 N9 z% h& Y$ [# F
minute(time)   
8 q0 M4 ~! p6 i) s2 m8 x7 n返回time的分钟数(范围是0到59)    9 A3 L" ?8 U: K8 ?  `) U
mysql> select minute('98-02-03 10:05:03');   
6 J7 T$ T* u/ a5 t1 V. g8 |  -> 5   
5 a5 Q* I1 |- _0 k+ C; e/ [ 6 a; D7 b: ~- {. ~' F
second(time)    7 y* A3 f3 z8 V4 S
返回time的秒数(范围是0到59)   
4 \# Y, k1 h3 Q3 P+ i" ^mysql> select second('10:05:03');    - @' j: k( n% B$ K- c4 @" _
  -> 3    9 G3 L- D' E/ a( G( Z

: E% V" ^% i2 k6 k, q* Y. |4 Fperiod_add(p,n)   
) V" Z) d. l6 f3 Y' k* U) C# ^增加n个月到时期p并返回(p的格式yymm或yyyymm)   
. Q4 b4 z# C" ~) t! H' Pmysql> select period_add(9801,2);   
3 f3 O* d% p% E3 x6 S  -> 199803   
: ?, C3 c# c) |, k' _- J
8 k7 L' q7 W7 |' \: d8 d* W5 tperiod_diff(p1,p2)    6 f8 f+ [3 k7 Z" g! ^5 J
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  ; w* w! ]( i: n
mysql> select period_diff(9802,199703);   
. w4 a3 c% N0 Y$ o3 V$ ^  -> 11    5 a3 k' X% V2 M- q

5 M8 s& }( V( ~+ R5 w) k" E+ Ddate_add(date,interval expr type)  - G; c9 G1 N$ v
date_sub(date,interval expr type)   
5 x5 e, W0 {; X8 q9 m# W. _adddate(date,interval expr type)    8 ?; K& |5 Q. X7 a% x* m
subdate(date,interval expr type)  6 j4 I  n2 H. r+ l6 A! k+ Z; `
对日期时间进行加减法运算  - U  t( L: [- ~- N. Z* V+ l6 h
(adddate()和subdate()是date_add()和date_sub()的同义词,也! C2 r/ a6 |1 \- t4 J, R+ x3 q
可以用运算符+和-而不是函数  3 D, R. b+ D  W& B) r
date是一个datetime或date值,expr对date进行加减法的一个表
& L2 e6 Q+ q$ H" ?$ w达式字符串type指明表达式expr应该如何被解释  
1 U' h% ^% v& W) U [type值 含义 期望的expr格式]:  6 s# @1 w0 X  R3 b4 G- t9 n4 F6 D. g, s
 second 秒 seconds   
+ O0 C. S1 w, {1 p+ ~* n minute 分钟 minutes   
$ E7 s4 Z  Z# n8 A hour 时间 hours    # u( _+ g* j7 \4 t4 D
 day 天 days    3 j1 Z, I; A2 L. c8 P# h# j
 month 月 months      A9 Z3 Z9 ^3 o+ f' E  N+ T! h
 year 年 years   
: t( f( p$ J+ B$ b* | minute_second 分钟和秒 "minutes:seconds"   
! x" ^$ R% W$ ] hour_minute 小时和分钟 "hours:minutes"    + E  {, N2 }! r* v" Y& I9 P9 O
 day_hour 天和小时 "days hours"    7 S% t0 x) B  q' k2 Q0 x1 H
 year_month 年和月 "years-months"    ' \5 b5 H* j" U
 hour_second 小时, 分钟, "hours:minutes:seconds"   
2 `( E" d9 b2 Z6 g* t7 F' O5 {& D5 R2 I# [ day_minute 天, 小时, 分钟 "days hours:minutes"   
6 g; Y- G7 z4 \8 i. ? day_second 天, 小时, 分钟, 秒 "days
; o6 f$ l* N; {% U$ L/ O) zhours:minutes:seconds" ' P0 @. @1 ?. [
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个2 k3 Z( n/ N& q4 R1 c- j1 T3 V2 r
date值,否则结果是一个datetime值)  
& t  r8 G' y" c7 f8 m7 `1 W 如果type关键词不完整,则mysql从右端取值,day_second因为缺6 K) N9 s# L# X0 W
少小时分钟等于minute_second)  : P0 r% e" Z. J/ p
 如果增加month、year_month或year,天数大于结果月份的最大天
* @; \2 A! Y5 |( s( g: d数则使用最大天数)    , M1 `; N+ e, y" p( o
mysql> select "1997-12-31 23:59:59" + interval 1 second;  
1 r+ q0 H  z$ _# [# \* g0 ?) d ; V3 D5 C: x0 s$ a' E8 x$ X; z" \
  -> 1998-01-01 00:00:00    + k4 Y$ E7 ?, D
mysql> select interval 1 day + "1997-12-31";   
( Z# w# n1 J. [8 H( ^/ ?  -> 1998-01-01   
* k* v1 T( G4 U+ A2 gmysql> select "1998-01-01" - interval 1 second;    : P; c9 r3 r: T4 q% }
  -> 1997-12-31 23:59:59    2 n6 w: u+ z3 ?: s$ ^
mysql> select date_add("1997-12-31 23:59:59",interval 1; G; x. ?' i+ S+ D6 |( \% b# m2 t
second);   
3 F, u/ l, t! a* q- l+ q4 O; j" j  -> 1998-01-01 00:00:00      [4 B! H/ D: E7 H3 b5 D3 c3 }- i
mysql> select date_add("1997-12-31 23:59:59",interval 1
- C# Y5 t- c' f- Xday);   
# m/ s" {9 U& h0 ^9 {' W" O$ O$ |  -> 1998-01-01 23:59:59    , I/ O# W) D+ J- U. N
mysql> select date_add("1997-12-31 23:59:59",interval
' h$ w/ o* ?# W- h0 |. D& q"1:1" minute_second);   
2 [! T) r3 A; O) n! L" L0 P  -> 1998-01-01 00:01:00   
$ T: ]: T+ A( c; R" a$ Hmysql> select date_sub("1998-01-01 00:00:00",interval "1
6 e  i& J% T0 k$ ]) }! n2 i1:1:1" day_second);    * \( f- w/ s! s* Y6 x
  -> 1997-12-30 22:58:59    , s: O9 l1 u0 m* g+ o6 k
mysql> select date_add("1998-01-01 00:00:00", interval "-13 G8 i5 w, n, D8 X" C! Y+ p! z
10" day_hour);  
1 u4 {1 J/ M$ m. Q  -> 1997-12-30 14:00:00   
$ p& E" q/ [3 ?' y# v( y" L8 Imysql> select date_sub("1998-01-02", interval 31 day);   
4 ~- C' }+ C# ~& n  -> 1997-12-02   
# \8 R8 _# h" G- Xmysql> select extract(year from "1999-07-02");   
9 W2 o1 z( t/ K9 ~) D6 L% ?  -> 1999   
) P7 o  Q' s. @+ |! smysql> select extract(year_month from "1999-07-02  O) a. I1 p4 U1 i- c& k3 ^  g7 h
01:02:03");   
. [" \9 U& [- Q$ M+ w: {5 {  -> 199907   
& {2 @# V" A( ]: m0 hmysql> select extract(day_minute from "1999-07-02
5 i" }4 Z9 `5 G, G3 w  r01:02:03");   
! T5 V" C, c- [, }# ^4 ?( b8 o  -> 20102    9 `) `- J* x+ y. X# p3 \

' r1 i( p5 c- G# Lto_days(date)    ! k4 w% c* S* d0 P
返回日期date是西元0年至今多少天(不计算1582年以前)  
) B9 w+ M+ d4 [. b8 X8 L! R( n! A% I" umysql> select to_days(950501);    , O& u7 ]9 g/ F- k2 B2 B: j& j+ L' D. F
  -> 728779   
: a# B- ]1 o8 }! _2 g7 Tmysql> select to_days('1997-10-07');   
7 w7 A, E# d$ B# X  -> 729669    # j; O! a, [1 G

" Q+ M& w& c  B( `6 yfrom_days(n)   
) \$ B5 Q; u# J+ _1 @2 { 给出西元0年至今多少天返回date值(不计算1582年以前)   
5 C# W$ x' v3 |mysql> select from_days(729669);   
, A6 ~4 Q0 v* J2 h2 |0 l, ^/ B8 Y1 ]  -> '1997-10-07'   
# S: \4 ~7 U/ a! n
6 I  d* L! _  c9 E' ~3 tdate_format(date,format)   
# {5 m, b9 [8 F3 n 根据format字符串格式化date值  ' `: d% R* z/ q+ a* f' _
 (在format字符串中可用标志符:  
1 j$ V- K, g' M; ]# Q0 t %m 月名字(january……december)   
# g4 r: t7 s& \% w$ T) _3 F %w 星期名字(sunday……saturday)    : ]7 k( x# a+ ^
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)   
8 _) `2 L8 G; Q& G' x* a( _ %y 年, 数字, 4 位   
, c1 b3 |& j$ }% j %y 年, 数字, 2 位    ) w& S8 X3 U7 G# S& j
 %a 缩写的星期名字(sun……sat)    ) I+ }6 |# C3 @! r( R
 %d 月份中的天数, 数字(00……31)    9 ^! E  J7 Q7 ~8 j# _! _
 %e 月份中的天数, 数字(0……31)    / j# ]& P3 V: c4 k" f
 %m 月, 数字(01……12)   
8 H; N  K: B5 q; G; B- v' S& } %c 月, 数字(1……12)   
: r* g1 I$ D  f1 A) E5 q. W; T %b 缩写的月份名字(jan……dec)   
% t- T# Q, D1 I% P  \2 L+ g+ F %j 一年中的天数(001……366)   
5 \  r9 a+ K& a4 Y8 ` %h 小时(00……23)   
0 g3 w  d2 K8 w% U4 W %k 小时(0……23)    3 V9 Z; p0 k4 {8 O- N9 `
 %h 小时(01……12)    % P1 i& ?- ]8 A  q5 p
 %i 小时(01……12)   
9 ^" a- `; v+ K, N" { %l 小时(1……12)   
$ N* ~5 J8 v4 ~: ?+ \& x %i 分钟, 数字(00……59)   
0 z7 d) q' R/ z0 R3 Q5 A %r 时间,12 小时(hh:mm:ss [ap]m)    - N0 ?. o; l8 z* D+ T5 a# I
 %t 时间,24 小时(hh:mm:ss)    2 r. b) i. `8 Y" F6 X
 %s 秒(00……59)    8 e% F: s: R$ [% Y) w* o! E! o
 %s 秒(00……59)   
' V0 a7 X7 N) { %p am或pm    / l1 `" ~( T, C" H9 Q0 v
 %w 一个星期中的天数(0=sunday ……6=saturday )    ( E1 ], R% [& g9 h  J5 X+ T
 %u 星期(0……52), 这里星期天是星期的第一天    : _) @+ h. {, I
 %u 星期(0……52), 这里星期一是星期的第一天    2 a) ]  u3 _  ^8 v
 %% 字符% )  7 R& [( `6 r% r
mysql> select date_format('1997-10-04 22:23:00','%w %m %
5 j# F, t8 m9 n  b' By');    : t* e8 R- n$ R/ \2 B3 }
  -> 'saturday october 1997'   
: S, y( b0 n2 kmysql> select date_format('1997-10-04 22:23:00','%h:%i:%
4 {6 X/ `9 L: O. es');    7 s: h* E( R: k1 F/ I7 d$ K% O8 z
  -> '22:23:00'   
' J2 l# J, n& ?1 f6 y! lmysql> select date_format('1997-10-04 22:23:00','%d %y %a
& Q7 h9 ~4 I' ?7 ]: c%d %m %b %j');   
! e- t1 ^% M! Q6 u  -> '4th 97 sat 04 10 oct 277'    ; H" E' @1 M2 x; W' Q0 y) x! g
mysql> select date_format('1997-10-04 22:23:00','%h %k %i
5 Z. ^& ?0 K% {%r %t %s %w');   
$ H$ ]! K* Z5 }5 L, g  -> '22 22 10 10:23:00 pm 22:23:00 00 6'    . ]' j6 g3 K/ A" b, ]  g  d

+ |7 X0 M# i* P6 ltime_format(time,format)  
. F/ X' \; q" `9 N( n0 u7 y6 D 和date_format()类似,但time_format只处理小时、分钟和秒(其2 b0 P) z/ d# N% n; u
余符号产生一个null值或0)  
) |% @4 p7 @; p" p , I! J& t. g# |: a2 L. F9 C8 t+ O
curdate()     . K9 ~: w' J  U  y( d
current_date()  
8 D: j2 F* R3 e- R/ k! e: S 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
7 N9 I. k  E* m处上下文是字符串或数字)   
/ ?$ q; z3 [( I3 |mysql> select curdate();   
7 x# _3 K% E3 Q" X/ ]& F/ i  -> '1997-12-15'   
$ m3 X5 H$ ^/ }& Y6 Imysql> select curdate() + 0;    % |# _( r6 p9 T! f* e
  -> 19971215    0 z& ~$ r( d  w* c5 e" A

$ b1 g- E" ^8 A- }- tcurtime()    , J, a6 U# k0 v8 r1 C
current_time()  % ?  k  ^9 g$ R( Z; \3 A
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上# p( f: e5 a* K: T  ~: S
下文是字符串或数字)      
: `7 I0 j1 y* d/ }mysql> select curtime();    2 B! C% @. h- W2 F/ i2 g
  -> '23:50:26'   
2 D; X& z3 s* |mysql> select curtime() + 0;    1 @1 N' b& H1 H% G
  -> 235026   
- A9 |" D& a, n: `; C 6 c# z; v: i7 @8 L5 h1 {# m+ Q+ V
now()    
  d6 l. P5 k, usysdate()    4 G3 a% y5 T' Q( L
current_timestamp()  
* M. I$ T2 r. i 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期: O2 S( ~( g1 ~/ E* @( t* g& t3 Y, S' ^5 ?
时间(根据返回值所处上下文是字符串或数字)     4 H3 i  q1 L6 P; h. {  f
mysql> select now();    ; y1 Y. r: c1 @. [2 |
  -> '1997-12-15 23:50:26'   
7 f& F8 E. _! z- Xmysql> select now() + 0;   
, a$ v, S% [2 S$ W. C# V: n  -> 19971215235026   
, z* u1 s5 m( [4 [3 _ 2 ?$ o# D! O6 A
unix_timestamp()   
& v1 ~7 s  n& v, D* lunix_timestamp(date)    7 x3 v2 @) E% W
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒- C+ F  P, r: G. t1 x
数,date默认值为当前时间)  8 b) v# g3 a7 e
mysql> select unix_timestamp();   
( _# _, j7 t6 Q4 ?  ]! ~  -> 882226357    ( ]; R8 Y: Q5 Q- m
mysql> select unix_timestamp('1997-10-04 22:23:00');   
! Y% i8 C( V7 J  -> 875996580   
4 O, x. c( L1 C& [7 v/ o7 k5 C- f - k! M' x9 W. Z
from_unixtime(unix_timestamp)    6 m! c! |6 O" B# x* z
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的# P2 w7 ]  P( A& N  T; a" |# s. j, `5 T
值(根据返回值所处上下文是字符串或数字)     
5 r- @. R, }1 ^5 `) l+ J: Mmysql> select from_unixtime(875996580);    " K5 T: ?1 A. ?& u
  -> '1997-10-04 22:23:00'    $ v: x1 {4 m+ _
mysql> select from_unixtime(875996580) + 0;   
8 V1 ~) D* m0 K; c9 @! ?( M' |  -> 19971004222300    % r/ V, I' Z# `% {" Q

- B7 A. e! G4 }$ A6 X2 ?from_unixtime(unix_timestamp,format)    : k9 S- V; B/ }: l& h3 K
以format字符串格式返回时间戳的值  ; U% a$ d+ @& x* V/ d' \  f
mysql> select from_unixtime(unix_timestamp(),'%y %d %m %- d$ j/ F7 g0 ~# G, L" V
h:%i:%s %x');   
4 o; ^$ I& \- S1 |* H; ~  -> '1997 23rd december 03:43:30 x'    5 i% V/ s" n& B$ Q/ p
! \( O) `8 E/ L' D6 {! y+ k
sec_to_time(seconds)   
: z3 a% Q6 ~  N' @% ], x以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
5 B8 E- d  w9 i; `mysql> select sec_to_time(2378);      q" o8 h9 |' j; V: B* Y7 E* l6 B
  -> '00:39:38'   
7 @) G  Y0 V" T1 f! Y1 k8 Zmysql> select sec_to_time(2378) + 0;   
: f# m2 U  o- Y7 U& d! Y1 O; g  -> 3938    + V- i$ \- w; r  x: G( K

5 _7 I! c& m( J) Ntime_to_sec(time)    % B$ V% \* W8 w
返回time值有多少秒    ) z# b' X$ m; ]4 L
mysql> select time_to_sec('22:23:00');    8 l1 [2 s" d* m9 o$ y/ |
  -> 80580    ' G) C0 m+ R& P
mysql> select time_to_sec('00:39:38');    + o0 I( q' O7 F$ {: I
  -> 2378 7 Z) a; w' o/ E, j0 A. d# V
6 ^# T3 C8 f( I9 c/ G6 v
转换函数
) z2 O$ O8 s! J/ S- t9 acast
8 y+ N# p8 J3 K5 b2 f用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]3 x* R1 e  c& l
实例:select cast(a as unsigned) as b from cardserver where order by b desc;: f9 \) t( u$ w# K
convert:" L3 S* ]4 v( i- {. n6 b
用法:convert(字段,数据类型)' ?* S3 x$ J0 {
实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
8 o5 G; A8 X: Q, v0 ~
回复

使用道具 举报

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

本版积分规则

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