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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数. e# B2 U" A! ^3 R4 F
ascii(str)   
, N5 A) k3 r6 f" t# J返回字符串str的第一个字符的ascii值(str是空串时返回0)  
2 s) r% c8 {) d4 [( S5 z. fmysql> select ascii('2');  
3 ^) r* u! y+ M8 y  v3 i& G: y  -> 50  
1 ]  v+ w# e; s2 R6 l/ q6 Kmysql> select ascii(2);  8 k& s6 ?; f& b0 x% I, V' u; z2 X* t
  -> 50  
  ^$ y- k& \4 dmysql> select ascii('dete');  
3 ^* Z0 d  V" _  -> 100
- Z- K4 _  X8 g) b
ord(str)   & E$ Y/ o& s; X4 z5 ]( X
如果字符串str句首是单字节返回与ascii()函数返回的相同值。
* s5 u1 F! m9 ? 1 A. |; N2 |$ J; b" R: Y
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  
+ _( S% s8 B* a9 \; r) Bmysql> select ord('2');  
* T' Z* D( H" a3 w  -> 50  
3 F  Z7 \- K$ @; I   
, T. U8 ]; I$ j' S$ Kconv(n,from_base,to_base)   
; \( E9 n# P- y对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
( e( r3 n# ~' d4 {5 F: S$ c2 smysql> select conv("a",16,2);  
' J3 o; J, j' y1 s  -> '1010' ! |; Z. v+ O6 i9 i4 b' N
mysql> select conv("6e",18,8);  6 N7 _$ N: ]! d+ O
  -> '172' - P1 o3 l; n( p, D7 g* j
mysql> select conv(-17,10,-18);  
- X3 [8 j9 s9 z$ U" \, k  -> '-h' * G) S0 i6 k" w" E
mysql> select conv(10+"10"+'10'+0xa,10,10);  
! @, z; F* B( t1 X% d# e* R  ^6 R  -> '40'
8 S4 J) w6 p& ~2 V# g$ [7 z  [0 w   : {. S, y) z5 r4 d% b
bin(n)   
7 w3 h% {" \; u* }把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
: Z' g+ G2 {" C& ]( _mysql> select bin(12);  & }( U' W3 d  _
  -> '1100' ; L; f; \/ k1 Y4 m

. [; Y( j2 Q3 u' W% k6 Qoct(n)   ) h% p8 Q8 x/ }# @4 w  U( A, q2 l
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  $ k, r1 G& ?2 ]* [, `  U
mysql> select oct(12);  
1 ]) o  Q/ p8 U, ~, m' S  -> '14'
+ W6 a: b5 L0 [/ ^7 A( _$ ?1 o   
( n. N" z3 ]* ]hex(n)   - s) U$ e" _: V6 V" A& _, u# h
把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  " R- F3 a4 j+ O9 {. ~; d. g0 M6 N
mysql> select hex(255);  
! s& u, `' C4 N8 `9 l. N8 S% E  -> 'ff'
, c! W8 n% x8 a+ Q2 r   % c$ P$ n& L. `, s% [! x, R
char(n,...)   
" X- H' d3 H8 {$ v: S5 w/ s返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   $ v# t7 R5 ^) |3 x) E
mysql> select char(77,121,83,81,'76');  ; l7 A$ n1 ]; h1 |; D. F& ?! ?5 k
  -> 'mysql'
1 {6 M& N# X1 L7 z0 Emysql> select char(77,77.3,'77.3');  
7 ^- W# e1 ~9 [& R" D( t  -> 'mmm'
& k! P" u9 E4 k, V; t   
% c: x  t% Q6 E3 F' \( {concat(str1,str2,...)  
2 m/ S) O1 F- ?3 c: \把参数连成一个长字符串并返回(任何参数是null时返回null)  
% T+ T0 d" F7 c: E- Dmysql> select concat('my', 's', 'ql');  
/ u  c' L3 P  _/ ]0 x& U# M  -> 'mysql' 1 z! C2 b* P) ?1 v% Z( U: _% A4 O
mysql> select concat('my', null, 'ql');  
+ K+ h9 r  f$ s, t2 R  -> null 2 F; M( C3 f( k7 _. l
mysql> select concat(14.3);  2 L+ G7 Q6 h) s! }* I! T* n
  -> '14.3'
, y/ v* m  q% Q; q
9 V) H, z+ u$ ]& W; e& ylength(str)   
& k+ z# M  z7 @- V) ioctet_length(str)  . V  V# Z+ ~; C) N; a1 c
char_length(str)  
! t4 x+ j# F0 w  M) l8 G; N$ j9 ^character_length(str)  . r7 K4 e2 ?& F$ a' H! ?; i
返回字符串str的长度(对于多字节字符char_length仅计算一次)
# F0 G& J8 R' N+ A) |' W6 jmysql> select length('text');  ! q; X7 B1 ]" _. h! Q' C' i! O
  -> 4  % X5 }. R6 `5 w$ @- |9 J
mysql> select octet_length('text');  - m7 s/ Z5 c0 h' S2 _7 ^3 w
  -> 4  
- u6 I% n" D: t$ E  E & w% k5 \0 T2 E. a5 W/ ?
locate(substr,str)   
; I: J- o4 v, K* qposition(substr in str)   
0 k. W/ ?9 v( {, r# i返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  2 w; O% ]/ e& v  C4 |. Z  ^; T2 r+ s
mysql> select locate('bar', 'foobarbar');  
: l' }! G6 H& Y0 k  -> 4  
. A4 @- c. T+ w- |mysql> select locate('xbar', 'foobar');  
( L9 e& M0 ~2 w& d  -> 0  4 k4 Y& Q; `* r$ C' |4 ~
   
, y% p4 x# Z1 c) k3 Clocate(substr,str,pos) + B$ P% _- ^7 ?' P+ j
返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
2 B, S2 h" `6 S# d0 {4 A" Nmysql> select locate('bar', 'foobarbar',5);  
7 W$ D" a( t' U- [1 W, }7 S  -> 7  
7 w3 \- E0 k% L" {% a/ x- s
3 p) q; [7 }" ^) Winstr(str,substr)  
) g$ u( ]" L* h% }9 C. _返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  2 L- x" M3 e$ b0 y: {  K9 w
mysql> select instr('foobarbar', 'bar');  / A: e/ Q( w  H3 E+ B$ H& f
  -> 4  
, Q/ z% q6 c: b: P. k+ Xmysql> select instr('xbar', 'foobar');  
( V. h, ~5 \8 K1 X6 |; C  -> 0   % i) I2 h& Z( J

' W1 y" }( b4 g, b: _lpad(str,len,padstr)   
: Z3 h( K$ o; N9 J( p; Q) r8 o2 ^用字符串padstr填补str左端直到字串长度为len并返回  + z% z: K( ?+ h: B+ Q" T+ v
mysql> select lpad('hi',4,'??');    B7 L; W+ U5 n; ]  k
  -> '??hi' 1 V$ ?8 p1 O1 e# J& O' b$ u- |3 H
   " a8 x  i9 ^0 I* V! l! c. \
rpad(str,len,padstr)   
$ B8 m5 S1 A. [) o5 f3 o! Z用字符串padstr填补str右端直到字串长度为len并返回  # z1 x( H. C: \. {; Z
mysql> select rpad('hi',5,'?');  
/ Q+ [9 w+ K4 L3 V( G/ m  -> 'hi???' ; h. @, U4 Q1 D' U  R3 ]
5 l, n: x$ Z0 t/ y
left(str,len)   
5 @% o2 r! x1 C返回字符串str的左端len个字符  
: m+ ]7 P  U2 r) amysql> select left('foobarbar', 5);  $ \1 r. x- G7 ~9 H
  -> 'fooba' / n, y4 a! s; C

' X5 \4 p) b+ ]7 Dright(str,len)   
& Z6 f3 c8 c# m+ O; \返回字符串str的右端len个字符   0 G7 i+ T$ {5 v1 R) B9 ~; v
mysql> select right('foobarbar', 4);  0 h1 {5 ~. V' H6 ?
  -> 'rbar' 1 Q# v, S0 O! R' V  {5 `8 T

' R- I$ O! O( B( Dsubstring(str,pos,len)   ! M' k; n( Y5 \! _- A
substring(str from pos for len)   ; m6 ?, E/ B: C
mid(str,pos,len)   
8 N  r* k( A) H) q& T4 l; @返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  3 o. G: h; X; l' w/ @+ g% M3 E
  -> 'ratica' 1 |+ i: |  j1 R& o
9 R8 f0 r* X/ Z+ Q2 t9 s( M8 ]
substring(str,pos)   
2 i1 Q( d9 V& A  W! y& G& c2 D: Wsubstring(str from pos)   
  x9 M6 s" ~; V+ p返回字符串str的位置pos起的一个子串  
6 q7 P$ ^# M  V' V% I  _mysql> select substring('quadratically',5);  6 z& W8 e: k$ @7 i- ?5 K
  -> 'ratically'
; ]" U0 U! B1 O4 q) t; W, j- Gmysql> select substring('foobarbar' from 4);  
2 ]2 C! a+ `$ k/ H& O) F" y  -> 'barbar' 6 ^, q: H! Z* l- B

% [7 i; _4 s1 T: _% A. a: a5 q' qsubstring_index(str,delim,count)   
7 r$ W- U! j+ ]) g* z返回从字符串str的第count个出现的分隔符delim之后的子串0 ~) s' j. A& Q
(count为正数时返回左端,否则返回右端子串)  + w6 q# {' t7 ~- Y2 b, s; |/ c( L
mysql> select substring_index('www.mysql.com', '.', 2);  & U( l& |/ v: ]' b
  -> 'www.mysql' 8 w; H: M' N+ m/ F/ ]+ J& c
mysql> select substring_index('www.mysql.com', '.', -2);  0 @2 o8 x0 x  c# h( J( a
  -> 'mysql.com' 5 q5 n- t$ W# K$ e6 J* L1 S3 E
# r0 g5 G- |) O8 U1 W) G
ltrim(str)   
: q9 L1 Y9 L6 n: P' b" @% I返回删除了左空格的字符串str  % |  M: g( p, |4 _0 S8 [7 m1 l
mysql> select ltrim('  barbar');  / C5 M. i+ G: M" O
  -> 'barbar'
8 @! c3 U) q1 A
; z( z, w2 E9 w8 b# x0 nrtrim(str)   ' O6 W1 v- E: j% e# f; Y* g
返回删除了右空格的字符串str  
' ^4 n! e; [( w2 s- {& A# Rmysql> select rtrim('barbar   ');  0 Y' Q9 Z& q- e  ?9 {" @
  -> 'barbar'
& Y; I  S) o$ B4 _& i2 T- ?
6 v/ ~! j# M6 z; I  gtrim([[both | leading | trailing] [remstr] from] str)   & j1 e# l- R& a6 G% w, c" `$ D
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  - r% s) Y8 k: Z1 K( M% i) r7 S! e
mysql> select trim('  bar   ');  / }6 O1 V. q6 \* S
  -> 'bar'
4 _/ L$ ~/ d$ l/ b: V; rmysql> select trim(leading 'x' from 'xxxbarxxx');  8 d* w8 H) ^- e2 r/ T- E
  -> 'barxxx'
8 {0 I  ]: }2 n1 nmysql> select trim(both 'x' from 'xxxbarxxx');  - d2 g6 G/ t2 j4 r' w  I# W
  -> 'bar' : `9 C' b4 j  Y, A( o7 G
mysql> select trim(trailing 'xyz' from 'barxxyz');  
* S9 ?1 x+ f; {( X2 m  -> 'barx' ( `5 @4 {+ B4 h7 f5 D6 z! J" t
; y1 m" I: Y; Z! A# `+ v; c& V
soundex(str)   
% f; i; r, E3 Y! \' `返回str的一个同音字符串(听起来“大致相同”字符串有相同的
" M5 V% i# l- q( ?! \5 a同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  
1 |" W* N# U* K6 L$ u' m9 y3 O' f; V7 h5 qmysql> select soundex('hello');  & r2 ?1 Q8 k: P! @9 z
  -> 'h400'
' u$ a' v1 J- A" Hmysql> select soundex('quadratically');  ; I- [# x" K5 y$ @" v
  -> 'q36324'
: R) Y5 R. i$ L+ |9 \' k  |   
8 ~" z7 m% \4 ~- K7 Rspace(n)   
: j5 n; a. b9 `( s, w4 T返回由n个空格字符组成的一个字符串  
& B; b2 B/ s# ^mysql> select space(6);  
8 E( A/ `. D9 v+ S# I  -> '      '
; K0 \8 F: H. K' E5 e3 O) \- r; \   
4 Q- J. h  C8 L# H4 t/ yreplace(str,from_str,to_str)   
, a% m. e3 ]! P1 V7 ~用字符串to_str替换字符串str中的子串from_str并返回  
2 G( G  z( i0 l9 V2 dmysql> select replace('www.mysql.com', 'w', 'ww');  
, q  A3 @9 F% S* j  G  -> 'wwwwww.mysql.com'
  _' }+ a+ H: J* d" V1 q5 W ; T0 L* u4 v  r! w4 R- p( `" v
repeat(str,count)  
/ \+ E( z/ }0 \% \返回由count个字符串str连成的一个字符串(任何参数为null时
+ O& ]6 x. \4 {& R4 A返回null,count<=0时返回一个空字符串)  ) m' _; e0 [7 w2 ]* u% \
mysql> select repeat('mysql', 3);  
6 R3 L# I" {! ?  -> 'mysqlmysqlmysql'
2 U% J& h1 z! E) L. @" U+ @- f   5 T- J* v: c. C9 B' L" p
reverse(str)   
8 _; ^( [3 Z5 _' |! D" @. ?: h颠倒字符串str的字符顺序并返回  3 {9 e6 B! F/ D/ |) D3 W
mysql> select reverse('abc');  ( O: W; M& q7 k/ b1 s8 n3 ?
  -> 'cba'
4 g2 e* C# P3 W  b$ `; E " v: i8 m4 b' ]
insert(str,pos,len,newstr)   
6 W4 S9 Q5 ~/ g! i' _/ T把字符串str由位置pos起len个字符长的子串替换为字符串# R. Z; Q. K# d
newstr并返回  0 e) j1 _/ x9 J" x$ F: t( o& l" J1 r
mysql> select insert('quadratic', 3, 4, 'what');  
* k7 y) q  a9 f5 b+ _0 F4 y3 D  -> 'quwhattic' 8 C8 S8 W9 B8 l9 B* f' U$ g
" Q% z4 A' A  }5 e
elt(n,str1,str2,str3,...)   
& c. N* ?6 t; i9 N; m返回第n个字符串(n小于1或大于参数个数返回null)  ! d9 `% _# ?6 w! D1 V
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  
8 p5 ?7 t  N3 W& G6 r! q  -> 'ej' % e; l8 ?. M7 E2 I0 z# _" v
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  
3 E- e4 w- H6 b! E  -> 'foo' % E. B% L- [2 s/ r6 O

& M/ g6 b" N2 Wfield(str,str1,str2,str3,...)   ; J* l1 v- S  }' l
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
. @# z" {" v- umysql> select field('ej', 'hej', 'ej', 'heja', 'hej',- |9 w' A7 v2 e' F" v
'foo');  
. {& R8 L0 O( z  -> 2    X5 {; P& r- J, `, T& `* ~7 }1 Q
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',1 B5 ^8 l  I' [! I; H  d9 A
'foo');  
2 t4 A$ \1 q# U) S3 N$ _7 e+ u! D  -> 0  
4 V( c7 L' i1 l% q8 [4 A : Q( I! Y( D* A0 v0 _$ {0 d
find_in_set(str,strlist)   4 q# M( S8 d* E# }  h  ^
返回str在字符串集strlist中的序号(任何参数是null则返回) }1 N7 ]" v: `, S$ v- }
null,如果str没找到返回0,参数1包含","时工作异常)  0 ?/ l) ?( `* {9 w$ s0 a
mysql> select find_in_set('b','a,b,c,d');  & v' E. L% D& C' `! a" m/ Q9 a
  -> 2  # ]# N/ T/ }$ ~2 ?+ o% k7 p% Y
   
+ I! E% n; q* k, O6 U% y" \make_set(bits,str1,str2,...)  
# ~. C7 D% E! k) S把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应6 o1 |; L& O( d9 S: @' Q
位置的字串选入字串集并返回(null串不添加到结果中)  
$ \" n$ \+ {9 d5 x  E& Z6 I: kmysql> select make_set(1,'a','b','c');  
) p% o6 u; O  |3 M3 Q3 R1 j  -> 'a'
8 E; t1 G4 k* h! n' }" x! Tmysql> select make_set(1 | 4,'hello','nice','world');  
6 t- _0 T$ d$ t+ C7 r  -> 'hello,world' $ ~) G1 H* S+ q1 t9 I: r# S% k/ Q
mysql> select make_set(0,'a','b','c');  
9 S0 S/ h, I9 N: x! v  -> '' & N0 `0 J* Y* `' z# X7 m
9 J. h" e) c& t' [& x' k
export_set(bits,on,off,[separator,[number_of_bits]])   
. f8 [- {5 m1 W$ N) b按bits排列字符串集,只有当位等于1时插入字串on,否则插入
/ ]) L: ?: W+ Y6 l$ E- {+ x9 W+ boff(separator默认值",",number_of_bits参数使用时长度不足补07 z4 K) m, v/ i1 Q) g
而过长截断)   # c9 W, Y! b& h% q, f8 A' m
mysql> select export_set(5,'y','n',',',4)  
  I# I& k. O1 f/ }2 _: C' J  -> y,n,y,n   
9 _( F' d. G4 f! ^7 v+ _
# l. w- _! e+ Z' t! ~) O/ V! m4 z/ plcase(str)  / O. J& |* Y8 ^: B4 P) [# @8 k& ]
lower(str)   - _! z3 Y& [1 K6 i& A2 `
返回小写的字符串str  2 k6 p8 W, E# o
mysql> select lcase('quadratically');  
# h# [0 ^% P9 X- u3 |$ z( _" }  -> 'quadratically'
8 d$ D# k$ c) @. c7 H1 z* n   
1 h- O, V7 H- ?' C4 fucase(str)   0 \+ o2 A/ R* H) O  v$ f" T- I
upper(str)  
7 `! M% ^6 Q3 f- E返回大写的字符串str  
6 _- g, ?( u: V; I8 e& n! jmysql> select ucase('quadratically');  
- m7 o5 E/ t0 `. \$ f  -> 'quadratically' / t5 v  a4 Q4 l; u7 {! K# d
; h+ r; h5 p; S  ~2 D5 Q3 l
load_file(file_name)   ; U2 E) j( c$ C4 h
读入文件并且作为一个字符串返回文件内容(文件无法找到,路径
) C+ Y( C; s$ h6 I( V1 p不完整,没有权限,长度大于max_allowed_packet会返回null)  " I3 h4 ^6 ^# ^+ _! @- c( ^; D! r; }
mysql> update table_name set blob_column=load_file" m& N2 A" T- A- u
("/tmp/picture") where id=1;  * J! H' o, |" x3 n/ x& ^

, R; K: E* x5 x9 d% U2、数学函数
0 g9 S4 H' g; ]% ~( W/ Q2 @. Iabs(n) * q/ E% P! O9 w. p0 n0 x# D
返回n的绝对值  
5 z, R' w: d  imysql> select abs(2);   
7 b9 ^: [3 H# ~8 o/ r  -> 2    " x. Y& C: z1 S# m0 ^% x
mysql> select abs(-32);    0 K; G# \$ o9 f  P, ~3 e
  -> 32   
! X$ q& i* c' K2 V$ t   
& k" m0 g  q; E, @sign(n)  ) e/ @& z5 M, q
返回参数的符号(为-1、0或1)  & j% @+ ?5 U$ i5 s- Z( P7 ?* r* j
mysql> select sign(-32);   
* D& k2 k* _+ D2 W' Y+ ?6 s  -> -1   
8 d" e9 V( ~( k* f( Qmysql> select sign(0);    : t. F6 F, M0 W% n6 `8 j1 H7 P
  -> 0    4 T% I, K8 Q6 O7 d* W1 V/ C3 C3 B6 y; _
mysql> select sign(234);    ) s- I/ a! p) L* A; L4 x! c) @
  -> 1   
8 n( ~* z* R) F" d  t8 E! e8 h ; B( @9 [: b0 ]) G  [
mod(n,m)   
" V2 U$ V# Z6 g9 ?9 w+ a: B取模运算,返回n被m除的余数(同%操作符)   
0 P" D! A# r0 Gmysql> select mod(234, 10);    $ @( l& p6 D  O
  -> 4   
2 e. ]. p8 s. x+ B6 Rmysql> select 234 % 10;   
/ N* I- c! A8 Y4 w8 D  -> 4   
& L9 e3 a1 E! D6 D: E: e3 |mysql> select mod(29,9);    9 h5 k! a7 E. O; p2 o, g
  -> 2    % H- x2 x( t9 _* q

- o0 v) e/ J( n  b, g" X7 afloor(n)  
' v  T0 X8 _7 }返回不大于n的最大整数值  2 W+ r* s; ~$ w& d
mysql> select floor(1.23);   
# I4 ~, |7 Y/ H  -> 1    ; ?( Z7 [) a" J
mysql> select floor(-1.23);   
" I: g! M* M/ x" x4 V  N3 Y  -> -2    0 O' q2 \5 j1 t

7 _; ?8 [+ g  k! l8 \6 }7 xceiling(n)    u- x0 y& f8 |! q  s: J: Z' d
返回不小于n的最小整数值  
. Q8 A; [: k3 {& Ymysql> select ceiling(1.23);    + P1 r5 O& [7 g7 K+ i, X/ b3 l
  -> 2    : T! d: t- ~% A( [$ }& W& W
mysql> select ceiling(-1.23);   
/ `  f, Q0 E, j! M$ k2 y0 g& e* Q* G  -> -1   
% y9 x: Y" [; k! k  h
2 U1 U3 y& m) _round(n,d)  6 J  H/ e, }  r3 O. [: i
返回n的四舍五入值,保留d位小数(d的默认值为0)  
$ |9 {: J/ |! `% q* omysql> select round(-1.23);    / S" f6 `; J$ B- M% F7 T" {( a
  -> -1    & |% k( l/ u; Q, @2 Z  u
mysql> select round(-1.58);    6 c8 T7 G) ?) \! y
  -> -2   
3 c% d& I' @% W- _' ^8 Ymysql> select round(1.58);   
. D  B+ R: a7 o+ p. J  -> 2   
0 X- w1 L: y. T4 F- f7 g2 x4 @" tmysql> select round(1.298, 1);   
$ _) M9 A0 e: O% d5 ~" Y  -> 1.3   
; t" Y& F4 w% m5 O1 ?2 ?mysql> select round(1.298, 0);    + X( k9 @2 v0 F; Z3 q) `: I
  -> 1    % A+ D" }/ k' a$ _  L- g
8 i8 T4 Q; D% [! _
exp(n)  
  l; K8 s- I; n9 N5 E返回值e的n次方(自然对数的底)  
2 w! t' A! Z: i; mmysql> select exp(2);    ' K6 x, F2 {5 D" A0 C
  -> 7.389056   
/ }6 ~8 p2 x, o5 Cmysql> select exp(-2);   
& ^8 J7 z* r; E5 j6 `0 Z  -> 0.135335    # w! n, u/ W0 R. O7 F# ^5 ?

$ F3 F: H8 b1 s  K9 ^% |- j* H" n$ Q0 Flog(n)  
% u8 L: }/ f) A& }返回n的自然对数  0 |8 A3 q# X9 a. W
mysql> select log(2);    3 I% b- Y' O4 O7 @
  -> 0.693147   
. A2 [+ T6 b' X1 ]1 A  i! \; @6 Nmysql> select log(-2);      O7 n6 e6 O, R/ H+ {: @
  -> null    7 E- m" e1 ^, v

" }" r4 L* N# X9 [; I4 X% G5 flog10(n)  0 `; C  z6 [  C2 G) `
返回n以10为底的对数  6 j% Z4 h" a( a- _8 P: L
mysql> select log10(2);    & u) i, T% B- Q" u# S
  -> 0.301030   
5 Q8 ]5 F3 b% O. ~mysql> select log10(100);   
9 O3 w; _: u7 T" H  -> 2.000000    $ [" Y) _$ Z- {6 Y
mysql> select log10(-100);    ( l. K% p9 K9 I0 ?% Q
  -> null   
- @  g1 q) G$ h/ @; ]4 s" Y8 L/ a9 o
  J3 c2 H: `$ l9 Ppow(x,y)    2 Z% A; b( }* ?  r
power(x,y)    0 k) ]; C3 n  V$ G  g9 X
 返回值x的y次幂  
2 \* ]8 o6 b6 qmysql> select pow(2,2);   
. D) \  ~+ F% {0 t) K$ a; h  -> 4.000000   
5 P, _) [6 i+ p3 a: s& hmysql> select pow(2,-2);   
7 A' Y8 H, S5 P! w  -> 0.250000  0 i; n9 N' s$ s' L* g6 ?- F

$ K& u2 }* Q* k- P- `7 [3 Esqrt(n)  , g' w/ g  z3 N$ @4 `6 n
 返回非负数n的平方根  
9 I* b$ J5 E3 W9 a# zmysql> select sqrt(4);    # `* v# w3 Q, `- Q
  -> 2.000000   
' Q7 d6 w% a1 \# [mysql> select sqrt(20);    7 J- f! ?2 V" k3 e9 W
  -> 4.472136    / c3 |- O1 X5 ^& @* q
- Q' N/ U% X- M) E* @; n
pi()   
1 j1 S5 q% c2 _ 返回圆周率   
1 r6 k3 D% q. f5 m; `& a1 g9 @mysql> select pi();   
0 L3 {* {; h+ i. b# T# Q$ H+ P/ s( P  -> 3.141593    $ S1 k7 z# D2 ?- M1 q1 w- C! n

5 O1 p/ M& H& V9 f' g  ncos(n)  1 r' p5 O% Z& A& r# A: d- f' }
 返回n的余弦值  5 |) q/ f/ A' t9 c
mysql> select cos(pi());  ' P/ _1 H5 [: F9 v3 a
  -> -1.000000    8 e7 l* E' f: M3 U  {8 l9 P/ f
- u; S3 r- G1 h2 t8 D5 x
sin(n)  ! k5 r- ?5 S% Z- J$ q
 返回n的正弦值   5 d9 O  H9 w, A2 T* i
mysql> select sin(pi());    7 F! x  @8 a4 t9 v4 M0 w( E
  -> 0.000000   
- Y  I3 D8 O- w8 U$ e5 X1 m 1 z8 |: _. j# O% X5 r$ ~) d( a
tan(n)  ' S, j' O& K- f9 ?: Z# g
返回n的正切值  ( ?9 m! l. b2 u; M4 ?. _
mysql> select tan(pi()+1);   
9 A* e3 ^2 O5 i6 r6 {7 m  -> 1.557408    1 \; e2 P- W" R( \" S8 n3 f; L

$ W8 ]& ^2 X8 a( s+ a- N! _! ~acos(n)  
/ m  s" H& w3 H6 K! T. P 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  0 u' K9 z. I' S. D3 K5 s
mysql> select acos(1);   
# X- ^# h" @" R0 c& e  -> 0.000000   
3 P. C& _; Q2 B& rmysql> select acos(1.0001);   
" }) I+ G+ n) n- M& [; U: y  -> null    & U& r' H  L, f
mysql> select acos(0);   
, \8 T. n* }2 t8 w$ q  -> 1.570796    : c% c0 s+ y# U7 q
$ a  y+ C; i; D: j9 h7 U. X
asin(n)  
8 ~" c) _$ i) [1 c$ d返回n反正弦值  
0 J  S( F) f/ b, q$ B6 vmysql> select asin(0.2);    0 K2 p  P) N* I2 ^( v  ]3 H' q
  -> 0.201358   
" |: a( r5 w6 C' }mysql> select asin('foo');   
$ G- }4 H& n9 w4 S0 }5 L  -> 0.000000    & j' t0 Y: |1 c
9 ]$ J$ z) V/ g4 X" @
atan(n)  8 S# z5 g7 h/ ], L0 X& A7 T1 u5 P
返回n的反正切值  
& s: x$ g4 R* O! fmysql> select atan(2);    9 W  {& d+ D- m( j$ L4 F
  -> 1.107149   
+ Z% q6 x6 d1 u6 L0 X6 mmysql> select atan(-2);   
2 {! [; x0 K* x  -> -1.107149    # q! J0 R0 R  u' z; b, T2 B) K
atan2(x,y)    ( R$ a0 V, o! Q
 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  
/ c) d" ?' p0 ~7 @' F- Dmysql> select atan(-2,2);    5 H# r. d4 v5 _( P0 ^
  -> -0.785398   
- t, v! l* z) a; Emysql> select atan(pi(),0);      `. r7 i' w% y$ x5 J# N
  -> 1.570796   
9 E, E8 ~2 E9 h6 x   l" n+ e- c8 h$ M: {
cot(n)  / }9 g: b: y1 m- j6 r/ J, Q
返回x的余切  . F0 I' o! M( e/ _
mysql> select cot(12);   
: H9 g1 ]( ?7 [) b  -> -1.57267341   
$ Z2 ~5 p  A4 n* n$ t: `, Z* Ymysql> select cot(0);   
, |/ }7 Q  J/ c6 g/ Y  -> null    ) Z# |+ k% ^1 K: u: p' F  L

& D+ q$ T9 W0 L; t& }# a  U* srand()  
/ O! I; v) s6 |! ~rand(n)    
& P9 D0 m% k8 s" E返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
! [* H( c$ k" W
' ~) a1 V8 R9 |  a7 C$ mmysql> select rand();   
) T" y' Z+ P6 u/ d& \- d0 e  -> 0.5925   
. Z. m# ^' J2 F& K2 bmysql> select rand(20);    $ E6 \/ V9 Q! W+ ], ^9 k8 J
  -> 0.1811   
& ^* p3 G, |6 \9 e  \mysql> select rand(20);   
1 h  p. d7 x$ N- D  t: I  -> 0.1811    - l8 v0 m  Y$ k+ w9 g+ J
mysql> select rand();   
; u6 B8 @8 R  D+ z+ W6 l  -> 0.2079    % Z" t' Z- L) L9 u! M  K4 C
mysql> select rand();    # k, P# P$ g% R; T9 P, O. H
  -> 0.7888   
* I! R& }* y& z2 ]( j
# G; W% |9 N& ~3 R8 v' c6 w/ adegrees(n)  # E% ^2 W5 N* M9 ^( H7 x
把n从弧度变换为角度并返回  6 F; W$ u7 c9 ^. J
mysql> select degrees(pi());   
5 X4 \6 ]) C' k' W4 E; H  -> 180.000000    / U2 t( V0 e; x
# J. |9 H# `7 p6 R# X
radians(n)
& A+ o% \4 F7 u: H9 M# A把n从角度变换为弧度并返回   7 _. Q( M0 u6 X# s4 H$ T% _9 o
mysql> select radians(90);    ; E& x; j9 {1 L5 r
  -> 1.570796   
; q8 k# z. ~6 J% P  `* q: ^5 B
5 a& V, g: R0 i) J3 _/ n9 Wtruncate(n,d)   
; A1 `; G$ A; ?5 Y保留数字n的d位小数并返回  
( h. @) `% e; N) @0 f) @  T) tmysql> select truncate(1.223,1);   
$ g9 a3 [6 \% P8 q* u  h5 W% O/ n  -> 1.2    0 t7 J4 D/ o; {- z4 W# G( B/ }
mysql> select truncate(1.999,1);    & @8 ]0 K( c9 @
  -> 1.9    ' i. p! `7 ?9 C2 B2 w* A
mysql> select truncate(1.999,0);    & ?# V7 w9 ^& E% @+ D9 m. Z
  -> 1    5 V! q" h: |% V' V: o+ E% w% n7 W

) }: h) T; i( c# Y+ |  sleast(x,y,...)   
6 C% [  _1 T2 @- C' t7 H" }返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  , N1 m2 t  V, W3 Q+ x1 f# s+ a1 J
mysql> select least(2,0);   
) D, k# U4 [8 C6 I; j  -> 0    5 z  [; w- J' r9 X- d  z% y
mysql> select least(34.0,3.0,5.0,767.0);   
6 ^; Q- f3 S  v: l0 Z- ~5 g  -> 3.0    % S/ R7 t$ W( Z. m# f# R% l
mysql> select least("b","a","c");   
: l: ~: v) g5 A6 B1 r  -> "a"    ! C' j+ s) _* B! a, B  r

. @; \9 V1 z- Cgreatest(x,y,...)   
: B9 U1 n4 L9 C3 S! Y/ F返回最大值(其余同least())  
3 I) ^. \6 z9 k3 m' c3 Pmysql> select greatest(2,0);    # _' Z; G" ?0 L. v
  -> 2   
