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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数
/ ]# S- w& I0 y2 Q. ~1 W1 a: Lascii(str)   
& ^3 b* x9 N+ Y$ e返回字符串str的第一个字符的ascii值(str是空串时返回0)  3 `7 G2 v! i5 `4 ^2 T
mysql> select ascii('2');  
) W( u$ G4 Y( e5 |) q) ?- q# g1 ]  -> 50  
$ E) M2 x' Q' B6 _6 V( pmysql> select ascii(2);  7 i, W  O9 a% v! g: L. G- ~; o" n
  -> 50  
: E- w9 n4 a0 \mysql> select ascii('dete');  + J5 a2 ]2 Q8 @$ U8 Z/ i2 l
  -> 100
. y% u. H; U5 _( `% U5 J+ u
ord(str)   
! D/ y' n3 l0 u# C: I如果字符串str句首是单字节返回与ascii()函数返回的相同值。9 `) J4 m' K5 E
, Z2 R$ y3 l% g- i
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  
8 H! C0 c( d( A/ Wmysql> select ord('2');    ]2 c' T2 y/ z+ A7 e; l/ {) D
  -> 50  
. m7 \+ l" v$ h8 L   
. Q0 O0 y; {- yconv(n,from_base,to_base)   
) @8 G; K" t: A  A# z# x* B  y对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  5 ~5 o7 R2 a& x5 t8 [7 O- @+ R* ^
mysql> select conv("a",16,2);  , P% j! G. g, Z" f
  -> '1010'
9 K1 e' e5 S  G9 a9 {; e# d3 [mysql> select conv("6e",18,8);  
% Y- Y& ]$ r  J  X; X" [0 z: l0 m  -> '172' 7 y7 }+ Q+ q* r9 Q
mysql> select conv(-17,10,-18);  6 E/ K  w" \3 g: F( T3 e
  -> '-h'
