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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数
3 }( \6 `7 B1 t0 a6 n7 f& ~ascii(str)   
. l5 Q, p& c' A返回字符串str的第一个字符的ascii值(str是空串时返回0)  
" Z1 B& M% t8 k# l2 o" wmysql> select ascii('2');  " s. `7 b5 T: q) O  T1 H
  -> 50  
% T+ I5 m: G7 p: f8 o4 c, X" jmysql> select ascii(2);  * _; m6 x2 h8 c3 Y
  -> 50  . B! ~+ c4 C7 D. ~! X, \
mysql> select ascii('dete');  
9 v$ n: K! X, v' n. @  -> 100
" p* C" n. {1 I
ord(str)   $ R; Y7 L3 y% j: H
如果字符串str句首是单字节返回与ascii()函数返回的相同值。! V% `8 C+ C5 g6 Z
/ M3 }8 Q# \: l% B6 g5 z
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  4 o. A& d( D- b
mysql> select ord('2');  
! q& V  J4 v- Q; \/ C  -> 50  # d- S1 G% D7 M& B1 W
   
  c, s2 ?) B: S' B, e! k8 Tconv(n,from_base,to_base)   
6 T0 L( g6 P: s: s% z/ H对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
6 C' J0 B; q& J/ Z( d6 L& Q0 x1 Imysql> select conv("a",16,2);  
  r8 g# p" ^1 p, M) m. g& _. T2 R  -> '1010' , `( n6 v5 e5 g* ~: u
mysql> select conv("6e",18,8);  % \( t# w/ o, n1 e4 c/ d
  -> '172' ; I, @9 ]! j( K3 V
mysql> select conv(-17,10,-18);  2 }# @7 F2 S$ f+ o& I
  -> '-h' , \4 m4 H  t, ?+ m
mysql> select conv(10+"10"+'10'+0xa,10,10);  " {' E& l6 r  t
  -> '40' 9 s: B' E. v1 S) C  |: R
   
' |$ E7 n9 y: X- D; K- v0 obin(n)   
. @8 v% i, f4 o; ^: @: b4 M把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  % W$ P; A- f5 @# F; Q6 g
mysql> select bin(12);  7 ]8 P% }0 ^1 ^5 I& ]2 Z1 s7 R
  -> '1100' & `( X1 Z$ r3 |

1 Z0 p. K+ @1 p8 {3 ~1 D6 K  s9 koct(n)   
/ T4 j7 u$ G0 W. n$ {8 t6 q把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  7 }; I. `$ a$ X9 D; M
mysql> select oct(12);  
4 N8 z) E' q6 W$ B1 A  -> '14' : ]; {9 {% K/ v( G
   
/ ~: p# Z8 I, ~$ n' \1 ]- U. j& Yhex(n)   
7 C2 `& C9 w2 W$ u- l) M; L把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  
( n( y$ r) N2 u) f: P6 A- p/ Fmysql> select hex(255);  . K# g& a, r+ p* K* u* ^- s; o8 G$ O
  -> 'ff'
: _- v8 \' p9 h" K) |: o   ; j+ D2 D& L  G0 Y4 M8 {
char(n,...)   ! P. T/ {5 j/ W$ X* Q/ r4 c' r' \
返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   9 {/ E- @' S! \& m
mysql> select char(77,121,83,81,'76');  * j3 J3 e# Y8 A& a
  -> 'mysql' : `1 D/ n* W3 y/ q. i4 c6 B; q2 ^; ~