! t& \4 E. i. y* g0 R$ y: J' kmysql> select greatest(34.0,3.0,5.0,767.0);   
+ k. V( b( D& t7 ?% Y6 F* d  -> 767.0    5 K7 z& p; L2 R: U: K. ]
mysql> select greatest("b","a","c");   
  u) @2 t& o: `( S. |2 ]& z+ ~$ {  -> "c"     
9 c% _* |# D, i0 e! v5 w- v& J; j: w- L$ _. c
3、时期时间函数 % Q9 n* O6 ?; l' u5 ~
dayofweek(date)   
: R; G) V9 u' A) @* m$ T7 B# I返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  0 \, a& l; B$ W, ~
mysql> select dayofweek('1998-02-03');    ( Y0 f' w! E0 h0 J+ j8 Q" W
  -> 3    2 I  f. I% c/ R

9 N$ j- h% t# W6 H, pweekday(date)   
& p6 E( }% x& b, i& m& O; W返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 4 w# H3 ]& A+ P) ~  O! I
  
2 R/ J6 u5 J9 Q# h" Rmysql> select weekday('1997-10-04 22:23:00');    5 {7 `9 ]2 r" b3 s) S
  -> 5    ! l* K/ V( D0 N+ O9 y* O; v
mysql> select weekday('1997-11-05');    $ V: @  y) n3 c& ?
  -> 2    ! j- r3 I# b: i( w0 t/ `
