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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数
- n: }  {0 p1 v3 f' Mascii(str)   
2 m, S6 S( |& b. \8 j; b/ y返回字符串str的第一个字符的ascii值(str是空串时返回0)  
' l  t) t7 p& J+ g5 o, lmysql> select ascii('2');  * ^; X, m. ?: h; ?% q' t7 p  g
  -> 50  
- k& H1 o- ]6 O" ]- ?+ H: \! f* Lmysql> select ascii(2);  ! I! e- z' ?+ ~# B: G
  -> 50  ( L7 {. m7 E# r% P9 K9 \; N
mysql> select ascii('dete');  8 m( ~# v* n/ ]" k
  -> 100

' u9 [1 n. ^4 }5 eord(str)   + R/ t/ S+ Q; H7 k+ ^
如果字符串str句首是单字节返回与ascii()函数返回的相同值。4 c! ]: ?9 i* a. a
! {. W1 q/ T4 T$ B  S5 v
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  + k  S9 z/ K0 m$ o9 W7 A
mysql> select ord('2');  6 I2 Q) W; V1 ^1 F* w5 B
  -> 50  6 b3 x* w9 D( v) Y
   
/ @+ b# s/ G" s- m9 Zconv(n,from_base,to_base)   
; Q0 s; I9 ]0 B  t对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  " W" M2 ]9 N6 ~# m$ U' ?5 M' p8 P
mysql> select conv("a",16,2);  
: a% ~& z7 C7 _1 P+ }  g' l  -> '1010' 6 S* S6 U9 ^  K. b( J+ ?! E
mysql> select conv("6e",18,8);  
+ d' n4 k/ S! g& h% h8 d0 }  -> '172'
: U9 v& ?. M' h. l) q2 j0 Xmysql> select conv(-17,10,-18);  $ D2 Q0 X  X% ?7 Y( B$ |
  -> '-h' 4 J: ~# G* [6 ?: }0 z& Q; g% |
mysql> select conv(10+"10"+'10'+0xa,10,10);  
* ^! S* ^' m7 A& P. u: V: \/ \  -> '40'
; J& w9 s- K8 W3 m, ~: k   
) C, k: ~3 r- {9 s' `6 o6 \% Fbin(n)   6 s: c; @9 u+ c5 h
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
( t4 j0 h3 K/ J8 F* x! ?mysql> select bin(12);  . [2 F" Y# R$ T4 D* w" h
  -> '1100'
  k+ X0 v& c7 M' {( G4 B2 K$ s& _
5 e0 z" i" S: S0 j; h0 soct(n)   # s0 g% e+ T7 ]7 }7 Z) h
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  2 J% E' L2 A- T) X/ a- P  V, f
mysql> select oct(12);  
4 I) Z) a, D/ [: B8 q  -> '14'
( O) w% D+ j$ p# |/ C   3 y0 y7 O/ j9 m5 c' N/ L% j6 e( c
hex(n)   4 w: k4 s* P( g' ?
把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  
* j  R) ?# P' {mysql> select hex(255);  
' [  X' {! m+ ~1 f1 c# N4 s1 u  -> 'ff' ! w; P; g( S$ F2 c5 @
   
& A  S2 o9 U7 S* @; {" ^; t7 U) ?char(n,...)   6 ?* m4 y0 _, x. ~# B* e' z
返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   
6 y9 i: ]! D* Omysql> select char(77,121,83,81,'76');  
, S0 ~4 Q, H/ S  -> 'mysql'
/ Y. i, N: i4 A; k+ wmysql> select char(77,77.3,'77.3');  ; P. H+ i2 s- `
  -> 'mmm' . E! \& e" E- w0 D1 L2 v
   
, N% N" }7 }# l6 }/ |concat(str1,str2,...)  
2 ~% O2 B: J4 K0 T把参数连成一个长字符串并返回(任何参数是null时返回null)  7 v9 I' i2 l% B7 T  v' c9 U- U! i
mysql> select concat('my', 's', 'ql');  3 }8 o$ g: h) M. o" l% A" s8 y
  -> 'mysql'
9 e4 k0 B, w( p1 s. xmysql> select concat('my', null, 'ql');  
0 y; K+ \. h' f4 f! O( _  -> null - ?) r' V6 Y2 N7 s& ^- s" k- ?
mysql> select concat(14.3);  
. ^6 w5 x( g$ \2 j  -> '14.3' 6 t' Z: T% s7 V' ?

: r$ ]4 @6 |" olength(str)   
5 P7 y2 @6 E( P4 qoctet_length(str)  , P4 L6 U" ^! q+ I% F/ h& X- V# l4 \
char_length(str)  - z1 A/ G: n- I6 D
character_length(str)  
2 l: f5 c( J) Y: t$ q返回字符串str的长度(对于多字节字符char_length仅计算一次)- M- j3 A6 X8 Z2 P
mysql> select length('text');  3 w# O- m, T4 k! z, A3 j; F. k
  -> 4  + y& @9 G6 n8 Y7 M% o4 E
mysql> select octet_length('text');  
, h4 ^# H8 F( J1 d" {  -> 4  
; N1 b' g, c! _' c6 E9 r5 [. f; i
" d1 q8 Z, `; z5 ~3 G: Hlocate(substr,str)   ) E/ U6 ?7 S" k/ i' \. X1 ^
position(substr in str)   $ M% r* i! @6 ^( H4 f; Q) u
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
& l' V! h! X/ V( F( j7 h' S: z4 [9 A8 mmysql> select locate('bar', 'foobarbar');  ' s0 `$ A/ _8 N3 d# O# P
  -> 4  % C  F/ i$ e( }' \9 K
mysql> select locate('xbar', 'foobar');  
. z5 }0 _: b3 |/ u  W" d+ E  -> 0  
- I2 I5 `6 Y% G$ V; s4 i" O    # a  w, `. R% W& H) m: [* I
locate(substr,str,pos)
. l# Z5 U9 d6 M返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
4 `0 B+ {; G, u1 z- G6 Q5 i" Xmysql> select locate('bar', 'foobarbar',5);  % ?, R2 b. \# |
  -> 7  4 J0 b3 ^: N; H. g# `, ]# _

! H6 c: G# c" x) p7 i4 E' xinstr(str,substr)   + w- ]- n5 C; K( X8 e2 t: H
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
. d$ P" Z% S: y5 V5 W: d; ?+ M3 Emysql> select instr('foobarbar', 'bar');  
, U+ w" f9 ~/ M( k# H% V$ M  -> 4  
, L% F- e  c* Hmysql> select instr('xbar', 'foobar');  & q, D1 g* x) G$ G: W
  -> 0   6 e1 L: K9 s0 @. K# b% d$ f