mysql> select char(77,77.3,'77.3');  
" e: {7 c5 ~9 Y2 X  -> 'mmm'
/ U0 m, e8 l: t- v% a   
1 `% j+ D( c3 r% Sconcat(str1,str2,...)   " l+ p- ?% ]; X% U
把参数连成一个长字符串并返回(任何参数是null时返回null)  
' I- L  a) O/ {, B, L% Imysql> select concat('my', 's', 'ql');  * X9 y! z+ y9 Q0 F. k1 n
  -> 'mysql'
. R& |. ^8 W4 s8 }) g* Nmysql> select concat('my', null, 'ql');  
1 S7 d& K0 y4 m$ R7 X" ^  x% q! I  -> null 9 F2 |6 H9 F8 s! A/ m
mysql> select concat(14.3);  . c* }  W! ]$ A
  -> '14.3' # ?6 _& M& N' X( w( W
2 i6 L  s" H: y4 r
length(str)   ) C9 ^( ?5 ?! f% V, {' C& ]" Z
octet_length(str)  / e5 L7 o6 w) E& k# V) J
char_length(str)  
/ r: E+ W: s6 q& r; g! T6 @character_length(str)  
  c' @1 i) E1 W9 [! {9 X1 u" F返回字符串str的长度(对于多字节字符char_length仅计算一次)
$ m. \/ _; E9 ~* `mysql> select length('text');  
: C2 |; x3 E# n8 ~/ C  -> 4  
9 S( Q3 k( s2 H# {mysql> select octet_length('text');  : @5 x. V7 w) I/ I* u  E' d
  -> 4  
2 _6 J9 T) s! O$ f
9 C4 K0 u/ u/ J# qlocate(substr,str)   # y2 `3 t/ C+ b4 E$ [
position(substr in str)   1 Y7 W. `$ q4 w9 g
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  $ v7 \5 o1 U5 K9 x: H
mysql> select locate('bar', 'foobarbar');  
/ b- m% V# m$ k  n7 O  -> 4  
4 N# F3 f  j  F0 Ymysql> select locate('xbar', 'foobar');  , ~7 b: X/ P% y9 y  A0 ^/ `! m
  -> 0  
+ U8 i9 n& s; q- w/ X2 b   
' p7 c. e3 J: ]/ r# Nlocate(substr,str,pos)
# }! m' |( i1 J返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  3 s" X- X. w# d2 T& v8 j; N7 P
mysql> select locate('bar', 'foobarbar',5);  % j, G! Z8 E" v9 k1 w; `
  -> 7  
- J8 t# h: c# K- Z7 Q4 K
: d  s  @: w6 S" q1 M% `8 S# ainstr(str,substr)   - x" I2 o8 z! ^, ?; N, i
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
  h  L4 {  O4 u) h* q8 lmysql> select instr('foobarbar', 'bar');  
, _% y: D9 u' w5 Z  -> 4  + U1 T9 _0 ~/ r7 d
mysql> select instr('xbar', 'foobar');  
) Z" |, R! @7 X/ b. n) g' X% f  -> 0   
3 q* p9 I% @( ^& _: z
9 i# Y" M# y% v! w. d, y/ Zlpad(str,len,padstr)   1 a- H3 v% d, X, ~* ?
用字符串padstr填补str左端直到字串长度为len并返回  
2 D( b; W( b  T  \" wmysql> select lpad('hi',4,'??');  ' ~% c8 n5 A0 a' ~' `- A3 r4 C
  -> '??hi'
; D& U) z. p+ x! W# n   
0 G' o1 i9 C5 u0 Lrpad(str,len,padstr)   
* i" `* n- V) C, V8 ?用字符串padstr填补str右端直到字串长度为len并返回  0 p' I: J6 q8 S& h" m+ b  r6 t
mysql> select rpad('hi',5,'?');  
$ z# P8 W" U: p" S  -> 'hi???' * B5 c6 Z# U( \9 z9 l# E, }! n
0 d, F" I2 X0 ?) y6 t
left(str,len)   6 a& S- e5 X6 f. M# d9 ?( }
返回字符串str的左端len个字符  $ i. B, p" Z' D7 H+ o
mysql> select left('foobarbar', 5);  ; n/ r7 A' j& q* |/ X& n3 A' W3 V
  -> 'fooba' 1 k. [1 s, d3 p; ^1 `
& [8 t- t* U* |! i3 Q& x' ?0 K
right(str,len)   
' c, P% ]) L, M+ {, D* f+ Y* h返回字符串str的右端len个字符   
9 m/ c8 ]! Z' C4 _! ymysql> select right('foobarbar', 4);  
) Q! n0 U3 Z" m  -> 'rbar'
& {! _  Y; T. T2 C  a- t % [' a' W+ T$ G4 Y* K3 G9 r" |9 Q
substring(str,pos,len)   . Z. [6 {2 [$ {! @5 d
substring(str from pos for len)   ; g8 E+ O' S2 E2 Z9 C
mid(str,pos,len)   
% a: _6 O- g  \& b返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
) A4 ?8 Z/ @0 h% O) p  -> 'ratica' % R+ n: t- m. R$ H
! c) {' V: }# V! K; [  e
substring(str,pos)   , i: G, w7 O  F5 V; N( \3 p
substring(str from pos)   9 y# |1 u7 o& `0 k- _8 {
返回字符串str的位置pos起的一个子串  ; e1 j5 N" N& k) }9 t% C% H! [& b
mysql> select substring('quadratically',5);  
1 M$ Q9 s) s8 W" M* v& i5 V  -> 'ratically' 3 g8 V# e3 j% N! Y7 b
mysql> select substring('foobarbar' from 4);  9 `3 o1 d5 P; e2 j7 U( F
  -> 'barbar' & J' ^4 k/ Q& K6 M  p$ |
& B1 H* \+ w5 o+ ]; o& b
substring_index(str,delim,count)   
: J+ R/ T0 T3 z9 q1 P返回从字符串str的第count个出现的分隔符delim之后的子串4 I+ C3 O+ o9 O3 n# n0 H  g
(count为正数时返回左端,否则返回右端子串)  : ~5 n  g. ^2 m
mysql> select substring_index('www.mysql.com', '.', 2);  ! j! m5 X' F5 m! H
  -> 'www.mysql' ) c+ H- ^$ k3 b; N2 y$ C2 o3 |
mysql> select substring_index('www.mysql.com', '.', -2);  
# a! |! h  @  f# M" R  -> 'mysql.com'
" v/ G4 @/ r- h; _ , e" V& I  [! S& V1 B
ltrim(str)   4 {. X! t" |4 k  S1 d1 t) P
返回删除了左空格的字符串str  / _. f2 U9 Z5 l# E9 U" _* q. Q
mysql> select ltrim('  barbar');  ! P3 u/ ]' v' n2 [/ e0 z5 }( ]
  -> 'barbar' $ Y- a, m  D, ^

/ R' M6 i9 y) h8 F2 o% Y3 e5 Brtrim(str)   5 D2 @, K$ G/ \. [2 G. l; u
返回删除了右空格的字符串str  
. h1 P: N, P2 X! Y+ pmysql> select rtrim('barbar   ');  ' o/ d1 Q; A' ?1 v  B
  -> 'barbar'
* ]. x$ z  M( a) f) d- [ ) b: e& L5 W: q4 m% q' e3 G
trim([[both | leading | trailing] [remstr] from] str)   3 @1 c. p$ P0 w4 j& [5 {. h5 c) e
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
# A- O0 h- d. E3 Cmysql> select trim('  bar   ');  
; w, p' T7 ?! X* ]( q  -> 'bar'
" v3 C+ L7 S5 M( ~3 B+ Y% Jmysql> select trim(leading 'x' from 'xxxbarxxx');  
. \) y) h2 l8 }# F8 s1 U. t2 a& {  -> 'barxxx'
. [- H$ n; K; e) Emysql> select trim(both 'x' from 'xxxbarxxx');  
% V( t3 w( x# x& [4 U  -> 'bar' " l. _+ e( F0 X9 [
mysql> select trim(trailing 'xyz' from 'barxxyz');  3 P4 }9 {+ {. D0 x. K9 F- Q
  -> 'barx' 2 I2 n0 Y. }# ]( X

3 t1 [/ V4 @( U6 y# p7 Hsoundex(str)   & P  Z: x2 j3 @$ j) j3 `, Y6 @
返回str的一个同音字符串(听起来“大致相同”字符串有相同的& @  i! t$ V  _# a8 s
同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  
/ m" X5 t& H6 gmysql> select soundex('hello');  2 ~/ t3 Y8 P- I- [9 m
  -> 'h400'
$ f: z) t$ D2 w. T/ Zmysql> select soundex('quadratically');  
! j  b! p2 Z- B6 C. K  -> 'q36324'
0 z) ^) `4 C; G! d/ a( j   * H- p- @% h3 C$ ~/ R* I
space(n)   $ f$ ?8 G* u+ c0 L/ \- L! P
返回由n个空格字符组成的一个字符串  
- u/ R; w+ ]! }/ h! amysql> select space(6);  * l# Z+ l  j- e
  -> '      ' ' S/ A: g- h! O4 |2 O' N; H; l
   
2 Q2 C+ n6 k# N" i4 T) R; Freplace(str,from_str,to_str)   
" f1 L$ S9 C0 U3 j  H& M$ i* d用字符串to_str替换字符串str中的子串from_str并返回  
% C' Q/ s# l' I# f6 [* Zmysql> select replace('www.mysql.com', 'w', 'ww');  
$ c+ V: q0 G) m1 w% E0 Q  -> 'wwwwww.mysql.com' 6 s' j" a3 w9 q1 x9 G' l$ A# u
% |2 K, E, i" N+ `& i" W
repeat(str,count)   : ^. }+ k9 T0 c; [# O2 p; F
返回由count个字符串str连成的一个字符串(任何参数为null时
. p* Y9 [6 n! q返回null,count<=0时返回一个空字符串)  
" A! A8 r( r( B9 \" a* Cmysql> select repeat('mysql', 3);  - o2 j- c9 t" s1 S9 Z) j. U4 _
  -> 'mysqlmysqlmysql' - m2 u- ~+ J9 F* I) f3 [+ J
   
# K3 C1 K& h' O6 U! V9 D3 |reverse(str)   
" G+ X8 ~* D0 Z, T: D2 H颠倒字符串str的字符顺序并返回  ) J( x( o8 N" R! @
mysql> select reverse('abc');  
8 Z3 T0 I. Y( |1 E8 v* G, |  -> 'cba' ( @; l. ^5 h. v6 a8 i4 U2 z
* {2 ]6 w0 c7 H8 [2 k5 Z
insert(str,pos,len,newstr)   
$ ~2 L/ S& q& N0 \7 s6 Y- b4 R5 \5 R把字符串str由位置pos起len个字符长的子串替换为字符串7 C+ I" H- \; [3 Q1 W2 [# W& q
newstr并返回  " ]8 f0 i7 s+ f6 ~
mysql> select insert('quadratic', 3, 4, 'what');  
$ V  E! R' N9 t& w* k* f  -> 'quwhattic' . }* C( V+ d9 [" C% b- A- s% t" |

5 G. Y9 O" b, ~elt(n,str1,str2,str3,...)   
8 K  _8 b5 O4 ?$ |" y! R( T. S返回第n个字符串(n小于1或大于参数个数返回null)  
, c. D7 W+ z0 @2 q+ a& [* C0 Jmysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  / _# B6 M, [, d
  -> 'ej'
$ m6 H! L5 M) {0 Ymysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  ( h) G7 U. N/ s6 v# T9 h2 ?- Q
  -> 'foo' 6 F+ p3 p0 \6 j, w; N" N2 _. }3 @
# _" f. H+ Y. C; B) p
field(str,str1,str2,str3,...)  
7 F& j& p+ L8 o返回str等于其后的第n个字符串的序号(如果str没找到返回0)  " r9 q% \4 [0 ^: B
mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',% J1 H( E+ J1 j- ?& a; w/ u
'foo');  . J1 _& W# F! h( [' ~5 Y
  -> 2  7 k3 m! A; v/ x* f! q1 g9 ?2 w
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',6 Q0 {- B; B$ Y
'foo');  
6 \. }4 H+ P' q, q2 s  -> 0  " y7 q8 R9 ]$ x& b; M
! m4 c0 C7 o  f5 P* g
find_in_set(str,strlist)     [, K  X5 _" ]( i) i' Q
返回str在字符串集strlist中的序号(任何参数是null则返回6 v  c: C9 n$ ~7 c/ {
null,如果str没找到返回0,参数1包含","时工作异常)  
4 g7 O/ P' u5 Y7 Qmysql> select find_in_set('b','a,b,c,d');  
% o1 @+ S" q3 U, A) S  -> 2  
- o, {: K4 F: T8 i   , a% p- h+ D& x% A
make_set(bits,str1,str2,...)  
, M5 ?3 u( K7 Z/ b' r把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
3 r+ ~( L5 E5 g& U位置的字串选入字串集并返回(null串不添加到结果中)  
1 Z  Y8 C( I0 e6 }4 gmysql> select make_set(1,'a','b','c');  
% C7 y$ s/ x: S8 k) o% [& A2 \  -> 'a' 8 k% H% ^9 u' n2 \3 x
mysql> select make_set(1 | 4,'hello','nice','world');  
: a: ^0 S4 a! {/ j  C- D3 V  -> 'hello,world' 2 y% \7 M. w! F+ a* N
mysql> select make_set(0,'a','b','c');  
( ]& f% X7 T2 h, w2 o* }" [  -> ''
  t4 V3 z1 P  c   _, F& g' m6 i) P
export_set(bits,on,off,[separator,[number_of_bits]])   
& p: @6 L9 ?9 {  l6 a- k5 C按bits排列字符串集,只有当位等于1时插入字串on,否则插入
8 q$ u- ]+ ~( Y. ]. l) f& Boff(separator默认值",",number_of_bits参数使用时长度不足补0
' F, c2 J/ D) t6 H& R8 X6 }) U而过长截断)   1 f1 {2 F7 g0 X: I
mysql> select export_set(5,'y','n',',',4)  
3 l6 Z. C* G+ Q" l; i) P  -> y,n,y,n   
/ W7 A) j& m4 D& V; \* _
" U0 F# S: P0 E" t3 ~9 |) a, \4 ulcase(str)  
- j$ S5 _. U# K- Dlower(str)   
9 g( U- I  p# U# e4 {" r返回小写的字符串str  
6 X5 P( p1 g5 [3 I5 |( i/ `mysql> select lcase('quadratically');  1 f! G6 B; p9 L8 q! o
  -> 'quadratically' & t" Z( q9 G; p0 a
   
( l8 ^) r/ Q" a! Rucase(str)   
1 g) V& b) n# uupper(str)  
. q, \0 Z. `7 k8 v5 B  W# q返回大写的字符串str  : L1 |% `4 D1 U' V4 z
mysql> select ucase('quadratically');  9 z/ h9 t! V' u) D% C* c; X
  -> 'quadratically' * u% c9 N6 A( K+ D2 k* \
0 ?: o! f5 w0 s  O! k6 r. t
load_file(file_name)   
; A1 d& p4 @5 a- I( B读入文件并且作为一个字符串返回文件内容(文件无法找到,路径
4 t& `/ c7 E) Q9 T不完整,没有权限,长度大于max_allowed_packet会返回null)  
1 o* A% J" z6 jmysql> update table_name set blob_column=load_file1 o' m% H  I! k; G
("/tmp/picture") where id=1;  
; o9 h3 t" f, ]0 K + h% T/ U/ C7 @" I9 u, c) t
2、数学函数
6 C$ ~) s5 u! h" ~' s( M6 Yabs(n) ; v. w7 }: h, @# l; i
返回n的绝对值  3 r* d* }2 \* F' c
mysql> select abs(2);    8 E3 z  n5 x% i0 A, x/ N
  -> 2    / M$ I* }- d! w
mysql> select abs(-32);   
& k# k9 _7 L" @2 E+ Q7 v: O  -> 32    & N3 C( V! y6 d* y+ V) a+ m% y) A
   
8 @' |, [6 g) ]/ [9 fsign(n)  % G1 ^3 u" j- n1 Y( ?- ~7 O4 A) Z" [
返回参数的符号(为-1、0或1)  ( }( A5 B( ~( M: v, H9 C7 h, f3 T
mysql> select sign(-32);    $ z6 j  D, }: k$ G: u8 G+ r* h3 z
  -> -1   
- e7 O7 |6 A3 f+ C3 _+ T0 imysql> select sign(0);   
% q8 C% V; A9 |  -> 0   
7 e/ h( ]6 V; H1 i1 D$ g9 [9 Imysql> select sign(234);    ) F! n* o% y" |9 B
  -> 1    . f* ?  h9 ^. H. n$ E5 X# ~

9 v% f+ `5 _- Amod(n,m)    2 c& n2 }2 f( J" m9 X: i3 l
取模运算,返回n被m除的余数(同%操作符)    ; P4 e( P6 Q+ z, W& r. h
mysql> select mod(234, 10);    $ v6 D8 l4 X& X0 [) H8 q
  -> 4   
" {' c. F7 L0 T( \( [; `mysql> select 234 % 10;   
. J! V. a  A% ]0 J  -> 4    5 r) p* ]. g& f6 |7 X5 T% F
mysql> select mod(29,9);      N# u! R. {* ~0 W3 U( ~7 w
  -> 2    " j2 t& S7 [5 V, R4 K- c& o7 k* I

+ O4 k+ \+ h/ P% ^) w  K: ]floor(n)  2 ~# v0 p1 _$ {& Z* H# m
返回不大于n的最大整数值  , F( o, C1 T: A+ @! P$ M
mysql> select floor(1.23);   
) m7 ?. X+ b) @5 e& }5 c4 y0 p  -> 1    : Z5 T: N/ A1 _
mysql> select floor(-1.23);   
, M. W. C2 J7 t+ u9 t8 k2 p  -> -2    3 c3 V* Y1 X7 k; V# M0 s. @1 {

0 j9 g$ ^7 F8 C7 uceiling(n)  / Y  ]$ i6 j/ S9 _. I
返回不小于n的最小整数值  5 }, t3 n# D$ O4 L6 f, y/ L7 h
mysql> select ceiling(1.23);    - A  ~6 Y$ M/ p. c9 t; M
  -> 2    8 i, A, t/ w% s1 x  ^
mysql> select ceiling(-1.23);    3 `0 T/ w/ J# Y! I; |2 m
  -> -1    ( H8 v* K  y( z. X6 X2 R
$ |8 G0 d! `2 v2 m" k
round(n,d)  
' b+ x$ w  T2 `返回n的四舍五入值,保留d位小数(d的默认值为0)  # L) O; C7 k/ J
mysql> select round(-1.23);   
! F. [  @' z1 q3 D: g1 G8 Q  -> -1    1 j. j) `0 Q& O3 ^/ J
mysql> select round(-1.58);   
9 i# R% u0 h- z% \" W: t- S  -> -2    : i, b" q1 g$ n9 P
mysql> select round(1.58);   
& |9 [# `: t" N  -> 2   
) A4 v; B. D1 e1 ~mysql> select round(1.298, 1);   
/ D' X0 O4 F" Z# ~, M; ^2 d  -> 1.3    - I7 R9 l' n# \% N% O
mysql> select round(1.298, 0);   
9 O9 ~! B4 k& q  -> 1    2 t$ V. T' M8 X" H! `
' S4 e, c$ Z" F8 z4 u/ t$ |
exp(n)  
  x* M0 A, ^5 ^- m$ e; ^7 O返回值e的n次方(自然对数的底)  . `0 F' k0 ]$ O' f6 D
mysql> select exp(2);      U" Z* l% ~5 l4 v
  -> 7.389056   
0 E) q8 j2 \, C) N$ _/ f1 I# d0 u; fmysql> select exp(-2);   
( @  K$ o* U' p2 A1 u  -> 0.135335   
- n! l) h# a/ w 9 k( h) N9 m. L8 W8 m
log(n)  
4 P% T. p' J- `  ^1 b" f5 n返回n的自然对数  % |) y8 j6 x; ~& v
mysql> select log(2);   
/ K$ o  R) E. k( Y! u  -> 0.693147   
  t% L% Z- d2 `1 N  t' e- n/ imysql> select log(-2);    - M4 c5 X/ x" Y7 c
  -> null   
3 ^/ H7 z) q% _4 s2 | & g8 p, K# n, m7 p' q7 E7 P% E7 E
log10(n)  # a9 v/ N" l9 l; T8 W3 ]0 W
返回n以10为底的对数  
: I- K, g# ?6 S, w# mmysql> select log10(2);    4 D" j) n; M. L1 P( [3 j
  -> 0.301030    ) \1 }% {4 h  h- ?" ]. }5 Z
mysql> select log10(100);    2 y" {& A+ ^) ]' C
  -> 2.000000    3 F% d: l' k4 h  z( a( s. f; G( g
mysql> select log10(-100);   
6 o& {) l$ |8 _3 {: F& B  -> null      U1 ^; l0 x1 R
; K0 y* D2 z: b8 Q
pow(x,y)   
" |7 J8 E( J" _& ypower(x,y)   
$ P/ B$ T- r+ ]% n 返回值x的y次幂  1 U2 K9 D4 Z, }
mysql> select pow(2,2);   
& O& X4 l- y, n, y( g7 G. k/ D' h  -> 4.000000   
$ V  X. p' r* D5 Ymysql> select pow(2,-2);   
( \' ]0 w: A% L/ K$ V  -> 0.250000  0 B. z3 w2 V7 j" L/ B2 t; |2 m) g0 `
; l6 q6 r- ]3 C' G. Z- _8 v
sqrt(n)  * h; c! {. C8 G0 i3 u/ U. A0 U1 e
 返回非负数n的平方根  
2 _2 @2 t  T6 [$ L/ b" h: h2 \7 ymysql> select sqrt(4);    " g" Q1 E" M% K, X
  -> 2.000000   
% J: z) r& G# P* j: \) q+ Q# K! o8 umysql> select sqrt(20);   
4 s4 V  h* K8 {6 Z7 E% _  -> 4.472136    # V; _6 [8 e5 f  `, X0 s8 f

' R: k/ e+ X# K. v! tpi()   
/ R" g% M3 \) c: \: s 返回圆周率   # A4 z  \2 W( g; D# J" Q& C$ {, r
mysql> select pi();    - R" {  T$ ^' X) _* J$ ?
  -> 3.141593   
! O3 |, H9 Q8 w5 g  \% f ; A- W' }3 J! j# t/ e; f
cos(n)  
$ O7 T+ d: z# m3 i5 l0 X, O& x 返回n的余弦值  
+ T* Q  Y1 y7 H: n$ }# M2 imysql> select cos(pi());  0 ?+ P' l5 ]5 J! J. _
  -> -1.000000    ( j; O$ ]6 ~/ d) X( T

, a- [0 G6 n, I: a! Isin(n)  
, ~" h2 g6 C2 ]/ X; e, S1 ^. t 返回n的正弦值   
9 P3 Y' j/ X, j9 @2 o% L: Omysql> select sin(pi());   
* U' d7 ]5 m: |- X  F4 w4 u  -> 0.000000   
" e- ]) D; A4 p
' n. X' n2 N  T" I( l. u4 N  Mtan(n)  , M; b6 @% F7 w) h5 @( e
返回n的正切值  
) `. v  J- x/ x+ R; Q% ]! Gmysql> select tan(pi()+1);   
$ v. M  E7 U; K# O8 _  -> 1.557408   
# X5 b# z$ Q5 |: W8 _ 1 N) a& q8 R2 c0 k& E
acos(n)  
* |, I8 B/ V" F2 z6 [/ ` 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  * c$ u3 a% j7 d
mysql> select acos(1);    5 S0 p( v% h: t! c  e
  -> 0.000000    ! y- a" L1 v3 _0 O* C1 J1 d
mysql> select acos(1.0001);   
, e. W8 w) J# C* S0 x  -> null    ( g; R4 B1 Q1 ^0 ]4 X; y4 p5 P
mysql> select acos(0);   
3 p1 _7 M$ w0 A" B% S: p3 d! E  -> 1.570796    / A/ }, X, G/ n* t

3 T2 a. d$ x. i* A0 h5 }6 Rasin(n)  
, S. y+ _. c. o. V9 i- n( Z返回n反正弦值  7 I% D- P, z: m/ B# U/ L
mysql> select asin(0.2);   
3 ?7 U$ E' B  P: S4 A  -> 0.201358    1 z0 k2 u6 O( X& R3 C* L% K
mysql> select asin('foo');    , j7 T( e! \6 a# n3 }$ T7 k' w( r* n
  -> 0.000000   
' @* w  q- K$ a0 c& P8 E
* J  f# \9 y# G& ]! Y( n/ A& Oatan(n)  
$ x/ N5 w6 j) V# q* I1 x返回n的反正切值  
! A1 h/ ?7 G) w# S- _mysql> select atan(2);   
1 j' S: T/ L0 P% S2 A' [: d  -> 1.107149   
, ?! b8 j1 }- ~+ j' smysql> select atan(-2);   
' [9 V/ s& q# c7 W! g( r  q+ E  -> -1.107149    5 z4 v& Z3 b. X3 d5 b4 o; B
atan2(x,y)    2 R  c" n* g# [0 E7 U
 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  
4 B( @& m. F5 S( pmysql> select atan(-2,2);   
$ Z  H( L) L& ?( G  -> -0.785398    " n. ^3 q. Z+ K+ `9 i# S2 ]! I
mysql> select atan(pi(),0);    ! r% _0 l* W4 g( }* |
  -> 1.570796    1 A5 n, t& c% z" _2 q0 ^) Q
* _$ C2 c9 E6 B2 }; p8 I
cot(n)  7 H2 e' R  j9 A( a, P
返回x的余切  
+ }9 U! m( a# cmysql> select cot(12);    3 f4 I2 w2 U' q9 u4 S
  -> -1.57267341    7 [9 V5 s9 ~# c# x8 ]$ s% [
mysql> select cot(0);    / j3 ?, F4 \. Q. e1 Z
  -> null    0 W0 f- Y+ B$ u* E$ T

) d* X1 I6 H9 T3 Arand()  ' R3 A! L+ C1 M- M" \
rand(n)    
6 ~* h& c% b2 w) C返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值) 5 [3 u) t+ c' P3 i, ]. x
" q2 c+ |- i5 `# Y0 {$ V
mysql> select rand();    ) `3 p# B; Z: o2 o8 `
  -> 0.5925    8 o5 I! ]6 s- y7 e. U" A2 }
mysql> select rand(20);    : q7 s& W: c2 M
  -> 0.1811   
& n  Z3 `: V) z2 V. jmysql> select rand(20);   
$ X. g6 J' K! n6 i  -> 0.1811    8 i/ r. m& c: P
mysql> select rand();   
$ P4 _$ _+ Q) Q* o/ S& N  H- u  -> 0.2079   
2 p; G: L9 r6 T8 u" r* Zmysql> select rand();    + K7 O: S( h1 b# @& d
  -> 0.7888    " l" h# Y, c- H4 J  Z/ g* _

! C, E* y7 d. f8 n- M+ \% kdegrees(n)  + K" ~8 ^( F: Y) H" N# P
把n从弧度变换为角度并返回  
% o0 a) P6 N3 a, B/ ^( M7 Dmysql> select degrees(pi());    ( ]. P7 D7 g  W2 r
  -> 180.000000    4 `, b  x' v+ m- ]
1 m. E& a. W  B$ v
radians(n)
( h7 m8 j6 y1 L+ Y把n从角度变换为弧度并返回   * ^: _! \' x+ n/ h' |0 Z
mysql> select radians(90);   
# k2 b  k: f9 t( t) X" T  -> 1.570796    + }% U/ w+ r) y( a1 p

) F' F2 K# M- C3 {7 W* q* Wtruncate(n,d)    ) q, F. A8 M/ i. {  r2 ~) g( o8 }
保留数字n的d位小数并返回  ( U# X" o  k* m, h" D2 J8 ~- C! L
mysql> select truncate(1.223,1);    6 E% |. A( @$ P
  -> 1.2    4 L4 l- K* R# e) ?% Q
mysql> select truncate(1.999,1);    2 y7 n# Z3 \) y: n, f
  -> 1.9    ! M5 a: E, n' M2 y0 v4 Z
mysql> select truncate(1.999,0);   
+ b$ F, J& g; G; ?6 r) L5 O  -> 1   
9 Z* C) S, v! ~2 z4 t
+ s+ l" x- _% B$ N& P7 q& ~( Nleast(x,y,...)   
2 A2 P: b6 e9 }9 X8 T返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
( B2 t. V0 |" @mysql> select least(2,0);    5 O- k: l7 v. h. y& ~
  -> 0   
- p  w" ~2 ]# T- v" T3 }mysql> select least(34.0,3.0,5.0,767.0);    1 \  u+ }! g4 T
  -> 3.0    1 W. ^, L2 T+ O) @0 J0 Y