5 A# H) c- k. I5 g! N+ ^
dayofmonth(date)    : q1 Y0 n$ n$ {2 M% S
返回date是一月中的第几日(在1到31范围内)   
( t( i4 E, ^2 V, \- F0 Y0 Nmysql> select dayofmonth('1998-02-03');    : R1 W1 j5 r" v8 \6 b
  -> 3    8 a& Z: D1 {7 X  f
/ `9 F# v* _; H6 Y/ C
dayofyear(date)   
3 f# m2 p+ ~0 J) j& l7 y( q返回date是一年中的第几日(在1到366范围内)   
+ ^" |4 p6 q1 N8 Dmysql> select dayofyear('1998-02-03');    0 e5 v& `7 s2 Z
  -> 34   
8 t# _: l7 v& O+ ~! `! ~) } 5 W" |& I2 ~$ |  u# q
month(date)    ; Y7 J* T- B; O- E
返回date中的月份数值    : Z2 D0 K) t$ k, v
mysql> select month('1998-02-03');   
9 }7 m( W/ N' S6 s. o) |; l  -> 2    " v, q+ }! i1 _) e# d
$ Z. h, G9 n; G: w$ r, A
dayname(date)   
' F( _$ _* C6 z5 g& a& Y( g2 ^7 v返回date是星期几(按英文名返回)  6 S9 M5 E  N: N
mysql> select dayname("1998-02-05");    9 ~% ^( D" ^1 ~% \; g! j
  -> 'thursday'   
1 Y1 s. U# e1 ~2 ~/ ~ $ _. `* _7 t. `- g2 G
monthname(date)    3 ]* G3 C# Q  t5 p& Y" D
返回date是几月(按英文名返回)  0 m9 H: O5 t% k$ ]1 P7 p- V' P
mysql> select monthname("1998-02-05");   
6 m6 o0 ^2 `3 L; m* ^  -> 'february'   
& m& J5 g/ o) f" R+ B! j% W1 N5 S
% R+ M/ m' A. g0 i2 ]- T- x0 i' iquarter(date)   
; c* e4 U  O; b; w* T* i返回date是一年的第几个季度    ) l+ D8 z+ e+ m, y% r
mysql> select quarter('98-04-01');   
. j! k* J5 c" }! v3 x  -> 2   
# K; N$ `( B% y
, _, q4 L8 F# q/ b; Q: n9 Xweek(date,first)   
6 j5 |! d7 r0 N4 g& X返回date是一年的第几周(first默认值0,first取值1表示周一是. @1 ~- C4 o7 J/ ^+ v- t
周的开始,0从周日开始)  5 }* r$ n7 B/ ^9 ^8 E  S
mysql> select week('1998-02-20');    , S1 c1 N8 X  X% O4 A2 s0 v$ ~
  -> 7    , Z* k$ i# k/ ~( J4 [) F: d
mysql> select week('1998-02-20',0);    4 V( Q9 T, z; k9 g& I. \
  -> 7   
  D! G/ t9 ?/ w% P: gmysql> select week('1998-02-20',1);    & K, r1 L8 j( I( C1 U& C
  -> 8   
. t7 t8 A. f+ x5 |! _. f
4 A" e( w& ~& n) byear(date)   
: S/ d4 [% N  f1 k/ s返回date的年份(范围在1000到9999)    0 w/ b" L9 R! s$ O3 F- f% P9 ?
mysql> select year('98-02-03');    ; y: {* R# h7 g$ q( o
  -> 1998    - Z; p' K/ j+ J  R
; K$ \' I) y/ I
hour(time)    
( Z9 y' ]: H7 G8 M" z返回time的小时数(范围是0到23)   ( g2 J2 i& K" X1 B
mysql> select hour('10:05:03');      m' d9 ^* _. |# n
  -> 10   
$ j3 w5 g+ ^- H0 y8 v
3 v4 Z1 U5 Q5 F7 A6 j: Y% kminute(time)    ; B4 `2 b& c  j; G7 j6 P' K/ h
返回time的分钟数(范围是0到59)    # Y2 C) j" ]' B) F6 k
mysql> select minute('98-02-03 10:05:03');   
* A5 t5 F5 c( \: T  -> 5   
. k, \; a: G' e/ Q. {( Y8 K ( C: t! D7 R+ T
second(time)    ' @5 d  ~! O& x9 u' f: t
返回time的秒数(范围是0到59)   
4 `" S, ^* U" z' l. O. Dmysql> select second('10:05:03');   
8 q+ r3 ?$ |# l# k  -> 3   
7 _+ R4 L2 W+ D% i
+ x! F$ j# n) j. Pperiod_add(p,n)    , b  s# s1 L& t& K$ M7 `
增加n个月到时期p并返回(p的格式yymm或yyyymm)   
3 A/ x$ P3 G, a( I$ _0 i+ \mysql> select period_add(9801,2);    7 u9 ]) L$ N3 `% l9 ]
  -> 199803   
  ]: [* P+ a# s9 p  N& b
8 A# z$ S3 A& c" bperiod_diff(p1,p2)    ' H1 G- Z6 |  a( F0 [
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  
  P  O0 G1 }6 w' s$ Q" Nmysql> select period_diff(9802,199703);   
( k1 T+ A7 S7 l% ^7 U  -> 11   
5 Y3 m" X6 j2 @, m" G : [' r5 L% ~5 b1 V+ c: ^
date_add(date,interval expr type)  9 l/ j6 W, ~3 ]  v( A
date_sub(date,interval expr type)   
1 M6 m# c5 C( C* u, q/ hadddate(date,interval expr type)   
, M8 o# ^( T4 t, V$ T# s# b' Jsubdate(date,interval expr type)  ( k2 i9 P# [. k2 I2 d/ X
对日期时间进行加减法运算  
: Z2 I# d9 w# R9 b1 ](adddate()和subdate()是date_add()和date_sub()的同义词,也( f1 x$ t, i" K% ]; j* w/ Q% C
可以用运算符+和-而不是函数  / V- C! u/ B5 |5 l( U
date是一个datetime或date值,expr对date进行加减法的一个表  K5 {: y( |; E* B
达式字符串type指明表达式expr应该如何被解释  
9 ]. p; r7 n4 ^0 C) E! A' I [type值 含义 期望的expr格式]:  5 F1 g+ ^. a9 I, `  b9 y2 O
 second 秒 seconds   
! r/ Y7 Y' R( O& u  } minute 分钟 minutes    ) L9 u4 ^, e, o3 H
 hour 时间 hours    3 z* U8 m  Y5 F3 p
 day 天 days    " g- B6 W' m% t, m7 s
 month 月 months   
8 L* g3 X) q7 u$ ]3 k. ] year 年 years    * L& E8 K: v5 h% R$ ~; F' Q
 minute_second 分钟和秒 "minutes:seconds"   
, X1 }' k' @4 q7 m0 z' K hour_minute 小时和分钟 "hours:minutes"    7 N- G4 X; d  w3 T1 i& P
 day_hour 天和小时 "days hours"    ! K$ L2 x6 r  o7 P% T0 r
 year_month 年和月 "years-months"    6 |! \* b) V/ Q( K5 n2 X- X, t
 hour_second 小时, 分钟, "hours:minutes:seconds"    $ L- w% `: ?7 C5 `- w
 day_minute 天, 小时, 分钟 "days hours:minutes"    5 }: u. u) @. Y8 k$ \% h, J
 day_second 天, 小时, 分钟, 秒 "days7 A/ o5 o5 L5 [; @# \# D* `
hours:minutes:seconds"
! m, A& d0 L* ~! A, q$ ? expr中允许任何标点做分隔符,如果所有是date值时结果是一个- F- i# w: H/ \6 ~4 x: g
date值,否则结果是一个datetime值)  
5 N1 ^, I, \/ R; `* X* Q* { 如果type关键词不完整,则mysql从右端取值,day_second因为缺
0 G1 M+ B2 C1 H' T; y& n- Y/ Z少小时分钟等于minute_second)  / r& {% B+ y* [7 c8 Z
 如果增加month、year_month或year,天数大于结果月份的最大天9 L. o' R) h, n- F7 x" @& F
数则使用最大天数)    ; x. [+ P! k- A0 n9 z
mysql> select "1997-12-31 23:59:59" + interval 1 second;  - K/ ~+ c0 a1 t0 O6 o% l+ A
6 s* @0 ~' F* b: X9 B0 i! Y
  -> 1998-01-01 00:00:00    . p# Z7 D& u* ^
mysql> select interval 1 day + "1997-12-31";    : D9 k6 `. z2 c+ i$ K& |, s" _( E
  -> 1998-01-01   
