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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数
! o! y; |- m5 u9 s) X! \ascii(str)   % q/ @: E& ?: _0 ~& P
返回字符串str的第一个字符的ascii值(str是空串时返回0)  ! t3 l. V. Y  \6 `' X8 I9 K' E) o
mysql> select ascii('2');  0 h/ c: }1 T. p5 Y+ A' b
  -> 50  # z- P+ c9 e9 C% Y9 }2 ?
mysql> select ascii(2);  # H) O6 B: h4 }+ H
  -> 50  
/ U4 m& ]' e9 a) A( {5 o9 _) mmysql> select ascii('dete');  7 \1 J6 ~' s. x: ~" Q
  -> 100
. D& r" h- P0 W: O
ord(str)   7 R, y- f8 G6 K! N9 d8 L( `
如果字符串str句首是单字节返回与ascii()函数返回的相同值。* ?' {4 m. H* X, |) Q/ x! t+ {% N
/ Z" ]' \% U1 S2 t! k* @1 w! D
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  / _; a% Q5 O# A
mysql> select ord('2');  
5 a( N2 q. ?; s, x: [0 P  -> 50  
3 ~. z( o' j- m# ?7 [) u( N* t4 H5 z   
' J/ W  N0 z' M; b( f1 v+ {% |; L' Mconv(n,from_base,to_base)   
$ C! s: t, p# j对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  1 s0 J% q# E; `1 t" B5 |2 ^
mysql> select conv("a",16,2);  ! U+ I, J9 w( b/ G, y
  -> '1010' 5 q6 T6 W1 M9 n  r
mysql> select conv("6e",18,8);  
- T* k) R5 p8 r2 H; x, G' R! I  -> '172'
& W% P: D& v+ Mmysql> select conv(-17,10,-18);  
. r) p4 E) M* F4 p  -> '-h' + z, F9 T; G; t5 y  e6 n
mysql> select conv(10+"10"+'10'+0xa,10,10);  
# E3 P6 ~( [0 U( E  -> '40' ( f4 j- p* k4 n, S5 A1 q0 i
   
' ]1 |. B" v$ Wbin(n)   ' r4 g8 g* ~" z: q  R# k9 o. M2 V* i
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
5 W: a; G& `* a6 P% ~mysql> select bin(12);  
5 f% V! S% ~5 p4 x  -> '1100' 4 i4 s$ u+ {  p6 h' ]: T' A
/ E% ~+ U8 _; p6 Z- _4 \( |; ~
oct(n)   8 P- v# ^/ {4 h. {6 h
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
: K9 m' S; S& ?1 j0 B/ smysql> select oct(12);  
0 S4 @( t& j  z9 n* C3 Y. f  -> '14'
+ U/ l3 E, ^$ T. L7 g! c( R   
& X, J' }3 I/ u4 ?8 ~( v$ qhex(n)   
. k# U) {! r1 U, i" o& u8 ^, p把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  
$ }  b8 ]# p2 j. [- D: x. Wmysql> select hex(255);  : A7 L+ m% ?& G* `% Q& L
  -> 'ff'
7 z) `$ X& J0 b; C! C- |) u   
% V* _3 a/ c. o3 ychar(n,...)   
/ y( S" p# B& W' R返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   * Y& g- w9 ?( [; O9 E; X% g
mysql> select char(77,121,83,81,'76');  
+ t. G' G7 c! G6 V, |/ ?, B1 c  -> 'mysql'
) T- t+ u6 d6 W: W3 f# Lmysql> select char(77,77.3,'77.3');  
( q0 P  {' P0 ^) y' G  -> 'mmm' . ~% T( h. W* ?# w" @1 v
   
- I1 U! I" K9 y2 Bconcat(str1,str2,...)  
0 a7 k7 Q5 F8 Z5 Z) i把参数连成一个长字符串并返回(任何参数是null时返回null)  4 M9 L5 _, a) ^. D0 U( p" U5 d
mysql> select concat('my', 's', 'ql');  3 v, u1 q) W- E* L  `- ]0 B% l" l
  -> 'mysql' + S5 y7 W  U+ y7 z! D. ]
mysql> select concat('my', null, 'ql');  
0 p# d' }0 |4 u  -> null
; d' \& f+ E5 B* b- J; Vmysql> select concat(14.3);  
9 v# |2 `* n' t( Q3 l2 H/ T# l  -> '14.3' 5 l- i; u- \, O; z$ \
: R. P6 W; I7 M- ]  n
length(str)   ! M( H  i* I* R+ n4 [4 E* D
octet_length(str)  ) h  j2 g2 |) e* j$ I" q
char_length(str)  $ g, C2 r, a# y6 B8 Y
character_length(str)    x/ z3 h* L" y; g8 g, G
返回字符串str的长度(对于多字节字符char_length仅计算一次)
! q* P+ f) T6 \$ U0 @& F7 R6 }4 u0 _mysql> select length('text');  * ]6 y. U. h7 [- M
  -> 4  ! ]* T' H! g: M# X8 {
