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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数
3 _# U* i  d) R$ w& n, X' q7 {ascii(str)   9 ~  w+ t+ r) D! D( u3 a
返回字符串str的第一个字符的ascii值(str是空串时返回0)  + K5 K; E  P/ |) g6 ]
mysql> select ascii('2');  
# M% N; v/ N7 c* }* J6 v4 f  -> 50  5 q9 O: o& |2 R) L. u; d, U! J
mysql> select ascii(2);  $ T2 x( ?! d1 ]5 d
  -> 50  " q; `: ^$ b6 \# z
mysql> select ascii('dete');  2 u* z- A! e& A) |
  -> 100
- u- m. o& W( N5 z. }! Q
ord(str)   * w% I0 I( ~6 _( G( g. K) h/ L
如果字符串str句首是单字节返回与ascii()函数返回的相同值。
3 l: \. c: J' }' m' D! b
, {8 n7 ~2 S. K6 w# a如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  $ n- P* d! t5 i) o4 S
mysql> select ord('2');  
5 p( X! ~9 ?3 `9 n/ |: L+ S  -> 50  * q" @# t) J- t* Z
   
0 G- u7 Z  N2 h+ G  D! k: I, iconv(n,from_base,to_base)   
. G- f) @: D! {! w6 z对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  5 k0 N4 u9 j. r  d4 [- W# K+ G
mysql> select conv("a",16,2);  
  c/ Q0 W4 z) d, J" n! u" L& [  -> '1010' : U1 ^6 X" Z3 K5 }$ W- g
mysql> select conv("6e",18,8);  
( [- w  Q9 X; h- o; y5 G  -> '172'
& L& H/ L% N, h$ x& f9 s1 Xmysql> select conv(-17,10,-18);  
- f( h$ m) s+ ^" |1 b5 a9 i1 ^  -> '-h' ; m. G: U- I1 f# l; j. [
mysql> select conv(10+"10"+'10'+0xa,10,10);  
- o1 w- |' z! E* Z& I, V8 y  @  -> '40'
6 P1 ?# F" K" C1 a$ k* j0 A   
8 X6 [+ f% n, H+ H- o) Ubin(n)   & ~2 x1 |, k$ s' `  k
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
7 U% z% z( N, p. y6 imysql> select bin(12);  
1 y0 Z; y3 A  |/ A4 }$ Z* E  -> '1100' 1 u/ b) ~  B6 s5 i/ L/ S; g% B

. E& r: {. E4 `( T0 e- Yoct(n)   # T( T3 D5 Z+ [
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
8 d4 v1 q0 k; m) O1 K% F& m* xmysql> select oct(12);  & h+ {( k: u5 O$ \! ^0 Y. k
  -> '14' ( K; |+ b' F# L4 k
   
5 b$ k: F0 t2 f* L  w7 K1 lhex(n)   7 W% O# c0 a7 d1 }- k  D  U
把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  4 @- K6 D- _0 h+ k& t8 ?0 e3 `( c
mysql> select hex(255);  
2 d( l3 [) u* T. _  -> 'ff'
8 b  c0 V2 K2 w$ N5 i* R, ^   
1 e' G1 j* i/ K/ achar(n,...)   0 x+ _2 [6 z8 d6 f0 p0 l. t
返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   
9 @: {; D1 F, \mysql> select char(77,121,83,81,'76');  " q  W0 N$ t3 L5 ?- L+ o, [
  -> 'mysql' % S! U7 c- F5 |  E  k0 d8 M
mysql> select char(77,77.3,'77.3');  % ]* W- F# ]6 I: l
  -> 'mmm' 4 W1 _- I. \8 g/ E. J7 b) {
   
. ^! ]& W- T2 |$ Y8 |! ?% xconcat(str1,str2,...)  
8 m# i+ n/ ^7 o" F7 N; x把参数连成一个长字符串并返回(任何参数是null时返回null)  
) ]$ G- F5 M- W, u2 U( {2 B  Hmysql> select concat('my', 's', 'ql');  & t7 ?. }) v: Q
  -> 'mysql'
8 I" @8 ^: w' p% ]1 d7 zmysql> select concat('my', null, 'ql');  
& a, e8 |9 V. s8 A: j. a  -> null + \  x! s: o8 V+ x
mysql> select concat(14.3);  
* q" F( ^% ]# z6 f. O) X  -> '14.3' ( q! O) A2 P, ]% c

; O9 y2 g9 k/ v  Vlength(str)   
. Y: I9 x$ p- b( L2 O2 Goctet_length(str)  0 p0 x* _  J4 K
char_length(str)  / y( n9 {! g' W3 e; \! ?
character_length(str)  
9 ?. N: n6 M& B/ _- B: T  r& d返回字符串str的长度(对于多字节字符char_length仅计算一次)9 {5 T/ u) G% T1 R
mysql> select length('text');  
# I$ A) r$ N/ r( q  -> 4  ! Y1 D- v4 S" U  C- J: t
mysql> select octet_length('text');  ' p% y8 ^6 I2 |! j2 G6 U- T4 C+ p
  -> 4  
6 \8 y! \% t* s2 f3 `( C: Q
' p  s7 x9 H- Y8 ^! t1 I! |locate(substr,str)   * H9 i3 r9 L7 E8 @8 `! q4 ?
position(substr in str)   5 h" ^, h! o* M. a+ S
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
1 Q, u$ S% _: W8 ^3 Q9 `7 Rmysql> select locate('bar', 'foobarbar');  ) |( P. {) e* }# _  L* J" m$ O; k
  -> 4  
6 e* C+ t" v0 S  {. `mysql> select locate('xbar', 'foobar');  
0 r3 S# f5 m8 n  -> 0  
2 I( [3 U* h) Z1 W0 C# Q( w    ! i3 h* I5 G( z2 Y: B2 y# @1 `
locate(substr,str,pos)
) w8 n& a$ s# p- r3 U返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
& S4 x6 C2 \& o! I+ ?mysql> select locate('bar', 'foobarbar',5);  
3 k( Y0 v9 {5 V# [! {  -> 7  ( m6 D+ t% Z2 r
+ X* a1 R6 h% b! S
instr(str,substr)  
* [4 A% _5 D8 A$ z: F/ ]" q返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
: H& Q  L5 X$ D% V5 L0 [& z0 rmysql> select instr('foobarbar', 'bar');  ( ?6 @- I: s: W* v0 T* U1 U. H
  -> 4  . J7 f6 O4 Y, g- H2 k9 Q
mysql> select instr('xbar', 'foobar');  7 w. r; I# B0 k) `+ ]
  -> 0   
5 I5 ^1 [/ h; ~: V6 Y6 K; ] # J/ u7 t0 u0 Z# k
lpad(str,len,padstr)   
8 p- ?4 c1 {4 u) u# ~用字符串padstr填补str左端直到字串长度为len并返回  2 G# J6 _+ H6 x6 r0 }- l- r
mysql> select lpad('hi',4,'??');  
! y* |4 [+ {2 F+ x9 U4 p. }7 G  -> '??hi'
9 O" C5 x, D; e) ?! K& y" ^+ K   2 H/ M9 z: ~" Q
rpad(str,len,padstr)   
3 K  q6 g" I( a" M( J用字符串padstr填补str右端直到字串长度为len并返回  9 O9 a' ]  y4 S6 J  i" S
mysql> select rpad('hi',5,'?');  7 L+ f4 D/ v+ X9 }) u7 E: K$ a
  -> 'hi???'
& }* |, g  z  V2 g# m
" H& c' ~$ Y5 D4 e" j: ]left(str,len)   + x' a& Z6 Q! p  d( T1 x; t* x# [
返回字符串str的左端len个字符  
; i  @; M+ Z7 ]* ~8 v8 W, \mysql> select left('foobarbar', 5);  
) q% r( l6 X  G: Z4 _  -> 'fooba'
+ L) T2 i3 q& `" j # R- M* F" ]" F9 N
right(str,len)   + A2 u# a8 M$ e; `) j
返回字符串str的右端len个字符   
  _9 M# D& F# H. C3 N8 ymysql> select right('foobarbar', 4);  . r) s9 q4 p$ @6 O
  -> 'rbar' 7 M. K8 p  e6 w6 h% t: T4 J4 O% z
' i5 f& C4 S, X
substring(str,pos,len)   . f+ {" p; i! c4 \
substring(str from pos for len)   
' L+ ~8 X$ b3 P% O$ m; o6 R/ ^mid(str,pos,len)   
5 S- |8 `$ j' v返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  7 s; R9 C) E% I
  -> 'ratica'
/ X, t- A2 C4 ?( |- M/ f- N * O% b- w! }6 t3 p* ?% A1 U; P
substring(str,pos)   
" |0 i7 |1 ]* g  Qsubstring(str from pos)   * r# l* a4 d3 Q8 |# x0 l
返回字符串str的位置pos起的一个子串  
" p7 W& L  a9 Kmysql> select substring('quadratically',5);  3 N( A" i; p8 p$ g4 f8 _
  -> 'ratically' 1 _# i; N+ s2 c3 o, L0 ?
mysql> select substring('foobarbar' from 4);  . `% n: C% Q$ M" ?4 [
  -> 'barbar'
" e$ G* ]6 i9 E, k9 Y7 `0 z
- a* R4 }+ S- {3 m/ ^substring_index(str,delim,count)   
' k% {4 @& h* T. C8 O" ?( w0 }返回从字符串str的第count个出现的分隔符delim之后的子串6 G0 m/ R0 P9 [" w" t& [" i
(count为正数时返回左端,否则返回右端子串)  
# q4 j% H( |3 Q/ f0 F( Qmysql> select substring_index('www.mysql.com', '.', 2);  
  |% I0 @# R, I9 X( ~: s4 R7 [  s6 c  -> 'www.mysql' 3 J1 g. O) K- r1 i# Y7 A! T
mysql> select substring_index('www.mysql.com', '.', -2);  
: W, k" {+ J( R0 O  -> 'mysql.com'
0 H; R3 w. W0 \! J; d - p8 b, _* Q% R6 }4 N$ {
ltrim(str)   ; A1 ]  x5 @9 E1 ]
返回删除了左空格的字符串str  
/ ?& |8 A0 d3 pmysql> select ltrim('  barbar');  ! O$ n* M! _, U. f4 {' D
  -> 'barbar' 7 k0 L9 h+ }& R+ u  j  Q
* O% x% `; K! ~( v5 G. O
rtrim(str)   
% H% t$ h/ I* K* h( }  G8 z返回删除了右空格的字符串str  
! M+ k! A; _2 S& d9 n5 `: qmysql> select rtrim('barbar   ');  0 o+ K- o0 E8 o: N. C
  -> 'barbar'
5 B% G( W* {: s& o) F2 u* W, A/ m" w
. ]$ c+ c4 z. r1 H0 |! ?trim([[both | leading | trailing] [remstr] from] str)   ; F6 A) w! c6 q& w( _4 ?- n3 G
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  3 @: B0 M7 L  k( q: u/ o9 t0 A
mysql> select trim('  bar   ');  
; C+ p( ?% S/ r! c2 m- r  -> 'bar'
/ U- Y- A! J3 L" a& Z# Cmysql> select trim(leading 'x' from 'xxxbarxxx');  1 w1 i$ q, a8 X. G
  -> 'barxxx' 2 B+ Q2 Q8 t( b! t6 Z
mysql> select trim(both 'x' from 'xxxbarxxx');  ' H" r7 O& w4 ?, o) x" e
  -> 'bar'
& T$ ~! O6 j+ ]6 F! g0 imysql> select trim(trailing 'xyz' from 'barxxyz');  9 J& C4 k4 N' ?
  -> 'barx' 7 Q. p: Q$ Y+ t% F5 H' t

  q3 Z% h' _+ p, k; Msoundex(str)   
* E0 t+ {2 P2 U返回str的一个同音字符串(听起来“大致相同”字符串有相同的6 R2 F  G8 d8 }, x2 s" F3 a" _
同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  * q2 P& ?' R0 g0 o, ?
mysql> select soundex('hello');  2 j% s! J# }0 J" h7 h
  -> 'h400'
4 m& L4 e0 P( v9 T/ y' u6 pmysql> select soundex('quadratically');  
% @: J/ b/ M9 \; o# \! @  -> 'q36324'
0 W7 E; Z- M% ]6 T   . s0 A8 r6 ~) |9 p& A" D5 ?
space(n)   - u# b/ `* X. S+ ], v$ q6 j. M6 j
返回由n个空格字符组成的一个字符串  
: w$ C+ |  Y; cmysql> select space(6);  9 ^8 z" k9 @8 {0 H, e% T
  -> '      ' ; y: y- |7 ]3 t$ N2 ]* h
   8 n4 |% r. ~" j* Z- e7 l% A
replace(str,from_str,to_str)   
# w% t9 b9 Q7 w; h# ]$ x用字符串to_str替换字符串str中的子串from_str并返回  
& A# t( j+ ~/ @1 lmysql> select replace('www.mysql.com', 'w', 'ww');  
! \8 Q& i5 I- l$ D# y- d  -> 'wwwwww.mysql.com'
7 H" x5 u6 i& X$ o' F" f, B* C8 S 3 N& Q7 l7 M2 a3 h, O0 N
repeat(str,count)   6 F2 Y6 i8 C6 x
返回由count个字符串str连成的一个字符串(任何参数为null时5 `# ]5 y+ H) O4 |' W3 @1 l
返回null,count<=0时返回一个空字符串)  ' O1 b; O$ Q6 K1 z# O! z
mysql> select repeat('mysql', 3);  ; d; O" E4 y1 }; g7 S
  -> 'mysqlmysqlmysql' " P! d  b; H% R2 v3 R
   
% v* i+ A3 K0 _reverse(str)   
7 b0 f% l5 E) h  @: ]( F颠倒字符串str的字符顺序并返回  
) ?& }  K/ `9 w6 q2 b6 k+ Hmysql> select reverse('abc');  % k- ]) \% p2 {5 K( S) A
  -> 'cba'
8 O5 G$ X. v# ]$ X- X) D
; s8 f3 b3 I; t6 ~1 E7 Ninsert(str,pos,len,newstr)   
, c. F9 g& g  m9 ~; O7 @9 W- D把字符串str由位置pos起len个字符长的子串替换为字符串
& F( \9 o/ s# W- Y0 J8 \) `9 enewstr并返回  
/ Z9 c  P" T) B- M) cmysql> select insert('quadratic', 3, 4, 'what');  
) b2 Q! Q& V: n/ U; r. \/ o; Y+ @  -> 'quwhattic'
. A2 F: A! r7 s4 b+ s5 J
1 r  f7 E& G2 {5 e5 j- [' G3 W+ qelt(n,str1,str2,str3,...)   2 u0 y4 E# S: l1 d) F/ x( \. f
返回第n个字符串(n小于1或大于参数个数返回null)  
0 P, I9 k" k  u! A4 b7 _$ T, Y! Bmysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  ; C$ [6 h% [8 A$ K# O! c
  -> 'ej' 5 _+ r( [) j1 @! g9 f2 }; J& F
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  2 t- `3 Z# x. x, K: t! w  e, W5 p
  -> 'foo'
/ i0 r( [" O2 I: C2 } - B8 `/ ~- O! X0 H, x/ U' u5 n
field(str,str1,str2,str3,...)   / b: H$ Q" \; m
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  3 ^, F4 s" X* x! |8 c: u! q
mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
4 ~, W; S, p: m. V0 \3 n'foo');  + H2 B# q0 f3 C: X; d
  -> 2  + P* l- \7 R8 c/ f* A. K
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',, }6 ^( H, @" ?, N% x8 ^4 z' m( f! P/ z
'foo');  
2 C- Q9 Z0 b5 r3 O6 v& }  -> 0  
) M* L. x& j4 E3 q: [0 @* ] 1 D: ]. }) \, A5 N$ [
find_in_set(str,strlist)   
7 r: Y& f8 i( j# c; ^* @# p返回str在字符串集strlist中的序号(任何参数是null则返回. E3 Z$ |$ p" a8 m2 A6 M) p
null,如果str没找到返回0,参数1包含","时工作异常)  
5 j# `2 F/ J2 y" D+ _mysql> select find_in_set('b','a,b,c,d');  4 u3 {, K& k5 Q/ ]
  -> 2  ' e+ c0 t, P( r5 p% R4 |/ j# z
   
8 g6 R2 u. I) ~make_set(bits,str1,str2,...)  6 d+ W, b/ [7 E) Q' U
把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应8 A/ u7 Q) Y; R, \9 V
位置的字串选入字串集并返回(null串不添加到结果中)  ! z4 n1 k- P* |6 x. F1 }9 _
mysql> select make_set(1,'a','b','c');  
9 d1 p  H! n) [( L3 f; p' p6 M1 z  -> 'a' * [( ]: ~# J( S  @% ^
mysql> select make_set(1 | 4,'hello','nice','world');  % k- m2 N7 u8 q
  -> 'hello,world'
' n9 {: t; c, B6 F) N" ]8 {1 Qmysql> select make_set(0,'a','b','c');  " |/ @% W1 J: u3 {( [+ e
  -> ''
, _, Y0 o8 @2 x: c5 i
, t; I( f5 `* q& {4 Q# w$ Cexport_set(bits,on,off,[separator,[number_of_bits]])   
5 S4 X; e* Q7 @2 _- p0 R) w按bits排列字符串集,只有当位等于1时插入字串on,否则插入- m2 a! N( ^4 ~) T( o" C( u
off(separator默认值",",number_of_bits参数使用时长度不足补0
4 L( H, D4 @% F. U$ T  c而过长截断)   
  O: b: _  T  L0 r0 K* K$ H( a+ W7 Fmysql> select export_set(5,'y','n',',',4)  * ?" C9 f) o" I3 k& o
  -> y,n,y,n   ; ^. A$ _( v$ E  e5 L% h5 [
* g4 R7 @. J4 H9 J0 Q6 M( s
lcase(str)  
$ G  E% T( ^& ~4 l% P+ b( k8 K5 nlower(str)   
3 q5 ?' @+ i" O$ |" `7 s6 v- u返回小写的字符串str  . ]1 }/ T9 f) x- k- M; {/ `, ~7 {
mysql> select lcase('quadratically');  
. \- h! X3 D* E7 O: |! q  -> 'quadratically'
2 a' @* N9 R; b  E% h; t   & R- h/ V6 M4 ^
ucase(str)   8 j) C- W, ?/ z+ I; r' A! O8 U
upper(str)  
3 F; u  P' m" [2 ]# I返回大写的字符串str  
$ g& i" F6 ~$ {% ^0 t7 D$ jmysql> select ucase('quadratically');  
! v. {6 f7 j6 q+ e4 z7 x- o2 H  -> 'quadratically'
" P; J7 S* O5 |/ G$ M / F! ]& A3 f8 h8 P0 c
load_file(file_name)   
0 T6 ~* i1 g: F. d: K, s) W: e读入文件并且作为一个字符串返回文件内容(文件无法找到,路径
% f/ C. E0 f% J3 N, L& U不完整,没有权限,长度大于max_allowed_packet会返回null)  / \( ~2 e! k2 T* z& {! p! @
mysql> update table_name set blob_column=load_file4 [5 Z/ n) D6 ?. S" p
("/tmp/picture") where id=1;  
/ ?# X; y  I1 Q5 C* `$ e! q  Z ' n0 A$ ]+ O. G0 g2 B2 a( y0 n' y
2、数学函数
0 f. U* B; M) p: ^1 Y0 Uabs(n)
$ [9 q: ~9 V' g- j1 e返回n的绝对值  6 }/ R+ z  J# e/ q
mysql> select abs(2);    1 W& m+ F: m' H% Z1 ]7 n- v
  -> 2    9 L6 `" S* F" j4 a% }; z* |# X5 c: P
mysql> select abs(-32);    % i5 O# l, O6 [% Q8 f7 N
  -> 32   
5 U% `# l2 Q) l6 o5 N2 \9 q/ }   
0 g# q) P( E9 o! Psign(n)  
9 j! X5 [+ d- `5 @2 G' H& V返回参数的符号(为-1、0或1)  - B( o. n! K# @) G
mysql> select sign(-32);    ; X; H6 m: u7 \7 N) V" k! h
  -> -1    " y. J. M" |! u* u- V5 C! w
mysql> select sign(0);    $ Z1 n1 t: B* s. K( _. p% w
  -> 0   
- ?# Q# v! F9 p. k; L) x1 N( Nmysql> select sign(234);   
2 g  ]1 ?  W2 m3 F4 @3 x7 i" ]  -> 1    ( \4 e5 m' ~6 S# M$ J' L4 D
. n/ m# X3 ^0 j/ n# _
mod(n,m)    - S8 r" u2 q  \6 P! r2 {* C$ c5 p0 K
取模运算,返回n被m除的余数(同%操作符)    % u1 N6 j' p+ U3 }" \
mysql> select mod(234, 10);   
% X3 }! Q: O; {- o; j, `1 {( u3 M& K  -> 4   
! E$ S* U7 A: C1 \* Cmysql> select 234 % 10;    1 l3 x6 X7 e& K: `8 N
  -> 4    ' k' [( Z. \* Y( W
mysql> select mod(29,9);    " F; g: q- Z5 W
  -> 2    5 `; J- k& q& |% @

) f- l: h  A. G3 v$ l. qfloor(n)  
9 @; K, _; K0 p) K3 D! S返回不大于n的最大整数值  ' F( |) N( t  |
mysql> select floor(1.23);    " R  u; m, Y8 d  R1 g! ?
  -> 1   
% c- J; z2 _* H" Mmysql> select floor(-1.23);   
7 o/ i: q1 \' K/ V( A, D  -> -2    2 x0 t" @" x, u& g5 p2 S/ ^. ~

* ~- ?; U8 U" wceiling(n)  
3 U$ P+ k- w6 d返回不小于n的最小整数值  ' z/ [7 J0 R: `, g1 t
mysql> select ceiling(1.23);    3 R, [1 J* X  g- w6 M
  -> 2   
# f) v/ t. f. pmysql> select ceiling(-1.23);   
, I- G, G& i& Q, w8 s  -> -1    7 L* g; ^; ^, B

( u; {7 P8 Q0 r9 H; v; s$ ?! l' pround(n,d)  8 ^6 ]: j6 \' F, J( T
返回n的四舍五入值,保留d位小数(d的默认值为0)  
: _% Z' ^" v# g6 G) W" emysql> select round(-1.23);   
; s. e3 A% M3 \8 c5 ^  -> -1   
" G% W% Y+ G0 v% ymysql> select round(-1.58);    6 O& y& O; A5 D, j/ m- A
  -> -2    " W) V6 H/ A5 P9 t4 f# U
mysql> select round(1.58);    8 e8 N6 R1 x# `2 U
  -> 2   
. k) k2 [) B5 S" Z, }. m8 Kmysql> select round(1.298, 1);    # B+ J+ ^0 Z" X4 m
  -> 1.3    . L" u+ j; m4 c5 s
mysql> select round(1.298, 0);   
3 m0 u# K7 c; _  ^' T  -> 1   
( Q5 j' _# d# L ; Z" ~$ Q3 X6 Y
exp(n)  - g! U# C& i- ?+ ~& x
返回值e的n次方(自然对数的底)  ( r7 k3 H5 \; z1 y
mysql> select exp(2);   
  c) F. R8 _3 S1 u0 C! b  -> 7.389056    7 K8 X0 y, z( r; F% G7 Y
mysql> select exp(-2);    : h% B9 ?  k  M
  -> 0.135335   
& n3 Z5 l2 h$ j  z" b
5 D4 l4 e) d0 Zlog(n)  
( _" V3 E: |# W: s, \3 B返回n的自然对数  0 K/ u3 Y# h( i
mysql> select log(2);    : \, s7 ^) K/ t7 [  m' e4 C
  -> 0.693147    & C  C0 ^* M7 B4 u
mysql> select log(-2);   
5 O3 r, v: I% X* d# F% D/ `9 F1 C  -> null    # M# \" S- e$ i7 E
; `) y, ]% P# \9 V. V
log10(n)  8 a6 \* {; v% V, F( p  @- @. B( k: q( _
返回n以10为底的对数  + o7 s# @$ b6 n2 a3 a6 ?& r6 y
mysql> select log10(2);    ' Y( \3 Q# H, A4 U7 d6 ]5 `  M( N# u
  -> 0.301030    + J2 G- W2 C9 k3 B
mysql> select log10(100);    : g  x3 @. k! Q! ?  K2 o$ p
  -> 2.000000    3 D( D3 Y1 H: W0 K" z; m
mysql> select log10(-100);    - r4 b2 {3 T$ U! n6 `
  -> null   
: @& z  O& L# a" \0 ^0 g 5 r) z+ x; f7 ^% K9 ^
pow(x,y)   
2 Q' R: n: N4 x7 [  s  f. P' Qpower(x,y)   
, F4 q: D/ V  ~8 E% ~8 e8 S% Y 返回值x的y次幂  
: D+ q, z# F8 smysql> select pow(2,2);    + t) |5 o, J" W% D
  -> 4.000000   
% s# N/ X- m- y& o, bmysql> select pow(2,-2);    * v% Z. P& @- j9 ~6 r
  -> 0.250000  
: p9 r! r2 M' T6 i$ d7 H) m1 Y0 E' v0 ]4 g: r
sqrt(n)  ( l8 s/ B$ ?( o. y3 T8 _" a
 返回非负数n的平方根  
9 i$ s; ]! P8 F6 Q$ `0 {mysql> select sqrt(4);    * R  I" |* e* e% U$ `3 W) y" q& Q$ U
  -> 2.000000   
9 m4 c5 d9 x# b$ _6 s+ y- gmysql> select sqrt(20);    0 [+ F$ y7 ?; `6 M6 P$ ~
  -> 4.472136    1 J9 s7 `2 ~" K# i0 `- m. e2 D

1 Y. K6 e4 t% ]* q7 t/ ]pi()   
: I& c- `5 H% ?7 s0 H  ~: Y 返回圆周率   ; w: [& E% Z& v3 _
mysql> select pi();    / j" x; {1 D+ V* x3 M; B; J5 p
  -> 3.141593   
1 D1 f) X  _, `: J* G! z: a' `
; A9 f" x8 Z- ?cos(n)  
3 F" N; e7 L8 K8 H: ^, h5 a 返回n的余弦值  9 h7 |3 V9 d0 ]  ^: H
mysql> select cos(pi());  1 l9 x5 M2 L1 t8 p/ L* Q4 U
  -> -1.000000    # e: M- \' W# J; V. B: j, w

9 O; U; m& G& n  fsin(n)  
# T6 {; `! L0 Y' }) M" Z. b' ^ 返回n的正弦值   : g! F, a1 P9 D( ]9 }8 S
mysql> select sin(pi());    4 E# `0 \7 @1 ~1 ~
  -> 0.000000   
' ~( z% L9 l, R% _8 G $ V! l  B' z7 i8 K( Y# m; g! E1 p8 o
tan(n)  
7 F' ?" j& C& M6 A3 _! m. n返回n的正切值  
) Q2 }2 a2 |0 O) |4 \mysql> select tan(pi()+1);   
1 \6 v3 v6 J& z9 _9 C7 s0 }  -> 1.557408    6 |& T- n' Z, Z1 |' \( B
, J# L4 f. ~8 @- @3 ~
acos(n)  
$ N6 l% G+ J, T4 ~" Y5 ^7 B 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  
- h5 w4 E6 V. emysql> select acos(1);    ! A5 v' t$ q0 m+ t4 j1 c
  -> 0.000000   
# e5 N1 ~1 L8 v# R3 o* L. g% Smysql> select acos(1.0001);    9 u+ O4 V, {; X
  -> null    2 y  a) T: p5 [+ X
mysql> select acos(0);    6 q5 B7 R  D( a0 ]# L5 X& q/ W% n
  -> 1.570796    2 a2 b& ?+ f9 G$ j1 E3 q: `
  m1 v  G% Z# z$ K* e
asin(n)  ( I3 ^4 S$ g% s" p) Y6 g
返回n反正弦值  
( l; ~2 ]$ i( h/ l4 tmysql> select asin(0.2);    2 ^+ f3 _& W( C) \; u/ A! n
  -> 0.201358   
; I4 ~8 [7 ]! m/ V! o% ^0 Omysql> select asin('foo');    * u8 ?6 y, u6 `5 w; ]
  -> 0.000000    : t& n) M; A8 o+ z" ^

( c- d5 U4 {  v+ Matan(n)  2 d4 i; B9 M8 k* D/ Y1 X
返回n的反正切值  
: H, F5 t- m) }; w+ {1 [9 C  n$ Hmysql> select atan(2);   
5 z4 j" S* w4 i/ \  -> 1.107149   
) t4 w1 z. T( E8 o; D! Bmysql> select atan(-2);   
* c- V# c+ {$ }5 v' M% Z' ?  -> -1.107149   
3 E4 E( @# r  ^7 S8 ^atan2(x,y)   
. w1 f* |, @' C# u: {1 X; o, _ 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  
( s( t  e/ x8 tmysql> select atan(-2,2);   
; Z. D5 M3 w) \  -> -0.785398   
+ Z' G4 ^5 Y/ |3 d/ fmysql> select atan(pi(),0);   
4 [0 d8 c' A8 x+ b2 A1 Q: w  -> 1.570796   
6 h9 }( o5 ?+ t0 _8 C9 e- Z- n
, U# ]* D( ?5 S- J  Fcot(n)  4 l# ~8 |6 a. |2 H1 @' k8 k
返回x的余切  
9 ^7 ]' M5 A. f0 Umysql> select cot(12);   
+ s$ V& B3 H' G' a' H9 d  -> -1.57267341    / K7 j: Y: m5 ^% E  ]
mysql> select cot(0);    6 u; I9 s8 k& d: I9 H# I8 {  L; {
  -> null   
# o  H0 R5 a3 |# ^2 E$ M
5 [& v0 i' M0 T6 U( [rand()  ; e3 G9 a8 `) O
rand(n)    4 m1 E& i5 y8 B' ~9 c
返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值) ; x* m6 A) G3 ~

* I2 R; h3 u/ L& [. k) Dmysql> select rand();   
- t% w6 a  C" d' @3 D# e1 P9 I( U. Q  -> 0.5925    $ }% P6 u' O- s3 x' C3 [0 V
mysql> select rand(20);   
2 p% Z, K, R6 f9 o8 s9 V; ]( y  -> 0.1811    " Y& V7 d: |% }: |+ A
mysql> select rand(20);    $ L5 O+ _6 L$ ?# A1 o7 |! {
  -> 0.1811   
! p9 ~9 x9 g/ |/ w& ~8 Umysql> select rand();   
8 b# o- ]# V  ?! @/ G! R! w+ w  -> 0.2079    $ H  |# K. c( M/ w
mysql> select rand();    , ]# }! {' L0 T* X  [& p# y. B
  -> 0.7888   
" I2 q5 x: y+ V; w! c
8 \5 w, D2 R, W( r; @( Tdegrees(n)  - G( O' ~+ w, n# u
把n从弧度变换为角度并返回  ' ^* {2 }( I3 K1 p/ }6 T& f
mysql> select degrees(pi());    4 z$ L" v. C2 y/ x6 }' H5 o7 Z
  -> 180.000000    / x7 k" J. T' ?0 z7 w, ~

( b: g7 w. V+ L0 r; sradians(n) 6 a: y/ _' M7 U4 I4 U& E. {6 B6 l
把n从角度变换为弧度并返回   % e0 V2 w! ^* k7 d+ L, k+ O
mysql> select radians(90);   
4 z# Q6 @+ [8 {. f6 n4 ~  -> 1.570796    $ T. ]4 B+ o% j6 j" q2 {, [

* C; ~* g" w) atruncate(n,d)    ; l# I; F$ {2 v( l
保留数字n的d位小数并返回  
8 }9 e5 r1 F0 d7 L' Z* f0 G& Hmysql> select truncate(1.223,1);    ; e. s1 s6 v' _8 Y3 u
  -> 1.2    : {0 `# p( b+ ~* p" K) {
mysql> select truncate(1.999,1);   
; q% Z$ A! p% b- e1 w" K, Y  -> 1.9    7 C; H! f) X  C0 c5 Q
mysql> select truncate(1.999,0);   
+ o6 F9 Z( q( r& @8 z  -> 1    8 \) y, U1 V) l; x, {8 p& C. S% @

, w& q0 d& x; x5 n" @least(x,y,...)   
+ T  [* ?( H! _: i* o% V8 Y返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  1 m7 c7 v' V6 Y+ h8 c
mysql> select least(2,0);   
( k) m) c$ w/ Y, z# {) u6 O  -> 0    $ ]- F3 ]5 H& w2 {
mysql> select least(34.0,3.0,5.0,767.0);    / H1 N" [+ w" f  {& X
  -> 3.0   
! k8 ?1 h$ N$ j4 J6 M/ F& }mysql> select least("b","a","c");    2 L. _/ P! x* n8 c" V# T
  -> "a"   
! H4 N; ~; d# q# P; t4 X+ w
3 ~% J0 u2 y  [0 Tgreatest(x,y,...)   
0 ?; d1 \8 e  T+ J+ y2 q" \5 g返回最大值(其余同least())  
+ I9 g% C- V" h: m1 Nmysql> select greatest(2,0);      j* }2 ]* [/ w  }+ Y: {
  -> 2    . ^; o1 G. W' ~
mysql> select greatest(34.0,3.0,5.0,767.0);   
0 v. A3 {1 B0 k: G' i% y& l5 N  -> 767.0    * y! S3 [& J3 m3 T) ~+ O' I
mysql> select greatest("b","a","c");    + s% K: ~$ f% O. F+ t
  -> "c"     
  u* p1 H# N2 m0 F; u- G
3 c- p8 _) a: i6 B% n2 V3、时期时间函数 4 c9 L( ~8 F. s  @3 e
dayofweek(date)   
1 i' m& \$ v( q( m( A# y返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
9 o- S0 k9 r2 I7 c: E1 rmysql> select dayofweek('1998-02-03');   
# O- X9 W/ S6 O. i* i  -> 3   
$ V8 U9 q, H1 J# m' a; H6 D9 ~ $ M% P7 i! }: ?* \# L/ d6 H
weekday(date)   
! h" p1 v4 |; a8 h4 v5 C返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 0 x0 K% a5 h! K- I. L
  
* a, ^0 [1 H9 ?: }. rmysql> select weekday('1997-10-04 22:23:00');    % X" f$ \) w, _0 R
  -> 5    1 N5 V. T# @& U' |0 {! V
mysql> select weekday('1997-11-05');    - {7 i4 {) U! [! \( o
  -> 2   
4 T) q* r3 X# B1 z! @; u' y
& B$ E; w" \2 l  [- Q0 o6 pdayofmonth(date)    ) F- U8 U6 V9 v" ?  A9 |1 _
返回date是一月中的第几日(在1到31范围内)   
' w$ E/ r. J5 u4 {mysql> select dayofmonth('1998-02-03');    , r8 P0 B* S0 l7 o+ P9 A  {
  -> 3    0 E; ?4 T) h8 v# ^6 D+ D- x8 [) x7 B

( Y+ s+ i- y% @% K1 H' Ndayofyear(date)   
2 H$ x& ]6 G/ e3 o1 k3 p) R返回date是一年中的第几日(在1到366范围内)    : o1 w. {9 @6 r1 E! T$ s
mysql> select dayofyear('1998-02-03');    ) E  B" S- q1 E
  -> 34    % L4 s9 y6 R, E' h( o
9 F- Q& a( I* {, {- s* z2 G4 K
month(date)   
- X2 K' X' u& y" K返回date中的月份数值   
; k1 m( x+ g% \1 @7 Qmysql> select month('1998-02-03');   
; n7 x) v! E7 M- [' o4 b  -> 2    - L/ O3 N) j: f9 T2 B' H$ N' u
3 _4 V& x9 ^$ v' L* [0 p" k4 E
dayname(date)   
) z# |' Y1 z$ R0 M! F2 t返回date是星期几(按英文名返回)  
0 J; E( ~( Y$ n3 Xmysql> select dayname("1998-02-05");   
' Y7 ?( l/ x5 X  -> 'thursday'   
. J7 J) r, H7 G) J
! |( K: w. C, J( C' [& R& Cmonthname(date)    # p, \7 n, S) q# x( q4 b0 `
返回date是几月(按英文名返回)  
! v1 {4 c' ^! _4 P( Kmysql> select monthname("1998-02-05");    / n. D' F: J/ W9 v  O- p
  -> 'february'   
. l- _/ P3 Z& V" h: O) t
& y; w: @  N9 n" J# T1 bquarter(date)   
) x  g& k3 q( p8 G7 n( t+ I+ t$ `# V9 J返回date是一年的第几个季度    6 w5 \2 p  Y3 q) a* h
mysql> select quarter('98-04-01');   
; F' ?& M# |) e/ g6 O  m% }3 O  -> 2   
! B" g8 M7 U% |; x5 V5 p
# d5 F: a  m  R* [* h$ eweek(date,first)   7 ]* O7 r6 C/ Y# k8 {9 j- b6 {' Y$ s: U
返回date是一年的第几周(first默认值0,first取值1表示周一是, h: R" ?! K9 T. D! C9 D2 ]1 g
周的开始,0从周日开始)  
0 B$ H* b% ~& r, Lmysql> select week('1998-02-20');   
2 K& _  _+ n- {; C  d5 O  -> 7    ! R2 A/ ~  @' S4 q+ l
mysql> select week('1998-02-20',0);    7 p! D$ J; c0 m: R0 r0 W, v. x
  -> 7    % J6 U/ t8 N6 r* o
mysql> select week('1998-02-20',1);    2 g$ ]6 g+ x' B" c/ e
  -> 8   
* |8 {9 y4 c3 Z6 x, b ! I: y$ ^4 v6 W" N0 o8 l# D, ]
year(date)    + {1 z0 E5 p' a# t
返回date的年份(范围在1000到9999)    # s) _+ y1 B, n% a- e. s6 j
mysql> select year('98-02-03');    6 W% n% Y; u  t' x- a' N9 R9 F% p
  -> 1998    1 C4 j; M/ I- |9 N. S* |- ~8 B9 |) V

! i, k: A& Q6 z$ mhour(time)    6 k' i7 j$ F8 F' O) t
返回time的小时数(范围是0到23)   8 B1 U2 ?9 G9 s$ @# g( Z
mysql> select hour('10:05:03');   
* z# j, E% }8 x' W/ q  -> 10   
/ u9 @( ^% S4 W) `4 y
1 [; E- Z& D% t6 D$ W5 tminute(time)    0 a& o$ \9 J7 M9 ~& F+ q
返回time的分钟数(范围是0到59)   
$ C& {; g; Q$ M5 ~# c: Amysql> select minute('98-02-03 10:05:03');    4 L1 C) i  ?6 z8 @
  -> 5   
) a0 M9 e6 ]: P. m0 G$ \
0 z" N/ t  _# c$ b4 e  lsecond(time)    
3 @0 y6 ^3 I% R* E% p" q返回time的秒数(范围是0到59)   ! W: P. X2 P9 _# ?
mysql> select second('10:05:03');    7 y+ w2 r3 g3 w8 V+ b
  -> 3    : v) p: X/ ]4 x" ]

/ X' l* U) c  Eperiod_add(p,n)    2 S! s* Q5 n, i9 t5 {
增加n个月到时期p并返回(p的格式yymm或yyyymm)    , P+ `: p* |1 v( x! l
mysql> select period_add(9801,2);    0 a* @/ M% E9 F+ p' E% H
  -> 199803   
  N( F7 D! \, \( V+ {, V 9 g' _* ?/ F4 H
period_diff(p1,p2)    : a3 g' v( X3 M- w
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  
% ^9 n+ `; Q' B  {9 ]! Z: tmysql> select period_diff(9802,199703);    8 v: H. Z! a3 K
  -> 11   
6 z& F; |8 i( t ! O8 a$ s0 N7 o/ Z9 T+ G
date_add(date,interval expr type)  
2 G4 D1 o5 d. x% n: Pdate_sub(date,interval expr type)   
2 O4 n2 X5 m# O+ Wadddate(date,interval expr type)    ' t: I# Z6 p2 q5 i7 I& d; p
subdate(date,interval expr type)  + E3 X4 `. z8 ?3 X7 m. C( i* k
对日期时间进行加减法运算  
$ S  t1 m2 O8 i2 X% u(adddate()和subdate()是date_add()和date_sub()的同义词,也# @2 l, s, c0 P7 t  [
可以用运算符+和-而不是函数  . F! y+ m6 ~2 q# q! B
date是一个datetime或date值,expr对date进行加减法的一个表# Q; Z+ g6 V9 O8 m3 z' {5 R
达式字符串type指明表达式expr应该如何被解释  
- v& l8 Q* x7 ]! V+ o. x3 z7 `1 g [type值 含义 期望的expr格式]:  % j% {7 f3 D! h7 X. @) M
 second 秒 seconds    2 t7 R0 d( m" T. R1 c
 minute 分钟 minutes    0 R4 f; j# L6 L% m$ x) w* y
 hour 时间 hours    ) c; Z, r, @7 `- |/ ]# ~+ W
 day 天 days   
4 y& n! B/ _  P4 a4 h2 X  ] month 月 months   
1 \, k4 q/ Q8 k, S year 年 years   
# D, n6 x  }5 X* g9 C$ R" m5 J3 e minute_second 分钟和秒 "minutes:seconds"   
/ E- l& R4 @0 S" R0 c0 l hour_minute 小时和分钟 "hours:minutes"    : X5 T5 a/ ?( ~" p
 day_hour 天和小时 "days hours"    8 t/ H9 f- P  `2 I4 @9 F: F
 year_month 年和月 "years-months"   
9 J4 ^- t4 Z, z& F. q. j1 [ hour_second 小时, 分钟, "hours:minutes:seconds"   
2 |2 _$ Q+ \" K5 p day_minute 天, 小时, 分钟 "days hours:minutes"   
# p) h; n3 ]2 N day_second 天, 小时, 分钟, 秒 "days$ c: @. Y7 f, h: g% l4 O7 _. U5 W
hours:minutes:seconds" ! i0 S0 @4 R3 T# m" M- }
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个
+ v2 P' d( @7 s, T1 w2 Ndate值,否则结果是一个datetime值)  
/ ~  f* W4 S. o4 z 如果type关键词不完整,则mysql从右端取值,day_second因为缺8 t, q+ m4 }  Z# T  e7 o, u
少小时分钟等于minute_second)  
" Y; Y& {+ w- K 如果增加month、year_month或year,天数大于结果月份的最大天0 E% \& `, H0 ~9 h& z$ [- }
数则使用最大天数)   
) i: y0 X# t5 dmysql> select "1997-12-31 23:59:59" + interval 1 second;  # m- r% O$ ]* T5 N* I
% ^, i6 g& @& Y
  -> 1998-01-01 00:00:00    , y# ^, u: r4 C5 M
mysql> select interval 1 day + "1997-12-31";    2 P# ?8 q7 B# n3 x$ ^. r
  -> 1998-01-01    + z! Z- c8 g3 m3 b
mysql> select "1998-01-01" - interval 1 second;    . I6 o8 `0 }* w  ^
  -> 1997-12-31 23:59:59      ^" B0 `2 n8 `
mysql> select date_add("1997-12-31 23:59:59",interval 1
2 x6 a- y, G# ], x! p( \second);    . o7 V9 e5 x+ m; G! W
  -> 1998-01-01 00:00:00    * k$ s, G) X  X& q( c3 g8 i8 z/ w
mysql> select date_add("1997-12-31 23:59:59",interval 1" a. v2 k% b3 d& u
day);    . F( R1 [) Z  T, d4 u( C# u% V
  -> 1998-01-01 23:59:59    8 O% f9 D5 {* J* }- o
mysql> select date_add("1997-12-31 23:59:59",interval
- J. [, y, \- u" i! I"1:1" minute_second);    0 Z/ B8 `9 J7 H: B( y0 P/ p
  -> 1998-01-01 00:01:00    ; ?  [0 Y9 L' F
mysql> select date_sub("1998-01-01 00:00:00",interval "1
4 U9 r! u& Z/ `& R/ ^3 _* q. Y1:1:1" day_second);   
) e) C4 }/ n+ }; Q5 e( E! o  -> 1997-12-30 22:58:59    ' p3 n- O' W, r0 e
mysql> select date_add("1998-01-01 00:00:00", interval "-1
. i- H3 N: ]1 k10" day_hour);  ' P  z. @' u+ {0 l9 s+ e
  -> 1997-12-30 14:00:00    ; ]" ?2 M, _" b/ |: C
mysql> select date_sub("1998-01-02", interval 31 day);   
& {# C# W0 i4 v) L/ u" |% O  -> 1997-12-02    3 B- x2 o8 R9 t1 k/ G6 S" R/ B( F
mysql> select extract(year from "1999-07-02");   
( x) p" k6 w! u* v! G( L  -> 1999    2 j- F. |8 L* j, b. a/ H# K
mysql> select extract(year_month from "1999-07-02
/ m- ^8 J% l- y, Y" B% X01:02:03");   
" k% B* T- F, q# P5 G) w  -> 199907    2 H& f) y" [" }
mysql> select extract(day_minute from "1999-07-023 u6 ~2 \- o) {5 m# w7 n
01:02:03");   
# I) }8 z' X" B+ i6 ]  -> 20102    % {$ z. u" ?& U8 Y+ C) W7 ^1 y

5 i! F/ y' _: Q% rto_days(date)   
: S9 R1 G, V# c! A. i+ m返回日期date是西元0年至今多少天(不计算1582年以前)  
+ F# j# r' ]# a; b2 E5 ~; amysql> select to_days(950501);   
6 A2 W3 `$ z0 G  -> 728779    0 n* P# w9 W5 O- V
mysql> select to_days('1997-10-07');   
( f0 Q/ v5 Z3 [; q  -> 729669    / E$ ]0 }9 u: [) V2 i& N" W3 }% ?% o

3 H2 f8 F- B0 r$ M# Vfrom_days(n)   
+ C; G( \* W" ]5 V' }: I7 D0 s 给出西元0年至今多少天返回date值(不计算1582年以前)   1 A2 k+ ]5 o! T5 D" h& r
mysql> select from_days(729669);   
- b1 ]6 z) E. C7 x# J% x  -> '1997-10-07'   
' l2 a7 x  y7 M7 O3 @ 9 L  v  S* U2 ~3 v- k
date_format(date,format)    ( K; }0 r4 H: R; d
 根据format字符串格式化date值  
3 k" f8 M) x& ^, D) z& ?9 e( M (在format字符串中可用标志符:  
: l( S# |$ f( v1 p, N %m 月名字(january……december)   
0 b* F0 S$ ~, \2 Q %w 星期名字(sunday……saturday)    / C6 O& n) T/ O
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    , U( P4 N3 S7 T
 %y 年, 数字, 4 位    - y; e- P5 R' J  d% w; H, j
 %y 年, 数字, 2 位   
5 g+ w  w: i* {& U2 ?$ w! _" L- n. \ %a 缩写的星期名字(sun……sat)   
0 k' h7 g8 |0 o# c1 Y  r %d 月份中的天数, 数字(00……31)   
1 [. N6 q. i% n3 L %e 月份中的天数, 数字(0……31)   
" H+ b. a, C  U5 b' e6 z %m 月, 数字(01……12)    3 J+ t/ i2 a' _! o5 Z% x
 %c 月, 数字(1……12)    # {4 E, L) h0 {6 M& e, [
 %b 缩写的月份名字(jan……dec)   
+ V7 S% K7 m* `* ^; D2 s %j 一年中的天数(001……366)    1 s& {) I9 [/ W
 %h 小时(00……23)   
( c( f$ ?" u' w, }# c( a6 D; N %k 小时(0……23)   
& Z6 d# w! k( ^& n$ F %h 小时(01……12)    5 n8 H% I) A  r3 }4 R
 %i 小时(01……12)    : r( Q3 L+ t, n1 E" [4 p
 %l 小时(1……12)    , j2 \1 D- O. c- I. w5 v
 %i 分钟, 数字(00……59)   
# h4 T4 U0 x% d. G %r 时间,12 小时(hh:mm:ss [ap]m)    5 M  T) n/ M2 L$ [; [
 %t 时间,24 小时(hh:mm:ss)   
/ p& [( D0 m7 z- M( }0 h %s 秒(00……59)    ( F& e& _# r! B4 e
 %s 秒(00……59)   
; |* z4 Q: u% N# s- D %p am或pm    1 Y3 Z; Y) Q6 j8 Z: k/ p2 G8 R
 %w 一个星期中的天数(0=sunday ……6=saturday )   
% }9 f% L# V0 s2 k %u 星期(0……52), 这里星期天是星期的第一天   
" C5 c' Z: L5 E/ Z9 W: @ %u 星期(0……52), 这里星期一是星期的第一天   
4 x1 x- _6 f# h9 b %% 字符% )    i9 t" l" V% X8 f
mysql> select date_format('1997-10-04 22:23:00','%w %m %
# W5 ]0 H* Z+ ~/ h1 a& Cy');    5 v$ W7 N/ u; t4 Z" g
  -> 'saturday october 1997'   
3 ^' z4 @0 K9 v+ l1 e- h% d& Kmysql> select date_format('1997-10-04 22:23:00','%h:%i:%
- ~6 H+ f" ^0 h& S3 _s');   
% s* H, O1 ]4 ~8 o; X  -> '22:23:00'    4 v! t% |- c5 T, @: t3 \- A; `
mysql> select date_format('1997-10-04 22:23:00','%d %y %a
% g& X- P+ a5 p) B%d %m %b %j');   
0 K5 ~' Q5 X: s2 ?  -> '4th 97 sat 04 10 oct 277'   
+ a+ B, [+ Q7 V& C: `8 W* n$ f! I+ F, t3 Wmysql> select date_format('1997-10-04 22:23:00','%h %k %i
, L7 a& j+ Y# @! d' x4 y%r %t %s %w');    * w% z5 s! m% m+ V1 o; U
  -> '22 22 10 10:23:00 pm 22:23:00 00 6'   
5 w  P$ P% E/ D& t 4 z7 f$ N; `9 V' F9 o8 @
time_format(time,format)  + C  U* L2 l7 @! k$ Y. l
 和date_format()类似,但time_format只处理小时、分钟和秒(其
$ \, A2 k: x1 j! x* R余符号产生一个null值或0)  : ~( v0 q- K' q  Q% [

+ c- Z) P& @3 f8 O9 G  gcurdate()     
; i; Z( v7 R9 dcurrent_date()  
4 P' G6 `5 @6 `; M" F( M 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所3 l: c# m( i& s5 ?  P, G' T
处上下文是字符串或数字)   
: ]3 I' t; J2 }( z% K: {% y8 Mmysql> select curdate();   
' @; h7 ]) \1 s$ p  -> '1997-12-15'    " ?( G7 y# F  @) g
mysql> select curdate() + 0;   
5 q* h( E. B% V6 t  -> 19971215   
6 \) J) x* k1 T, b 5 l- d  s+ N! L6 o. `* u! n
curtime()    * f* @4 E2 d7 Z8 s4 A
current_time()  
+ |- L' R0 E3 ` 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
# }3 a: w5 l$ I下文是字符串或数字)      
8 m8 ]* `7 i. b9 ?mysql> select curtime();   
1 k  ?; z5 n3 W) L& }; u  -> '23:50:26'    6 t' |  i5 c8 z0 W3 C
mysql> select curtime() + 0;   
' V, o: p; x& i  -> 235026    " S* Y$ |( O( n

& p5 e/ \# K3 o4 know()    
$ f9 J/ f$ u5 c1 csysdate()    
0 I. k: U# L& V) _- `" W' k: Z, kcurrent_timestamp()  - I+ b$ v, y9 [, F
 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
$ g4 J) b- s5 k3 Z" d时间(根据返回值所处上下文是字符串或数字)     
* ]3 `( B+ k3 t9 W3 B6 tmysql> select now();    ) ~1 K% y7 W* A+ d+ o$ j0 s
  -> '1997-12-15 23:50:26'   
4 `/ o; k  P% ~9 D( ~% kmysql> select now() + 0;    , y0 H) r3 f+ `6 N
  -> 19971215235026   
  |: z/ x7 @9 c! y! L" | & E1 X+ R3 z$ {8 [1 }, M- `' d
unix_timestamp()   
8 x  q  ~$ Y0 U! K  C4 E- m+ Q! munix_timestamp(date)   
% k6 ^, z4 m% h; z( z8 K1 J返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
, `; P1 _" b5 k9 z" {数,date默认值为当前时间)  
3 a# v# L$ Y' ^. @* umysql> select unix_timestamp();    * y1 ]2 h" s( l- [, [/ N# n# r
  -> 882226357   
' ]0 ?0 k) c/ p4 G1 {8 dmysql> select unix_timestamp('1997-10-04 22:23:00');   
. h3 L  ?. T0 `1 @  -> 875996580   
9 [8 U, j# |" @3 E4 ?- H
0 b5 ~( m. `  e7 mfrom_unixtime(unix_timestamp)   
# [' j' ]9 F2 o1 r& e以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的
( a. N" P& K. f; Z6 B值(根据返回值所处上下文是字符串或数字)     
" N5 S, H1 v2 F" ^mysql> select from_unixtime(875996580);   
1 A+ X1 _3 I0 C3 S+ P7 V* a0 ?  -> '1997-10-04 22:23:00'   
( {) k: E+ H' r! _  xmysql> select from_unixtime(875996580) + 0;    % k* o4 Q8 t" X9 B* J* n& Z- j
  -> 19971004222300    9 i2 H% v8 b% Y- p6 h
& F- F" v6 G& U$ q$ O
from_unixtime(unix_timestamp,format)    + b  f. n# Q0 H7 T
以format字符串格式返回时间戳的值  
! h5 c# C9 f0 W  v% emysql> select from_unixtime(unix_timestamp(),'%y %d %m %9 o; z9 n0 o3 W
h:%i:%s %x');    9 k4 ~; ~. s7 g: ~
  -> '1997 23rd december 03:43:30 x'   
; U( t" F( C* h! K+ Z " ]0 `# q2 O+ ]& Z
sec_to_time(seconds)    ! J* i3 `  y' z3 {. L
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
9 _  B% c; h8 K' smysql> select sec_to_time(2378);   
) d+ ~4 m  i+ W4 k% y  -> '00:39:38'   
$ p, O+ Y& b" F; jmysql> select sec_to_time(2378) + 0;   
5 ~+ |8 I; u7 j  -> 3938    * |8 n) L* c: C. |1 s

3 j5 f, u7 d4 Gtime_to_sec(time)   
2 t; }, B' [& g4 }返回time值有多少秒    ) q" a) o; t5 v" U
mysql> select time_to_sec('22:23:00');    6 V' F3 }# ~( ~4 T
  -> 80580    " d5 `0 L, N3 e: y& u
mysql> select time_to_sec('00:39:38');    1 B9 K7 L" y2 i7 p; T9 ~
  -> 2378 3 ^# I0 g- o5 f; C) a( k" h
. R+ ~( r" d5 q, g
转换函数
1 s* |4 i4 w) ]; ]) Icast9 ^$ ?* E* D" S
用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]
2 y' f6 ~: M; ^) N& @3 n- r; a5 c实例:select cast(a as unsigned) as b from cardserver where order by b desc;
; U, C* B1 i3 n* pconvert:9 R4 s0 M% y! K3 h! ?/ ~
用法:convert(字段,数据类型)
* `+ q6 M* L, n% K; L# q实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
- O( F, ?6 W* U! ~
回复

使用道具 举报

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

本版积分规则

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