mysql> select least("b","a","c");   
0 u+ e* z6 o2 i1 r: g" i  -> "a"   
: Y8 y2 B# ^8 w: \2 ^6 O+ B, ~
$ Q" x0 }+ r  p; jgreatest(x,y,...)    . r8 f7 E7 e* ?' R/ R
返回最大值(其余同least())  
% ]+ {& c  e: I. ~6 x2 nmysql> select greatest(2,0);   
' ^  k, a; b6 g  P( Y$ d  -> 2    5 r( w# @) B$ j
mysql> select greatest(34.0,3.0,5.0,767.0);   
- d, ^( |6 ~" R$ f6 \/ T  -> 767.0    . z+ w/ l' U3 K+ Y
mysql> select greatest("b","a","c");    8 {5 F) O5 A$ K( O+ k
  -> "c"     
+ _) g; ^$ U1 {- {2 D! i" [5 M7 g$ A7 ?8 a1 ~( n+ c3 a3 Z) I
3、时期时间函数
) b; N, x; \: G9 Q. Ydayofweek(date)    8 ^- ]! O! ^, ^+ X8 o7 U
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
+ T8 o  y0 v0 W1 Pmysql> select dayofweek('1998-02-03');   
3 K( p5 T! G3 \  _3 o8 Z( {% `/ b  -> 3   
3 w! N6 g& q, B* m9 X
! m* [% i* Q2 c4 G3 I" Pweekday(date)    4 _3 U7 L7 |' n5 A: T: m1 ?# z
返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 ! R/ `. P) e- }* R" m
  
2 }( A3 b* \) d' o4 J- E: n; y1 \: Cmysql> select weekday('1997-10-04 22:23:00');    4 G9 q" @9 c" b
  -> 5    0 X& x+ A0 w5 U: \. [5 B1 h
mysql> select weekday('1997-11-05');    3 [& k( ^# o" I( q: E3 z
  -> 2   
! [+ u! m; o* J* l0 ^( G
& i/ d7 y& D7 adayofmonth(date)    
- S. M" P  X' p- Z3 ~: V返回date是一月中的第几日(在1到31范围内)    & Y9 B4 ]: r, w- O! L
mysql> select dayofmonth('1998-02-03');    - i7 S  N; @1 E4 i" ~
  -> 3    6 z" I1 g: x: B5 j# }" Z; O

( z4 B/ N9 @. v2 z$ P+ P* y2 k; F+ D5 Ddayofyear(date)    2 ?( w% {; o$ p
返回date是一年中的第几日(在1到366范围内)    2 g! E/ M  ~+ a0 j
mysql> select dayofyear('1998-02-03');   
1 C$ i9 V% ?. A$ [  -> 34   
, d$ n% J6 W3 r- i# B7 S1 l$ i
2 T, H6 w' \$ K  ~; Z) Amonth(date)   
  G/ Q0 j8 C9 w9 S) Z返回date中的月份数值    + i; S0 }- [1 I- J5 `
mysql> select month('1998-02-03');   
7 @/ u% R8 S2 U3 n  -> 2   
1 g% L/ G7 F4 I% N2 I0 Q- K( b
- l8 S0 \1 v. |dayname(date)   
/ B! C; E2 O% a返回date是星期几(按英文名返回)  
0 C7 i! j) A% }5 d. k& L0 Tmysql> select dayname("1998-02-05");   
" |  ?) a4 @2 W! @* w$ k3 I  -> 'thursday'    / ?: h* ^- A7 ^8 C2 z2 k! ^
- T( Y' a6 F5 p5 X0 M* ~2 o- \  l
monthname(date)    
0 P) l2 w$ }& c' }! }1 b返回date是几月(按英文名返回)  ) T8 N" t7 W' P' k2 p, ], N8 x" ^
mysql> select monthname("1998-02-05");   
) d. M$ t0 e7 v! |) y! j  -> 'february'   
8 e+ d: X' B  k" {
% I4 m% D, i8 i5 j# d# Lquarter(date)   
' t! Z# X9 S! x0 A返回date是一年的第几个季度    8 ~+ X$ f# A  b" y9 r
mysql> select quarter('98-04-01');    8 C2 W# z) z0 }
  -> 2    ' o  |  D3 `% [$ |0 d3 q

6 x# W# G, B, a' C4 S! gweek(date,first)   
1 u( n+ U3 E& G; X0 ?返回date是一年的第几周(first默认值0,first取值1表示周一是
, W" N- a. j' X; h2 O周的开始,0从周日开始)  6 j/ g7 a, o) L7 j; b
mysql> select week('1998-02-20');   
; u/ g5 ]1 }; y  -> 7   
; P% W# Q" u, G5 B* h1 imysql> select week('1998-02-20',0);   
( U$ ?* ?' [) ^; P  -> 7   
, M4 e; r+ K7 F. V9 o6 [) R' }* Umysql> select week('1998-02-20',1);   
5 e6 B; v) N7 c$ [1 U) G* W  -> 8   
: z0 {- p/ A; |. d) I9 {* } ( c& o, C0 _$ d# r1 e
year(date)    1 R  B% b7 I# o" g
返回date的年份(范围在1000到9999)   
( j5 I+ l$ [! [* ^$ ?( t( Mmysql> select year('98-02-03');    - o2 J, J  \  s5 |8 i5 ^6 e
  -> 1998   
- H  ^5 {  B7 k2 \% S! ]' @1 p
% Y/ s5 E, w; i4 z* Nhour(time)    
  C7 D( U! M) |返回time的小时数(范围是0到23)   / e: ^; ]% N. ]7 Q; g( v
mysql> select hour('10:05:03');   
! G5 M% L7 I% K& u/ ?$ O# v  -> 10    ' I$ h3 S% E& b  `: z" |
; M. K3 p2 v/ ?/ N
minute(time)    / ~7 O7 k- r4 p" h4 i" `! l
返回time的分钟数(范围是0到59)    3 o7 E( x1 }  ]4 l- g$ B
mysql> select minute('98-02-03 10:05:03');   
  t3 U* J' `. P  -> 5    0 Z0 u! O, r* B. ]6 A  x! A
' D2 s. ~' T8 m5 o1 [* Y: i
second(time)    
# T+ |! H6 k7 `0 E4 |4 {返回time的秒数(范围是0到59)   ) K! @( t* L' T) a# Y3 B
mysql> select second('10:05:03');   
' V1 R% S# u% K% [9 q9 s) p  -> 3    " v( f/ O9 W) R
7 R# ]2 q  J2 a& |
period_add(p,n)    2 z4 P3 m% y& B+ h- L0 D: K
增加n个月到时期p并返回(p的格式yymm或yyyymm)    . @2 c  v) b, M# W
mysql> select period_add(9801,2);   
1 n$ g) o1 O/ v2 E9 q  -> 199803   
7 C8 j6 f6 V8 v 5 M+ v4 V7 s" Y& T3 n. j  `4 G* r
period_diff(p1,p2)    7 p' j! D- D4 C" q; i. r
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)    B# k9 @" O% m' T) m
mysql> select period_diff(9802,199703);    / e8 ^1 y; r6 s: b' N2 i
  -> 11   
' ^. T  E) ~8 s; r5 X: p4 T
/ D7 O- ]5 M% qdate_add(date,interval expr type)  6 m. K0 Y8 f1 V% s5 Q8 W; T3 S- x
date_sub(date,interval expr type)    " s$ Y' L0 O. i6 K% k8 g
adddate(date,interval expr type)   
' d' `! |2 i& l1 t2 Rsubdate(date,interval expr type)  
; f7 k7 Y7 N( V对日期时间进行加减法运算  
- N* T/ v0 \8 b+ b/ L: E) _(adddate()和subdate()是date_add()和date_sub()的同义词,也
5 s: L5 H7 C* ^# ?" Z可以用运算符+和-而不是函数  
3 n) x$ H+ X* @" x3 Gdate是一个datetime或date值,expr对date进行加减法的一个表  g, w3 \( e9 `2 }' X
达式字符串type指明表达式expr应该如何被解释  ; p% f9 J5 ~$ F
 [type值 含义 期望的expr格式]:  
5 s$ G$ `9 L/ C2 Y second 秒 seconds    5 X( S9 s% Q8 ]* t, r% k
 minute 分钟 minutes    0 J6 p, R0 D* O& G
 hour 时间 hours   
  a2 m; z6 u- o day 天 days    2 p8 |% r4 X! r
 month 月 months   
) ^! `7 j+ S. k0 Z year 年 years    " q' \  U7 I  R' Q/ F' E* Q
 minute_second 分钟和秒 "minutes:seconds"   
& U9 ]9 ]8 Y" F! _$ i7 Z+ A( s7 F hour_minute 小时和分钟 "hours:minutes"   
: q! R; Q, r" C0 h/ y  B4 y8 |" s5 S day_hour 天和小时 "days hours"    & T7 o' A( H* Y, L0 J5 n" E6 t; q
 year_month 年和月 "years-months"    . |9 g* t1 ^2 t. p
 hour_second 小时, 分钟, "hours:minutes:seconds"    . [( U! M  P+ m% t! U% q, T
 day_minute 天, 小时, 分钟 "days hours:minutes"    0 e7 A" U/ c5 _, i; H: u$ \5 y* Z
 day_second 天, 小时, 分钟, 秒 "days
6 i) m8 H: T$ q+ Thours:minutes:seconds"
% }# m) }% g: T1 y expr中允许任何标点做分隔符,如果所有是date值时结果是一个! E+ x5 r  n# r5 W, h  D
date值,否则结果是一个datetime值)  . z4 }' }( H" T8 V
 如果type关键词不完整,则mysql从右端取值,day_second因为缺
8 p/ g% N( \9 W% M  ^少小时分钟等于minute_second)  : g' c0 j$ U7 `% z, Y: _! u& B
 如果增加month、year_month或year,天数大于结果月份的最大天: r5 X8 I7 R( R" U: J/ Z+ b
数则使用最大天数)    , t; ^  O4 S1 _& {  p
mysql> select "1997-12-31 23:59:59" + interval 1 second;  ( g) j) {) A6 S" z7 C

, m9 L5 ?, g, t" }. {  -> 1998-01-01 00:00:00   
" F& b# ?$ W0 fmysql> select interval 1 day + "1997-12-31";    ' z& j$ K7 f. X$ d* p" A& x
  -> 1998-01-01      a5 I& M( g/ f
mysql> select "1998-01-01" - interval 1 second;   
, L/ N0 A! ?0 p0 M# V& W0 c( K  -> 1997-12-31 23:59:59    # ~6 ]$ O/ a, s& Q: J( ?% C
mysql> select date_add("1997-12-31 23:59:59",interval 1  q0 \! R8 M8 p$ l0 V. Y/ {
second);   
- F+ E: _) U& z: j1 [8 x# ?  -> 1998-01-01 00:00:00   
9 C/ n: Q& X1 f/ `7 d/ c  C8 Mmysql> select date_add("1997-12-31 23:59:59",interval 1& |# ~. D4 E8 ?) T
day);   
5 l/ t" B, T/ |. E4 z6 u* g  -> 1998-01-01 23:59:59    ' N( X6 a& B: L# [7 I
mysql> select date_add("1997-12-31 23:59:59",interval
( m  x; J' L4 G1 A"1:1" minute_second);    & g7 R- t8 v5 ^7 o- ]
  -> 1998-01-01 00:01:00    3 \4 R& B- a3 p: Q- W0 `
mysql> select date_sub("1998-01-01 00:00:00",interval "15 M4 U4 W) I8 |0 O2 s6 W
1:1:1" day_second);    , y2 c* A6 m! L6 ]$ B1 k# p
  -> 1997-12-30 22:58:59   
$ b( }. g/ T8 Q5 w" H; K: V5 Cmysql> select date_add("1998-01-01 00:00:00", interval "-1, C( u. h' C9 X
10" day_hour);  ! D$ V9 h: X8 s% j7 A* m% o
  -> 1997-12-30 14:00:00   
8 N. l& i; A$ l' x$ N3 r( M0 mmysql> select date_sub("1998-01-02", interval 31 day);   
6 ]3 f3 f5 V1 @0 p  -> 1997-12-02   
7 z( f8 x) g! rmysql> select extract(year from "1999-07-02");   
5 E/ d8 v* u7 W! }  -> 1999      r3 f% K$ }8 ]
mysql> select extract(year_month from "1999-07-02
* \: a1 I% i( I4 Z! A01:02:03");    2 N, O* v' J* }1 r7 ]0 F* Q
  -> 199907    2 q2 F; @( i1 Q# J- Q. p* d8 a
mysql> select extract(day_minute from "1999-07-02! w" v/ v% ^, ]- K7 X
01:02:03");   
# [1 l' l9 w% n8 `# M7 b  -> 20102    8 b0 R/ o- y4 j
/ X: |; T* M9 N# S
to_days(date)   
4 [- F, @  ^( M' N返回日期date是西元0年至今多少天(不计算1582年以前)  ) Z& q4 y9 {* P. L+ ^4 U" o
mysql> select to_days(950501);   
4 s& x/ \6 g- z, \( e* V, u9 P4 j  -> 728779   
# z' t5 `. Y6 s$ _* G* e% w+ Qmysql> select to_days('1997-10-07');    7 H, m% c, E" b6 {; E! C) `& ]
  -> 729669   
% i6 a5 h$ e. f# z* Q5 U% s " ]/ L( x6 X7 w- g' W% c
from_days(n)    - ^6 ]: D6 F6 c2 c( X2 n+ R0 _" J
 给出西元0年至今多少天返回date值(不计算1582年以前)   
8 G( @* V( A6 p2 B1 ~) jmysql> select from_days(729669);    9 O1 e3 y, p; q4 g( }' Q, [
  -> '1997-10-07'   
* e1 v0 N% t: }7 Q) P. E 3 ~" r8 f- @3 U) E. k) d9 n
date_format(date,format)    " L( @  d, C5 _. |6 a. _! M( v
 根据format字符串格式化date值  
3 m& M" L! P) [  Z; k) c& o (在format字符串中可用标志符:  $ @5 o- y: g* `. s: {3 Y- l: ~2 o
 %m 月名字(january……december)    / Z  n# B$ n% Q& _# E
 %w 星期名字(sunday……saturday)   
% v% Z  C/ n: P4 x. L  k- I %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)   
! E  l5 ~- M" A6 m: {! s" c3 _) T %y 年, 数字, 4 位    : {! m9 Y1 Z+ @' v2 o9 |% D
 %y 年, 数字, 2 位    $ |2 P* `5 l$ c1 k  N; X& O  f
 %a 缩写的星期名字(sun……sat)   
) r- K8 h' m2 m5 S8 ?& { %d 月份中的天数, 数字(00……31)    9 r- F" T1 _; k# B# w2 l& Z. Y
 %e 月份中的天数, 数字(0……31)   
5 Y. _% Q% I# \8 V% R %m 月, 数字(01……12)    & z8 o1 K+ m" N- f( j
 %c 月, 数字(1……12)    4 ?' n$ T; l4 m. h9 u
 %b 缩写的月份名字(jan……dec)   
  s8 Y3 Y0 P+ f; _, D %j 一年中的天数(001……366)    " a, w( g; B+ U5 y
 %h 小时(00……23)   
% l- ~. _% f: D+ q% {% z %k 小时(0……23)   
: y) W( f+ M9 s6 Q; p+ R %h 小时(01……12)   
) G2 W) r2 r1 A" M %i 小时(01……12)   
+ h" [9 a( M1 j: C* T& T, Q %l 小时(1……12)   
" l3 {6 r. I" d. {8 ~# ^" j3 P' w %i 分钟, 数字(00……59)   
; X* m  x8 b2 y! W, r1 p, h) U %r 时间,12 小时(hh:mm:ss [ap]m)    # l7 j5 G6 i2 c9 i
 %t 时间,24 小时(hh:mm:ss)   
! V) d$ F: z8 W" [" a2 Q %s 秒(00……59)   
7 G/ X$ f; Y7 B/ k9 ^. ?6 i %s 秒(00……59)    6 i+ L: s$ _2 o3 y4 |
 %p am或pm   
9 H; @: W" z8 D5 y8 p8 S$ {$ s- q %w 一个星期中的天数(0=sunday ……6=saturday )   
. M" w" F/ z; W+ T %u 星期(0……52), 这里星期天是星期的第一天    - j' H6 V& O0 X- R& y
 %u 星期(0……52), 这里星期一是星期的第一天    % y' p: C/ t0 w
 %% 字符% )  - M; v" M8 u$ Z+ z1 n3 U" z
mysql> select date_format('1997-10-04 22:23:00','%w %m %% E% C- k( N; N" V/ d% i0 q4 O
y');   
! Q5 y* x* ]( K6 j9 N% r; d  -> 'saturday october 1997'    ' T5 {' i- D3 {1 @, F3 V
mysql> select date_format('1997-10-04 22:23:00','%h:%i:%
. g0 o: e7 ^" q* M& E* ls');   
; R' i0 z- ]4 t+ M& q  -> '22:23:00'   
. v: L6 f+ G' o( Z, ~7 Mmysql> select date_format('1997-10-04 22:23:00','%d %y %a8 T% [( h- D9 D  b
%d %m %b %j');   
) `$ g; @0 X% c4 I+ n; f  -> '4th 97 sat 04 10 oct 277'    2 L$ u% `0 \' x: r) n. c7 p5 ?
mysql> select date_format('1997-10-04 22:23:00','%h %k %i
) n% ]3 {2 R' I* d" K. o' V  c%r %t %s %w');    9 c, K7 H+ M8 Z* {$ \. |2 i
  -> '22 22 10 10:23:00 pm 22:23:00 00 6'    : Q* U/ l8 S1 A, e5 N3 C

5 s% p2 D/ B6 [3 ^time_format(time,format)  
) N8 c" B8 [7 V9 O1 G8 H 和date_format()类似,但time_format只处理小时、分钟和秒(其( o. b) z% y* I% t
余符号产生一个null值或0)  
$ K$ E9 B( }$ X: N; w+ e* l# ?; f
% r2 d" k& u( a) E' a3 ^curdate()     
6 q5 N, V; ~6 lcurrent_date()  6 R; q2 y( t. x
 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所3 L& ?' x! A& ?& T7 {" o% A6 ^
处上下文是字符串或数字)    " L, V: D4 @4 g, g8 F
mysql> select curdate();    & M+ d0 ?* ?1 E# u1 {, B! F3 |
  -> '1997-12-15'    1 w7 [7 D# e8 V% t0 o# [
mysql> select curdate() + 0;      Z9 n4 Z' Z( X4 e' H. z+ E
  -> 19971215    : ~+ C! s# y: A0 t5 T2 ?
8 U( r5 s2 U9 |7 U0 M1 d; H" L0 J1 m
curtime()   
7 X8 |* U7 |% d( k0 K- A$ T; qcurrent_time()    T, W, z4 ?3 T$ u* `5 {6 d
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
; Q4 O) }# I; |下文是字符串或数字)      
% q3 v% W- b- B7 C: f9 \# Y; T" ]mysql> select curtime();   
% L( [* j2 F; E$ k% M- l  -> '23:50:26'   
' Y# E- V; q. o% S1 fmysql> select curtime() + 0;    , a# ?) Y* ^4 F1 g; K
  -> 235026    5 y! f4 F- X0 A

3 \& d0 F- \  R  u# gnow()    - l  o6 a' \! f0 y1 [2 O
sysdate()    
5 I$ q" o7 p; h. e2 }/ L1 Kcurrent_timestamp()  ( y" ^$ M8 Z% M& }) @: X2 Z8 C
 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期: W$ }% M* D7 m- V1 `6 c2 U
时间(根据返回值所处上下文是字符串或数字)     
1 \# m9 O; q# a& R+ x# g& gmysql> select now();    ! E' c) _  u; d: E% `$ @
  -> '1997-12-15 23:50:26'    / ?) ]4 V( H3 k) s! A2 b6 u/ [
mysql> select now() + 0;    # x2 A6 n, m* R# G7 [( a* P
  -> 19971215235026    + ]. M5 v4 a- r
/ r5 h5 Z/ a9 k! t! h( N
unix_timestamp()   
0 }. P! \. {* H7 P8 @/ funix_timestamp(date)    3 a2 K% b3 V  p  }1 W! H+ L  u/ P, ~; P
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒6 |! ^- x/ N. |
数,date默认值为当前时间)  
2 e: k' l) v8 b3 e( imysql> select unix_timestamp();   
% R5 E) V0 D' B* G3 m' y& A  -> 882226357    / z8 U/ {6 }4 {9 I  N0 K; ^) r' x: }7 f
mysql> select unix_timestamp('1997-10-04 22:23:00');      {1 J2 f, _$ K' n0 K7 Y0 O
  -> 875996580   
+ o8 a5 j3 j! p! F) X" y
- P) X1 \+ Q( j* efrom_unixtime(unix_timestamp)    & z+ o! V- d5 [, \
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的: ?. X% d0 W9 o1 _
值(根据返回值所处上下文是字符串或数字)     
6 t8 O' s9 p; kmysql> select from_unixtime(875996580);      x6 _& K/ i: O1 m8 X" O; v
  -> '1997-10-04 22:23:00'    1 d% d, O/ }+ P) P: r) h  _' w
mysql> select from_unixtime(875996580) + 0;      I1 e4 j4 }, I6 p$ f( C
  -> 19971004222300    3 K3 p7 A& S2 V* G3 ?2 q

7 e5 d/ H- |: E' L" ?from_unixtime(unix_timestamp,format)    6 T( B3 N; a; c; W
以format字符串格式返回时间戳的值  * k% C; @# b* \
mysql> select from_unixtime(unix_timestamp(),'%y %d %m %8 r% |2 C" t" o3 P
h:%i:%s %x');   
" P8 s& u4 s. J- `5 e8 K" w3 |  -> '1997 23rd december 03:43:30 x'   
# u5 u6 u3 H* f) @  z 2 M8 a6 n! I/ I* r8 _
sec_to_time(seconds)    * I/ R* y) l8 F  [( Y0 H& l
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
* P8 G# X+ v1 u+ M! v3 I# W1 tmysql> select sec_to_time(2378);   
& r6 V' }( [. N8 c6 p  -> '00:39:38'      }1 V* ?: q) u* x
mysql> select sec_to_time(2378) + 0;    ) a, W3 n* V! }. y" P
  -> 3938   
* ?9 T$ c9 Z4 ]: R; ~ 6 _* c( z! }. s" `/ ~
time_to_sec(time)    4 r! J! V  W  `& f0 B  Y! Y
返回time值有多少秒   
/ i, u, s$ S6 Y2 Smysql> select time_to_sec('22:23:00');    + g$ d8 w6 x0 ^. J/ C6 Y
  -> 80580    $ N; Q) U1 u! s2 j8 h
mysql> select time_to_sec('00:39:38');    3 H& [( |: {' R$ G0 [1 [; l. f
  -> 2378 8 \+ ^  E  ?3 c" Q# f
/ F) Z* R) C; ?) L5 |$ V
转换函数, W" h' k/ P0 v: [& O9 X: M' Z
cast
4 r# o6 a/ j( ]0 M- i用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]
' }: k% Y' b. o  t实例:select cast(a as unsigned) as b from cardserver where order by b desc;! Q. a; i' t! x; D) O
convert:
$ o1 V. _: c8 o( E6 w3 S/ K用法:convert(字段,数据类型)
- i6 b" P! R+ Z$ h9 p7 C; y9 U# P实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

6 i9 Y- @0 }% x' \0 z1 J7 |, U
回复

使用道具 举报

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

本版积分规则

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