9 {5 Y5 u4 v  I3 Q; x; cmysql> select conv(10+"10"+'10'+0xa,10,10);  $ Z0 U6 {, @$ F& B0 [  r5 o
  -> '40'
4 \9 e9 P' a. e, A" l   
$ v: B! d& u4 q' B* O4 y) Cbin(n)   
  ?2 D5 _5 ^8 Z: {把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  6 ?0 S: b( ^" C* e& z
mysql> select bin(12);  $ T# p" @' j: O. R1 ~% f, A
  -> '1100'
3 a4 C& U$ ?6 ?5 Q; i
! s7 l) e9 f- w8 E( s( Ooct(n)   
- E# \% c2 o. u. A% ^0 p把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
& J! R0 S) ]' u# `/ f; R, T9 Hmysql> select oct(12);  4 s1 V# _9 B4 u; c
  -> '14' ! l( T6 ^& i1 r: ], i/ a7 J
   ! W, k! b3 ?" k8 I' D5 p% m
hex(n)   7 i: X& p1 p$ y- H4 \5 R: m; F
把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  8 y# i  o$ z$ s* I+ R5 n2 Y
mysql> select hex(255);  
, U7 v+ O2 n$ G6 R/ r  -> 'ff' & e( p/ r' y( |: {. S
   
, I' d# G+ p$ {" N0 S+ t2 r4 ichar(n,...)   
& T' M2 c: w6 a0 C) t9 z5 P7 Z, I返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   + @6 d: x8 s& l$ W
mysql> select char(77,121,83,81,'76');  , W# `+ x" J  ^9 p4 p, G
  -> 'mysql' ' t! A1 ~5 J4 ]( ~0 M. u
mysql> select char(77,77.3,'77.3');  * B& a- {5 s* G* X; ~9 u7 H; o' `
  -> 'mmm'
9 e* t# o+ @  i. ~. ?   
% `2 p) ?3 ~$ j2 n! g" Aconcat(str1,str2,...)  
) r  `! r4 p! E7 c把参数连成一个长字符串并返回(任何参数是null时返回null)  : X8 {0 s, u4 @: T6 b
mysql> select concat('my', 's', 'ql');  3 H, g/ c" J3 U
  -> 'mysql'
5 P3 h9 }5 w7 Q# p  Lmysql> select concat('my', null, 'ql');  ( [* L$ t& h- a
  -> null
  R+ b. H  B% E- g0 n" _mysql> select concat(14.3);  
% L) R, D! k+ ^% M0 k( u7 l  -> '14.3' 3 H: S& c7 i) E* ^6 H' L. {  P
2 _, o% F( t5 o' d4 a
length(str)   . ~# g! z2 C& e0 }+ l
octet_length(str)  
+ t9 w# V! q. S0 E3 Pchar_length(str)  . p8 W7 A6 m9 f* v3 `( s# d
character_length(str)  ' |9 b8 l: F3 }# v4 C% N3 W, z
返回字符串str的长度(对于多字节字符char_length仅计算一次)
" P  r# }/ Q4 K! ~- c; p7 Smysql> select length('text');  ; A5 y% R! c4 X5 m" M) F: q" _
  -> 4  
" Q) A" I7 B: @& Q/ s, q$ Gmysql> select octet_length('text');  7 ^4 }% X# `5 S0 [* M2 I& x
  -> 4  4 L) \  T6 U4 I" z% W0 L

: R9 ]& x+ W6 P5 m; Klocate(substr,str)   1 a- @" l  a3 u. @7 a8 z
position(substr in str)   
% ^5 O0 _! }# n; g4 e返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
4 v8 y8 Q7 `$ Z/ }mysql> select locate('bar', 'foobarbar');  
) o; a; N) X0 J& A' R' K9 c" v+ V  -> 4  ; L2 U6 J6 E1 R' l! x# @( u1 ^
mysql> select locate('xbar', 'foobar');  
) A3 ?- u; u1 A  t  -> 0  " l; p% y4 u3 j9 b' O, C
   
0 f: [3 }( G  C0 Klocate(substr,str,pos) ( @# V6 G$ h' k/ S7 D
返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  7 i# W  S8 O5 V& H& i$ M
mysql> select locate('bar', 'foobarbar',5);  
8 ^" |4 `1 j; ^$ u! u  -> 7  ) f- N7 M- ~2 ^, T( U# J$ x* k
! f  C- d; a' t  U1 M, p7 \8 S+ s
instr(str,substr)  
; J: h9 q, o+ w1 l( }8 q返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
; {  J, _4 o6 A( ]& I, w$ N, Zmysql> select instr('foobarbar', 'bar');  ! ~! ]3 k; f& @: z1 N5 i* O( \
  -> 4  % y9 u1 ]9 S8 r( K) `. z4 \, ^; ^# v
mysql> select instr('xbar', 'foobar');  
. ?4 z0 j; X( Q* o  a! ^# |4 Q+ O  -> 0   6 k+ g$ p5 ~1 Q/ }( Y
/ J" Y, c$ W: g- O
lpad(str,len,padstr)   ' `- \5 }. m: F4 c9 G0 |
用字符串padstr填补str左端直到字串长度为len并返回  ) D8 G; h/ R$ d3 \
mysql> select lpad('hi',4,'??');  
* q, o( y( I# L) b4 V7 E* H9 E  -> '??hi'
. b  `! a) [+ c# @' H, W   
( }$ r: V" i# A- }rpad(str,len,padstr)   
; X; u- K& c/ l$ }) _6 ]% n用字符串padstr填补str右端直到字串长度为len并返回  
( ]0 e  M1 Y. n* D8 D2 M. Wmysql> select rpad('hi',5,'?');  
( r" Y( {8 X- u$ u  -> 'hi???' / i' F. t- h; R$ P) G

! `2 r! s6 K& `4 i" lleft(str,len)   
* x" J$ J3 L" Q4 a. b- S- K* O返回字符串str的左端len个字符  
& y( q; |/ H/ b  L8 }' i# emysql> select left('foobarbar', 5);  
6 Q% o; a) M6 D7 X. w0 T  -> 'fooba' % M3 Z& H) m) E$ d7 N2 c

* z8 I) D7 a( G8 ~) `. }& H7 t2 `right(str,len)   
8 D3 h7 ^2 I- _. k+ L返回字符串str的右端len个字符   
+ m' b% Q7 U$ K# f$ @9 j3 lmysql> select right('foobarbar', 4);  , r; j8 z# e4 {) ?. _& w. ?: n
  -> 'rbar'
  Q6 I% U. P/ b$ m, A$ X; u) \
( x4 U; }1 L7 {4 Bsubstring(str,pos,len)   
: f; ^9 E' u# m6 `7 Jsubstring(str from pos for len)   7 Y1 N8 N8 x/ G$ G" l
mid(str,pos,len)   1 b" d8 V3 j, I5 p8 z; `) A; B
返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
4 d2 u: N5 E6 b) F  -> 'ratica'
4 E1 y5 r6 `5 f% K. T# P% }9 R3 J
/ X& O8 z% i8 S' ^  fsubstring(str,pos)   
( B1 b+ k4 u& C. J0 ]/ esubstring(str from pos)   
% B' v) D2 e, o7 u# }2 e6 ?, i返回字符串str的位置pos起的一个子串  & O( h2 n7 n) R+ Y) Y; t+ J
mysql> select substring('quadratically',5);  
# j9 \+ y) K  f) I+ @) L! ?% U  -> 'ratically'
8 F* a6 o0 r: p# q: C" U0 Kmysql> select substring('foobarbar' from 4);  
- N( ]+ Q: @4 `  -> 'barbar' ) B5 b7 t6 D( M7 G: Y; M; U

! i" p3 y2 j+ j$ e8 fsubstring_index(str,delim,count)   6 |. H$ P8 D! v; ^! P1 K8 Q6 o/ m
返回从字符串str的第count个出现的分隔符delim之后的子串, j7 C2 a+ t' ]! h
(count为正数时返回左端,否则返回右端子串)  
& T: L; ^/ M0 U2 h3 amysql> select substring_index('www.mysql.com', '.', 2);  - F) n* U' L0 X- C. S
  -> 'www.mysql'
) z4 t) W1 h& ~" X! Omysql> select substring_index('www.mysql.com', '.', -2);  
, r! o$ F$ F9 L; h0 W6 _  -> 'mysql.com' - j# y, |- N5 C2 _4 T
, D1 u0 X* [+ \' P
ltrim(str)   
( i; z5 a* J# [& M9 q* B返回删除了左空格的字符串str  3 Z0 T8 R/ f  S, U1 z* `
mysql> select ltrim('  barbar');  ' R. V. d; N. m1 [+ q* E
  -> 'barbar' % B& X8 ^0 K  W
" \" N2 {/ a; [# B8 I% H6 K6 B
rtrim(str)   , q6 l2 K2 U/ i
返回删除了右空格的字符串str  
& y$ K2 M7 K' g5 X' Q. p) ?1 vmysql> select rtrim('barbar   ');  " S/ B/ a/ r; o: X8 @7 S- e3 m4 r5 Q
  -> 'barbar'
" O5 c# w$ L; K! h
9 l4 w, z: o) {8 I4 O$ [trim([[both | leading | trailing] [remstr] from] str)  
1 z! x6 ~! ?: _; j1 h" c* \8 L& f% {返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  " h. g% F& P. P5 w; y1 U
mysql> select trim('  bar   ');  
: v4 S  a* f' E' [6 W" @$ s0 V: x  -> 'bar' . K+ _( o- W$ M) b3 W, W, B% @  |* v0 ^
mysql> select trim(leading 'x' from 'xxxbarxxx');  
( H) M8 i1 l$ g. R  -> 'barxxx'
8 i1 F6 b# H! D- Q$ }! Q- hmysql> select trim(both 'x' from 'xxxbarxxx');  
6 N2 L" g0 e) E% F0 t+ t; a  -> 'bar' / R9 l0 \/ p8 y# t3 N$ t
mysql> select trim(trailing 'xyz' from 'barxxyz');  
! V6 M- L/ y* n5 {# E& E4 s- F  -> 'barx' 5 i$ `" K  V! m
' ]# v9 U2 J. C) y0 E+ Q
soundex(str)   1 W) H  O6 @- E0 O/ t+ m
返回str的一个同音字符串(听起来“大致相同”字符串有相同的
, {" [- p' K' R% j同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  0 c5 d% b0 r7 o: j3 a9 E) V
mysql> select soundex('hello');  
( |& _$ O7 `8 a8 O" @  -> 'h400'
3 ?% j1 u+ b" h. q' k0 Ymysql> select soundex('quadratically');  
5 _  d) ]" l9 L% s  -> 'q36324'
, @' g8 @9 ^% l, H- K" }6 w   6 h2 y9 P* `9 a+ Z
space(n)   
9 s# \4 Y$ J7 z' \  g3 `$ h8 C返回由n个空格字符组成的一个字符串  % |6 w' B8 G) [2 w5 \
mysql> select space(6);  3 H& W9 t+ E& X( \
  -> '      '   G+ I7 g  v/ v' x3 Z* A
   
2 V  u: B5 I$ q6 g! @5 d# qreplace(str,from_str,to_str)   ) H1 `& S' P9 g6 W! r
用字符串to_str替换字符串str中的子串from_str并返回  
4 I, H) J/ Y5 f+ S1 Q5 o" Amysql> select replace('www.mysql.com', 'w', 'ww');  
, C9 `1 `* ^6 H$ y% Z5 M  -> 'wwwwww.mysql.com'
& o( \4 V3 [4 w) }% w& ~6 q
" w# U' B( z( D( o5 h+ ^repeat(str,count)  
! \) A- M* U* m8 @  M7 |返回由count个字符串str连成的一个字符串(任何参数为null时3 r/ B6 o  T; p! c8 N1 D
返回null,count<=0时返回一个空字符串)  
( K) Y! t( ^" K- P6 L# V6 Z& Fmysql> select repeat('mysql', 3);  
% W) }6 }- ?9 ^: G7 S0 N0 u  -> 'mysqlmysqlmysql' 6 N  C( ]! D  p9 C$ E
   
; o. R( y  Z  b) e$ Y2 [4 breverse(str)   
; h% t( x2 T/ z# S7 o- y颠倒字符串str的字符顺序并返回  . H6 ], |# l' }) x( _
mysql> select reverse('abc');    v. e) N! S  m' C6 o
  -> 'cba'
" {9 ?8 g  L. I4 |- r* ^
! i4 G, k0 {- y0 ]  ]$ Iinsert(str,pos,len,newstr)   
# K6 O/ r; k% ^5 G- P把字符串str由位置pos起len个字符长的子串替换为字符串
4 d3 G) Y/ ]% U# E3 N) v6 nnewstr并返回  
0 Q/ E9 @  L) l- Z; U- imysql> select insert('quadratic', 3, 4, 'what');    `0 h& e7 A% C" X
  -> 'quwhattic' $ I& Q4 z" p: z# ?. C5 f7 T
2 _% f6 P: w' B$ ~9 t: U
elt(n,str1,str2,str3,...)   # T8 f$ h; ]7 W
返回第n个字符串(n小于1或大于参数个数返回null)  
: g3 r" T; b! f9 }9 L' s+ W4 xmysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  
0 M( J1 l( k9 I( @  -> 'ej' 9 B: \& n9 J9 B0 S0 f
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  
( I. n& ]' L# u6 z5 i/ _* a: d  -> 'foo'
+ L/ n* a* ^1 f) ]; n7 m. Q. I# Y
0 Q1 I  G7 r5 E& v4 C0 N' afield(str,str1,str2,str3,...)  
" V+ o0 k/ I+ n+ f/ h返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
  {( h, q$ _' w/ }2 m7 B5 |mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
; e, c9 b' }1 v'foo');  
, e0 e4 ~0 f9 E2 }4 B& n# W  -> 2  
3 E, g7 R- [( amysql> select field('fo', 'hej', 'ej', 'heja', 'hej',1 D# b; d3 M% a: s. x7 \: e$ W: f$ c
'foo');  3 G" z* p8 P5 H
  -> 0  
* N! z* j% G2 @0 m3 F: s5 I 6 G9 `" L) H9 F
find_in_set(str,strlist)   
6 |, N2 S( z- A/ s6 s; k- F8 \返回str在字符串集strlist中的序号(任何参数是null则返回
3 S6 w3 d9 R- f4 l$ s- e! U- Hnull,如果str没找到返回0,参数1包含","时工作异常)  5 _  H- e1 f2 R. M6 E
mysql> select find_in_set('b','a,b,c,d');  
" m7 ^. V4 i8 i  -> 2  & [, I2 R& K9 B3 e7 i6 E, D
   
4 V% B- b# G7 wmake_set(bits,str1,str2,...)  - B& c2 T% Q1 h
把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应. t; O& L3 Q) }/ m* y  t7 c" B% ?
位置的字串选入字串集并返回(null串不添加到结果中)  
; r2 Q; a) f/ r# Nmysql> select make_set(1,'a','b','c');  
  J! V8 |7 x, |/ P9 N# t6 Q  -> 'a'   B% `( A' `4 d2 E# e& |