mysql> select octet_length('text');  
6 i( J) R6 [2 d. [  -> 4  ; T+ G. d1 p6 \9 z0 g/ x8 A3 q
7 y- A- q+ d- W: u' V' J
locate(substr,str)   
0 x: D0 W3 t  x0 mposition(substr in str)   
/ s- T, a% {7 |! J( j  M返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
+ i4 b$ @7 i$ O$ Q. }mysql> select locate('bar', 'foobarbar');  , G5 t  a- J  K7 t
  -> 4  
1 C; O# e  i7 q0 m3 y2 O# Y, ymysql> select locate('xbar', 'foobar');  1 V4 w: ~$ z$ i) K. e8 k2 g
  -> 0  
9 `1 X/ @4 r2 v2 T9 h    4 i6 z9 u- f) I9 ?. H' [
locate(substr,str,pos) ) Z9 r- O$ B' L5 p( L
返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  " y$ W& E" C8 Q. o6 F# q
mysql> select locate('bar', 'foobarbar',5);  6 C9 ?, P% t5 ]5 o) n3 N2 E2 G% S3 P
  -> 7  # K8 m! Y9 H  M! H

3 _" D3 ~) I* I+ Uinstr(str,substr)  
; }/ a  G9 J4 a+ T返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  & ?1 O5 E/ Z% k: A, O) w3 {# g
mysql> select instr('foobarbar', 'bar');  4 w4 r7 U) ^" e+ Y* z7 T" T: n
  -> 4  
( @0 I; {/ B! h) q; ?mysql> select instr('xbar', 'foobar');  
, B5 _9 d6 s+ c, e# W3 h- C7 \  -> 0   
* P+ n9 b7 |( j, e7 @; r % x  D! f* ~0 c7 \
lpad(str,len,padstr)   ; _6 `8 v6 K/ s1 f; c$ r. p% T
用字符串padstr填补str左端直到字串长度为len并返回  # w/ z8 h" m, j
mysql> select lpad('hi',4,'??');  ( w, O, W! p! {+ x9 Y: r7 A; V" J
  -> '??hi' # e% d5 U2 k& H+ M
   4 Y; b# O* e* U6 _4 E
rpad(str,len,padstr)   
4 n: g7 N! a- X; u5 d4 ?用字符串padstr填补str右端直到字串长度为len并返回  ) ~; M& `# a- R
mysql> select rpad('hi',5,'?');  . u0 |, k0 C% s$ o8 G% s
  -> 'hi???' # V) G: M/ @5 S) U# t0 S
3 k# Q9 m' ?: {- x9 {% N
left(str,len)   $ O5 H8 {0 k' `" ?7 ~! d3 X
返回字符串str的左端len个字符  
1 Y* Z8 h5 c6 m8 Umysql> select left('foobarbar', 5);  % [* `+ }* k: z5 J- _( w
  -> 'fooba' ) y" X, M" D/ ~# F/ F6 S6 @8 }5 A
, W( W$ f8 ^8 M3 n: d: p
right(str,len)   
  }/ H# ]4 r( Y  L, L返回字符串str的右端len个字符   
+ ]0 l/ U! U+ T$ I# T- xmysql> select right('foobarbar', 4);  
8 m7 i" Y+ w) |9 f( G3 p5 p- W2 Q  -> 'rbar'
4 A2 f0 X! f( N( z* U% s5 w; J $ v2 U$ e0 w/ |; J& e7 x; F9 P2 E
substring(str,pos,len)   
. ]& n+ A: O- t% gsubstring(str from pos for len)   * l+ X& Z% K0 F( {
mid(str,pos,len)   " @  ~6 u9 c9 h
返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  4 H, T1 d) Z: Q- k# C; R+ P/ n4 y' w
  -> 'ratica'
8 Y* h6 K3 @* w9 H; j# g; Z
& d- S) u! j! F7 X7 I8 F8 Nsubstring(str,pos)   ' G. @8 p! K8 Q3 {: I/ I
substring(str from pos)   
& \4 \- |# u) A& j返回字符串str的位置pos起的一个子串  $ M: G6 B. y6 O0 A
mysql> select substring('quadratically',5);  ' C+ l( B( g8 h' j
  -> 'ratically'
6 U! z' J9 M! z7 }mysql> select substring('foobarbar' from 4);  
! N2 e, t3 e6 p1 t  -> 'barbar'
2 v% f; E: L$ F9 Z1 e4 m
  D8 k1 B2 F6 Fsubstring_index(str,delim,count)   ; t1 G6 |5 f7 b' _/ H  G
返回从字符串str的第count个出现的分隔符delim之后的子串
  f' T% B) o! ^8 g(count为正数时返回左端,否则返回右端子串)  
+ ^, x+ w3 T, d0 @mysql> select substring_index('www.mysql.com', '.', 2);  
1 G8 i1 A& q5 k3 d0 z& e, G+ T1 o  -> 'www.mysql' # c7 r* B/ q7 L
mysql> select substring_index('www.mysql.com', '.', -2);  
& ^* Y) d' ~, W  Y  -> 'mysql.com' 9 c+ ~& e; X3 O: O8 h# c
6 y. F3 g: a7 B; }! ^9 e+ [4 r
ltrim(str)   
3 r9 q' F' N/ W$ U! v返回删除了左空格的字符串str  
6 H% K% q9 @7 {! wmysql> select ltrim('  barbar');  
8 n/ |) b1 k# l5 M  -> 'barbar'
  x7 T+ B+ y( c! w* N1 b0 I, D4 I& j6 N
! s" z# S2 @" ~rtrim(str)   * p3 z" n) n3 }
返回删除了右空格的字符串str    I8 s% z9 X3 Y
mysql> select rtrim('barbar   ');  ! q2 R7 J4 t7 |2 s# u$ q0 N% s
  -> 'barbar' # X/ s+ [& L1 ^, h
( R% @. |. X# g4 _" }$ x9 B
trim([[both | leading | trailing] [remstr] from] str)  
7 F! k: @% ]* W4 }返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
* w2 D/ _6 J: j1 Umysql> select trim('  bar   ');  
8 W5 c9 N$ x, u  -> 'bar'
" s: q5 k5 K  Y. {mysql> select trim(leading 'x' from 'xxxbarxxx');  
$ `7 s7 {9 u6 `$ K# C  N' L& p7 t  -> 'barxxx'
+ c5 p& D4 r3 W# @! ^mysql> select trim(both 'x' from 'xxxbarxxx');  3 S- o( r9 k$ p- Z/ K
  -> 'bar'
  G+ }! e" ^1 z$ |! imysql> select trim(trailing 'xyz' from 'barxxyz');  " v. u  o+ ]' K( M7 n' Q- }; d
  -> 'barx'
: w. c2 ?' f" Q# X0 p
4 p. ^3 M2 Z* w/ y5 m, dsoundex(str)   2 q2 F6 m8 L2 \. h
返回str的一个同音字符串(听起来“大致相同”字符串有相同的2 ?; F3 P* S0 N! R
同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  ; W$ l4 {3 a( K$ K- H
mysql> select soundex('hello');  % r; f  n2 l1 K6 O
  -> 'h400' 7 W- a- {- A# a" F% F
mysql> select soundex('quadratically');  7 n1 i* d) U, x7 u+ N. U& V" j
  -> 'q36324'
( a1 d1 R5 W# S   
0 R5 c8 X" b9 _! L& Y7 Wspace(n)   
, q7 P* B- b6 _# q, b/ M4 M返回由n个空格字符组成的一个字符串  5 C5 ?6 p, i6 t+ k6 S8 C
mysql> select space(6);  + V0 T" G8 {3 _1 X. `0 E& {* d; k
  -> '      '
2 J. y" d; `9 K! p7 ^   
8 A- ]7 s) p8 X' Wreplace(str,from_str,to_str)   + h7 z5 O3 l# x) X
用字符串to_str替换字符串str中的子串from_str并返回  - K4 f, d9 U9 n9 F
mysql> select replace('www.mysql.com', 'w', 'ww');  
! z( N( l$ A) r7 H  -> 'wwwwww.mysql.com'
( ~( T4 P" T' P+ E* H. _   ]  N! H0 L4 r4 r: A( g
repeat(str,count)  
; E8 d/ y! g5 O: K返回由count个字符串str连成的一个字符串(任何参数为null时' q  M5 j! j4 d7 l/ l
返回null,count<=0时返回一个空字符串)  
+ d* t% ]/ G: r, [2 s9 U3 dmysql> select repeat('mysql', 3);  
# X, Y: b; Z' \" H3 v" E& T  -> 'mysqlmysqlmysql' 4 S$ ~5 U1 `! q& t& x
   
( P9 M( N9 {/ G) i/ C# [reverse(str)   / L) h' ]) R- W8 x
颠倒字符串str的字符顺序并返回  1 F/ A3 `0 b  F4 @( {9 u
mysql> select reverse('abc');  
' B, y2 [7 l& R  -> 'cba'
9 r3 o6 \7 l: \$ T5 o8 E& M$ Q 7 i9 p# T, p& x  e0 {( H! B) {2 `
insert(str,pos,len,newstr)   
; K2 B4 H% j6 x# D把字符串str由位置pos起len个字符长的子串替换为字符串
3 x3 W3 f7 i* P+ f2 F+ `: {newstr并返回  
1 R% F9 r% Q0 M' l- `mysql> select insert('quadratic', 3, 4, 'what');  
% n$ V  G. \8 Z! \2 L0 i, d+ ~9 T  -> 'quwhattic'
* @5 S2 |" ]& ?/ }% o ' n8 J9 |& u3 @  c( z
elt(n,str1,str2,str3,...)   ! D: m4 |: @4 E0 m# X2 W5 M! o/ a& b
返回第n个字符串(n小于1或大于参数个数返回null)  
. F1 J( S) f2 g, F. Kmysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  ( j1 \  n! Y: ]( Y+ M) p% B
  -> 'ej'
& y1 s9 ?1 g6 tmysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  6 i2 F; X6 F( c
  -> 'foo'
' {; D3 ?1 o3 ], k# C9 ?2 J 4 j- m3 p5 N- ]9 g, ]
field(str,str1,str2,str3,...)   ( l1 I, \- P  [; h' w  ?" C
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
  L2 m: }4 o2 A: Z0 K- t4 r2 umysql> select field('ej', 'hej', 'ej', 'heja', 'hej',: Q: F' c1 E! V0 `
'foo');  % C* T) Q" e3 a7 M
  -> 2  
7 Y$ k8 j; n+ a8 z, ?mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
/ U2 b, A/ D/ @'foo');  
  a/ J& G2 Q" i- t  -> 0  
% F( V1 s( G% d8 _
: k3 a- u) s4 g0 i, L2 f* E; C3 Gfind_in_set(str,strlist)   
6 {; h; v9 N7 N* N9 F返回str在字符串集strlist中的序号(任何参数是null则返回+ B1 ?+ f' F7 b, B
null,如果str没找到返回0,参数1包含","时工作异常)    y( o+ a/ _1 `9 z% d
mysql> select find_in_set('b','a,b,c,d');  
; |+ N( p% @0 ?3 `8 J  -> 2  1 ^$ }, m7 g; \0 ?; A3 C0 D
   
& I3 H. v, {7 `/ Q4 L2 y- L" wmake_set(bits,str1,str2,...)  3 M% P- F2 H  O  e- U0 A- S/ `2 g
把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
) s4 N5 e# Y, u( U/ Q- p位置的字串选入字串集并返回(null串不添加到结果中)  2 k: x1 G6 Z' Y) g2 o( @# z0 l
mysql> select make_set(1,'a','b','c');  
! z3 n( J- B9 R5 I  -> 'a' # [# t7 v% e5 q4 D% ?
mysql> select make_set(1 | 4,'hello','nice','world');  
% }: H" {0 U9 j, i* m4 ^6 D% @% p  -> 'hello,world'
' W5 }1 b( s* u7 g, R; [7 Emysql> select make_set(0,'a','b','c');  ! }  G8 z7 [1 _: L; a. u
  -> ''
9 l: `* K% R) ]( i1 v* j: g
0 s; O' v+ i1 O* G8 A0 Y$ zexport_set(bits,on,off,[separator,[number_of_bits]])   4 c5 ]" {9 ]$ n) S! ]
按bits排列字符串集,只有当位等于1时插入字串on,否则插入' R# W$ D) [' j$ g% R
off(separator默认值",",number_of_bits参数使用时长度不足补03 n: R! R8 l( Y$ }8 e) ?
而过长截断)   
% E+ s! ]' a( u& |  V, ^% T- T0 Ymysql> select export_set(5,'y','n',',',4)  
0 e4 s; _  G8 k* V( a7 H3 L  -> y,n,y,n   / r4 {2 x% H& m- [: {1 H  [  d5 Z
# u  r8 ^; E( N1 d# o& A' K$ z
lcase(str)  / @8 y5 r$ M# e9 `4 F  J/ d! ?
lower(str)   
+ P- k5 `% m0 F: b9 e" l0 Z6 e, k返回小写的字符串str  
) d* \& Y6 ]; S6 j' k7 }! g8 @6 Kmysql> select lcase('quadratically');  - L% M8 a. d+ A
  -> 'quadratically' 4 {( C; V) w0 _, B3 Z
     ~- s! u6 l+ C; l1 x4 o
ucase(str)   
  K; @" J2 \& d+ K" B( M" f3 Q  G0 F$ w& oupper(str)   4 ^; {+ a" C2 {7 ~+ z
返回大写的字符串str  6 P) s' ^' i; ^: q! I9 q3 P; ^; x
mysql> select ucase('quadratically');  . E9 S" Q% `7 f! |. c
  -> 'quadratically' ' n% s0 U' M  _# c; Y4 m
6 C8 r+ |. O" X6 @8 M5 k8 E
load_file(file_name)   
# s& w8 H( G* e! s读入文件并且作为一个字符串返回文件内容(文件无法找到,路径
) {: i$ Y9 R3 x: a; a$ F0 ?$ x不完整,没有权限,长度大于max_allowed_packet会返回null)  
7 t) q8 U# p7 @$ z! _' kmysql> update table_name set blob_column=load_file1 b% P. S; A2 G! m, z
("/tmp/picture") where id=1;  & P; R1 T; i6 j# Z
" S; d: E' Z" x
2、数学函数
' O, O0 Q2 J. C" habs(n) & T  Q; B) f' M) [. u( x4 f; e
返回n的绝对值  
. b+ V9 ~* [' R& U6 \% y5 Nmysql> select abs(2);   
1 D3 o! b, Y! ?  -> 2   
5 r# S7 Z; ?6 D. i- }" s' g# cmysql> select abs(-32);   
" U) t& }. j% G  S  -> 32   
5 j, g% @$ y7 L" V   
# v( E% w6 V& Z+ h9 o/ |3 D5 Xsign(n)  
8 D1 q; `( }' q/ G" I5 t返回参数的符号(为-1、0或1)  
% ]- G& T. {# T. V$ |1 V# Hmysql> select sign(-32);    + C$ V/ h; @. z3 N. f$ |' s" D4 E: B
  -> -1    8 @# Q) {" Y6 @9 R, T3 Q
mysql> select sign(0);    / F. S7 ?; `& N! G( C1 m( K
  -> 0    % F# X; b% v  U) i
mysql> select sign(234);   
! Z* O: i0 l, {$ n6 F4 \/ h  -> 1   
* I+ i1 E6 [; A9 |$ V; a
* z+ A( Q! }% m) W2 Z! ~7 x; smod(n,m)   
" k. s% U8 r' ?- O2 o! |# S取模运算,返回n被m除的余数(同%操作符)    : `, H. P. N" X, Z, K; V
mysql> select mod(234, 10);   
  W6 D$ |2 j/ E  -> 4    " _7 b5 ^6 N1 Q' i$ {5 s6 u
mysql> select 234 % 10;    % c3 F8 x' O7 F4 l- q+ c6 {4 c3 I1 b
  -> 4   
" {; [7 U, b& p3 k. x7 `mysql> select mod(29,9);   
) n4 c. N+ f! h" d, }  -> 2   
! f4 T* m! G4 ?- t* }1 y1 i) P; { 8 i5 h9 {8 [# ~! z# m4 t! l
floor(n)  ; ]( L0 m0 S) v8 I: p& z, m
返回不大于n的最大整数值  
3 m" R1 s; _1 {! L! Pmysql> select floor(1.23);   
" a$ z' y1 `3 Q% z5 O+ H* G  -> 1   
1 g9 E$ b+ r* M4 hmysql> select floor(-1.23);    ( p# a% j1 j% z! N
  -> -2   
  G4 C9 D+ n3 y- G
+ r+ M  K; I0 \1 D4 ~4 |% lceiling(n)  ! k+ q4 G  [4 l# H" B. N/ [: A: \
返回不小于n的最小整数值  
$ v( L1 ~" ?  ]8 e+ Q, @mysql> select ceiling(1.23);   
& j! [% e( Z" E# |$ j  -> 2    5 M! B5 J. ^3 X
mysql> select ceiling(-1.23);    " j' ]3 j% F+ z) r- d
  -> -1    , p  k: I8 h. e- {

9 r, o, P% X( i, [3 _/ T3 lround(n,d)  $ ?- m* o& u% J/ l' b" e* F7 Z( n: Y
返回n的四舍五入值,保留d位小数(d的默认值为0)  
( t. ^! H& `* b& b9 l- ]7 a3 Gmysql> select round(-1.23);    " C4 Q& N  c% _" ~
  -> -1   
9 w5 X( O  s( A7 v4 d$ Y: e7 K0 |# \  Fmysql> select round(-1.58);    9 x: ^0 l6 d3 w# ]
  -> -2   
  Y( w& a6 b3 U7 D) Hmysql> select round(1.58);   
3 g  ]2 `: N  N. u; w: I- Z  -> 2    4 h6 o+ Z: v7 L4 @5 ~% @9 C
mysql> select round(1.298, 1);    % O; A! r9 p/ S( m
  -> 1.3   
. }6 a- r- c; x; [mysql> select round(1.298, 0);    ( X5 i: D0 S3 a
  -> 1   
, i* ]- H+ @# L: ` 6 x( N& _% m2 r2 O
exp(n)  - |) T% y. F% w. |: t; I
返回值e的n次方(自然对数的底)  4 v% q3 @3 c0 Y& ~0 I0 o
mysql> select exp(2);   
" g1 n7 K/ D( n  -> 7.389056    & ]4 F: @& s* p
mysql> select exp(-2);    ( h5 p7 V) w$ w0 @
  -> 0.135335   
% s: M& H) u2 m$ m8 [ . H2 R: h  l) m0 e0 V9 Z+ H# p
log(n)  
0 q. @& k) P% o4 }返回n的自然对数  / v- A' k& a! D* v* Y  h
mysql> select log(2);   
& f* D. j. b" S) j/ ~9 K: }* b  -> 0.693147    / `  b; M7 @9 G0 ]$ N
mysql> select log(-2);   
& y5 D$ c. i0 x" r% Q  -> null   
  ]/ Z$ S/ ], j; M# }4 \$ i; i
& Z+ c$ |# n- |$ k0 S( }log10(n)  7 y% r, d  G- ]; j9 S
返回n以10为底的对数  
# j+ ]2 v+ {; }! n- V3 kmysql> select log10(2);    4 E( z5 g4 W1 A) Z+ t
  -> 0.301030   
4 z; o' U8 f: `) Dmysql> select log10(100);    7 S+ z' ?8 I* k% x
  -> 2.000000    - K) ?" {+ @6 H* q- W& ]4 F9 S9 L/ j
mysql> select log10(-100);    ; z# i. A. b1 i0 R
  -> null   
" G! U( J0 e& I
% u" f; s0 h: G1 epow(x,y)   
: w5 X# U, _; `. L. ?power(x,y)   
9 d; K+ x, }- {9 @/ D- E 返回值x的y次幂  
/ }0 n( J4 }+ z  Hmysql> select pow(2,2);    ! z6 n! M8 U6 c9 x5 H& K
  -> 4.000000    3 A& J8 I  }5 ?& y: f/ r& y7 G
mysql> select pow(2,-2);   
0 Y9 p9 E& o) o# L0 _9 @6 y% J. M  -> 0.250000  
% W" W2 G4 I* F, J0 [  j- [6 V5 B; q  j; e
sqrt(n)  
$ }$ o  f" x9 L* T( F9 I& w% p 返回非负数n的平方根  
) L5 {8 r. @. `* K* k+ ]mysql> select sqrt(4);    ; j! A1 J$ Z! Y$ m- S. l7 j, z% v. M
  -> 2.000000    * _) c: U& o" Q
mysql> select sqrt(20);    8 f3 O$ ]* J0 B' W
  -> 4.472136    : j& z0 l  X( o- L

; ]1 F- j/ B' l7 {pi()   
- s. e- a8 C$ g$ F- C 返回圆周率   4 h% K4 r7 f% G2 W
mysql> select pi();   
: q( o1 w4 Z0 Z" }9 y6 h  -> 3.141593   
5 E( U& x% Q1 a( j3 W+ e. K " W6 f% @& X+ e0 M% Q* r
cos(n)  ( T- x# p6 A% V+ x
 返回n的余弦值  
, ^- d7 W9 {; _+ ?, u2 y- ]) u6 O! ^/ Xmysql> select cos(pi());  9 Y) l( `/ J5 @0 J/ a
  -> -1.000000    / }6 @) u+ Z3 u" h( M2 m& R$ i

0 C  o  p! W- ]! Q& Z9 D% S; X/ asin(n)  
% r2 |9 m4 b: i$ \4 u& Q' \* ]1 C: X 返回n的正弦值   1 o2 J' A) V: G
mysql> select sin(pi());   
. W) B) p+ u' |$ x  -> 0.000000    4 Q" |+ y  H8 K; t3 Y& Y
) q  A* X) X% f+ [' p& Q
tan(n)  
8 _: e' \5 i2 @7 K, p# z返回n的正切值  
3 A4 l: l1 `  D- ]mysql> select tan(pi()+1);   
1 t8 ^% b% [3 G, D* u. B9 L  -> 1.557408   
* M& u, c, p7 H( k/ y2 k& U + X1 E' \0 r8 |' K' [  U
acos(n)  ( Z/ Y5 c& d: i! M
 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  
; ?% a' ?2 i! S, x0 m3 [mysql> select acos(1);    7 o( H. A" o. M5 H* ?
  -> 0.000000   
* X; g( {' b1 Q( U/ \mysql> select acos(1.0001);   
4 Q# K3 J, t$ z8 o' J3 T  -> null   
* K& p( W) U( p0 ]: {/ s5 O0 a4 L- |mysql> select acos(0);   
; @2 `5 R& d; l5 x/ r  -> 1.570796    6 S, d  v* O! d4 ?/ G

3 l! X- L- z8 V6 `. i3 j  y, Rasin(n)  
8 Q  g9 {9 z+ f7 r, o返回n反正弦值  4 n4 b& ^& A1 M* T- b8 ^( {6 t
mysql> select asin(0.2);   
& J) S" F& x' R3 R  `! @  -> 0.201358    * r) c4 N8 q* m* k; k5 w
mysql> select asin('foo');   
- m  }" [' Q  X6 J1 T' a% z  -> 0.000000   
7 d8 C* Z8 E$ L* r! `6 t) O; M3 ~) R 2 ~+ Y' Z1 d0 l# V, ^9 f4 Z' |
atan(n)  - i: X  R! W# a: C; w% a' F* J. ]4 _
返回n的反正切值  
( j* l. ^$ i; N1 pmysql> select atan(2);   
4 d7 _' Y# G. f3 h( S9 S  -> 1.107149    + L, {0 a, ^: y2 g
mysql> select atan(-2);   
* ?1 P$ y6 |' Z: p6 p  -> -1.107149   
% L$ H0 y9 L" }' X0 `& g; N: `atan2(x,y)   
! F8 e, _. S) R& Q5 ]9 F 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  
  _4 \2 E. z9 T1 |mysql> select atan(-2,2);    / x' g* Q! }  E; Z$ F5 C7 c/ E
  -> -0.785398    9 o$ E* Z  p1 h- v0 a
mysql> select atan(pi(),0);   
# q( B! c- h* S: h, R4 o% n% c; W  -> 1.570796   
8 H' k+ o. @5 \8 j& G - z' {4 m/ L4 p; i# p2 K1 P
cot(n)  ( P% S' ?% w$ P- o$ f; Z! m
返回x的余切    g/ ]! t; R7 E! [5 Z
mysql> select cot(12);   
1 [# f: x1 o" p$ j1 W6 l) k; j/ A  -> -1.57267341   
. i( D: y4 K4 h$ v: a5 a5 umysql> select cot(0);   
" l1 V# b* A5 I6 {9 g7 Y  -> null      h# R5 e8 s9 ~( i/ ^8 F

( O; B# A/ Q3 R3 V5 W7 t3 {0 erand()  4 y& E- x/ s/ s$ r
rand(n)    3 i  z1 d5 m1 z( T& i
返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
$ U4 R; R" {- [7 B* i  S% J + D4 O2 C( S- N8 v% K8 S! X
mysql> select rand();    3 [/ j. M% H( `( h& `& J  D/ t& J8 |
  -> 0.5925    5 B7 P& X' K% u6 p
mysql> select rand(20);    4 F8 V+ n: s; ~; V! f% F
  -> 0.1811    9 K% {9 Q# i* ~! ~
mysql> select rand(20);    5 D" \5 z8 p# l9 p
  -> 0.1811   
& d" \8 X$ F  z8 p& p5 Xmysql> select rand();    ) s( U: w( j" P# p
  -> 0.2079   
8 M. l1 Y+ J6 K0 r7 |4 Umysql> select rand();    : r9 Y& h2 M) |! j
  -> 0.7888    6 A5 Z% S" o7 x9 P) a8 Z3 v) B

! Z' e3 s* w1 l3 E, Edegrees(n)  
& p7 g( n8 U1 N8 F6 Y: p& {把n从弧度变换为角度并返回  
1 _: m1 }6 N: o; E# v8 @% K1 ]! Imysql> select degrees(pi());   
+ e% y: B' U/ a6 g! r  -> 180.000000    1 o; P* J& O  ^- M1 |
, A* X; S5 m; X( F& y1 D
radians(n) + n- s# h2 f( _$ N
把n从角度变换为弧度并返回   ! ?1 n7 K( {1 G" x4 v7 d' C4 P
mysql> select radians(90);    : B2 w' d) k; `: ^  o5 J6 L. w9 F1 G
  -> 1.570796   
, k! n0 h* X! p, H3 W" S! H
1 l  l5 z0 {* y: `' b4 Ttruncate(n,d)   
) m" D+ B$ z( h3 z% R: T# |8 c保留数字n的d位小数并返回  
' w  H- c# w% cmysql> select truncate(1.223,1);    - X% r& H; \2 |+ q( p+ K3 u3 R
  -> 1.2   
& v( F: P2 h) ?# Q: [: ?. Qmysql> select truncate(1.999,1);    4 a% J* W" \2 e& ?1 v/ m
  -> 1.9    ) W$ b7 V  d7 D
mysql> select truncate(1.999,0);    ' P3 N( s- b+ B! ]& G- O5 B) v7 {  ]
  -> 1    * ?. [# U3 {* {2 b/ ?
5 ~) L, T% Q% S4 T6 d
least(x,y,...)   
7 L# J5 @. p& w+ V5 h返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
1 g* ]; |; `" Z" D4 Dmysql> select least(2,0);    . ?' ]$ k% ~  B5 H, m$ O: \
  -> 0   
4 x- k' I4 n# D; [- e1 l& rmysql> select least(34.0,3.0,5.0,767.0);   
8 I! s; K+ P+ d! K4 W( M  -> 3.0    8 W) V+ r7 T  @9 Z* L( Y
mysql> select least("b","a","c");   
4 n0 k/ ?) r: v* i! a- o" o0 P9 X  -> "a"   
9 i6 A4 y! A: k2 a3 C8 C7 S . A- d9 s2 j1 X5 o; ?
greatest(x,y,...)   
2 h6 i" b- o- g( `" A( s# _返回最大值(其余同least())  
4 Q/ J/ Z) w2 R5 L+ V# zmysql> select greatest(2,0);    # \9 w6 P) y$ m, u
  -> 2    ( u7 v! |9 K/ Z1 v( j. k1 ~( z
mysql> select greatest(34.0,3.0,5.0,767.0);    8 w6 z# k) T9 O7 X0 r9 H% ~% Q
  -> 767.0    ' f! l: }+ `8 z* t( J5 Q; J9 T3 o0 f
mysql> select greatest("b","a","c");   
! q- A0 d# k: T/ S5 X% Y  -> "c"     
$ o0 ~+ F) F" v+ H/ Z# {2 T' R! @7 V7 Q. N; L; W5 u' q- X; _" V! s
3、时期时间函数
8 l, O0 m' T* f& V& T% m( Cdayofweek(date)    ) ^+ X* s* _9 O
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  ' f' l" }7 K! L  X- L; M% R  v
mysql> select dayofweek('1998-02-03');   
0 f  R9 {' h- `  h  f6 b  -> 3   
1 K6 g  E; s6 Q) a; J* e
2 [8 r$ ]( R0 f2 |weekday(date)   
# V3 S  r9 n* U6 a+ h$ h返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
3 n5 X1 Q8 t. k7 o$ ^( N* {. U  
* @: Q( g* G4 W' V, x7 Fmysql> select weekday('1997-10-04 22:23:00');   
5 M* m- P1 P8 H# i' y0 G( @  -> 5   
* ^4 q# ]) K% [0 G7 jmysql> select weekday('1997-11-05');    0 f" m# M5 C7 C: q  a7 f
  -> 2    0 D; a. _  O1 I3 U2 F# D

; M( L" `# I/ sdayofmonth(date)    ( m' @" q. R& s4 g3 t* X' _8 W* k
返回date是一月中的第几日(在1到31范围内)   
4 o% v) j& U- R) f$ M4 jmysql> select dayofmonth('1998-02-03');    3 u9 v" c4 @- }8 K5 q" ?* ~
  -> 3   
( y4 n) m' O' d% m7 \7 A4 \
; p& @# l' j% y" ?: Sdayofyear(date)    ! K: O( E, K) C6 L+ |
返回date是一年中的第几日(在1到366范围内)    : X" O4 n7 j$ t5 w
mysql> select dayofyear('1998-02-03');    0 @. V) u% k6 z5 F- `
  -> 34   
1 k" L% v) x% Y& d; Z: e0 ? 2 P7 u% W* I+ e4 }( ?# x
month(date)   
2 e6 k5 V  ?* R3 P  e/ {  [% |返回date中的月份数值   
, e; I6 e7 W& c. Dmysql> select month('1998-02-03');    5 v% p- \/ O. W" p3 E) e
  -> 2   
: P: [3 S+ z9 B% C 7 ?5 Q0 \% }* `! O1 c( k; n
dayname(date)   
7 k2 R# l5 i/ k; x5 s返回date是星期几(按英文名返回)  
' ?( ?2 {; ]% n! K. a; }7 Y2 lmysql> select dayname("1998-02-05");    $ Q) X# W) K$ d! ~0 v8 M, M
  -> 'thursday'   
, h+ \: O: t0 C. i0 Q  L( ]
9 e6 O3 [' E; M8 [# ?' |( `. fmonthname(date)    
: q* h: k, c8 s" k3 J返回date是几月(按英文名返回)  
& l  ^/ g( S; {1 rmysql> select monthname("1998-02-05");    , Q3 a  a, D$ O4 D
  -> 'february'    , Q. V+ `! T3 f$ @; v( w# R( r3 S

$ B$ }) @, m$ M* J' Iquarter(date)   
1 U, x& ]  R- g' V+ i# |' [返回date是一年的第几个季度    % R3 ]& l  N- a# z; D
mysql> select quarter('98-04-01');   
/ J+ H! c1 T, q% g  -> 2    & P& l1 d* N! s9 V% b
% A* D9 B' ]  a; a
week(date,first)   
* l4 Z1 d4 }$ @* z/ n% M9 R' m返回date是一年的第几周(first默认值0,first取值1表示周一是
, W3 a# l( J) S  ~2 @* N. t  G/ P周的开始,0从周日开始)  
) }$ K  N$ {8 C, I/ b- h% A, z" Zmysql> select week('1998-02-20');    . J/ U; G4 f7 R& L
  -> 7   
: W7 E: F* P: w; P6 }mysql> select week('1998-02-20',0);    # U& v) B$ g* z7 P2 Y! ~  U, s8 @
  -> 7   
6 }# G& F) a/ Cmysql> select week('1998-02-20',1);    3 v* C  P. [- }0 B0 _
  -> 8   
/ d) R4 P( ?* h4 {( g+ j. F! g $ h* j; W- }: U  b$ ?
year(date)   
/ t6 ?# K4 H  w  `/ n: c+ \, m9 F返回date的年份(范围在1000到9999)    3 D' D' y: v2 u3 s4 r
mysql> select year('98-02-03');   
- I* Z5 L. {5 {0 _  n  -> 1998    ( i' @2 m- ]7 f" \4 n3 }

$ U3 Z: }) N% _6 w$ Dhour(time)    
2 ^* W; w6 }7 R# J9 x+ F4 n  G, z返回time的小时数(范围是0到23)   : v+ f, R$ B) B! p
mysql> select hour('10:05:03');    ; E3 W5 u( R, y% M. O; N
  -> 10   
/ {$ |! o6 [. g; ^% b% R. l; k9 e + K: U- K+ U, I0 z. |# l
minute(time)   
/ F4 y, [& u) |/ A返回time的分钟数(范围是0到59)    ! }* x/ X% W* D, o  k+ N! X: n
mysql> select minute('98-02-03 10:05:03');   
, B' U! @7 j) \% U6 Z! |  -> 5   
/ C0 D6 _( G# w
6 Z8 D0 E, R% {second(time)    + `; L4 T- ^5 Y
返回time的秒数(范围是0到59)   
( e6 _  K& E3 D- h$ d% p; Jmysql> select second('10:05:03');    . R/ h0 L+ J4 J! p" F2 t
  -> 3   
3 x* }7 o# v: q # q) f) h3 T7 Y% j- M
period_add(p,n)    ! P. P, \) ?7 F/ z; I/ P
增加n个月到时期p并返回(p的格式yymm或yyyymm)    5 }& z. T& b0 I, o; S( ]
mysql> select period_add(9801,2);    " ^6 _) w; T( ^1 o9 c* O" V8 J
  -> 199803   
% m* N% Y- c; O6 Z 6 E4 W, h; }( m6 ^  P  J) c
period_diff(p1,p2)   
, t; c9 o9 {" m7 U( {返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  / S/ O) V9 ?6 ^! o2 {3 I( P
mysql> select period_diff(9802,199703);   
; d: I8 L3 ?* [9 t" q, r9 l  -> 11   
' B8 B2 U. H' Q, I5 e/ ]" N   o( }; |/ y) k- x
date_add(date,interval expr type)  
! j: F2 z9 r. z/ }' E6 l3 kdate_sub(date,interval expr type)    4 P+ q1 s# v' v; V% K* g
adddate(date,interval expr type)   
% J: U* {' E+ p! V( \subdate(date,interval expr type)  9 O& k7 H2 v6 K& g' Z  Q7 H
对日期时间进行加减法运算  
3 }, i5 ^6 a3 a% b% R(adddate()和subdate()是date_add()和date_sub()的同义词,也
5 C+ _) A( G( ]可以用运算符+和-而不是函数  , q3 c1 |7 `4 X9 p+ w; ]9 I
date是一个datetime或date值,expr对date进行加减法的一个表" y' }* w+ F2 K
达式字符串type指明表达式expr应该如何被解释  
9 _+ _) q; x9 k5 Y [type值 含义 期望的expr格式]:  
% U3 E% E- g* Q. V' H  y second 秒 seconds   
4 g' s* @( L' I3 S+ n2 r minute 分钟 minutes   
" v% G* ~  t3 D0 \! a hour 时间 hours   
0 b% [$ g9 G) V# X! t7 G day 天 days    ) `8 h8 y: R" R
 month 月 months   
6 M9 A6 y% m$ y( J4 P4 \* _' Z+ [6 E, A year 年 years      y0 X" w1 m7 s# a: Y
 minute_second 分钟和秒 "minutes:seconds"   
7 m$ Q& x+ z- I% x2 ] hour_minute 小时和分钟 "hours:minutes"   
( h3 ]3 P3 ]. N2 @( I day_hour 天和小时 "days hours"    ; b* {* \( x, C
 year_month 年和月 "years-months"   
! T5 H/ d1 M$ E% E" h hour_second 小时, 分钟, "hours:minutes:seconds"    4 k7 ?. K2 ^* V$ ?1 F
 day_minute 天, 小时, 分钟 "days hours:minutes"      N5 |; V# Y" H- K9 C0 }
 day_second 天, 小时, 分钟, 秒 "days
" G5 m  X1 D! J, z4 ^hours:minutes:seconds" " f* v- n3 Y2 A7 A( S! e4 ^8 m
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个
; u( {: f) b  z% M! }date值,否则结果是一个datetime值)  
1 t- V2 e+ k- r7 c1 ~) C. H, e' i 如果type关键词不完整,则mysql从右端取值,day_second因为缺6 s+ T' _4 D' A
少小时分钟等于minute_second)  
6 E6 k7 `' Y9 ^) Y: g8 \1 E/ D1 ?+ Q 如果增加month、year_month或year,天数大于结果月份的最大天
% `# ~7 k8 W( G0 |3 c4 ?9 S" ~+ n数则使用最大天数)   
1 I5 F1 g/ Y& b8 ?* }* ~mysql> select "1997-12-31 23:59:59" + interval 1 second;  8 Z7 d, w2 m* ^$ r9 U, n

* m- t) x5 T0 E  -> 1998-01-01 00:00:00    ( Y% d" r! O2 r* S5 x" `+ f6 q
mysql> select interval 1 day + "1997-12-31";    ; G0 I: K4 z( @
  -> 1998-01-01    9 A) A. a6 I9 d5 v
mysql> select "1998-01-01" - interval 1 second;   
  R5 T/ Y" A' A: l- }  -> 1997-12-31 23:59:59    6 f, s9 `0 ?& ]+ _3 h3 F2 t
mysql> select date_add("1997-12-31 23:59:59",interval 1
) m( \$ w( k" o% gsecond);   
: s" c$ A0 I! l# c) J  J3 {  -> 1998-01-01 00:00:00      B8 Q; h$ @0 @, u/ Y- Y, V/ c, @
mysql> select date_add("1997-12-31 23:59:59",interval 1' ^  i& @" x; i3 M; H6 M
day);   
' b) G; c& g3 h4 i6 T: h- f  -> 1998-01-01 23:59:59   
2 ~+ w/ ^( g& e6 A+ D* jmysql> select date_add("1997-12-31 23:59:59",interval
$ y/ M9 X$ P) e' ^7 g5 }1 o% W2 t"1:1" minute_second);   
6 B; g' I* `9 [8 e, t# F& P  -> 1998-01-01 00:01:00    & T( z+ ^- n* \: }
mysql> select date_sub("1998-01-01 00:00:00",interval "1( B+ i2 f$ z0 f. }8 ?$ ?3 l
1:1:1" day_second);   
. c0 Q: ], @( A/ E" N0 I  -> 1997-12-30 22:58:59    2 r$ F. ]. e/ J' y
mysql> select date_add("1998-01-01 00:00:00", interval "-1
, Y  C' `7 N+ Y+ C7 a+ E10" day_hour);  
) D2 V% L$ C8 M$ w0 V  T; B0 \+ M  -> 1997-12-30 14:00:00    ! d# J/ F5 ]. T- V$ I( X. ]( j
mysql> select date_sub("1998-01-02", interval 31 day);   
' M+ p' ?% ~- R, u, H  -> 1997-12-02   
1 }) w, i. P$ U, v4 e! Hmysql> select extract(year from "1999-07-02");    ' w& t; f8 r3 C1 z9 `0 x
  -> 1999   
' L/ ^' M! }" Y: B  R/ G. ^mysql> select extract(year_month from "1999-07-022 N+ P3 j8 S/ q
01:02:03");   
& b" [( c- U9 _' T% p; G; m  -> 199907   
7 B; z- q0 U6 x2 L/ M- y# }$ @% Dmysql> select extract(day_minute from "1999-07-02$ l: j8 D! W. H
01:02:03");    4 H4 i4 [* h5 \) Y2 u: u
  -> 20102    / A8 d* Z0 Y# r  N
  k, t4 g, t, w/ ~+ t- Z
to_days(date)   
! z( I* E5 ~8 H2 H返回日期date是西元0年至今多少天(不计算1582年以前)  
0 ]8 f3 r8 o8 d2 @  f1 P4 Y0 q4 hmysql> select to_days(950501);    , c7 ^/ L0 c. `# U
  -> 728779    / Y6 O7 f9 K2 L6 f/ Z: @( o
mysql> select to_days('1997-10-07');    5 J2 h' O$ |5 M& A# L% E& U9 s' ^
  -> 729669    ! L6 l" H+ \" ?/ F) o1 o
+ K$ T' S3 f; W& [: Y
from_days(n)   
  s) ^$ L6 R9 j 给出西元0年至今多少天返回date值(不计算1582年以前)   + S- D& J1 j) f8 e& J! U  n
mysql> select from_days(729669);    2 B' C$ w0 g1 a% D  L/ q( D
  -> '1997-10-07'   
3 `( B1 O+ `2 r" B% d% u# U. o
9 _2 ?3 v) X( R# Kdate_format(date,format)    : ^1 \; A3 P/ O5 y
 根据format字符串格式化date值  
3 H' ?+ h7 C2 k/ m3 t0 e; j- J5 |) l (在format字符串中可用标志符:  1 \0 x6 n$ M( G
 %m 月名字(january……december)    ( x" W: s9 X4 j# U
 %w 星期名字(sunday……saturday)   
/ b" B% ?" `  ?& Q3 K, M& H %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)   
( z* a# ^$ n1 {5 F) n3 T %y 年, 数字, 4 位   
+ w) O- G$ [/ p* K* P2 H %y 年, 数字, 2 位   
+ I% Q7 i  w7 n7 x %a 缩写的星期名字(sun……sat)    : V- u( ?3 X2 p+ G/ ~
 %d 月份中的天数, 数字(00……31)   
% m- T& b4 j5 q) r- [6 W %e 月份中的天数, 数字(0……31)    6 Z7 ]& c5 B% P: p4 m3 u+ _
 %m 月, 数字(01……12)    2 w$ A( \" ?/ Y# Y( o+ Z  G: b
 %c 月, 数字(1……12)   
$ F0 C3 ~/ L) S2 o+ _' N %b 缩写的月份名字(jan……dec)    4 Y! N. k; ?4 }  Z
 %j 一年中的天数(001……366)   
- ~  |3 [( C' S- I %h 小时(00……23)   
/ j) u3 _9 F( `; J/ C %k 小时(0……23)    ; g' }4 z) D0 ]- x* f
 %h 小时(01……12)    + g+ K, r( {) Y/ i. o1 u
 %i 小时(01……12)   
# l4 N) A, e& ?. M %l 小时(1……12)   
0 k7 @) f5 |% Y# F( @3 ? %i 分钟, 数字(00……59)   
" f8 R6 t' f1 b# [+ i. e/ o  i %r 时间,12 小时(hh:mm:ss [ap]m)   
, j) J- N4 A$ t+ W1 N+ q %t 时间,24 小时(hh:mm:ss)   
. p1 ]7 R; [  [& i" C$ X6 Y %s 秒(00……59)    * z0 K, r! i" o$ F! O- n2 K8 \
 %s 秒(00……59)   
; W2 \( i, T( @+ z, z %p am或pm   
6 q6 U/ U" \; H9 q %w 一个星期中的天数(0=sunday ……6=saturday )   
4 _) D& C' ^+ Y/ g) S %u 星期(0……52), 这里星期天是星期的第一天   
; s% F5 `. \1 P( q% O) X6 m  ^ %u 星期(0……52), 这里星期一是星期的第一天   
8 ^1 ^( {5 U; ~! P# I& G4 ` %% 字符% )  
7 n. L( }3 v- U! |; f& @mysql> select date_format('1997-10-04 22:23:00','%w %m %
' Z/ R' \: k6 d. E0 Wy');    : A6 l8 ~) ]0 @% ~
  -> 'saturday october 1997'    % D5 }7 U& y/ @' F
mysql> select date_format('1997-10-04 22:23:00','%h:%i:%
0 h& N! O$ O+ u& I/ ^, Y5 v' ^s');    " n( k% {+ m9 V( o- Z- Z; r6 w: D5 Y
  -> '22:23:00'   
( G, A5 ^, ?" ]: E" _5 a7 u( pmysql> select date_format('1997-10-04 22:23:00','%d %y %a
- I" b3 O+ K1 J% p5 Q; |" A4 t# w%d %m %b %j');      o0 u- r- j: E3 ]0 L' k
  -> '4th 97 sat 04 10 oct 277'   
' A7 p  P1 H: e' f, Y' J" mmysql> select date_format('1997-10-04 22:23:00','%h %k %i
' y( R, {6 T" [2 m( B" e! Y( y%r %t %s %w');    ' C( o  }( {  |1 Z) D% _  ]
  -> '22 22 10 10:23:00 pm 22:23:00 00 6'    1 ^9 W# D6 y, d" I# \* O' A: W! x

1 `( y5 M* W( w7 w3 P7 ttime_format(time,format)  3 O; {4 U* M  h
 和date_format()类似,但time_format只处理小时、分钟和秒(其2 N  T# l6 i' n' j) h: a. b
余符号产生一个null值或0)  + }  E' N( O) z

( }( Y; c9 e* z: o2 ]! Ecurdate()     % }7 X% A! f- [  l. m
current_date()  & V* Q* K6 {/ {& m  g, `
 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
5 }! U6 o% v5 `7 Q处上下文是字符串或数字)    ( Q$ _' Q) r6 s
mysql> select curdate();   
7 \% @5 Y9 U# Y2 |( a% [  -> '1997-12-15'   
8 C0 y% [$ g) T: V: H# u* N4 lmysql> select curdate() + 0;   
- H7 W! u: ]) r6 m9 `# ]% [  -> 19971215    4 m* O$ B1 D3 Z: j- G
( j" d( g) f6 q% x
curtime()   
0 X, s# h% X' j0 l8 i; l' R  {' Kcurrent_time()  
' W$ p. K8 b8 I4 n; s( h- C0 y 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
' X3 D3 t. ?# ?& @0 a: P- I$ X下文是字符串或数字)      4 }) }0 H; U% }) r% l6 u& i0 N
mysql> select curtime();    9 `% y% M0 F/ c5 }; @" X* }- r9 ?
  -> '23:50:26'   
8 a: x3 Q; m/ @mysql> select curtime() + 0;   
3 R) e3 ~9 G1 e! U6 b. y, F4 Q  -> 235026   
2 n) y  L$ P  J0 q9 x! Q7 [) V . ?- f( R" |$ Q/ \: k0 Q
now()    . P3 s6 l  {6 @. E; J3 P. X
sysdate()    $ }# [6 B  e5 _" I! a( u3 h
current_timestamp()  , o/ c9 t1 f( X4 N6 X& d) h( r% C4 C
 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
; z5 s3 m8 [5 p5 r时间(根据返回值所处上下文是字符串或数字)     0 F4 C, f! t' s- y3 Z: G
mysql> select now();   
6 v) k2 M0 `3 E6 ]8 L( t  -> '1997-12-15 23:50:26'   
' L- Z$ h8 |7 ~4 M# s: N1 m  gmysql> select now() + 0;   
% D7 k% c: d* y$ T6 @  -> 19971215235026   
# _, b3 G% ~; n, D8 `/ ~) |3 H6 o+ w , m  W2 F2 k3 b3 q% d
unix_timestamp()    7 o: n( ?/ \% f: E2 n8 z3 |
unix_timestamp(date)   
8 N7 ]5 q/ M, W; ^! a2 d% L# ^8 m返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
0 g. K; d* o  G5 q- Q+ g2 L  I  _数,date默认值为当前时间)  / ?4 C/ a9 @! ?$ {) N7 Q% G' f& ~
mysql> select unix_timestamp();   
% B4 w+ i3 y" g- l  -> 882226357    6 Z* Y9 c( ]+ S4 S7 c$ U
mysql> select unix_timestamp('1997-10-04 22:23:00');    / g- [, m6 |% a  m
  -> 875996580    / z2 K! t* b  V
0 o+ r+ r  ~1 [3 a4 a
from_unixtime(unix_timestamp)    / g( l) l5 T+ F% G$ [$ Z8 ]
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的& X$ G/ S4 M7 Q/ J2 b8 j3 ]
值(根据返回值所处上下文是字符串或数字)     $ _2 }" c. p. i! ^
mysql> select from_unixtime(875996580);    / {' b) k. I5 I
  -> '1997-10-04 22:23:00'    0 q5 L, p: {, A$ U
mysql> select from_unixtime(875996580) + 0;   
. K& d, B! G3 r+ P  -> 19971004222300   
, f: O+ _+ O8 t& n& y3 k % }, }" P: h" y7 M7 z0 X1 X5 E
from_unixtime(unix_timestamp,format)    ' \6 q" Z0 T2 s8 X% K
以format字符串格式返回时间戳的值  8 e3 a& q4 K6 [
mysql> select from_unixtime(unix_timestamp(),'%y %d %m %
2 t: O$ v! \6 {h:%i:%s %x');    ( s' L2 w) H5 \* _
  -> '1997 23rd december 03:43:30 x'   
, \' o2 l& |5 f9 \4 i+ A
7 @3 c) m  K: E5 M5 f3 p: M! _sec_to_time(seconds)   
  J0 b- r' g2 I" r% }# z. w6 q以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     3 s1 Q4 N( t' H. M6 A
mysql> select sec_to_time(2378);   
3 y6 Y! {' R. _2 Z! S! p  -> '00:39:38'    1 p/ Y; L/ a1 [. g: S
mysql> select sec_to_time(2378) + 0;   
- Q. ?# {" w- c0 y0 B  -> 3938    . J8 j' `% D. S

' I! Y- P0 w8 h3 K2 otime_to_sec(time)    , O5 Q8 Q( w2 f
返回time值有多少秒    ; ~8 N* A/ j6 f  X: D9 z7 _
mysql> select time_to_sec('22:23:00');    " |2 R$ c1 f; s4 U  Z
  -> 80580   
1 C+ L  ~, w5 Gmysql> select time_to_sec('00:39:38');   
* r+ d/ w' K" C5 [8 H7 Z: O" G  -> 2378 & a3 x0 ?' h9 o. T

3 p  X: {' `/ Q( N' b( a转换函数
, e, u) ?; {7 A; h( ?- ^9 pcast
# y0 n+ U$ l: H. s! j用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]" `5 O/ F) C: z7 Z5 T9 i: o9 q% R7 y
实例:select cast(a as unsigned) as b from cardserver where order by b desc;
* g0 ^9 i' c+ J( I# [5 ^convert:
! Y: V" K* A1 _: n用法:convert(字段,数据类型)* B' s" a8 z1 i3 g( F0 y. ]! Q
实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
7 d/ Q8 T+ J% ^1 w/ }
回复

使用道具 举报

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

本版积分规则

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