$ L. m* |2 Z/ u' V# |# ?4 ylpad(str,len,padstr)   
# L7 ?1 v$ a" Y用字符串padstr填补str左端直到字串长度为len并返回  
3 F1 Y; [* \: Umysql> select lpad('hi',4,'??');  
5 f- t) |5 n" M. u9 K  -> '??hi' " ^/ R( S9 t& N
   0 y* I2 e0 {4 C; ~7 t. s/ Z
rpad(str,len,padstr)   8 W8 F) ^  [7 C$ D
用字符串padstr填补str右端直到字串长度为len并返回  
+ l3 e% q: p, ?6 xmysql> select rpad('hi',5,'?');  4 Q. u" n# d& L- j  f4 F
  -> 'hi???'
. m  C* ~. r" c3 {
5 c6 F/ p) J# Lleft(str,len)   ; t/ f! ~1 F& \7 k: T3 |  D
返回字符串str的左端len个字符  4 x& ]* y6 h& a0 y- t9 v$ i
mysql> select left('foobarbar', 5);  9 O' q9 R4 F7 {7 |
  -> 'fooba' " {  z. K1 v9 F: |) A0 A

( ]: M: M" ~+ H7 V. S) Pright(str,len)   
2 }  T; [' V7 Y$ t2 Y+ ^8 t返回字符串str的右端len个字符   
) ]# ~& O1 g% |0 X+ }. lmysql> select right('foobarbar', 4);  6 ~3 J! \( M* J* }* D
  -> 'rbar' 1 b1 o9 p* B- o4 u. N7 l