' d5 f6 w1 [& ^+ ?mysql> select "1998-01-01" - interval 1 second;   
% i3 O( v  y! V  -> 1997-12-31 23:59:59   
" d+ i! a9 U4 g; |mysql> select date_add("1997-12-31 23:59:59",interval 1
1 L% c: G, o+ l6 a/ d  xsecond);   
3 D. g* `3 q4 C: ]2 K  -> 1998-01-01 00:00:00    ) n8 u6 w: n2 O6 q! @, b  ~
mysql> select date_add("1997-12-31 23:59:59",interval 1
/ s. _. n2 o* l4 [* Aday);   
' e8 z0 P2 X) q% C2 c3 C+ [$ G+ @/ k  -> 1998-01-01 23:59:59    # v3 R: m* C0 \' d+ E, P
mysql> select date_add("1997-12-31 23:59:59",interval& }5 L6 L; S8 Y: H: v# q
"1:1" minute_second);   
8 J: B: g( {  o# G) m* [  -> 1998-01-01 00:01:00    4 G; p: e7 G$ R, y9 i
mysql> select date_sub("1998-01-01 00:00:00",interval "1& y! K* [6 X1 s+ f. z
1:1:1" day_second);    ( d8 H1 r2 y& e% G  @
  -> 1997-12-30 22:58:59   
' Y) \# U' }* b) I, umysql> select date_add("1998-01-01 00:00:00", interval "-14 o  W* [3 z( Z+ u
10" day_hour);  
0 K# p( ?2 n  P' a& \) V  -> 1997-12-30 14:00:00    & w* P/ [9 B4 j! h: e8 N9 @
mysql> select date_sub("1998-01-02", interval 31 day);    ; ]$ {& O: m0 u+ n( x
  -> 1997-12-02   
) R6 ]; H+ p% a8 Y0 J, Hmysql> select extract(year from "1999-07-02");   
# e* L$ g% L8 J% B  -> 1999   
- s: Z" o4 H  f+ K. {8 r3 Fmysql> select extract(year_month from "1999-07-02  Z1 c; `' s( U+ T- b$ h! t
01:02:03");   
  {8 }$ `# R* S1 _: x  -> 199907    ' u3 P: N- q% n2 B/ h" |
mysql> select extract(day_minute from "1999-07-02
. Y9 o7 S" K9 u' s- i+ t$ B$ x! _01:02:03");   
3 W  ?) ]4 ?: L0 z  -> 20102   
* N3 C( ?( {3 u" [; H' k% ]$ U: [
1 Y; }0 ?/ f7 i6 ~to_days(date)    $ S9 M9 G9 d, c( t
返回日期date是西元0年至今多少天(不计算1582年以前)  : T7 Q7 E/ q" l% y7 b. g0 ?
mysql> select to_days(950501);   
; A% O; J6 y! B+ G! X& R8 ^  -> 728779   
% |9 L% X3 @6 Z$ d* Z* u5 X( z- M6 Qmysql> select to_days('1997-10-07');    ' K# D1 d* i& s& ~3 q
  -> 729669   
! K1 ^0 g( ~1 R! M. N, @. Y2 ^
1 p8 g) j2 J* }6 G8 ?& Bfrom_days(n)   
1 y+ B0 E3 g1 _ 给出西元0年至今多少天返回date值(不计算1582年以前)     f7 M9 w3 H' K7 G7 U
mysql> select from_days(729669);   
, Z: r5 O" R- J0 D: z. Q; Y# T) `  -> '1997-10-07'    ! K* E# t# _# D/ O0 x