mysql> select make_set(1 | 4,'hello','nice','world');  
2 `3 l, \8 |* z  -> 'hello,world'
' J5 I. k$ f# L0 s6 h) h- Gmysql> select make_set(0,'a','b','c');  9 a9 J  j# r/ }0 U1 w! i
  -> ''
& `( H6 k: U! m( p, v . l& s5 K  o: b9 U7 o' A2 j7 K
export_set(bits,on,off,[separator,[number_of_bits]])   
5 A! H) Q4 c! e5 F4 j按bits排列字符串集,只有当位等于1时插入字串on,否则插入
, W# h; n$ j7 a. C: _# ^! soff(separator默认值",",number_of_bits参数使用时长度不足补0
/ U( l/ x% S7 d& S: h* v而过长截断)   
- K; e  j3 ]# v& gmysql> select export_set(5,'y','n',',',4)  
) J' D+ F# r: @# ?. A" q* U5 E$ L  -> y,n,y,n   * Q& k( [  {, Z9 T
) A$ |+ W- i  U
lcase(str)  0 N9 r% U5 L3 X& ^: A* p4 o
lower(str)   
/ R8 a4 ^  F2 W+ a返回小写的字符串str  
( a( X$ [. S9 E. i8 Q) ~0 c, xmysql> select lcase('quadratically');  
' ?7 U/ Z) Y* f  -> 'quadratically'   [: B+ n8 G& e  e
   
: h" \+ Y- Q- ], z* Z! W0 t! Rucase(str)     ]7 b$ C8 L' [+ `8 D% z! Z
upper(str)  
) J; ~6 N. I1 v* O4 y返回大写的字符串str  
5 R' w9 R, P+ N4 T: Qmysql> select ucase('quadratically');  
4 M9 x! \( b6 E3 i/ N6 }% x  -> 'quadratically' 2 v  A- L/ b7 Y5 j0 w
1 J+ |7 X& \5 b1 T7 v
load_file(file_name)   ' n! M2 _" k. B, d% v
读入文件并且作为一个字符串返回文件内容(文件无法找到,路径( N5 d$ ~% w: e/ k! J0 C
不完整,没有权限,长度大于max_allowed_packet会返回null)  1 ^* d- m  W; J  m  Q7 u# s. s" g
mysql> update table_name set blob_column=load_file
' _! u, l& q5 X7 [7 P  ^("/tmp/picture") where id=1;  ) c3 W. w' T. s4 |
. o7 L0 _* v9 `4 W1 ^. ?+ v
2、数学函数
4 K5 i# Y3 @" O% {% `3 uabs(n)
* K- v% f2 E' V0 v6 x1 ?返回n的绝对值  
7 m6 G4 L3 g0 @* Dmysql> select abs(2);   
0 b: u6 y/ h* g( T  -> 2   
7 F; o$ `; g& R. k- Rmysql> select abs(-32);    & [6 c7 Y: f- U, \
  -> 32   
* c- q; a0 t3 p0 D# a7 S8 B   
9 R& p- w/ g. i4 Wsign(n)  
5 y0 _% I: k5 j  D4 m返回参数的符号(为-1、0或1)  / d& B4 p2 G& q! J, b0 T2 J/ B
mysql> select sign(-32);   
- s% x8 K; d7 W' \  -> -1    $ V, b+ h6 |- c* y$ a
mysql> select sign(0);    6 K6 M; f0 P* z4 c. v- h
  -> 0    4 N& ?3 F5 u! o4 a1 w$ s
mysql> select sign(234);   
( U9 [+ K& {0 L& u: H2 W  -> 1   
1 i3 \' S' S- A. k! @  k+ D5 p/ S ; z. K" O" r. b3 h( Z; p
mod(n,m)    ( i, r  c% j. Y& j' o9 t+ X
取模运算,返回n被m除的余数(同%操作符)    6 O* D# x1 X! L- J7 `
mysql> select mod(234, 10);   
1 t% ^5 z5 C  G7 ~' v$ `/ {3 z  -> 4    7 C: p- z- x, I* ?
mysql> select 234 % 10;   
3 z# r; K3 M( e7 I  -> 4   
7 Y7 H- ^( V6 V) z3 Mmysql> select mod(29,9);    $ j4 ^6 X2 p% [# b2 U2 j
  -> 2   
! B* u7 w( m$ W- ^  ~; ^ 8 I* A/ a) S2 [! j/ U% d. @; Q
floor(n)  4 v4 M4 ^+ s3 ~- P5 Y
返回不大于n的最大整数值  & o6 y/ ^. H- f; A" L2 B$ o: C" o
mysql> select floor(1.23);    7 O, b- k: [6 O1 v; X0 c' d1 |7 L
  -> 1    : n% n5 b8 y+ C
mysql> select floor(-1.23);    8 v8 ~6 H' X3 X2 ~+ L
  -> -2    5 U8 i$ H* L% B# b! {$ {) A
! P+ r9 w1 a: g( P
ceiling(n)  2 X0 x3 Z* p. t  a. U' Z
返回不小于n的最小整数值  , W% w* K) {% Q. u
mysql> select ceiling(1.23);   
1 S. u+ X. G) v  -> 2    6 a; D! p) f" y/ v) b
mysql> select ceiling(-1.23);    $ N7 y& y+ G3 w% }- f! `6 I& T; Y
  -> -1   
6 j* X! ?1 P! O9 ~/ W, j. T9 G   t! Y; S) H% A
round(n,d)  $ Y: E3 X  w& N2 S4 B" v
返回n的四舍五入值,保留d位小数(d的默认值为0)  6 Z1 Y- y/ C0 d: b" t; b& m9 B
mysql> select round(-1.23);    + C% X5 j8 @# ~- w" D9 o9 d
  -> -1   
+ }. Y/ t$ I* V( y  |' b4 H! Pmysql> select round(-1.58);    7 g2 u/ d% ]3 h* X, r9 y$ W
  -> -2    0 r6 R" v+ N. N( I+ [0 O. |
mysql> select round(1.58);   
7 z$ `  r; V/ S  j8 W. L2 n  -> 2   
' O  R( l% o: K  V5 Ymysql> select round(1.298, 1);   
$ k2 f( R" ^$ D) e3 z  -> 1.3   
2 A0 t& ~7 B# g. D4 Imysql> select round(1.298, 0);   
: O: B7 s( Q2 d1 j; Q$ M/ O1 j  -> 1   
( d5 E8 U7 S% q & Q* F2 s) |, k2 N
exp(n)  8 D; p7 w# M0 l: j
返回值e的n次方(自然对数的底)  2 z$ ~5 ~' h: C; q4 i& O( s3 x
mysql> select exp(2);   
& c% s& C5 M& v, a* V. b/ N  -> 7.389056    $ Y, r/ Z. G) ~) P2 U4 }
mysql> select exp(-2);    ( d- c* m& m' z
  -> 0.135335   
3 h% O, i: Z4 d6 @( s& @" w ' ~1 t8 I, p8 Y6 }! V
log(n)  
9 G& ?; O1 H  K2 k  d1 [% v2 Z: t返回n的自然对数  
  e% d, M" t- N* |- F! b, Y3 g- Emysql> select log(2);   
. l& c% v# g+ ^$ e0 C) H  -> 0.693147    5 P, i" Z- H* P5 a5 G9 q& q# a
mysql> select log(-2);   
$ m9 F) ^; x. |% K- r/ g  -> null    . {! L9 e$ s7 K5 K9 ?2 q1 d& w% v% `
3 G' ?9 T% h+ v- F
log10(n)  % y" a& ^0 `2 L  _# w8 j/ g# H
返回n以10为底的对数  ! J+ L5 y' M; W3 h- }8 k: d3 G" c5 a
mysql> select log10(2);   
" `. M' j2 W$ O  -> 0.301030    ' r. e( i; x  U. w! t/ v, S
mysql> select log10(100);    , ?' R1 S6 F* z; L/ J+ q
  -> 2.000000    4 `7 g. n( V: `# W( A' C; X
mysql> select log10(-100);   
3 U/ G  j; P  X+ d0 B7 W% i  -> null    % ^; Q0 P" @- ]+ G

0 q' ?8 k+ x) G4 U3 n8 Y0 Upow(x,y)    2 \, c0 a9 _; O- a5 t
power(x,y)    / w, P# Z& R! F
 返回值x的y次幂  
( S& u0 w, x/ ~: h- e+ _mysql> select pow(2,2);   
; E: B8 S( `7 c' v8 k6 F  -> 4.000000    : j5 @/ \6 o3 r8 f
mysql> select pow(2,-2);    ( @. Q* y5 S% Q) R5 J
  -> 0.250000  4 ^' u- W2 G: m. E# K
: L4 G+ q% L3 F  L
sqrt(n)  & T' y' x7 v  q1 e  n
 返回非负数n的平方根  
, v) e# i; ?6 K9 E1 @" [  k5 ]% u2 umysql> select sqrt(4);    ! O5 w, t$ W2 S/ ^6 {( T
  -> 2.000000   
# v$ V- i. ]& E  S; |mysql> select sqrt(20);   
1 W8 R% J* E( |8 H  -> 4.472136    ) j* ~1 ~; J9 K9 _) o

- Q/ c* O+ h  k. r: v  Xpi()    8 J7 ~9 J9 z7 ~  y
 返回圆周率   - R, b0 b: z6 N, G
mysql> select pi();   
5 w. P. g4 K9 `  -> 3.141593   
: s0 r8 [# C- y  s
6 B) x2 Z  L: k; C+ ^  v/ Qcos(n)  
0 U# H/ e& m5 n# | 返回n的余弦值  
& c* ^7 K- J4 l. P0 ]2 K) Mmysql> select cos(pi());  
5 X0 \, S: @5 i1 \  -> -1.000000    ! A; k' e7 F! U# ^) G5 z
8 M1 L1 w1 T) x( }
sin(n)  
3 G; x" X0 p* B 返回n的正弦值   
) {0 a* v: d+ P! g; N( G' e0 Imysql> select sin(pi());    8 S6 K5 b9 V5 ^4 ]
  -> 0.000000   
1 D! A8 O3 l8 @1 K$ B
( i, z! v0 Q* G) `  ttan(n)  
: B% ?/ h3 p! P& h, v返回n的正切值  
7 J" ^6 Q: G; O* S: z* b$ h% E/ Kmysql> select tan(pi()+1);   
* `% |. o) u; f( [2 }' {  -> 1.557408   
$ @* {; {' o! s! s3 ^  e0 u) a' p9 G
) S4 N! q1 n" w; y4 }9 ~& Q) sacos(n)  ) w* `6 b  B$ }: H
 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  
5 O5 a* z2 u$ b2 D  rmysql> select acos(1);    6 I5 G& B" d2 @, v
  -> 0.000000   
! k& w' A$ C" b* C# lmysql> select acos(1.0001);    7 g0 y. W+ N: }+ C
  -> null   
5 r. g' Q* ]; u' T' zmysql> select acos(0);    0 `1 t& K8 J$ X; N& D- T. P; K4 ~
  -> 1.570796    + z( Z% j: Q# D' y4 _& j

2 C- X/ g5 ?- l. l: basin(n)  
8 r; S( t5 i( L9 {1 g$ q6 T返回n反正弦值  
8 H* U. z" I8 X; T- Y8 A! a, Nmysql> select asin(0.2);   
, \  E  j. f; {! @6 B9 q  -> 0.201358   
, n' w2 J7 M0 f5 z, rmysql> select asin('foo');    ' Y' `& {* r1 y
  -> 0.000000   
2 v8 A5 s2 Q* T! G/ X3 R9 L" @- }5 B
" r0 i: |7 ^8 f9 A4 Aatan(n)  9 J$ u! {1 |" H
返回n的反正切值  
) j7 K! N6 t# a( ^( W1 ]' V6 L9 J" a5 Wmysql> select atan(2);    + e) X6 Y. E  R( g
  -> 1.107149    / Y% J# D# O  s+ j$ P8 Y
mysql> select atan(-2);   
( u5 H! I$ f2 c) X  -> -1.107149   
0 }+ U/ u1 y' E6 f( P9 E, |atan2(x,y)   
! O) i5 ~5 X8 V( ~8 Q4 p- J 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  6 y7 u; y7 b4 U& f5 g
mysql> select atan(-2,2);    ( Q+ l' P% S( I9 Z
  -> -0.785398    & }. m) N, D8 {5 M, A& a6 A; Q( h+ g
mysql> select atan(pi(),0);    1 N! z! E; {4 G* i
  -> 1.570796   
, W: E* a- y  H9 | . C' D9 w, ]6 ]( c9 [6 v' \% G
cot(n)  
$ O8 [5 x1 N# q) ?, u5 f返回x的余切  
, m  l9 t( g6 ^  qmysql> select cot(12);   
6 E: k/ V% b6 }# _2 j  m" V7 K  -> -1.57267341    7 ^6 O+ H) A' E0 ]) M3 X1 E
mysql> select cot(0);   
. W3 @. k, c+ W- ^% ?3 k6 z  -> null    - }  W; _( ]1 y9 a

, H" `( R  H" _2 H( Wrand()  
+ l. i7 w) @* g: {. F0 prand(n)    - x/ w# [5 w1 U2 R( ~& q8 v0 _2 ?# J  A
返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值) , {8 z5 q9 q) A2 u2 x

) Z4 J3 \0 r9 {' a* b! g5 h, bmysql> select rand();    % k: n8 H! E- M8 N9 Z. P0 Y6 u7 U
  -> 0.5925   
! X1 e* g. p% H) O8 B, n' xmysql> select rand(20);   
( s, B$ l  G- ~  Y' y  h2 h  -> 0.1811    / J6 K5 x$ e/ _& R
mysql> select rand(20);   
# }6 H' g1 i, Z  -> 0.1811    ! e' P/ }6 s  f. D! H
mysql> select rand();   
( i8 Q5 I  y0 w. Y, ~  -> 0.2079   
9 q. R. m7 p  o' nmysql> select rand();    # ~( J. u# b1 w7 m* g
  -> 0.7888   
9 F5 }0 `; u# V" c9 m' l
" S# Z9 v, ^& ^: H" k: k& sdegrees(n)  
! T! j! ^! y" v/ O  h把n从弧度变换为角度并返回  
" J( K: i& C9 Q7 w8 hmysql> select degrees(pi());   
. c4 w* P6 c/ d8 X2 e  -> 180.000000    $ D. h7 Z" e9 u
3 |* e+ s; F# |* l" P1 O+ z4 ^
radians(n)
3 j* M8 v9 \4 Y, o把n从角度变换为弧度并返回   & I3 [  ^7 }* T% o% t6 C6 `
mysql> select radians(90);   
- p' J3 b) Y6 D' F% G- O$ m  -> 1.570796    1 \  G3 ?4 p) k( @" [2 o: K

' G/ `1 L7 U8 ^* i% S5 b, Btruncate(n,d)    ( ~! G6 P7 ]1 H& o; Q+ Z
保留数字n的d位小数并返回  2 t, S; m5 ^& Z# e" \; B1 X1 k
mysql> select truncate(1.223,1);    0 {; v8 J& j# ^
  -> 1.2    ( T; u/ m' ?4 w# `& ~0 U; v0 p
mysql> select truncate(1.999,1);    9 o2 s2 |% v4 K& v/ i1 W
  -> 1.9    + f2 r! C4 h! M
mysql> select truncate(1.999,0);   
2 B" X/ L! P6 s8 G2 `+ S7 x, X  -> 1    ; U$ q9 {2 x& {2 s

( V" r8 F  x& R! fleast(x,y,...)   
  \, h$ I8 T+ V6 H& ?返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
/ h& Y1 M1 s+ }- Fmysql> select least(2,0);   
4 c+ n; ?& C. f9 k4 C  -> 0   
2 b" V: Z7 A# I$ Y( R' {3 Gmysql> select least(34.0,3.0,5.0,767.0);    + a  ?& K3 h; [  {7 v/ M( a& K# @
  -> 3.0    - s+ ^( g: Z" K+ Q; M+ `
mysql> select least("b","a","c");    + @. S) t  c7 z% Z7 x! b% T1 s
  -> "a"   
: x$ _+ ]% o5 I; a- y
) [! R) ^: ^, t6 T! o7 q8 A8 pgreatest(x,y,...)   
# T5 |2 ^( ?0 y6 k8 ]: q返回最大值(其余同least())  . T: x9 Q& X' h2 u' }1 C5 [+ S
mysql> select greatest(2,0);    8 n  ?% \6 E8 X9 E: d
  -> 2    ! j2 O+ o! `  ]  H/ e
mysql> select greatest(34.0,3.0,5.0,767.0);    # O6 k! ~# _, r6 l  J
  -> 767.0   
$ G( |1 J4 w; \3 u* hmysql> select greatest("b","a","c");   
& ~# S; W1 t- k  -> "c"     * u, I) J* V) D& D* r! i/ O& I7 P
; t8 C4 [8 \- r' J% B
3、时期时间函数 8 q. R, c2 Q- y3 {
dayofweek(date)    9 y, ~: z, A+ p2 r" A2 r; Z
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
, C' d8 W4 D5 G# ^1 imysql> select dayofweek('1998-02-03');    3 C7 i; n8 m, C4 q; Z  y3 K
  -> 3    ( v3 B; V7 Q/ ?2 r, p/ s- b
& i7 V3 o# `, L( v1 k# I2 y6 \
weekday(date)    1 v7 m7 d( D& E' D; e. \
返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
' o6 h7 ^$ M) W1 b0 f( q+ L  
2 b0 j" X' C9 j! _mysql> select weekday('1997-10-04 22:23:00');    $ s6 ]" K# M: o8 s) G
  -> 5    * V: h0 B$ [% Q; D' C, W- y3 v8 Z% Y) t
mysql> select weekday('1997-11-05');    % B2 v5 U: s$ I- ?1 I% L
  -> 2      e  e7 D3 m1 Q$ B4 @

0 U( N& |4 s' Xdayofmonth(date)    ; G0 |6 ?% S4 m
返回date是一月中的第几日(在1到31范围内)   
- ]3 l0 b9 c- n  Q$ L3 Gmysql> select dayofmonth('1998-02-03');   
4 P. Z* F  w9 G8 e! b6 e  -> 3    ! C# U  ~$ h7 Q/ h  \# D

. ]% z. @& H" E3 n8 A* Sdayofyear(date)    * M) m% Z2 K/ `, L. Y
返回date是一年中的第几日(在1到366范围内)    7 ]3 X1 j1 t" ]1 G* T6 r/ w+ u$ a7 f
mysql> select dayofyear('1998-02-03');    & n  r: O. O) S+ F
  -> 34    6 n2 c3 H6 x' Z4 b- Q. Y
' t( Z1 ~5 {$ w" h0 h; ^
month(date)    & s) O# R9 p4 s" {
返回date中的月份数值    1 h1 L6 j9 {6 L; o3 R6 Y2 N
mysql> select month('1998-02-03');    0 t$ P& e& @  X
  -> 2   
/ D' {! p/ _0 O+ G + W1 k2 {* G4 J, C/ \+ Z: W6 i) r: V' L
dayname(date)   
4 _* \7 {% _& I6 y: a& l& u) `! Z; X# }返回date是星期几(按英文名返回)  * \" C' o8 F) v8 U6 [% D- c& ^
mysql> select dayname("1998-02-05");   
3 B8 x1 B6 V9 M+ _+ A5 S  -> 'thursday'    5 w* Z7 ]; ]0 c( w" {+ s- l' L- b

9 B: R) u( i! C, b9 xmonthname(date)    $ }  R" D, I" M# r  i- }0 Z* I3 S" {
返回date是几月(按英文名返回)  
4 l  M6 v  |* J$ n# a' ~* @( Tmysql> select monthname("1998-02-05");   
0 S  s8 B& j. r; @1 s" n) p  -> 'february'    + m# h: p' x" O

( f7 \% |) z* I  t- }quarter(date)   
2 ?" H9 S& C' x! n9 {返回date是一年的第几个季度   
- {6 ?: G- @% ^mysql> select quarter('98-04-01');   
9 G$ z5 H. `1 i: }( n3 B7 ^* F  -> 2    5 f( l9 T7 V* z

4 {7 ]& x2 W  E4 H; ~week(date,first)   
! E- t1 g, L9 t% ^  {2 L1 [返回date是一年的第几周(first默认值0,first取值1表示周一是
) a1 H' ^  o3 \6 i2 [周的开始,0从周日开始)  , u' i# a% U7 }6 d1 W% Y
mysql> select week('1998-02-20');   
: I/ i- r5 F' s4 k! J  -> 7    $ p  r* ]0 \$ F& e+ m
mysql> select week('1998-02-20',0);    / C9 X7 ]$ b# L: d
  -> 7   
% K. Z& z+ ]4 S, c/ Kmysql> select week('1998-02-20',1);    ( \8 A: R6 Z+ y+ `+ G' ?, B
  -> 8    * Z& X. N& P: w0 K* w: w% r5 F
$ U* N7 j) n# F, [0 f4 D2 x5 h& l
year(date)    : Z2 }/ B2 W. k% {
返回date的年份(范围在1000到9999)   
1 P- l. Z) f# @4 ], Nmysql> select year('98-02-03');    ' K* `6 v! v3 S2 I2 e/ r; z
  -> 1998    - _' m5 }# o1 Z2 `

: \' \2 i8 W' x5 i) r* e$ R: ohour(time)    
7 o% |# ]- K) p" B( I, y返回time的小时数(范围是0到23)   ; H; k/ y4 {9 g5 K2 u
mysql> select hour('10:05:03');    # q  _1 u, U. M' {, m2 S/ M
  -> 10    5 a! A, p. n7 n6 b$ l! k1 E

6 o2 Q1 k& s. b  a& p7 @$ Dminute(time)    8 U/ x8 Z6 s" D" D2 `. i
返回time的分钟数(范围是0到59)   
) b$ P8 J4 ^" s2 m( I% W" Zmysql> select minute('98-02-03 10:05:03');    / p3 |8 r# d' ?' x# I9 o4 z
  -> 5    # u+ ~& G7 J" G& b+ `" {
3 P# C& F) X( |; s
second(time)    * F0 D# l& ]: U& ^4 Z
返回time的秒数(范围是0到59)   # {) @1 V7 N, I/ ~) `- d4 x
mysql> select second('10:05:03');    & I0 M9 x2 n) ?. }+ R
  -> 3   
1 G) X6 K6 v8 {
, {, ?$ V* @; ?9 A1 b  Nperiod_add(p,n)   
- q6 _  E+ h: R* H增加n个月到时期p并返回(p的格式yymm或yyyymm)    ) }& U+ a( f+ Z4 N4 N4 P: Q
mysql> select period_add(9801,2);   
9 ], k4 l9 P4 A0 N# \( z  -> 199803   
4 F+ y2 _% ^/ t$ w
: P/ ~0 l  S( _- X% x0 }& Hperiod_diff(p1,p2)   
$ o4 _! l: H( c. T  C: x. h5 e返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  % x% ]: z8 B, [  n6 o
mysql> select period_diff(9802,199703);    ) Y! t! l$ U# L8 a* U
  -> 11   
( F4 [+ K7 q- s. \9 Z
& ^! c+ l: n# @, i0 M5 I9 Tdate_add(date,interval expr type)  + t2 d5 s- L) E1 e: a% E1 M
date_sub(date,interval expr type)    $ B5 B6 A3 r0 H9 p6 v9 X3 a5 G
adddate(date,interval expr type)   
1 {! l: y+ x% ^4 csubdate(date,interval expr type)  
% B3 X8 C! F$ O3 b2 L对日期时间进行加减法运算  1 x- n% {7 |  ]! h" @8 [; c
(adddate()和subdate()是date_add()和date_sub()的同义词,也, K6 z4 m: ^+ L& ]7 b
可以用运算符+和-而不是函数  
! {4 ]' P3 B" a+ M; \2 i% W  Odate是一个datetime或date值,expr对date进行加减法的一个表
0 C5 ]/ F+ }- @! n  l1 M达式字符串type指明表达式expr应该如何被解释  
" w0 Y& _4 Y+ X1 Z [type值 含义 期望的expr格式]:  , {, p* W- A# @% g* f. ~$ ~0 M" S
 second 秒 seconds    " ]' y9 b% ^6 u! c# s8 w1 E& b! R
 minute 分钟 minutes   
2 n# L/ g2 s) M' m" F8 [& U hour 时间 hours   
4 A$ V7 v; r* s; O/ v0 m day 天 days    3 ~! v' n0 P) w, D. r5 T6 D
 month 月 months    ) d7 p) q1 c( Y1 x9 A
 year 年 years   
9 P  Z* v2 R6 a2 P minute_second 分钟和秒 "minutes:seconds"   
/ y8 j4 {. M& H2 m hour_minute 小时和分钟 "hours:minutes"    5 h, i+ o9 j% y+ w& j
 day_hour 天和小时 "days hours"   
2 W/ k6 {' M5 o! V$ r* e year_month 年和月 "years-months"    ; A) j- B* `2 K3 g
 hour_second 小时, 分钟, "hours:minutes:seconds"   
- t, z4 V5 M8 W! v: F. E# U day_minute 天, 小时, 分钟 "days hours:minutes"   
5 t$ P( n" x' `. F* n' u/ } day_second 天, 小时, 分钟, 秒 "days
5 C( [8 M: B2 u' T9 rhours:minutes:seconds" % x+ B' @" V  `" z6 G/ W
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个
" I8 w  k2 n  W/ Z% I  Q1 Jdate值,否则结果是一个datetime值)  ! \7 k5 N/ Q' z# c
 如果type关键词不完整,则mysql从右端取值,day_second因为缺+ x0 y  \; ], O2 z
少小时分钟等于minute_second)  
( k; ?5 G# f& u. V: z 如果增加month、year_month或year,天数大于结果月份的最大天# F+ u9 Y, P, Q6 r% \; e' ?! G
数则使用最大天数)   
* v% M$ m( S" tmysql> select "1997-12-31 23:59:59" + interval 1 second;  
4 H5 j, \% i/ N 9 Y3 @& e' q; g
  -> 1998-01-01 00:00:00    + ~( t/ p7 b& g9 I  G! Z7 w2 C) m( U8 q
mysql> select interval 1 day + "1997-12-31";   
8 B' F5 I  i' A+ c+ O  -> 1998-01-01    5 b9 k, e, M; {0 M5 Z% ^8 j. e
mysql> select "1998-01-01" - interval 1 second;    + [$ |4 N1 k- _
  -> 1997-12-31 23:59:59    , S: j" u  o& i" d' u6 i
mysql> select date_add("1997-12-31 23:59:59",interval 1
1 p5 b& _# t, Z$ Z) F3 ?# n0 |0 R; {second);   
+ u/ m  t: a* }" N" R5 d  -> 1998-01-01 00:00:00   
# r: d4 Z5 B, Omysql> select date_add("1997-12-31 23:59:59",interval 1, G' m& t& t# a( O
day);    " S5 T( Q" m3 A2 _9 l
  -> 1998-01-01 23:59:59   
) Q6 o/ K) G) o$ t, x2 rmysql> select date_add("1997-12-31 23:59:59",interval8 t4 M# y$ G  |- v
"1:1" minute_second);    ! P7 j# l1 }" q( I* E# g
  -> 1998-01-01 00:01:00   
; L( H0 d% g6 Emysql> select date_sub("1998-01-01 00:00:00",interval "1
, k+ q% p1 }4 s3 t" V9 n; E1:1:1" day_second);   
, ]5 Z; x) C7 x* g  -> 1997-12-30 22:58:59    1 g  W8 ~' j) U
mysql> select date_add("1998-01-01 00:00:00", interval "-1
" B% O: W7 f# x# i" V. u10" day_hour);  5 c0 m1 j  l, j. U
  -> 1997-12-30 14:00:00   
# ^8 j, K, F3 i7 c* Pmysql> select date_sub("1998-01-02", interval 31 day);    3 n% Q  T/ u! H, `. x" V: Z
  -> 1997-12-02   
1 \; Q) {; z& Z! D+ g! Cmysql> select extract(year from "1999-07-02");   
1 Z- {+ p( T6 L; T! m  -> 1999    0 G9 g$ d  C0 m" O- e8 M: I6 D
mysql> select extract(year_month from "1999-07-02  O1 v3 L' a& h! G/ A
01:02:03");   
) n* _  g9 T. t2 D. V1 N/ S4 Q3 u  -> 199907   
* f" v2 E  h0 N) J$ hmysql> select extract(day_minute from "1999-07-02
. u$ M. A1 G8 k! N$ Q" G01:02:03");    ! A, p4 j$ y( d: Y& O
  -> 20102   
( D8 l+ _, [5 u+ y
  u/ p8 }) _% o; \to_days(date)    6 X2 v$ G+ p  i/ g: T8 j7 |/ z9 O
返回日期date是西元0年至今多少天(不计算1582年以前)  : Z# e* u, ?4 `4 r& Y% ], {
mysql> select to_days(950501);    4 e6 M6 I9 y* ?/ D3 `# t' H* R
  -> 728779   
0 z2 \' E* g' @, M& e6 _" D, Umysql> select to_days('1997-10-07');   
" v+ u& W4 f3 n  h0 }! O3 c  -> 729669    4 \) m- ]: f: }+ x
3 W  G' b# B/ Z1 T# q
from_days(n)   
4 ^% _/ X9 I! F0 Y+ T2 T7 h 给出西元0年至今多少天返回date值(不计算1582年以前)   2 J" N2 N& n0 m( y
mysql> select from_days(729669);   
. B3 B6 o6 p( y. s, F  [  -> '1997-10-07'   
5 ~9 Y3 Q3 b. F' Y8 a& t" m
& V1 ~. f, I* sdate_format(date,format)   
% Q  p$ V- W; U3 Q 根据format字符串格式化date值  2 k1 j0 ?9 X3 x3 [. I
 (在format字符串中可用标志符:  8 v! @" G( X' j1 a* Z9 e
 %m 月名字(january……december)    + \' @6 g6 f0 J
 %w 星期名字(sunday……saturday)    # I: S0 v0 V" S( I" ]
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    ! M4 p! l0 Q. i, _# Q1 ]8 z; S* F
 %y 年, 数字, 4 位    ' |" h- r+ \, {0 ]
 %y 年, 数字, 2 位      r  s+ x5 F; a6 K; R) D! r
 %a 缩写的星期名字(sun……sat)    . @0 H- @1 m/ i; U1 p
 %d 月份中的天数, 数字(00……31)   
7 n5 r* |1 G: k/ P" f %e 月份中的天数, 数字(0……31)   
0 ?2 h5 n- U3 N! f4 l( ~8 b$ o& t. R %m 月, 数字(01……12)   
% u8 V. j7 A$ o  d; W0 I %c 月, 数字(1……12)   
" s- V  A2 p) f+ x& S3 O. n) ]1 P" ~ %b 缩写的月份名字(jan……dec)   
7 e# m  H8 B! r: b9 L+ } %j 一年中的天数(001……366)   
3 V- {; v  a2 ] %h 小时(00……23)    ) e# T" Z( F( }
 %k 小时(0……23)    * y) x, C3 G9 k" u
 %h 小时(01……12)    & F* i+ G8 c& w& X
 %i 小时(01……12)    0 ~6 `  d9 i7 d/ h
 %l 小时(1……12)    6 u+ c1 N7 K- ?( z4 x: a5 F
 %i 分钟, 数字(00……59)   
; Y3 `; S. P$ l6 F. C( J %r 时间,12 小时(hh:mm:ss [ap]m)    / Q: k9 n: K3 c. Q; N$ p' x" r. |
 %t 时间,24 小时(hh:mm:ss)   
# J0 }7 r0 O2 d% g/ Y3 F %s 秒(00……59)    4 s% c. c: p! q8 \' \
 %s 秒(00……59)   
) O0 E. S4 |& w! l' Y %p am或pm    7 q- R7 e! {+ W6 E6 Q- v. r
 %w 一个星期中的天数(0=sunday ……6=saturday )   
1 [5 A: y( x2 M5 [( u %u 星期(0……52), 这里星期天是星期的第一天   
+ N& T( Z8 l' t8 k1 h %u 星期(0……52), 这里星期一是星期的第一天    1 k! v8 H. m" b: b
 %% 字符% )  
- O/ ~7 y% }( [0 {mysql> select date_format('1997-10-04 22:23:00','%w %m %
8 A( f, a! {0 A/ Q- a! O( ty');    ( g, Y! D. J$ Y. b
  -> 'saturday october 1997'   
% M2 K' b0 v6 u8 U8 Q; e2 g) Pmysql> select date_format('1997-10-04 22:23:00','%h:%i:%
+ ?" k9 ^9 c7 H5 f3 H6 Os');    : b! p, J2 L- x5 G3 U
  -> '22:23:00'   
5 E/ b! t9 E( N& hmysql> select date_format('1997-10-04 22:23:00','%d %y %a# i- ~' p6 Y3 S1 `7 r
%d %m %b %j');   
2 z. h8 s: m' H6 E) h5 p  -> '4th 97 sat 04 10 oct 277'    $ R* [% _" _( V
mysql> select date_format('1997-10-04 22:23:00','%h %k %i9 }1 o/ x. A7 Z# g& `
%r %t %s %w');    1 x; M0 r) D# E9 u9 p
  -> '22 22 10 10:23:00 pm 22:23:00 00 6'    0 P$ F5 n: ~& |7 S! [# v6 y, U4 J

2 [/ q, z/ g0 t  h9 s1 ]time_format(time,format)  # w" X$ H  C: W/ X( K/ Q
 和date_format()类似,但time_format只处理小时、分钟和秒(其0 w+ @7 X0 o$ m; t$ E  O
余符号产生一个null值或0)  ; s. p6 G6 d; `& g- q8 a
/ F9 t6 R( ^3 e! M8 l! i, G
curdate()     
! |: p* F( b8 L8 L1 y1 Ocurrent_date()  
4 l, d4 H  Y8 G6 R! D# f 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所$ o$ ?( p: a# \# q& o* [4 G
处上下文是字符串或数字)   
: N  ?: O8 x' F4 _8 D) k- hmysql> select curdate();    : z1 S9 H: h# @8 |% R
  -> '1997-12-15'    - L" O3 t: u& U$ D  m5 }! L. n
mysql> select curdate() + 0;   
! q7 c: b; H  `; U2 P; g! o  -> 19971215   
' y9 f! f7 Z( V% [4 c8 t3 J   B# T" d+ ]3 j3 N, F
curtime()   
: {* M9 N1 K8 Y: [* Ecurrent_time()  & k3 J, W+ ^; N. ]
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
8 S) t% h1 k5 b( C6 D$ j1 v1 ^9 V+ I  J下文是字符串或数字)      , W, O8 `) O, |* J  L$ @
mysql> select curtime();   
. N% W- w5 F2 d4 Y5 Z! m  -> '23:50:26'    ( J/ [0 K8 s. i4 Y+ S
mysql> select curtime() + 0;    ; ^! F9 @% o, P! @
  -> 235026   
. I0 H3 S. P; E! N! @8 J
5 n4 n" E% |4 ?now()    , L  e3 K' I  ^( F9 ?+ [9 [
sysdate()    . q0 ?$ L' d1 I" T, s9 x
current_timestamp()  
3 d6 `2 z3 u3 k5 ]) B2 a7 ] 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
2 P5 ]5 z$ N' A4 G% d8 i时间(根据返回值所处上下文是字符串或数字)     
2 B$ L! [5 ^* `+ [mysql> select now();   
$ t0 t3 f  r/ m- Y  -> '1997-12-15 23:50:26'    2 w& h0 g' x2 o' i' P' s
mysql> select now() + 0;    + o( T, ^5 h5 {( E/ J  q
  -> 19971215235026   
0 t2 s# o" q% K# V . V  L4 S; ?- v0 v) J/ s9 @: [5 j
unix_timestamp()    & D& a, n- P& |  ]  Z" {( m
unix_timestamp(date)   
" |5 m' A" K9 p: T1 M: P返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
& L5 Q8 ^, E- `# ~3 \, u数,date默认值为当前时间)  
$ t! r, }9 C4 Jmysql> select unix_timestamp();    # q  }1 q! S% [
  -> 882226357    9 R# c( S, {7 _. O& A
mysql> select unix_timestamp('1997-10-04 22:23:00');   
5 n6 b1 Z# r  @) M6 |' W  -> 875996580   
+ [; ]$ ~; \0 ?8 ]( Q$ O6 ~
) c1 @7 B% t7 K: W: n- sfrom_unixtime(unix_timestamp)    / b  {% O9 a- |/ r
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的
0 a" u- O& c/ [值(根据返回值所处上下文是字符串或数字)     
% a, `1 ]+ [5 e! f7 s, o: P, ^mysql> select from_unixtime(875996580);    ( B8 Z0 Z( g8 x' h
  -> '1997-10-04 22:23:00'   
9 a' B3 K) S6 A- ~mysql> select from_unixtime(875996580) + 0;   
2 u# `, n8 K$ v: y) @1 l0 d) P  -> 19971004222300   
" o8 H; d8 ]8 ?3 B9 O/ {. g) X6 E
! r* q8 ?) @+ V( q) j: D6 Q( \from_unixtime(unix_timestamp,format)    
9 e9 l" @6 D" V. j2 I0 }以format字符串格式返回时间戳的值  
+ J  `& j. w( K0 hmysql> select from_unixtime(unix_timestamp(),'%y %d %m %. q8 |& |- \  e( f( j
h:%i:%s %x');   
( W& o& [' Z1 e  -> '1997 23rd december 03:43:30 x'    4 B) I2 j% {0 R3 H/ C1 L# z7 C) f

* Z" Q3 |# i% y7 I. a9 [sec_to_time(seconds)   
6 E1 _- x( V$ q4 A. \4 E以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     ! C* o( S+ g3 T1 Q, i
mysql> select sec_to_time(2378);    3 l' \# @) w) H4 O+ r. U. ]; T
  -> '00:39:38'    ' o: O3 T2 T5 s5 R! k  s3 m
mysql> select sec_to_time(2378) + 0;   
+ e# U  f! \3 P3 S7 F% M0 G  -> 3938   
" f! J9 z& u, W. ]+ t 9 ~. c* Q6 R' T9 C
time_to_sec(time)    4 `* Q) p0 ^( k. O" z
返回time值有多少秒   
/ d& u6 A2 N- Q5 Mmysql> select time_to_sec('22:23:00');    9 g1 v6 c/ @- G  K4 W7 J, C, v3 D
  -> 80580    . C# e7 L# X2 K7 F4 V' W; b: K# |
mysql> select time_to_sec('00:39:38');   
. Z  W4 f* N3 Z" U  -> 2378 8 n; G$ T4 Y6 r4 l& T
; z! p2 u1 j( Y  b( r/ T
转换函数. @4 z. S" H& w- r4 w$ B' E
cast. i. p+ Y% C- Z5 I( ?
用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]
/ V+ j3 k7 L& Q+ \3 _7 O实例:select cast(a as unsigned) as b from cardserver where order by b desc;5 {% g( z3 v6 ?& ^- J! ?
convert:
' O9 ]- |# E' w/ ]/ R, K用法:convert(字段,数据类型)
; [6 t3 |" u% I5 L+ w0 z实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

" ?. s$ o9 z) c
回复

使用道具 举报

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

本版积分规则

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