( j8 G9 S) N. j( [! o* ~; s$ Z1 @
substring(str,pos,len)   " D% \3 ^: m2 R7 D+ x& G# g
substring(str from pos for len)   0 c3 J+ v; H1 w6 s0 P9 l' A4 w
mid(str,pos,len)   
% N" Y+ D. G4 M$ E2 c返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  6 G0 i: ], [" z  x5 ^. U6 a+ n. g
  -> 'ratica' 0 v- k0 d8 h9 {& C

( e+ P6 k& k7 `9 b: |6 qsubstring(str,pos)   + I) r& I" p9 E2 H2 `6 _. C: y
substring(str from pos)   $ C; {( L, W4 H+ q4 O" N8 E' K
返回字符串str的位置pos起的一个子串  
- H  |8 v3 I+ j$ J7 Amysql> select substring('quadratically',5);  - n7 |% v  h+ `* a) Q; m
  -> 'ratically'
, S$ ?! x1 }) c) t# [- rmysql> select substring('foobarbar' from 4);  / L. k. c9 l/ z5 d
  -> 'barbar' & c- d% _# a+ A& [7 [3 ^( n0 L

, H! \& O4 l6 y7 @" e. B3 ksubstring_index(str,delim,count)   # Z# y% ?7 [  ^( I
返回从字符串str的第count个出现的分隔符delim之后的子串
" p# \: m: U: t* v4 z* M(count为正数时返回左端,否则返回右端子串)  
3 M4 B/ ]7 x  q' }; s- Imysql> select substring_index('www.mysql.com', '.', 2);  & o: w# N+ J- {, B
  -> 'www.mysql'
7 D7 q1 l& ]$ C0 ?, Umysql> select substring_index('www.mysql.com', '.', -2);  
, N: H5 V+ S2 V, a5 ]8 \' y7 H  -> 'mysql.com' . F, x- ]. \/ F0 b5 e( G; V$ v
6 I9 A- `$ o) M2 ~& B) d
ltrim(str)   
  M, s0 x4 a& j返回删除了左空格的字符串str  
- M& C  Y  `6 U1 |4 Pmysql> select ltrim('  barbar');  ( y7 e, w4 C& Q2 ^( u5 R& P- }
  -> 'barbar'
- n$ h- G( m: C 3 ?) [1 O6 K* z( d5 N5 ^
rtrim(str)   ! v' |; p. c# g, u
返回删除了右空格的字符串str  
, u" G8 |/ ~+ s: Pmysql> select rtrim('barbar   ');  
- u2 B+ u9 |6 H- C" @7 j2 v5 z  -> 'barbar'
9 ~* R# z5 {6 G, g0 _! n( R& [+ f: Y% j
+ q. y6 p0 A0 X! B& |" _4 ltrim([[both | leading | trailing] [remstr] from] str)   " g6 f5 P7 |6 f3 |
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
# f: E% i( q- p- a/ j" Wmysql> select trim('  bar   ');  1 y4 X5 @9 F# p( n5 J
  -> 'bar' 8 I0 Y& V, c' h- ]  b4 w: t( a
mysql> select trim(leading 'x' from 'xxxbarxxx');  5 i! S; V& ^9 O3 W9 p
  -> 'barxxx' 6 A* V6 z8 M8 ^$ V
mysql> select trim(both 'x' from 'xxxbarxxx');  . b7 L3 q6 J: H* I, t- ?9 O9 s+ }& c
  -> 'bar' 0 `* U3 a" j: p- q0 ?2 @4 }% ]# u" E
mysql> select trim(trailing 'xyz' from 'barxxyz');  - h* q( }3 ?$ g% H  j
  -> 'barx'
; o5 L' e/ b5 M7 F9 u3 s; T   p# o6 V% n' X( g" `3 y. U7 \
soundex(str)   
$ Y; A0 x, A5 W* R返回str的一个同音字符串(听起来“大致相同”字符串有相同的/ e: s4 L9 b  n9 V: h% d* f
同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  
5 Q* r5 D' ]! q- _mysql> select soundex('hello');  
/ u* x1 k* r8 J* z& Z; t  -> 'h400' 1 Y* s8 U0 Z5 D- U9 |1 N
mysql> select soundex('quadratically');  
# L  L% B/ ?' X! T# M1 L  -> 'q36324'
# w) j: B7 Y$ `4 L   6 X1 A" q. \) `  m! ?, m9 j- I
space(n)   
5 V% q2 s* u- B9 L0 `! [返回由n个空格字符组成的一个字符串  
  j* H) ?- y) J; _mysql> select space(6);  
8 e" k) p' Y& v& ~4 R! e  -> '      '
& H! N/ D* X4 s2 y   
2 j: L6 T$ D3 d- P3 ?/ c- xreplace(str,from_str,to_str)   
# Y: X1 L9 X- j$ F# v5 Y) `: |用字符串to_str替换字符串str中的子串from_str并返回  
: T7 a3 ^2 n  _1 r# O6 mmysql> select replace('www.mysql.com', 'w', 'ww');  3 Y- d5 P' x, e' L$ K2 U) }
  -> 'wwwwww.mysql.com' . O5 y! J: H& d

& t$ l- ~+ ^. I% @  y1 Yrepeat(str,count)   6 W9 l  X5 H" P# ]! Y' W
返回由count个字符串str连成的一个字符串(任何参数为null时, a" ]2 f1 S7 x. M
返回null,count<=0时返回一个空字符串)  
5 m* l3 }: O$ Y0 V+ M% q6 E% f6 |mysql> select repeat('mysql', 3);  
- G4 x* C4 X" m: c% i( C( y& h/ A  -> 'mysqlmysqlmysql' : x' [5 G. |! R5 l
   * _2 E  M" h: m( x
reverse(str)   
5 x: n( J: R- b! r; c% l  J6 v颠倒字符串str的字符顺序并返回    _9 ^! X! N$ T) f
mysql> select reverse('abc');  2 Q7 F1 _0 ~. U% @' j4 X4 ~* Z
  -> 'cba'
( B& X9 h) ]3 K$ K2 g7 r9 V: E
* Z' c$ [/ p( n6 E/ J- x1 yinsert(str,pos,len,newstr)   
( z) P. r" E: b! S" q" E把字符串str由位置pos起len个字符长的子串替换为字符串
( T7 t; v: U! u( n3 e/ W) Inewstr并返回  0 n* P8 T5 y# ?
mysql> select insert('quadratic', 3, 4, 'what');  
% E3 t5 Y9 u5 v5 O! g7 r" ]  -> 'quwhattic'
# \1 P# [: A" W
" H! a# {# \; y% E# m& m2 y1 f0 S$ Delt(n,str1,str2,str3,...)   ; U& `9 O  D9 w6 K* i8 U. `, U
返回第n个字符串(n小于1或大于参数个数返回null)  
/ w9 Z3 A' n+ Wmysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  5 L" S- {& ]$ |9 _* m
  -> 'ej'
, Y, i1 u# F8 v3 [mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  - O9 Z; s' |- H' |8 G; U
  -> 'foo'   c. b4 m2 e2 r/ e" m2 U
! `+ x7 o8 D- C2 l! d5 |8 J5 V
field(str,str1,str2,str3,...)   7 A5 [  _2 ~$ k- N5 h3 G
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  9 y: ~8 `( Y7 z+ M& g
mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
: i( p: m1 p& k6 v% M3 H% l$ T'foo');  
$ Q- y# `$ D  `" o& n* ?  -> 2  
' K1 Y( I" M6 B& _3 Q3 Imysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
) Q0 `  R1 h; u8 y'foo');  
9 v. O2 Q, d; M# s/ E; m  -> 0  
7 T1 w! o) \% [8 d. Q 1 V$ I$ ]1 v9 S# x7 C& t5 L8 `
find_in_set(str,strlist)   
+ C0 g. n8 o- h% o返回str在字符串集strlist中的序号(任何参数是null则返回
% A% c  `! T8 x: h! f" Snull,如果str没找到返回0,参数1包含","时工作异常)  
$ @$ @6 t* R$ f' ^7 W7 ~: ~$ kmysql> select find_in_set('b','a,b,c,d');  + B, {  e2 {+ J
  -> 2  
  P( p6 b4 k& L+ _( s   
6 B. v& @( [. W" v5 o/ q, v7 k+ Z# tmake_set(bits,str1,str2,...)  
" b8 I' I4 K6 W1 t6 H# i; L把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应* c. F! F2 r. F
位置的字串选入字串集并返回(null串不添加到结果中)  
; |; Y: n, T, Y5 Imysql> select make_set(1,'a','b','c');  0 G9 q/ R# o( {0 R& a7 ^8 B
  -> 'a'
4 h0 h8 E3 \  X, ~! o% Zmysql> select make_set(1 | 4,'hello','nice','world');  
8 X6 y9 n$ U/ M- O8 S. p6 o  -> 'hello,world' % g! C* l4 e) o4 M" T
mysql> select make_set(0,'a','b','c');  % U+ p$ n/ M' @0 I
  -> ''
0 |9 w1 y; q- C : j$ h- L. W) p  K
export_set(bits,on,off,[separator,[number_of_bits]])   
4 d4 H5 f- K: S4 b按bits排列字符串集,只有当位等于1时插入字串on,否则插入
: J* S1 @9 D! ^" w) b1 B$ uoff(separator默认值",",number_of_bits参数使用时长度不足补0
  |! x# H4 c/ G而过长截断)   & \( x" W" _$ l; s# y0 a
mysql> select export_set(5,'y','n',',',4)  
6 B" @; S6 N7 }7 p2 A4 `  -> y,n,y,n   
, Z! k: s2 v; V; N1 r 6 y+ ~& J' f8 l5 F) Y# Z
lcase(str)  
) @  F) t7 m: B- Z, Q) H$ @$ Blower(str)   - C" K5 }6 I/ P! b3 @6 x8 `: }
返回小写的字符串str  
% b. D/ @' v7 L" J3 `7 |mysql> select lcase('quadratically');  % S/ v! P, P% q$ w# ^7 j; n/ H8 J
  -> 'quadratically' 4 `! c* @) ]" D* _5 g6 N9 G2 V# y7 l
     C+ w+ I% c; {+ G
ucase(str)   + E2 e6 {6 A0 A
upper(str)   * X- d4 o1 q) J
返回大写的字符串str  8 y9 a! o3 T1 n# G; M3 v
mysql> select ucase('quadratically');  , e0 a. \7 l8 J) L
  -> 'quadratically'
! j/ t9 j% _$ i$ ? : z# [6 y% q' b8 ^# w
load_file(file_name)   
, |' o4 D: S8 r: B0 s读入文件并且作为一个字符串返回文件内容(文件无法找到,路径
! P) ?2 o; l6 X不完整,没有权限,长度大于max_allowed_packet会返回null)  1 L8 F! l5 E8 u5 }% v; g6 Q3 \2 W% n
mysql> update table_name set blob_column=load_file2 ^/ `; k4 _. ?- N5 X  r
("/tmp/picture") where id=1;  . w6 n" r; E# ]+ x
2 y0 t- d/ o$ d
2、数学函数
0 v- ~  ]2 Q8 e& L2 F, Wabs(n) 2 k7 _2 ]& H& J7 k, U: j
返回n的绝对值  
: A* v/ O9 w. ^5 o, T+ H! dmysql> select abs(2);    - L  i- X- [1 O2 v
  -> 2    ' [; i3 j6 L' Z. E
mysql> select abs(-32);    + f% ]3 D% w! n) ^1 ?8 f6 C+ Z
  -> 32    4 K+ h, _0 K8 Q5 c
   / b7 U+ t, {, s( k
sign(n)  5 ~( t$ E) N$ N$ R* A8 C8 y  J. _: p
返回参数的符号(为-1、0或1)  / J2 k8 ~" z7 F3 @2 W
mysql> select sign(-32);    9 f7 P8 J% M; G3 i! L. T, c  b$ F
  -> -1   
8 v0 z! m  K+ |( p  B4 V: J* imysql> select sign(0);    : T: e. u( B$ X
  -> 0   
4 S" [3 L' z- f3 A2 Vmysql> select sign(234);   
* p1 r% Z3 j8 }$ g; R$ m  -> 1   
1 ?# k- J* K2 a6 y. M
, x9 t! U0 \0 N6 E; I" x$ Omod(n,m)   
4 v% |! j  u* L$ H取模运算,返回n被m除的余数(同%操作符)   
( H+ {1 s" q4 _) _" A. \mysql> select mod(234, 10);   
& y$ X8 J. W: R7 D0 u: N  -> 4    # ?: l) x1 M3 u1 g
mysql> select 234 % 10;    & q$ ?' l( a2 v; d4 J( R
  -> 4   
8 b' u2 q+ `: {7 ?mysql> select mod(29,9);   
8 e. Q9 }* \( R5 d) r# a  -> 2    4 o& r( Z, _6 z8 {+ P" G. @

4 b/ B% W, b( b- ~floor(n)  
( }8 ^$ z# c( O: \9 h; y8 S返回不大于n的最大整数值  
8 w4 W7 x5 T3 Q1 @9 p, Gmysql> select floor(1.23);   
7 e. e+ n  L' U  -> 1   
* Q( O! q+ a- @4 f4 vmysql> select floor(-1.23);    5 r+ M( m, W  ~" b
  -> -2   
) N0 P5 Q0 Z/ C& p! ?* j
" G' O+ i+ ?7 i; Q* A+ nceiling(n)  * c* p7 C: ~9 K$ `" k
返回不小于n的最小整数值  3 m, D% S: ^5 A1 k+ C
mysql> select ceiling(1.23);   
2 J+ A% X. n( W3 ^5 ^$ \# @  -> 2   
' z: x. d( r! x7 D" v' Amysql> select ceiling(-1.23);   
4 R8 L3 a2 B( l8 p  Q! w: L( I  -> -1   
3 v& ]7 [+ Z! A
+ |! U! f( G* {# C$ L' K' Pround(n,d)  9 o7 d* [9 @) G# D
返回n的四舍五入值,保留d位小数(d的默认值为0)  
) u9 N" |' Q9 a: Y$ Q# Hmysql> select round(-1.23);   
# u% d4 b+ l1 M5 x( N  -> -1    7 v5 p/ h0 R/ o! {/ N7 a
mysql> select round(-1.58);    " p' ]4 P' m( f" P0 m1 P
  -> -2   
3 c4 J) ~0 _, E* Vmysql> select round(1.58);   
; o) ~( J2 C" x5 ~: m- ?) ~/ w  -> 2    5 e  A2 Q; E5 C" h9 \$ Y; N
mysql> select round(1.298, 1);    ; Y9 L/ |( [* s7 H& R( r" O
  -> 1.3   
% o$ Y& l5 \% q2 tmysql> select round(1.298, 0);    ' S7 N3 ]! J/ I& u% R* o. l0 c; R! M
  -> 1   
" y9 w! L1 E2 U6 K
$ Y2 w6 x& a' O2 {exp(n)  / n/ _, x% g! S( ^% }
返回值e的n次方(自然对数的底)  
2 |8 w6 D: \2 p; ]mysql> select exp(2);   
5 u0 d9 o6 c7 N0 s  -> 7.389056   
6 {# d7 Q# \0 |$ V) gmysql> select exp(-2);    * B$ F8 k  F# S6 u; b0 y
  -> 0.135335   
: `6 V6 b: |5 N
# f* Q( _2 Z4 x  \log(n)  
, d8 O1 H9 P2 E$ ?/ s" H. n返回n的自然对数  
, H/ N, t+ N2 W1 C; F% cmysql> select log(2);   
4 T9 b& p3 B  z* ~+ e& I  -> 0.693147    # m: v8 h, q2 l5 O& k4 b# v) w
mysql> select log(-2);    4 x: n+ E/ f6 L7 _( C  c( S/ r; k0 R
  -> null   
7 ^" P- x  ~" o$ Z 4 B" m' D' z' P: G, j
log10(n)  
0 u- z% n! y$ A: A( Q$ Q) c7 \0 N返回n以10为底的对数  
% u, H& g6 C1 W) ^4 K7 Xmysql> select log10(2);    9 w( A0 }6 O5 G+ Z
  -> 0.301030    $ v% \7 ]1 H! @, o. o! K0 J
mysql> select log10(100);   
1 a  y; i) \6 Z$ s  -> 2.000000   
, ?9 D7 M0 ^1 q# m; P+ @mysql> select log10(-100);   
* x& s) W* _; P/ |  -> null    ) j; _; n" W/ h. t& W

! h; h, x& p' T$ O, `* M. u4 I* opow(x,y)   
6 L- v% j0 }; A. d# npower(x,y)    , t! G7 ~1 z' P: `4 z
 返回值x的y次幂  
) P' i) D1 L4 Nmysql> select pow(2,2);    " l1 u9 [* W9 Z! S! G
  -> 4.000000    : X  Q$ i( Z3 U5 x  v  T" p
mysql> select pow(2,-2);    1 d5 i, F, o0 |+ T& W& k
  -> 0.250000  
$ `$ @0 w% l1 M" [7 M; i, O5 t& V& {1 y- D
sqrt(n)  
! W1 Z0 U9 k( A- Q0 T2 g9 w9 J 返回非负数n的平方根  7 J8 Z9 V9 t& q6 z! [
mysql> select sqrt(4);   
/ i: B, a3 M+ A4 g2 K2 Y0 G  -> 2.000000    0 U: s& ?$ O- [  ]
mysql> select sqrt(20);    2 m1 }, e: w. O4 C2 |; t& U" X" y7 ~: k
  -> 4.472136    5 a# l, _! C5 g  {; [9 I0 C
, }# a: Z! c  B$ D- C
pi()   
/ U3 S" G" Y& Y* x. p. b 返回圆周率   
5 o8 q  L, H# S" |mysql> select pi();   
$ C: T+ R: |3 B4 e% a  -> 3.141593   
& |+ T& b6 `% i' y2 k3 {& p
0 s; n& G- L6 P8 L5 h1 _/ X' W# Kcos(n)  
6 A# Z  c  U' { 返回n的余弦值  " b/ V. G+ `: p
mysql> select cos(pi());  , J1 k4 m$ x4 h, l9 l) s+ U
  -> -1.000000   
/ D1 u. l# q% U: U- c6 e# p . Z) H8 R5 g1 U0 x& T3 `7 ^1 {- E
sin(n)  ! P- h+ l7 G/ y
 返回n的正弦值   4 w+ k* x8 ]0 c& g2 o0 x: Q& W
mysql> select sin(pi());    ! ?: f$ a4 n- `# |3 L8 k
  -> 0.000000   
$ [0 _6 P9 Q0 r; e' D
" b8 K8 q+ m& [tan(n)  
+ ^7 H. a( m$ \" {6 h) U% T返回n的正切值  ! k( `% i9 c* X) @$ R! z
mysql> select tan(pi()+1);    , `6 k; Z- r/ R& Z% K
  -> 1.557408    5 Q1 P0 s5 W2 G) m3 v% x
5 X) v) y. q3 O
acos(n)  2 |; R5 B/ Y& A$ l! M. p! |
 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  5 R* T1 @+ ~" s$ D% G: u, a$ ^5 Z
mysql> select acos(1);   
6 v+ p5 _, t; [1 J  -> 0.000000    2 @) [4 Q9 W7 b1 u5 F4 q+ N9 M* u
mysql> select acos(1.0001);   
# I! {2 n  t/ }. w  -> null   
2 I* h$ z3 I9 E2 m" X# xmysql> select acos(0);    ; u2 K) I8 U8 ^1 o' A/ R+ b
  -> 1.570796    ) g- N* }9 k8 x8 G& B! |+ U

- o5 p$ B0 h+ C/ aasin(n)  8 w7 i  W8 X' H0 G) x
返回n反正弦值  
  T% z, j$ E' T1 c7 G4 }mysql> select asin(0.2);   
, A# `$ U$ B3 d4 e) V9 \  -> 0.201358    # T: y/ [. q9 s6 P" k9 s
mysql> select asin('foo');    , _1 r3 F0 J# n5 u. ~; w
  -> 0.000000   
7 b6 l  a1 W/ B. d $ p3 P* I: y  @
atan(n)  
' z2 A, e  G* A4 q; W& \返回n的反正切值  6 s1 a. J, p, l/ [
mysql> select atan(2);    & \/ F+ C* a8 T( c
  -> 1.107149   
+ A# h* D1 t# R- y$ jmysql> select atan(-2);   
- M) p$ F- R( c' T" H* I  -> -1.107149    # m3 e  r8 z! r" z) @2 _# G
atan2(x,y)   
& V6 d' |- A7 k0 }, c, B! a! @9 k6 B 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  
; N6 O7 R) c: }/ wmysql> select atan(-2,2);   
# r; N2 B( g; O# d+ t8 \  -> -0.785398   
& p3 d5 w& {- a+ q% v- Nmysql> select atan(pi(),0);   
. \& D5 q' {7 L( k' o2 P  -> 1.570796    $ j* u( V! B5 v+ B/ r8 {
, J2 c; q3 d* ]( s$ Y! S$ ~
cot(n)  
5 {' R1 E. g  F& b: ~* X' j2 r+ j返回x的余切  
8 V2 V1 ?9 h1 }+ {  Jmysql> select cot(12);   
" {, U7 C3 X2 C1 M  -> -1.57267341    - G' O6 S' `* x0 v8 \
mysql> select cot(0);    5 `/ K) Z9 o2 K6 D0 M; \
  -> null   
: u1 x( I0 l5 ]" B  H! W 9 u3 R- G0 L+ E  H; _2 r
rand()  
3 ]! B* V+ g9 h* A& S" Drand(n)    - W5 X5 l2 a* [2 `  S3 M
返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
6 u- j$ Q) I- e . N( [! m, Q, y+ c* p1 h- x
mysql> select rand();   
5 x/ v5 w/ v" \; A9 G  -> 0.5925   
6 n1 R2 g) O/ ~/ h8 Z, i0 @mysql> select rand(20);    3 g! M/ ?7 r/ j9 U+ i7 y. V1 Y# s
  -> 0.1811   
5 k( m. X( N1 F, P% Tmysql> select rand(20);    9 ]1 k9 \. s6 {  R
  -> 0.1811    # a3 l2 J3 Z# z3 p) J
mysql> select rand();    ' ]5 q8 J7 W" N4 z2 Q* a
  -> 0.2079    6 Y4 f8 R0 F) z1 |: l  p( K" v: _
mysql> select rand();   
* t& n( z: y! W  -> 0.7888   
) k5 x1 k0 g2 P3 o( ?$ m3 s
! g) t, M/ I6 ?7 i1 W7 x0 hdegrees(n)  8 x  m0 K" @4 w/ n# L/ t
把n从弧度变换为角度并返回  9 X: J6 q3 F8 x4 @2 k# P5 X
mysql> select degrees(pi());   
0 g. P" v8 J  H  -> 180.000000    6 l6 F9 v4 f& _9 K

% S6 W0 q4 D  d+ c: F; F. g; Xradians(n)
. {) A8 [, H5 ?, i! f把n从角度变换为弧度并返回   5 t) O8 A5 b. f4 q5 b, |5 }
mysql> select radians(90);   
+ B/ B" u( `) M( ?0 ~& o  -> 1.570796   
" V! Q$ H- m! D. n- G4 x' K- ?8 a1 L% d4 r; F
truncate(n,d)   
& n7 C: N; y) _保留数字n的d位小数并返回  
7 f8 T& e) }) M2 X' h' ymysql> select truncate(1.223,1);   
. l, Z4 r- z  ^/ @! h# [; V  -> 1.2   
' S; k+ T( p& Y" X% c  i: pmysql> select truncate(1.999,1);   
  L6 W; o* V, m% h; i" J1 e5 G  -> 1.9   
, T; ~& p  F7 M* k) x3 ?: z# b# jmysql> select truncate(1.999,0);   
% m% [9 d3 S3 q0 v, I8 \' s/ E6 ^8 T5 `  -> 1    : ^0 e& x0 N* l$ D

* C3 d* R3 Q. u% eleast(x,y,...)    " Y% B0 L6 N1 ]3 Z6 K
返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
5 w* _) f; C1 Q% _; E/ qmysql> select least(2,0);    1 d& j& j+ v( r6 x0 L! `
  -> 0   
$ r; I+ Z2 `' }1 G8 S4 Emysql> select least(34.0,3.0,5.0,767.0);    3 c4 d9 q' ^$ i
  -> 3.0   
# v" M7 S7 p, Q5 U' R% {mysql> select least("b","a","c");    ! Q( @; n) w! h$ E8 |6 n
  -> "a"    6 p1 j* X) S- T: I

; _/ R5 I  k1 X5 Y; R" l6 jgreatest(x,y,...)   
( H; l8 ?, o2 y返回最大值(其余同least())  
) g! v/ k- u9 l9 A- F. v1 [mysql> select greatest(2,0);   
1 Z1 `: u8 ^* `; u% C1 U  -> 2   
3 i7 n0 n  u% h1 B% X: k2 @mysql> select greatest(34.0,3.0,5.0,767.0);    % N6 t- H% S1 \( y
  -> 767.0    8 }: C, H; B: E3 g% B$ E
mysql> select greatest("b","a","c");    ! G/ n, G6 r/ e1 s2 b: }
  -> "c"     ! o# l0 X* y. t8 t0 h$ |
# @3 `8 U9 l  a- {
3、时期时间函数 / K( X. s4 h8 q# c9 I8 x
dayofweek(date)    : u3 @( O- w/ O- z0 m
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  : i2 y9 ?* d0 a3 A3 T
mysql> select dayofweek('1998-02-03');    , \. E, |( l7 G" c
  -> 3   
+ V' ^7 w' q4 k) T" D1 T  D + t# Y$ W+ n! x& i0 P
weekday(date)   
% e. P# e; q' [4 d返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
0 M/ S7 C& c4 E0 W  , n& r0 a' Q: f/ \
mysql> select weekday('1997-10-04 22:23:00');   
8 l+ x) ^9 R8 f) j  -> 5   
! `  o. [+ Q& W3 G! cmysql> select weekday('1997-11-05');   
% Z) \0 c, s/ R9 K1 V, n  T3 A  -> 2   
6 o! F  i# `0 l % y. c. X) Y% m' y% L/ D$ E& c
dayofmonth(date)    
+ I: Q) G7 g# s! ^$ ?& f, K返回date是一月中的第几日(在1到31范围内)   
3 V: E2 C) u! R" U+ |mysql> select dayofmonth('1998-02-03');   
9 I. f- z& w% T1 u8 C  -> 3   
" d% S# @& f$ p+ c1 Y$ r $ b: u- q5 }+ ]6 u. q! }! B( |
dayofyear(date)    ( y6 U# I2 |& }: T4 C% g% }
返回date是一年中的第几日(在1到366范围内)    * @' G; _9 T6 G6 A' Y
mysql> select dayofyear('1998-02-03');   
( p8 u8 s9 L& z6 B5 W5 z. a  -> 34   
" E/ H, ?0 Z! n( A4 {& p
: j( _9 S1 K0 @9 Amonth(date)   
" _$ x5 `6 s: C6 y. t$ n2 a返回date中的月份数值   
7 ]2 ?6 O0 L6 _" c! U6 Ymysql> select month('1998-02-03');   
0 J8 B1 X, z: B1 I  w3 x  -> 2   
: s( r! ]! e, j( p- I4 L " |' j2 ]! t3 s: T4 k
dayname(date)   
; {: E) Y: |% n0 a2 m) `' H返回date是星期几(按英文名返回)  
! O! h& |0 g+ a- K7 n# e0 J* Umysql> select dayname("1998-02-05");    ! a9 Y8 o# t* u# A
  -> 'thursday'    : q1 ^! o" }; {7 G! q# J& }
& Q+ x7 c) n. p9 o- h4 r
monthname(date)    
8 d0 z, R6 o1 }: r: w# d( M! e3 G+ S返回date是几月(按英文名返回)  
6 S  W' M: ]% E" Umysql> select monthname("1998-02-05");    $ n  U" i* s! \, W) R# e
  -> 'february'   
* L; U4 V& @' s5 {' A8 u0 Q
( Z( A7 v, u) S# b$ x: p, Squarter(date)   
3 d+ V; M! n7 a2 B返回date是一年的第几个季度    ; e5 h0 d9 t. i
mysql> select quarter('98-04-01');   
8 h( \& K9 {3 M  -> 2   
8 F" _/ G& p' }9 k. A & D" ~+ ~9 L8 e% D' r* _
week(date,first)   
* Z! f% R/ j% y返回date是一年的第几周(first默认值0,first取值1表示周一是' H: L' _0 _5 |  S: r1 x. u2 s: l, \
周的开始,0从周日开始)  
: p% Y/ r" R# ~mysql> select week('1998-02-20');   
( l3 K! h+ c$ s5 s  -> 7   
0 `4 b! t/ K8 Y. W- P( E) b& A9 Bmysql> select week('1998-02-20',0);    2 Q! v; S8 Z0 s% c' J0 I
  -> 7    ' k8 ?) ^* I  U
mysql> select week('1998-02-20',1);   
/ l$ k7 i0 M& k: Q, `  -> 8    , ?5 O. n7 I; u* e0 u
& w4 ?  h, a. d8 P  ]; z
year(date)   
$ H, u) B, {5 T返回date的年份(范围在1000到9999)   
0 q5 c8 P7 Y; Xmysql> select year('98-02-03');    5 W% A/ a- @) T  ?
  -> 1998      a, }' o' h; i& J( y
' T8 d/ z+ q4 v$ S3 p& O
hour(time)    
7 n- l' Z) L8 Y返回time的小时数(范围是0到23)   
7 `! ~; j5 r; O0 y4 K, xmysql> select hour('10:05:03');    5 h- h3 S" w  K# K5 r) y: K
  -> 10   
- W( J# o; O# l( |/ S- S " a- }6 Z6 u! V
minute(time)   
6 P# R; \2 h$ l2 q返回time的分钟数(范围是0到59)    , A' j+ c( b: ~
mysql> select minute('98-02-03 10:05:03');    : |8 n, q5 ]5 C
  -> 5   
* K3 w; x( g$ E, |! b( q ' h6 [, Z! G) }( O
second(time)    
" U, F3 w5 L8 f( y返回time的秒数(范围是0到59)   + o, Z# D$ n( Q$ h+ R  T! W
mysql> select second('10:05:03');   
1 s$ o+ ~0 G1 `, N( ], `5 _, z  -> 3    ' `& o, J! [4 G4 \" {
, E, F% N( O& N( \/ f2 j
period_add(p,n)   
, c/ e' C' o3 N' |# |增加n个月到时期p并返回(p的格式yymm或yyyymm)    9 }  Z/ w( [" _7 e8 q
mysql> select period_add(9801,2);    ( r$ a; k/ j8 W& d
  -> 199803   
" j1 N: F7 N, h4 X$ R! o& q ) ^* P% ^9 Z# B; X9 z- E
period_diff(p1,p2)    ; x2 i: _2 f$ {, i0 Q# t1 Z
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  + P  b6 P4 W  ?6 d
mysql> select period_diff(9802,199703);    ; p+ a) Q$ X& Y  B; P
  -> 11    / a* T) k/ M5 Y! M

4 T% N9 O' ~( _9 ldate_add(date,interval expr type)  + a8 R. E# v2 J/ C6 {# X% _; h; s
date_sub(date,interval expr type)   
8 s0 z: n& s. O7 _( _adddate(date,interval expr type)   
3 O' k+ c" y  r3 |* E3 Y- O4 C* O, ksubdate(date,interval expr type)  " L5 J& p3 ^6 j! M4 u! n
对日期时间进行加减法运算  
1 }& O( U7 l2 Q9 D5 h(adddate()和subdate()是date_add()和date_sub()的同义词,也! K% p) J2 J. t5 r
可以用运算符+和-而不是函数  
) W9 h1 {- g0 Z9 Cdate是一个datetime或date值,expr对date进行加减法的一个表
( t6 ~' s9 ]6 v- |$ o; _达式字符串type指明表达式expr应该如何被解释  9 K0 |: ~% ~5 D- \, S1 X
 [type值 含义 期望的expr格式]:  
0 |4 G0 G# w; A0 d2 l second 秒 seconds   
% S* n2 A* d/ f" J( h; e4 B5 H# j minute 分钟 minutes   
; B" @1 d; g0 }/ h/ O* { hour 时间 hours    9 x4 o8 U  f+ C& ?, [2 w
 day 天 days    : \) F, N9 g1 Y# T& j) A; F
 month 月 months    1 ?+ s. P2 O2 K* I# @
 year 年 years   
! _$ H! g8 ~. m- b5 ~- K minute_second 分钟和秒 "minutes:seconds"   
' r1 A1 c# V7 U* ~1 r3 w hour_minute 小时和分钟 "hours:minutes"   
: d& t2 `5 R9 ]3 o( e( R day_hour 天和小时 "days hours"    + g6 Y2 s1 q. v' `2 ~2 _7 t0 S
 year_month 年和月 "years-months"    1 D1 [- Z# ?/ R* I, r% a" H* }0 G5 Q
 hour_second 小时, 分钟, "hours:minutes:seconds"    5 Q8 ?& j  y. ^  ^
 day_minute 天, 小时, 分钟 "days hours:minutes"    5 O9 G0 _# }5 N) [0 T# s
 day_second 天, 小时, 分钟, 秒 "days: _6 N% B  g4 r$ p0 y
hours:minutes:seconds"
+ U- H" S. V* z. o expr中允许任何标点做分隔符,如果所有是date值时结果是一个
- i/ s, S9 N% v4 Xdate值,否则结果是一个datetime值)  2 {0 o( o0 C% N9 I0 g
 如果type关键词不完整,则mysql从右端取值,day_second因为缺
: [7 C. [. \6 e- S2 ^; A. k少小时分钟等于minute_second)  ( Q. b1 W. C/ ^. D
 如果增加month、year_month或year,天数大于结果月份的最大天
5 T; ~$ x. B, f9 z' e( F数则使用最大天数)   
" f% Y) @  }- Y+ O; u  j) O8 c) rmysql> select "1997-12-31 23:59:59" + interval 1 second;  
) e6 g2 |8 h( [' x: e  \& y8 W 3 j6 U) K$ I0 v$ {
  -> 1998-01-01 00:00:00   
4 E. K" T& F# ]2 _mysql> select interval 1 day + "1997-12-31";    8 l. e: A' ?. {4 N2 J% \
  -> 1998-01-01    $ ]; m+ T1 z' @) ~9 b. i9 r: Z
mysql> select "1998-01-01" - interval 1 second;   
1 C8 {4 b' C3 N4 C# _6 S5 Q  -> 1997-12-31 23:59:59    ( j* p; X! z2 W0 J0 w' f, F. X
mysql> select date_add("1997-12-31 23:59:59",interval 1
$ ]9 S; P# x) N7 Y/ o* @second);   
! c, w& M, m. a$ n: c  -> 1998-01-01 00:00:00    + W5 Q  D" }( K  s* [" g; t8 f
mysql> select date_add("1997-12-31 23:59:59",interval 1) r& k, P& x$ ]% _. M
day);    7 H0 b  D+ N( l3 Z0 ?
  -> 1998-01-01 23:59:59   
4 X$ q* k6 f  Y: j& u0 e) ?mysql> select date_add("1997-12-31 23:59:59",interval
% K6 d. H3 ]8 L! n" w  N"1:1" minute_second);   
$ Y4 K4 b0 R6 f# k; X: c5 X  -> 1998-01-01 00:01:00    6 x# U% r% w* j. Q( Y! s
mysql> select date_sub("1998-01-01 00:00:00",interval "1" D2 G! _# W& j  C
1:1:1" day_second);   
$ I2 K  W* P, U- f. y( G* R6 T7 ^  -> 1997-12-30 22:58:59   
9 x8 M6 Q5 o4 Y# `+ m! u) a( dmysql> select date_add("1998-01-01 00:00:00", interval "-12 h) D2 H4 X, K# n
10" day_hour);  , f+ n" }* m4 {# r# E7 N
  -> 1997-12-30 14:00:00   
. V+ e# Z1 t' Rmysql> select date_sub("1998-01-02", interval 31 day);   
& m4 o) O( g$ E/ h( L  -> 1997-12-02   
' g2 a. t. F& }2 ^# vmysql> select extract(year from "1999-07-02");   
' {3 g) _- m4 v  -> 1999    9 W) y* V1 l* P: o# z
mysql> select extract(year_month from "1999-07-02
: d+ |8 P' j" V3 \4 }01:02:03");    1 G1 B* f( n8 d) ^2 S
  -> 199907   
( Q! T1 q5 T! V& G6 b  i7 Amysql> select extract(day_minute from "1999-07-02( {' n  J# ~3 L2 Q& w
01:02:03");   
% x7 Z$ F# W) X% Y4 ]  -> 20102    . q  z3 e; e  q/ ]! E  n# ~* g

) \, ~0 b2 K! \* l5 uto_days(date)   
$ r  l7 F6 ]/ U1 }返回日期date是西元0年至今多少天(不计算1582年以前)  
4 F; J+ A5 g, I% ~% m% tmysql> select to_days(950501);   
# |  h( i  I8 m& m4 O$ n- V/ m, |6 e  -> 728779    4 g) z- {5 w3 Z- U  V: h. }
mysql> select to_days('1997-10-07');   
, v) I% E0 g2 {$ ]4 |  d  -> 729669   
* v! x( t6 L3 l6 U" E) n + t: B) z- ^2 j
from_days(n)    & I* O! a) t' d4 V$ x4 s% B& {
 给出西元0年至今多少天返回date值(不计算1582年以前)   
0 u+ X# @; i5 G9 A9 `4 Xmysql> select from_days(729669);   
: k% I. [: s5 C& |; i0 [: a  -> '1997-10-07'   
- q6 V* e2 H  s) W/ L0 e
- r  g2 K( }5 y/ |* Tdate_format(date,format)    / M7 @# w' M9 `. B  `% N, I- H
 根据format字符串格式化date值  - b) C" R  f8 c, z
 (在format字符串中可用标志符:  ( _$ i2 C( s9 N1 V2 A- @; w
 %m 月名字(january……december)    , m4 d5 g2 l# M4 a) ^* k
 %w 星期名字(sunday……saturday)   
( o) E. O$ W& x/ O5 @9 I3 Q. r. a %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    7 ^2 A! G5 {* B* W7 o
 %y 年, 数字, 4 位    8 T7 R1 Z/ E8 }
 %y 年, 数字, 2 位   
5 K9 }' ?/ H2 t %a 缩写的星期名字(sun……sat)   
1 @3 k( f) E2 B0 C  I% E) J %d 月份中的天数, 数字(00……31)    # O! B5 U4 K$ J
 %e 月份中的天数, 数字(0……31)   
% |2 e( t) G9 U( T %m 月, 数字(01……12)    . @0 ^& q1 w: f( s
 %c 月, 数字(1……12)    6 x' S! ]* \5 \) h% {5 a& e
 %b 缩写的月份名字(jan……dec)    ' P1 A) ?9 j: @  E0 d& R6 k
 %j 一年中的天数(001……366)   
1 K# T. V! M4 T. ^ %h 小时(00……23)   
' ]0 G3 Y3 _; F3 ]* D7 S$ [ %k 小时(0……23)    8 ?; J3 _& E* B: {) |2 n
 %h 小时(01……12)    5 }! d! O8 [- D/ @( P+ z( {) c- s
 %i 小时(01……12)   
& V& a" k& u: V# l# o2 _2 C %l 小时(1……12)   
- R9 I( _# u( _! T5 ], |' B %i 分钟, 数字(00……59)    9 M9 j5 ^: d2 l! l( ^
 %r 时间,12 小时(hh:mm:ss [ap]m)    . T( l9 E: H$ C1 d6 }
 %t 时间,24 小时(hh:mm:ss)    , J/ V7 A  \( t/ s* {& p
 %s 秒(00……59)    # K0 A% ?0 ]- O% T5 R
 %s 秒(00……59)    * Q# z; Q; i8 J
 %p am或pm    $ D8 q! s# C) N" d% w8 `
 %w 一个星期中的天数(0=sunday ……6=saturday )   
8 @9 e  ~( U  Q! P5 L4 U2 v5 i %u 星期(0……52), 这里星期天是星期的第一天    3 U$ \) z+ ~3 J& k
 %u 星期(0……52), 这里星期一是星期的第一天   
- S( ~/ _1 t  ?, [ %% 字符% )  6 X7 R& G! w" j; _4 Q; P6 g
mysql> select date_format('1997-10-04 22:23:00','%w %m %' H* T6 H. I( K1 T+ w" T& V/ t
y');    * Q" j+ w1 d" \' N" u
  -> 'saturday october 1997'    : N2 o( f, v3 S: |7 a" W
mysql> select date_format('1997-10-04 22:23:00','%h:%i:%
8 r2 j8 r# v1 Ys');    + o4 P6 U2 i2 O' I  b$ g: o
  -> '22:23:00'    2 _* g: Y$ w# Y
mysql> select date_format('1997-10-04 22:23:00','%d %y %a
' T( u1 i) _' A- N%d %m %b %j');    % A- X! v7 F/ H) p" H1 h
  -> '4th 97 sat 04 10 oct 277'   
) V; m; Z% W$ G/ V% Wmysql> select date_format('1997-10-04 22:23:00','%h %k %i
' k: G+ p/ i# X9 ~5 I5 h' t%r %t %s %w');    : E; g8 t4 k3 Q. o8 b9 y8 L, _
  -> '22 22 10 10:23:00 pm 22:23:00 00 6'    0 K$ W7 v4 {: {8 S

* [& T/ z. e  i+ z7 d! A7 xtime_format(time,format)  6 s- g6 O' n* S, t
 和date_format()类似,但time_format只处理小时、分钟和秒(其
0 Y6 o0 w+ J) n+ [' ]* d% U, D+ {余符号产生一个null值或0)  
; A  Z5 I! m/ `  y ( w1 e4 I! @& k9 s* o2 S( g
curdate()     
& x$ T; n; {6 D. |; s' H  vcurrent_date()  4 }1 N% z4 l5 t$ f
 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所2 j$ T/ L3 f" e  v, Z
处上下文是字符串或数字)    ! K/ Z8 g! X; ~5 Y9 x/ i8 z
mysql> select curdate();    $ D& d( b7 [; H9 m; b# A* n& S
  -> '1997-12-15'   
! m# w. j( Z: R! E. M' N! \5 ~mysql> select curdate() + 0;    3 }7 S8 A* K0 z6 S0 l4 b+ X3 _6 A
  -> 19971215   
% O% E+ `: {3 X4 k; t6 b# a
  o0 l0 d7 ]0 i: ^3 ycurtime()   
' }+ q* a1 E5 {+ O! E. N! ~current_time()  % V. A# f" ]8 N& }+ c
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上* p- U) N5 H' U3 O
下文是字符串或数字)      " z) c3 `; a% c5 @
mysql> select curtime();   
6 X. K$ ~( n' F. V! Z0 n4 ^  -> '23:50:26'   
& W0 A7 H  ?6 a9 N3 `mysql> select curtime() + 0;      p  w3 R1 T( J
  -> 235026   
% B8 N5 G4 \0 C
7 z6 J9 c; U/ X4 Q+ a0 h/ O8 J5 Pnow()    
: c2 T. x- J) \) k. ?: H/ Y! A/ fsysdate()    ) `6 m' h! m. T& Q+ r
current_timestamp()  
& V+ {' f* l  H9 @ 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期. U! w+ z, r; B  G5 ~. ~4 _
时间(根据返回值所处上下文是字符串或数字)     
( _, B3 ~8 V0 m: z! K* _. mmysql> select now();    1 Y. r" `" Z) }
  -> '1997-12-15 23:50:26'   
; k2 q+ G# j3 q5 w% P' }0 Wmysql> select now() + 0;   
! ?4 V7 E& l/ U. S7 s/ z3 y5 w  -> 19971215235026    ; p% ~6 J/ K+ \) H2 K. t; V7 g
, }2 M% b) v. Z' E0 H
unix_timestamp()   
- M  c: |4 y4 `$ j' {( bunix_timestamp(date)   
7 C7 @7 j: o7 F+ }8 I返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒9 f5 J, d: d2 D  J+ H
数,date默认值为当前时间)  
/ v5 |1 e- h8 Gmysql> select unix_timestamp();    5 I) d6 F. @$ r+ C, W- v$ U
  -> 882226357    : R0 J% X7 s5 F& S( i% R$ q
mysql> select unix_timestamp('1997-10-04 22:23:00');    " x/ U: Z4 w) y4 J) W# G
  -> 875996580    ( m' j, Q5 [4 t

3 m  B1 n- b$ a! O" a6 I; `- ?8 w" efrom_unixtime(unix_timestamp)    * |: @" c1 E; r
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的  H4 O" v4 Y  J: p
值(根据返回值所处上下文是字符串或数字)     
' e3 T+ w) f4 u0 P* Lmysql> select from_unixtime(875996580);   
8 g" }* M  Z: V0 c# E% F: _  -> '1997-10-04 22:23:00'   
' B# \+ r4 x/ S/ w  nmysql> select from_unixtime(875996580) + 0;    , x# |' B4 ~% {" \
  -> 19971004222300   
- I; Y4 T, P0 H" k
& A* x$ ?6 I. G, c$ e0 N7 ofrom_unixtime(unix_timestamp,format)    
# u4 K' j9 b  }1 v, I# ~" q以format字符串格式返回时间戳的值  
4 n! u" g  M* ^* n' z) Ymysql> select from_unixtime(unix_timestamp(),'%y %d %m %' X4 T+ h- m/ g$ t
h:%i:%s %x');    * l2 D% r3 s2 J( T& S
  -> '1997 23rd december 03:43:30 x'    & P; i! ~+ ?- h9 t: M# c
$ ?8 R9 X" P6 b) B, g+ I
sec_to_time(seconds)    % Q% V$ t# _9 W# v4 r, _
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
% p6 c1 d* A; rmysql> select sec_to_time(2378);   
0 P! N/ z5 @! P! i( Y; |  -> '00:39:38'   
. F" \0 c* I* X2 x( W6 e6 A6 cmysql> select sec_to_time(2378) + 0;   
* @: M3 o# i% k4 z  -> 3938    5 q/ p% N5 `$ U. S* o
# u% [4 E1 r8 {# S) \( C4 Q
time_to_sec(time)    $ C; t. ]$ r8 D% z7 `& y
返回time值有多少秒    ; I  l# Z; W8 U! ]
mysql> select time_to_sec('22:23:00');   
, u8 Z, j4 m* U  -> 80580    9 A+ q( I0 v; T* ~  |9 `
mysql> select time_to_sec('00:39:38');    2 B: l1 U9 V7 y: F' M
  -> 2378
, }3 h  @5 b6 ]4 R$ C+ L) m
. T, T, S( c! l, s8 f' B转换函数
6 x0 b* t% p% M& G- O) Z: Z  z: x7 Tcast
) J; u) Z& W% z  T/ \用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]% X- S1 T" t! S( I
实例:select cast(a as unsigned) as b from cardserver where order by b desc;
; ?. c5 ^9 H7 _4 wconvert:0 F1 a# ?8 ]* L4 G
用法:convert(字段,数据类型)4 |8 F( [3 S  d! h0 s: `
实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

6 C% [% u( c( ^" ]" m7 F( p
回复

使用道具 举报

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

本版积分规则

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