# k$ ]$ M3 G% g8 mdate_format(date,format)    5 d' I' x/ W, ^) n! M, j4 b) x
 根据format字符串格式化date值  
+ W. d9 J3 N1 `) F3 x (在format字符串中可用标志符:  ( E- X8 }( `! d! y
 %m 月名字(january……december)   
9 k; s" p2 g3 M) _: [+ g, C4 s %w 星期名字(sunday……saturday)   
" o6 w) P# [" E% M9 \5 U# R %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    ! E4 j; S7 u1 h9 N% Y0 ^) Z
 %y 年, 数字, 4 位    4 w5 i* }, v( `- T0 c
 %y 年, 数字, 2 位    / c; l  d- ]7 k" L2 h; @" a4 N3 ~  q
 %a 缩写的星期名字(sun……sat)   
5 t, U) ?# U$ t% p7 s %d 月份中的天数, 数字(00……31)    - g6 n) H2 I; V
 %e 月份中的天数, 数字(0……31)   
5 g. |3 _# k; B! b# L %m 月, 数字(01……12)    & u8 \* b" L3 A
 %c 月, 数字(1……12)    $ x  m" `3 V7 Z, J& ^
 %b 缩写的月份名字(jan……dec)    # j$ n% a' Q% L9 j9 O; m0 t# s
 %j 一年中的天数(001……366)   
  F5 b+ q' \# o/ s %h 小时(00……23)   
- {* s( m+ Q1 T  U %k 小时(0……23)   
$ Y( m; L4 b3 T5 L %h 小时(01……12)    ( z( h; H. g) n$ P! O: [
 %i 小时(01……12)    # |$ ^3 _% W* o. Y3 G) Q
 %l 小时(1……12)    , ]6 U, P; N+ E+ g
 %i 分钟, 数字(00……59)    + V. s7 k  b0 f: x
 %r 时间,12 小时(hh:mm:ss [ap]m)   
! M2 ?$ l  }% [9 h %t 时间,24 小时(hh:mm:ss)   
# Q' U/ B" h: b8 C %s 秒(00……59)    . C' v. u0 P, R- D3 [3 B
 %s 秒(00……59)    8 x8 k" o% S/ u
 %p am或pm    2 z# `8 |% r8 I
 %w 一个星期中的天数(0=sunday ……6=saturday )   
6 I! M1 y1 ~" T4 P) N' i6 V %u 星期(0……52), 这里星期天是星期的第一天    $ n. w7 p- H$ F! e/ }- W) D
 %u 星期(0……52), 这里星期一是星期的第一天    & A* e& X3 ]2 _. _
 %% 字符% )  3 ^$ C; w: z# o) Y
mysql> select date_format('1997-10-04 22:23:00','%w %m %
( A- m( C" D/ C; L1 ny');    2 O; _( s7 H+ O
  -> 'saturday october 1997'   
9 y8 ~/ {: _5 Q% [/ amysql> select date_format('1997-10-04 22:23:00','%h:%i:%
* K7 S; a6 e7 Qs');    ! z8 M; ^, {$ {& w! S( }4 j8 N+ h
  -> '22:23:00'   
2 ~0 z6 Q& v7 ~2 q: xmysql> select date_format('1997-10-04 22:23:00','%d %y %a
5 b1 Y: t4 R5 _+ V' V/ p%d %m %b %j');   
9 Z# `2 ?) B+ Q6 p) I  -> '4th 97 sat 04 10 oct 277'   
! R% @3 x/ B7 f5 ?/ w+ E& Vmysql> select date_format('1997-10-04 22:23:00','%h %k %i3 r. l" ~& D6 C) w/ e
%r %t %s %w');   
  [' |$ m$ B4 o* H# |+ C  -> '22 22 10 10:23:00 pm 22:23:00 00 6'    % S% O' W- F6 ~
0 P) R+ j: e% m3 A# Q5 U/ y
time_format(time,format)  
( e* ?9 X5 _+ k) U7 K/ c0 h& A% V 和date_format()类似,但time_format只处理小时、分钟和秒(其! c8 k+ E. c/ l) q6 J. P+ g
余符号产生一个null值或0)  
! U. V2 F" Z; _' O2 {% u6 N2 x6 a7 E # A! _' C1 x) R+ o
curdate()     
6 \, \- U, t, o5 i9 ~; xcurrent_date()  
  b/ ?! H& ?5 I2 K* ?: O7 i 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所- H4 H" O/ n: a6 v/ A. }
处上下文是字符串或数字)    3 V' U& ~5 g9 A2 _4 ?
mysql> select curdate();    ' f. Q. m4 T( J; c
  -> '1997-12-15'    5 A4 S0 `( @2 M6 x  I5 i* A
mysql> select curdate() + 0;   
9 s4 C4 E$ Y7 i+ C  -> 19971215   
$ d" x4 P! O( t1 I. _3 ~
: o. N1 t; _3 F2 ]. y# M- Ycurtime()    : U) d; l( x/ s7 i" T
current_time()  
* E+ {5 ]( A: W  Q; D- d- [ 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
# g, B% n% p2 x. ]- C下文是字符串或数字)      9 [. Z; a" s" G1 V, ~
mysql> select curtime();   
; i( f2 D. i$ q  s* x7 `  -> '23:50:26'   
1 E: ~; V1 E- `mysql> select curtime() + 0;   
9 ~% z4 N# x0 @' C  -> 235026    & [* N6 f* b5 r2 O+ a, N
9 w. P+ s, z/ H' N5 p
now()    - I& R* t1 V: `! t7 u% q" N* ?
sysdate()    7 ^: d: g7 _8 ^" r0 F1 K+ V
current_timestamp()  + S! S5 R/ V1 H4 H, V- |" h
 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期" O  h  `- Q4 P. W' a% S
时间(根据返回值所处上下文是字符串或数字)     
2 M1 u! K+ H% n7 S1 g. L$ Nmysql> select now();   
0 c$ q1 K# J1 A  -> '1997-12-15 23:50:26'    ) n& v* H6 o; O& w4 e
mysql> select now() + 0;   
# D' T8 [8 S$ Z: n( k$ @" a9 c* J- \  -> 19971215235026   
5 h% z5 J  \2 [) N ; \5 [7 r6 D- y6 B
unix_timestamp()    / X  y) y7 i2 c% o8 g: Z3 t9 s) R+ P/ d
unix_timestamp(date)    & B8 o9 u) N1 o1 H  s8 F5 O0 @
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
' E6 \1 v- P4 L8 l3 v6 x数,date默认值为当前时间)  
/ C/ m1 @8 J4 t9 S+ c9 ^mysql> select unix_timestamp();   
, Z1 v) t7 ?* Y" x$ z" P) D; e  -> 882226357   
  ~. l  I- I6 r& M3 ~mysql> select unix_timestamp('1997-10-04 22:23:00');   
  C' M0 N0 f5 u7 g1 B  -> 875996580    5 X: O9 o5 U2 Y2 ?4 a

7 a) W+ S9 n/ k$ X' Y; t6 H1 Afrom_unixtime(unix_timestamp)    1 j' F; h  p! f  g
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的
5 J+ i  a6 ]1 p, }  P5 S值(根据返回值所处上下文是字符串或数字)     
5 _' V  P- V  H+ Amysql> select from_unixtime(875996580);      o  R& T5 ~/ t
  -> '1997-10-04 22:23:00'   
# e7 J" r* J  ~, I: Cmysql> select from_unixtime(875996580) + 0;    + O: n- H8 ^6 b7 `- e# q
  -> 19971004222300    $ p! g3 F9 {4 c$ {, k. @
! ]9 @' S4 ^2 p! |3 j: A4 `. ?
from_unixtime(unix_timestamp,format)    
& z5 X( h- W1 m$ D以format字符串格式返回时间戳的值  * ~8 M; \% t/ k8 M7 r
mysql> select from_unixtime(unix_timestamp(),'%y %d %m %
! v0 h, T1 R; u& Dh:%i:%s %x');   
& D# p$ L+ e- D* ~+ a  -> '1997 23rd december 03:43:30 x'   
4 u  A' P# |2 m 2 \1 g4 e5 _8 ^
sec_to_time(seconds)   
& b# U1 H* V7 o2 q- I+ M: g以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
7 m5 x- }1 j% M4 N2 y6 Umysql> select sec_to_time(2378);   
' w% D, j& m% c5 ?+ i  -> '00:39:38'    / q: N- G  I( ]0 j4 o0 D% V
mysql> select sec_to_time(2378) + 0;   
1 W' S, E+ I& T' h- h  -> 3938   
+ ^. H4 d9 N' W% d$ M 7 d: D4 @8 d8 g1 f  \2 ]: [7 c
time_to_sec(time)    5 i9 O( g# @) ~: H7 ~7 L
返回time值有多少秒    % Q( X7 ]  U( m5 X
mysql> select time_to_sec('22:23:00');   
! F1 m9 ^" I3 |  -> 80580   
1 t4 s" \+ m: W, z1 b7 f# omysql> select time_to_sec('00:39:38');   
0 g  t. ~; h, l$ _% \" M2 E, q' B  V  -> 2378 ! Y: W* M, v; R  |5 V
7 r, f# n. ]+ T  s0 a# n& i& F
转换函数
( U3 Z) t9 e8 K" E- C( B8 @$ q; p0 Ucast2 ]) j5 n4 z9 _
用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]0 M; S. s1 E2 F  |- }5 ?4 {' q
实例:select cast(a as unsigned) as b from cardserver where order by b desc;1 K# J1 E0 Z2 ?
convert:
+ j) b4 S9 a( r4 y+ P9 }# k用法:convert(字段,数据类型)% K" X+ q) x6 v6 Y
实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

; A" G# u9 s/ |& Z/ f% o
回复

使用道具 举报

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

本版积分规则

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