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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数
$ `' C, @  L' L% [; `0 hascii(str)   5 h( i- t% l8 s3 ]1 D
返回字符串str的第一个字符的ascii值(str是空串时返回0)  
  I8 h8 M* r; i2 {mysql> select ascii('2');  * Y; u  q1 I. Q) \+ \
  -> 50  
- {  x- z8 Y( T  F6 d% Gmysql> select ascii(2);  
! O- i* L) i7 r" ]/ ~3 t5 X  -> 50  * h9 H0 G2 f" H. |5 ^
mysql> select ascii('dete');  
- e, m' J3 H, t% M7 R) N. a  -> 100
% r9 r( G, n9 z1 m# l- s
ord(str)   
- C' r. X2 D% S# T8 e; C- m! H如果字符串str句首是单字节返回与ascii()函数返回的相同值。
/ S8 }+ g) K7 V& D+ [ , i& @- j" b3 E
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  . }4 z# K0 d' F4 `
mysql> select ord('2');    E0 H: _9 j/ c( t
  -> 50  
' Y9 S. z7 N, g2 k9 C* s+ k   
  c2 k" }# N, h! d. o( ^  hconv(n,from_base,to_base)   
! P4 F% A( _0 e3 l! B, v% @对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  $ V; \7 E: b  Q! N6 g$ \
mysql> select conv("a",16,2);  3 h$ S9 S/ Q/ R. O
  -> '1010'
* z0 ]2 D" g! Lmysql> select conv("6e",18,8);  4 ?, p' A- J( j& q! D$ d
  -> '172'
/ q+ E9 u3 \6 X4 n. J) q) mmysql> select conv(-17,10,-18);  
- W7 f" y" f/ g* l. v7 |' {7 B  -> '-h' 5 \8 X! {% [4 _7 i6 K( N$ L9 i4 }
mysql> select conv(10+"10"+'10'+0xa,10,10);  
% o2 K$ `# Q5 E& ?# `/ F1 e9 u  -> '40'
# U, x) p/ v' `/ K8 `0 }   
* x* s3 m7 i9 U# n: V' S1 S; e) f& [bin(n)   " s# R9 F& Q2 J( ?" f: M1 A
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  ! T/ D0 K1 t1 S( x3 z
mysql> select bin(12);  
4 |0 e. V% O2 w: n! G# S3 Y  -> '1100'
: X! M, r( v+ g5 F" ~; I5 E0 Z " {+ p, O0 G" j2 O# E
oct(n)   & ~3 d! Y8 \! i2 Q& H
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  1 _3 ~6 m' C5 _+ g
mysql> select oct(12);  7 |$ N: Y. p* p- j/ }4 _7 [
  -> '14'
( e! H. `  e0 j% y   
9 R8 E+ P, t% Z% \, X& T/ Yhex(n)   
! n# n" N3 g7 C把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  ! N( c, K* `7 h& G
mysql> select hex(255);  + C8 I. i: Y% l9 X4 `7 t
  -> 'ff' # _( W& d& ~$ j: Z" t, @% u) z
   8 t" O3 [% o5 Y+ l
char(n,...)   
3 }3 g6 R' Y! V" K返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   % s; F4 B* F4 P9 R* ^
mysql> select char(77,121,83,81,'76');  ) m- ^) o8 K0 B: b, S
  -> 'mysql' 0 P: M, x& z" n) u
mysql> select char(77,77.3,'77.3');  
- f) N( |+ |1 X% v2 i) T7 m  -> 'mmm'
& b* t: P: ~; B+ G$ x   
- T3 g: o6 Q6 F3 N" a1 H+ vconcat(str1,str2,...)  
( f# z  h% p" O3 }9 {6 O6 n把参数连成一个长字符串并返回(任何参数是null时返回null)  2 d2 N6 G2 P$ e# b  l3 c! Y
mysql> select concat('my', 's', 'ql');  
3 j: z2 _- E( g, P: v# L. I  -> 'mysql'
# M' Q4 k+ u5 D9 T8 ?3 Z  nmysql> select concat('my', null, 'ql');  
+ j! X6 i! R- ?  -> null
  t# a! O: [5 ?- Zmysql> select concat(14.3);  ' ^* Y2 \5 R1 V! _0 V& U# D
  -> '14.3' ; w+ y4 M% g' f3 ~" o
. Q& ^# q; l7 v# K* O  }9 e
length(str)   , _! }$ z1 l' t5 ^" l
octet_length(str)  ( m4 x9 {7 M( V, `) W
char_length(str)  
& i! G6 N& ~5 t0 R3 F5 N$ Dcharacter_length(str)  
4 E/ p; E& a1 U( P! Q! U返回字符串str的长度(对于多字节字符char_length仅计算一次)
5 {) ~! }- j9 E+ z, Umysql> select length('text');  
/ u: C" ^, u3 w3 G  j5 o+ B) W  -> 4    `8 P# n  J. H5 ^$ g$ J
mysql> select octet_length('text');  
! _% H2 s, n' ]  -> 4  ( B7 J& V0 I, q3 }- I  F
0 f! N& {. b4 ]( i4 W
locate(substr,str)   
( C" F% F0 X* p) D8 `8 F3 oposition(substr in str)   : L8 N! @8 \2 U$ j
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
' t7 n9 i/ E  [& ?mysql> select locate('bar', 'foobarbar');  " ^0 f5 n0 y: U9 ~
  -> 4  
9 ]! y  E0 W' {( M; y5 Omysql> select locate('xbar', 'foobar');  
0 N+ M+ q* Q& a" ^  -> 0  
9 \& Q7 w: Q! \+ e& L, H   
4 w) z5 o8 t, L* r7 Zlocate(substr,str,pos)
, [4 [. Q* T7 {. _, Q$ q返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  4 [2 i: E) C# O% |6 [) K
mysql> select locate('bar', 'foobarbar',5);  / b' ]5 W- l+ K5 x
  -> 7  
- Z/ i. M; X7 i+ D7 j
( Z" c1 |2 @, y4 ginstr(str,substr)   # O4 a( r1 M' S$ Q% z* w
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
1 p1 O5 Z/ _% R* j6 }7 i8 A2 m8 \mysql> select instr('foobarbar', 'bar');  4 L/ s& m/ g( s$ w" ~: i
  -> 4  
, x( J5 g" P% `0 D9 bmysql> select instr('xbar', 'foobar');  / r9 c3 \  P5 w5 O) s5 h
  -> 0   4 ?$ w2 S/ ]* `4 b
* ^+ l9 W) U: U
lpad(str,len,padstr)   
! t, b6 V5 X/ Q. d. F8 ^用字符串padstr填补str左端直到字串长度为len并返回  / C' U9 u4 W( P( }) L; V
mysql> select lpad('hi',4,'??');  - C/ i: p. L# U: I: f
  -> '??hi' ; P9 X' i8 `* Y* u' f0 [8 T( V
   
  Q, i+ \# w1 R1 m( N- p$ Frpad(str,len,padstr)   % F3 Y; q, u3 {+ _
用字符串padstr填补str右端直到字串长度为len并返回  5 H$ v- U3 ]& Q- r3 \/ N* O: j
mysql> select rpad('hi',5,'?');  
* y2 ~' ~+ n$ u; f" e. W, L1 _  -> 'hi???' " ?* C2 K* `  M% s/ X' G+ I
0 j( r) h( d5 J, E7 j  x- I* N0 `0 h
left(str,len)   
5 X8 F3 R+ ?& g返回字符串str的左端len个字符  6 J  U$ Z' e7 y
mysql> select left('foobarbar', 5);  + Z8 z8 G1 {& ^$ z, y1 \% |
  -> 'fooba' , c. \8 F9 N; {2 ?# K8 H
- k* [1 }# e/ G7 \
right(str,len)   ' R4 q9 x4 P# Z1 M: h
返回字符串str的右端len个字符   
; Q- [# W8 M. @7 e3 c) [% K4 X/ s* A  kmysql> select right('foobarbar', 4);  
9 x/ m8 S! i7 |& |5 F* o  -> 'rbar'
/ O9 i) }9 Q" N2 ~) e7 {+ T - U9 V& H0 O% w) Z, _. W
substring(str,pos,len)   & h1 Z! x* k& z; S5 Z$ h
substring(str from pos for len)   
: g/ [' x9 ?) f# f" c$ H  Dmid(str,pos,len)   8 L: ~. ], N5 y# f
返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
0 Y9 w1 T, J+ B% v9 H  -> 'ratica' 9 p% D, R2 [* t
6 O: Q3 s6 ^- f* k$ U) G
substring(str,pos)   $ |) _7 j& j) N! R* r. {
substring(str from pos)   % I. M: [3 R% v4 F( o3 O
返回字符串str的位置pos起的一个子串  ) ?! @# u3 f3 M$ _2 L: h0 q) L0 E/ C
mysql> select substring('quadratically',5);  
# B* f7 H5 o% H! B: {2 L  -> 'ratically' ) V5 B; k; Z/ }& g- q: F
mysql> select substring('foobarbar' from 4);  2 {% l+ c5 ~0 l2 s
  -> 'barbar'
" U4 U2 [. s+ V6 n
9 s* }- r9 |/ ]- ?2 k4 j0 Q! ?substring_index(str,delim,count)   8 G( j% [% h6 Q/ }
返回从字符串str的第count个出现的分隔符delim之后的子串2 j2 m( k/ A1 B/ W' C
(count为正数时返回左端,否则返回右端子串)  3 [# ]* H3 P+ V5 S
mysql> select substring_index('www.mysql.com', '.', 2);  
; d* K4 f0 O/ O+ b& ~; ^  -> 'www.mysql' ; C& u/ k5 I: Z/ u1 u: q9 [
mysql> select substring_index('www.mysql.com', '.', -2);  " ?( Q) j, I$ v6 B) P4 }' [, ~
  -> 'mysql.com'
( T1 z. g1 t* ^+ [3 b+ [
9 f# E  R2 n7 v( J5 ^; eltrim(str)   
0 d& S4 E5 s! f  V- i$ v# U返回删除了左空格的字符串str  
4 Z7 Y; @5 `7 s% nmysql> select ltrim('  barbar');  
( ]$ p6 B1 [2 `/ n4 l5 \  -> 'barbar'
8 v8 L2 p+ `# ?
/ u# `4 q- w  F2 F9 _' Qrtrim(str)   9 T. {, e# |4 L6 W8 J
返回删除了右空格的字符串str  
" h, m7 o; N6 A: Emysql> select rtrim('barbar   ');  - v3 n9 m% h* V
  -> 'barbar'
/ _& f- a. V& T5 s4 K5 E+ A
9 S: \- D1 w3 g. Z/ a. Ttrim([[both | leading | trailing] [remstr] from] str)  
; b2 z: d9 Y0 f$ F) p8 r返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
9 B5 s8 P; O, P$ U6 j/ D; g8 wmysql> select trim('  bar   ');  8 n( r. u5 @  c2 b( M2 O; j
  -> 'bar'
) j1 {8 q2 s+ S2 f. Ymysql> select trim(leading 'x' from 'xxxbarxxx');  
2 E: @- \: U1 i1 U# V# U0 Y- o. r  -> 'barxxx' . x! T, k' i; A) ]5 a- D
mysql> select trim(both 'x' from 'xxxbarxxx');  - w1 F9 E/ e4 d0 k( }7 x
  -> 'bar'
- c/ W! u( L; c; U1 C1 kmysql> select trim(trailing 'xyz' from 'barxxyz');  + _8 ?+ D9 V4 C% [# c9 K
  -> 'barx'
$ @5 S8 z6 E, n$ ]  X
+ S, G9 D% b' }' E/ ~9 [8 esoundex(str)   9 J7 |3 K% R& u9 L( v! A
返回str的一个同音字符串(听起来“大致相同”字符串有相同的
- Q& H; [3 v: i5 \! g, e同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  9 F4 z' q( B1 I  \
mysql> select soundex('hello');  
3 Y: U, `& M7 b: o0 p4 ?8 b  -> 'h400' , C  o3 ]3 M$ T; L! d8 l# x
mysql> select soundex('quadratically');  , F0 ?, o1 R! j$ v. S
  -> 'q36324' * e1 |% G# ?: r. _. D2 ]' V
   5 [/ h4 r6 y& ?+ k& H" \
space(n)     e1 v; e( U; C6 M
返回由n个空格字符组成的一个字符串  % u; c3 w8 z% o0 Y6 Y2 r9 [) n
mysql> select space(6);  $ g5 h' ^* {' R) O
  -> '      '
( Y. K$ h) L0 q/ r# ?2 m( B9 a   
+ q0 |3 ?5 i% ^8 t1 [( F( U9 zreplace(str,from_str,to_str)   / V( E. p6 [, i$ F  d
用字符串to_str替换字符串str中的子串from_str并返回  # E* r) |3 Z/ R" `0 r
mysql> select replace('www.mysql.com', 'w', 'ww');  : q8 G3 u$ ~9 c4 `
  -> 'wwwwww.mysql.com'
: _6 W: @1 ?( O
% j/ B: Q) d# v/ Grepeat(str,count)  
/ g; F& j8 Y% J3 M返回由count个字符串str连成的一个字符串(任何参数为null时, [9 {$ L5 q) v% y4 _5 f5 ^- ~$ a
返回null,count<=0时返回一个空字符串)  
9 `& x5 ?0 ]2 p- T% {; xmysql> select repeat('mysql', 3);  : v  U! [0 x2 T2 S. K
  -> 'mysqlmysqlmysql' % J( l# m% B$ K* }8 b( j( @
   
0 c6 v8 B2 Y. q' P" ]% Dreverse(str)   
$ c& P. V7 k+ t. t% T& z颠倒字符串str的字符顺序并返回  
4 w9 Y& i4 d" B+ M4 q9 ~5 Xmysql> select reverse('abc');  
  H. a2 w. A6 l7 f( g  -> 'cba'
7 Q' B. f. N6 e7 A; \6 G& L/ ^ 1 X: S$ f( R& j# d
insert(str,pos,len,newstr)   
# l) O3 J5 x( V* o把字符串str由位置pos起len个字符长的子串替换为字符串1 P& N! N* i+ \1 i; V6 U
newstr并返回  3 M: E; j7 V5 A# m  [
mysql> select insert('quadratic', 3, 4, 'what');  ' `) W: m6 d& L5 H3 y6 I% C
  -> 'quwhattic' + R+ ]" `; F" I6 H0 k0 {

) C& `$ O' E1 X4 [. d& d7 H* Q$ Ielt(n,str1,str2,str3,...)   
( X' u. q! G& c( t! i) E6 i6 z+ C返回第n个字符串(n小于1或大于参数个数返回null)  + N7 \" h8 [/ y. l* ]% o! M
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  
: _% B' D- s5 B/ I' w  -> 'ej' + p; ]" x/ _: _3 B% p' r7 |, o3 |
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  ; s( o) Q+ y% I
  -> 'foo' - k3 o, C5 M0 J9 x- o0 d2 ~! t
( |( H7 L1 V" O5 y6 P
field(str,str1,str2,str3,...)   # Q4 E* e. N9 B; x  ~3 j
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
, K" @: y" `9 Q" U- H3 }$ S* R# ~mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
! M2 H8 B: ]+ u2 ?4 p'foo');  
& {/ R; K' r  o7 s% K/ ^  -> 2  
3 T- `. P8 [3 l) R* g/ pmysql> select field('fo', 'hej', 'ej', 'heja', 'hej',' `: y; K5 Y, ~- u8 d0 q: v% ^/ H
'foo');  & N" x: L* n, x
  -> 0  6 x  ~9 Y) ?. ]- `5 w

$ L7 Y0 @0 ?( nfind_in_set(str,strlist)   
# I+ }- A" Z3 `8 D9 {5 y4 R/ H# |返回str在字符串集strlist中的序号(任何参数是null则返回( A" Z5 t3 ~7 d' B
null,如果str没找到返回0,参数1包含","时工作异常)  
+ Z% c& @4 R2 H5 u, q( z: B7 X9 {mysql> select find_in_set('b','a,b,c,d');  
. S) q/ ?  t4 h9 G( Y& A$ v  -> 2  
8 Z' ^* V% I8 ]4 T8 R+ Z   
3 Z7 E: X- C# L& Fmake_set(bits,str1,str2,...)  4 j3 q, u( D' ~5 ]! V! k
把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应9 O% S# x% P1 S$ |( B3 F: W$ H
位置的字串选入字串集并返回(null串不添加到结果中)  2 G2 f$ H5 z9 Z" c: {
mysql> select make_set(1,'a','b','c');  & ?" X3 r% I; X; W; V
  -> 'a'
) X9 F# p1 l# y$ S) lmysql> select make_set(1 | 4,'hello','nice','world');  
2 a/ r5 O" a! K! ]' G# R  -> 'hello,world' 7 y4 i5 `- B8 I8 C' L; C6 j. e
mysql> select make_set(0,'a','b','c');  / e6 _0 N' N9 t
  -> '' 0 A. g: y' n6 s3 c& l* g0 _
1 P0 W+ w8 [5 `$ q
export_set(bits,on,off,[separator,[number_of_bits]])   
' z: `  z3 ~$ l- b9 I( H按bits排列字符串集,只有当位等于1时插入字串on,否则插入, i# _) @# C+ Y: E/ e" a
off(separator默认值",",number_of_bits参数使用时长度不足补0
' ]2 b3 ~# Y$ ~2 ]! I而过长截断)   ) s- q6 s& t1 s+ g* m7 [. X8 _  J
mysql> select export_set(5,'y','n',',',4)  
$ g; H4 f. i! L  -> y,n,y,n   
  a# ?  q0 w; m+ U( [+ g" D
0 u. K; n* m2 o' Tlcase(str)  ! Q' \( D8 a$ K; p; X
lower(str)   . l. g1 ]2 `; B/ g+ l4 N
返回小写的字符串str  0 t( _# _$ h( T, K; T7 w& Y0 y
mysql> select lcase('quadratically');  $ F4 D  n( h2 }# n) [1 j
  -> 'quadratically'
4 i' t1 p: a& j/ J   ! l( d/ T- V6 ?# b4 ^  P/ @
ucase(str)   7 Y1 U: G+ X7 v
upper(str)   + T# a& L7 c2 W6 N( A' ^/ _
返回大写的字符串str  & T, o+ p2 u; J9 }, y4 l* W2 g" ~! U
mysql> select ucase('quadratically');  
) H) H8 _. a- v% Z* f: _! l9 H  -> 'quadratically' 7 q! a6 v. W4 z

( Y+ B6 O) i7 Y4 nload_file(file_name)   
* L" I8 G3 h0 @( l) C1 j5 {读入文件并且作为一个字符串返回文件内容(文件无法找到,路径* m* e2 U* I. ~* [8 q
不完整,没有权限,长度大于max_allowed_packet会返回null)  
; |% |$ i3 h4 _mysql> update table_name set blob_column=load_file+ v0 y; E2 C2 b8 b; B
("/tmp/picture") where id=1;  
- B0 K$ y& q% R! g0 t. I, e / v& I( ^; I5 z) n) I; `4 Q
2、数学函数
( L$ W4 X. N8 [$ b6 W1 C& habs(n) , {$ R& R. V% L  C
返回n的绝对值  + o. O' q# g0 ~
mysql> select abs(2);   
9 S2 W3 A8 _8 C! r3 y  K: O, F  -> 2    ' I& ]) b5 p, Q% c# x
mysql> select abs(-32);    ' Y, f  O4 ~. n3 k5 Z. c
  -> 32   
0 q( M/ }9 n  g& K   / y4 F3 Y* \$ g; H" r! ]
sign(n)  : q6 |1 o/ c1 m) P5 T, T# r8 ^
返回参数的符号(为-1、0或1)  8 y6 x! y4 w$ \( w+ W7 D
mysql> select sign(-32);    - ~4 H9 w' B! ?7 o3 n- P
  -> -1    & Z& D  Y# {( ^3 z
mysql> select sign(0);      w! x* E/ `' b" ^3 h2 m; X& f- Q0 }
  -> 0   
$ x1 [+ b% J1 O, V& emysql> select sign(234);   
: d- Y" U$ t& @' q" P) y  -> 1    ' y9 w/ @0 w- q* v  m# k' I# O

& _& N/ G9 ?: z& |5 Pmod(n,m)   
0 N1 K# J% o0 t/ w; H* j  F9 E取模运算,返回n被m除的余数(同%操作符)    / l5 Y& q: g, z# M- I8 s$ J
mysql> select mod(234, 10);   
6 ?& c( I! s9 w4 t  -> 4   
. d* w5 O! k8 R  p% V4 Mmysql> select 234 % 10;    0 @: ^) s( H% I0 j1 k
  -> 4   
  d. g' u8 g# j0 J7 |mysql> select mod(29,9);    + C8 e1 L& w8 `) X" y  p
  -> 2    8 p1 X. A/ v7 n) m, W
6 ~6 q4 V$ z) ?, E8 [5 {
floor(n)  , ]0 i% O8 F2 m: h
返回不大于n的最大整数值  4 v; e7 D3 }8 A& b% H" a
mysql> select floor(1.23);   
" r# b* l$ [' {1 O  -> 1    ) P2 f/ g6 t2 J* G; `$ `
mysql> select floor(-1.23);   
8 U4 }" k  L6 X$ J: Z  -> -2    * R' O& I+ x( p/ n" I  B/ w+ Q5 W
. M2 B9 |+ F* M% _+ T
ceiling(n)  : ^  U2 d# J% Z0 n' |' h
返回不小于n的最小整数值  
9 h* Z* U$ ?2 P6 |/ o4 ?' j: ?mysql> select ceiling(1.23);    , A4 e& _! Y% T4 z$ m! F  k3 a
  -> 2   
: [2 H; z7 g" C0 K: Q5 nmysql> select ceiling(-1.23);    " i# M) X: H( J6 V6 c$ }0 w
  -> -1   
0 A, Y/ M% G' m/ P # M: G7 Z9 P- T
round(n,d)  
% F! ?# O5 }; D5 U* s返回n的四舍五入值,保留d位小数(d的默认值为0)  * X: F$ w; m5 b5 \
mysql> select round(-1.23);    6 }: ]8 ]5 l$ a1 f
  -> -1   
3 C3 h6 H- p3 [mysql> select round(-1.58);    + g3 E, G1 f2 X. }* w1 G- }
  -> -2    9 Q, A" H- v; q( M$ L2 d
mysql> select round(1.58);    3 T: R4 p9 a$ G1 L$ n% ~
  -> 2   
6 ~) C. h3 \+ _+ p% y3 ~# vmysql> select round(1.298, 1);   
3 U- Z3 {! x! r+ J8 s7 {! R. I  -> 1.3   
) M' O& q. C2 R( v/ Z7 B4 dmysql> select round(1.298, 0);    7 p5 A3 S: m, A8 y1 v7 L. n
  -> 1   
; J  S+ ]( O6 P ) Z+ `* w2 ~  ~
exp(n)  # D" S! m) C4 B7 V5 [
返回值e的n次方(自然对数的底)  
. Q# r9 @, R  D- \mysql> select exp(2);    ) v" w8 q9 j7 U- p, k  w; s
  -> 7.389056   
$ {) J/ O8 w; |9 Y# D; F3 N% W5 ?mysql> select exp(-2);    . z. L& W4 A' K# V# V8 q/ L
  -> 0.135335   
% I1 p: ~4 N, f4 K( P) @8 d( D
" j! h" N' v4 E5 t! plog(n)  
# a9 Q5 q1 p# j' K& I1 b2 u3 j返回n的自然对数  ! p1 b+ S2 S5 b' t5 p* \+ T
mysql> select log(2);    % q) B1 Y( @' _
  -> 0.693147    ; W* w1 n3 U  y% z0 U, R1 f, E" h* X9 f# ~
mysql> select log(-2);   
  ~% Z& o% \& b6 h7 m) v% O0 O- S  -> null   
8 n2 }0 u% P! z. h: v! t/ U- D# C - z0 Q! P0 h4 h% h& A# u$ @
log10(n)  & C- ?/ h" _4 U/ |' H( a
返回n以10为底的对数  
- s5 E$ R+ s/ smysql> select log10(2);   
, ]' f( N( N2 Y# W  -> 0.301030    9 g& l0 h1 b( u1 @% j" |9 J
mysql> select log10(100);   
' x4 L8 `  S4 n6 I+ C  -> 2.000000    / i# }5 t2 b, z% h' P
mysql> select log10(-100);    9 v2 _% W3 Z( ^" ]: Q
  -> null   
4 a! S; A" T; r# k1 a( A 0 V# `& A- }' X2 F: c/ P3 E
pow(x,y)   
' g+ T* k) X1 L+ `8 I  C' B5 o8 |5 vpower(x,y)    5 ]. w/ g+ r, H% a
 返回值x的y次幂  7 p: @( c5 s: b* I' t! k
mysql> select pow(2,2);   
: G) |# g2 D+ ]) t( d: z- A  D- `  -> 4.000000   
( f6 C7 `& x; j& i. z8 S9 ~mysql> select pow(2,-2);    ! t$ L# U' q( a& x3 W9 q
  -> 0.250000  : ]3 k1 f* J" R/ v1 I1 o2 p

" d( S$ l3 ]) g  q8 t: \sqrt(n)  
0 C  ~7 b5 c* n$ ?! Q) ~. f 返回非负数n的平方根  9 m$ W& w+ p+ L) F0 B
mysql> select sqrt(4);    ' U4 |. f9 r; z4 c9 J- S9 E
  -> 2.000000   
# L) r1 g; C3 ?; B' i/ amysql> select sqrt(20);   
1 f6 \& X( R+ F2 q" ]5 d1 x  -> 4.472136    : Q9 r2 H; D) A+ \

* d6 w+ Q, h$ d6 Api()    $ v+ ]2 y8 T7 g! X1 a2 q6 \
 返回圆周率   9 L- Q' ~2 V5 \7 n
mysql> select pi();    2 d* E* \, g1 y; m& z6 @
  -> 3.141593    " U, ~* \6 }  J& K# s5 m) U2 w' S
! V* c1 Z/ l2 t9 j! b
cos(n)  9 x2 M7 Q/ {8 @* p  c) x" B) i  G
 返回n的余弦值  
5 s0 T3 b5 M0 g( D9 xmysql> select cos(pi());  
! s! l  F0 |( }; z6 K' T4 m6 s- ?! }  -> -1.000000   
2 k% S2 _+ }0 z/ p, K5 F/ Z  S 1 J; |9 s5 B# J8 W9 V
sin(n)  ( W. n7 l' E; G2 F0 K$ P& o0 a' @
 返回n的正弦值   
+ l# i/ ?0 S' ]1 I3 E. vmysql> select sin(pi());    ; ~2 g1 E6 G$ P1 o; T
  -> 0.000000    ( c! E8 E1 E- O2 `; B: O

3 B3 g. a4 S8 E6 s4 G. |) dtan(n)  2 g, {1 v5 [# @1 i1 @
返回n的正切值  ( ^9 X8 ^! L' f; Z& Q7 O
mysql> select tan(pi()+1);    ! k' W/ a" u; e0 g6 `% n
  -> 1.557408    2 _/ ^% P- d+ V- D: W- |+ l9 S
- |, C8 o( V. o! [. b! K
acos(n)  
4 @& H/ r) ]4 [& p" l( A 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  
& }2 M, Y1 _2 d! j' L  a3 X  imysql> select acos(1);   
& k  Q! }( o1 H- Z% \  -> 0.000000    7 u9 H7 d: D" t# o9 \- g; n
mysql> select acos(1.0001);    - t# y, [: c. D% z$ l5 j
  -> null    / f4 R" h& R) t( v
mysql> select acos(0);   
9 n4 ~) H0 J" p+ O  -> 1.570796   
  g* B' p) T& p% L
* ~4 J! S) u/ Q  ?0 `0 `4 Lasin(n)  
+ s+ E3 S4 S0 l; A返回n反正弦值  
& Z' e; h- i* p" K" |5 @1 ^- E- V* Gmysql> select asin(0.2);   
4 K6 i( i( @. W; s; x4 m. z+ r( L  -> 0.201358    ( a4 S& F4 |* Q* T
mysql> select asin('foo');   
* C6 G; Q  z& {4 R  -> 0.000000    2 n9 D! J' M, J+ n( Q8 ?

- c1 z. o: v" N- L" X, ]' K: Xatan(n)  # T% J4 c) T1 ?
返回n的反正切值  , i6 ^0 T" }+ j
mysql> select atan(2);   
: U+ C, W. @0 A' L) }! @  -> 1.107149   
: i9 U' {9 e, W* g) Fmysql> select atan(-2);    / e. F" p% ]% m' _& c
  -> -1.107149    & i- D* C) ?/ d$ C* ?- _
atan2(x,y)   
" ]; a1 w; H8 E/ l) H: w$ T$ J 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  8 n1 q) B+ n& r2 Z% p
mysql> select atan(-2,2);    ; O, `: v% n" |3 E7 }
  -> -0.785398    ; B+ }. g& S; I6 U0 o4 o2 Z& Z& Q
mysql> select atan(pi(),0);   
0 p" j9 g. }, {  -> 1.570796    , z3 u4 Q7 C; p# X, U( N
3 u0 A% _9 k) l& y0 G) r+ T! R
cot(n)  ; ^# R- K) F9 p4 O' v
返回x的余切  4 E& C. p6 n+ q$ p5 W7 z
mysql> select cot(12);   
2 ~; ]$ i' v5 |# D% P( [0 s* f  -> -1.57267341   
; x$ V1 ]; M- X% U. smysql> select cot(0);   
* R3 a7 {  d4 j0 p/ M  -> null    * o! _: c7 k  F7 e! r0 b

. Y& O5 f* b0 V3 w6 Rrand()  
. l4 F( M' R4 n; g% p( s$ S* jrand(n)    ! F8 l8 S* u# ?3 G" ?
返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值) & p! r7 r4 B7 S2 |- m  p

, c' b" H3 m0 F- gmysql> select rand();   
, h# u/ i8 {  l: E; s; d; d  -> 0.5925    2 f! R% A+ P! i1 a1 N
mysql> select rand(20);    ' u' g. h- t$ a. Z/ y; i5 O
  -> 0.1811    ; p1 V" d  c* F" _8 U1 L8 b$ Y
mysql> select rand(20);   
7 W& o) |3 c$ n8 R  e4 g7 b  -> 0.1811   
$ ?& ]. _& V4 Lmysql> select rand();   
+ q/ ~5 k' ^$ ~  -> 0.2079    1 t' |0 y8 }6 ~0 t% z
mysql> select rand();    " q* J& k/ x2 O( e1 p
  -> 0.7888    ( H( T( [7 O8 Z+ H- W

: G0 ^9 C: A& d- J* rdegrees(n)  
7 E6 A% ^4 N& ?0 Q把n从弧度变换为角度并返回  2 ]; f9 L" n4 m8 _8 M( T
mysql> select degrees(pi());   
, ]% ^! V, \# v" |6 _  -> 180.000000   
3 I; T7 B( c  w; u: s1 N : `! z  R3 j' ^" `7 c* L
radians(n)
0 _0 X- O5 j0 H' A  z% q把n从角度变换为弧度并返回   
0 q( B7 x3 Y7 y: q3 e3 Z1 Imysql> select radians(90);   
$ d& H  A0 v/ A% R  -> 1.570796   
6 t' H2 [2 Z' l2 V9 I: l7 P
$ A6 ^9 D# H- F: ~truncate(n,d)   
; O2 @+ I2 V* X6 v3 C5 A7 v# n9 D保留数字n的d位小数并返回  + G# R& |7 R8 b6 H+ G% Y4 E/ R& r
mysql> select truncate(1.223,1);   
0 J2 ?0 }' ~* Z6 }, P8 ^5 l+ @# E  -> 1.2   
- q8 O! Y1 N. v' M$ O6 jmysql> select truncate(1.999,1);   
) D+ S* n) ~; b8 R1 R5 f5 J  -> 1.9   
! T+ B4 p# L+ D9 ]- fmysql> select truncate(1.999,0);   
6 z7 h& n; ^3 V  -> 1   
2 ^* D9 J/ u2 [ * N6 Q+ {2 Z8 g8 z
least(x,y,...)    : I0 ]1 E9 R3 Z2 J+ o
返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  - `* J" i8 \, T+ `( S
mysql> select least(2,0);      H1 h. `  E6 c0 h. }. c, t
  -> 0   
( t* T4 t/ ~. Kmysql> select least(34.0,3.0,5.0,767.0);    # |* ]6 \! @; Y$ u  ]
  -> 3.0    * N9 c' y! n& u  J
mysql> select least("b","a","c");    ; l; ]9 z8 S  N' q: \" ]6 X
  -> "a"   
0 n* d9 ~* \: w: F& f/ ~% x " G" v6 k) W3 [5 r' r
greatest(x,y,...)   
6 K" q& J+ g) o; A4 G- U返回最大值(其余同least())  
2 F8 a1 Q5 P, P/ d# g+ ^" nmysql> select greatest(2,0);   
' F6 }, M5 o& l  -> 2   
! ?. n) [* m: M( e1 l* Cmysql> select greatest(34.0,3.0,5.0,767.0);    2 s* j2 I1 Y1 P4 R; H. U
  -> 767.0    3 `9 r. y! O- ?- \: Q
mysql> select greatest("b","a","c");    9 O9 L) g3 |0 i9 k
  -> "c"     
: A$ |: P2 _* w2 |4 Z$ o
5 P; S9 P% b* _6 }# ]' k3、时期时间函数
: _* {% r6 {) \2 f, C% X" Jdayofweek(date)   
: R! T& ^3 y& ^# c返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  ; U9 k: X) a- y4 \
mysql> select dayofweek('1998-02-03');   
+ }7 N) R$ w0 U, y$ g  -> 3      f& a( I; J( I" [8 \+ C
" N( x# \& f2 L/ [
weekday(date)    # \/ g' i! I+ L+ A- |7 ~  {7 y
返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
" |& Q  S9 f, f% ^8 y( [  
& ]* ~# R8 e! D$ kmysql> select weekday('1997-10-04 22:23:00');    + i# j* m6 S% d
  -> 5   
$ b( L, P8 S& v9 qmysql> select weekday('1997-11-05');   
8 m% j2 \+ U# w6 Q! H  -> 2    7 v. M5 B  H7 l0 r1 Q
4 t* p; d  h  R6 B% o
dayofmonth(date)    
: W! F0 P8 R% F. n返回date是一月中的第几日(在1到31范围内)    8 \+ |8 `& X& }; y' O7 g
mysql> select dayofmonth('1998-02-03');   
2 P; k( x( k8 D5 m: X4 J  -> 3    ! D" B% X9 U1 M' L/ S

, M+ ^) c4 P6 G8 Cdayofyear(date)   
* o8 d2 a" T$ S- h$ ]- w返回date是一年中的第几日(在1到366范围内)    ; U; M  |; h# R
mysql> select dayofyear('1998-02-03');   
) a: m. a* k2 }7 H) z  -> 34   
6 V- [: n7 O. R  _" x3 R" }% U$ s ( z% F0 T9 i" a# t
month(date)    . W" `5 Y9 d+ e' K* \! o
返回date中的月份数值    6 g/ v: A. [; y% v
mysql> select month('1998-02-03');   
5 {5 {) i+ z& A* V8 k: ~  -> 2   
8 g4 @& b! ^: b+ h1 C! b ( v6 a% c4 F4 @: v" W
dayname(date)   
! t+ y( G! _9 T; S返回date是星期几(按英文名返回)  
$ @$ P* l1 d" e% c) a- Q. qmysql> select dayname("1998-02-05");    1 R, q5 Y. ?2 Z1 {: E) B
  -> 'thursday'    8 r9 h9 Q" N* b. {

4 t5 S2 }* [# P* S* S4 lmonthname(date)    
6 s, E# D0 I! d. w% @. [返回date是几月(按英文名返回)  
4 Z, u0 ^) N9 @, ?* V% m# bmysql> select monthname("1998-02-05");   
7 `; e% @. B( D6 M  -> 'february'   
% q4 @% r) m$ `0 E0 S7 v ' ?' E) V  B, F! m6 @9 R7 A+ F" T
quarter(date)    9 P* Y! D% F4 j
返回date是一年的第几个季度    8 v* F1 d) S7 N! Q- h; N7 @
mysql> select quarter('98-04-01');      {! i) g- b9 w! H, L* ?
  -> 2   
  \9 I0 K; M; _+ p8 H
& @- x, |  Y1 O6 o9 fweek(date,first)   , H% T! L" w: _" c  L  G
返回date是一年的第几周(first默认值0,first取值1表示周一是
. s% I1 A) }8 J6 d5 C5 `周的开始,0从周日开始)  - q$ g0 @) \$ p/ j
mysql> select week('1998-02-20');   
# u# t+ [3 }9 r! L- D8 j  -> 7   
" z. |+ k" i5 b- K0 ~. bmysql> select week('1998-02-20',0);   
- o$ [5 Q( s9 V% _. ]* t  -> 7   
6 _) q. T7 ^" L5 V9 S4 mmysql> select week('1998-02-20',1);    : U, B! a) r" w, k
  -> 8    * _5 Z) {0 T& S; [

) E* J0 n$ Q6 ^year(date)   
+ |8 Q0 m% K' p3 L% F; A返回date的年份(范围在1000到9999)    5 \: Y, \8 C/ @3 _7 T; |+ [
mysql> select year('98-02-03');   
' Q+ C3 a: l- c9 M  -> 1998    / n9 C9 P8 _5 p% C' {$ _

2 V$ m, T5 J2 y- ~hour(time)    . v6 v5 Q8 R, Q
返回time的小时数(范围是0到23)   
2 O. A! v* I9 m2 G( t" `mysql> select hour('10:05:03');   
! k" Q; ]# N" Z5 U: w, Y  -> 10   
+ P- [9 D; X; _" k+ s5 s& o9 G1 h
4 M4 M: @& N$ q" O$ cminute(time)   
5 n% \8 |9 A! ^) Z返回time的分钟数(范围是0到59)    $ x; T. d8 F$ J6 S, T" P/ i
mysql> select minute('98-02-03 10:05:03');   
. f. x7 H7 D  b* G  n& p  -> 5   
( U3 b1 r9 B9 @/ _) I
) H/ O  E, ^3 ~/ Q3 y& |+ o  h- i5 |second(time)    
& b$ Q; z$ S, w% q3 `. ]$ @" |返回time的秒数(范围是0到59)   
- u0 ~/ g1 n, |4 R) nmysql> select second('10:05:03');   
# a1 k9 m9 _9 k& t/ w  -> 3    6 ^5 Y# t2 ~, {9 @/ Z* l1 |4 m4 H
: _# q% T, k4 e4 }
period_add(p,n)    / o& X9 I! q7 \4 H6 X8 ^2 }# R
增加n个月到时期p并返回(p的格式yymm或yyyymm)    7 E" l6 E9 G- `- ~
mysql> select period_add(9801,2);    ! Y6 k+ K, T3 M& R; V: q- p
  -> 199803    ( |. P+ p2 l4 d: a, b

+ f+ P+ O. R8 b. i/ i1 k2 ~period_diff(p1,p2)   
- {8 t& T& c7 b3 [( P. m0 \* y返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  
  M9 c- O3 u6 p- \. a! l5 O2 ^mysql> select period_diff(9802,199703);    2 b2 d- J# ^$ f* Y& f% m( q
  -> 11   
1 B" i# d5 N% b9 P$ a- J7 }4 _ & i: m( s1 R4 l9 R  ?* P8 ]
date_add(date,interval expr type)  ! ~1 X2 ?7 T5 f& W$ `# K6 t) T
date_sub(date,interval expr type)   
& M7 a) P0 y9 y4 ^adddate(date,interval expr type)    . C, e; h* l# R1 M
subdate(date,interval expr type)  
! d" O" b% P5 B) d对日期时间进行加减法运算  3 ^" l" o# m* C' ], ?
(adddate()和subdate()是date_add()和date_sub()的同义词,也
9 M" o3 m' X, h2 U. e8 ~! R: W可以用运算符+和-而不是函数  , c8 x6 i- z% f! G; W$ n+ X
date是一个datetime或date值,expr对date进行加减法的一个表( J8 K0 v/ f! d8 T' e- o# H
达式字符串type指明表达式expr应该如何被解释  7 z$ g; ]. u1 F3 _
 [type值 含义 期望的expr格式]:  ; ?" t8 a4 V  P' ~) M9 o* _' ?
 second 秒 seconds   
: `4 _+ ^7 Y& \; `7 ^" q' e' ?* Y minute 分钟 minutes   
: N6 \4 p$ P9 b' l. F  U* v hour 时间 hours   
( T/ E6 v0 K: t: Q; I6 N day 天 days    & r1 t# [3 w8 X# P- b
 month 月 months    ' |$ s2 P$ s# u& h& R$ s1 [2 D
 year 年 years    2 k3 r1 t% f: A; M
 minute_second 分钟和秒 "minutes:seconds"    ' I/ w% M( g6 v. f, W
 hour_minute 小时和分钟 "hours:minutes"    * y5 u! L/ p8 V: [
 day_hour 天和小时 "days hours"   
) v+ Z. l9 |& P$ L5 F" T1 {( h year_month 年和月 "years-months"   
. o7 B  m# {& _0 g# w  g0 y hour_second 小时, 分钟, "hours:minutes:seconds"    " W: ?! N8 T& A4 @; e% T0 g
 day_minute 天, 小时, 分钟 "days hours:minutes"    - V0 n; c! R0 ]- L
 day_second 天, 小时, 分钟, 秒 "days
# c& `5 k# N  k) yhours:minutes:seconds" 5 u, D; }9 M% Y7 G& \/ k) M* z
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个4 D% h, @3 b( X0 w
date值,否则结果是一个datetime值)  
( C* X1 {( y9 X1 X 如果type关键词不完整,则mysql从右端取值,day_second因为缺; `) X* s" k, O: J% a3 u
少小时分钟等于minute_second)  8 X; G1 a" C( f' c  f+ Y
 如果增加month、year_month或year,天数大于结果月份的最大天
& h' i/ I! W; C+ ~' H* P  q数则使用最大天数)    , w  p" W% J  A1 X- O
mysql> select "1997-12-31 23:59:59" + interval 1 second;  
8 k- H1 ?8 K, O
* \: [% f. o' Q4 A3 B4 N( C8 t% ^  -> 1998-01-01 00:00:00    # k  y0 a5 b$ i
mysql> select interval 1 day + "1997-12-31";    6 x1 R4 P# x% b6 y2 W. e! j
  -> 1998-01-01    " a' X5 C/ j" F0 X
mysql> select "1998-01-01" - interval 1 second;   
3 l; P) Q3 G/ m7 ?  -> 1997-12-31 23:59:59   
, p5 O3 ^( B& b  B, nmysql> select date_add("1997-12-31 23:59:59",interval 1& a, U1 r' e- J- k- X
second);   
0 d6 ?8 e' K( n5 Y4 [, S  -> 1998-01-01 00:00:00    + h% K0 B, J# {# z2 s9 o( Q
mysql> select date_add("1997-12-31 23:59:59",interval 1
5 [2 k  ^3 W. @* v1 Qday);    % \) d7 w6 m% \% T
  -> 1998-01-01 23:59:59    ( D6 B. ~2 n. E" e# C+ A
mysql> select date_add("1997-12-31 23:59:59",interval) F6 ^/ H2 g+ j5 E: ]- s& Q. ?0 e
"1:1" minute_second);    / j' \- E3 y% F: _* x) Q
  -> 1998-01-01 00:01:00   
$ B- r( I* [) z6 K! m, F: {mysql> select date_sub("1998-01-01 00:00:00",interval "1
4 j/ @! x! N/ g- s8 N1:1:1" day_second);   
$ `" ~1 @9 N- T' F7 P  -> 1997-12-30 22:58:59   
. v0 T( }( v$ x$ u7 V* umysql> select date_add("1998-01-01 00:00:00", interval "-1
  e9 \9 m7 k3 t& K+ `10" day_hour);  5 K3 N0 K" G) z/ `% S+ x
  -> 1997-12-30 14:00:00    3 Q+ R: U- o8 i- n
mysql> select date_sub("1998-01-02", interval 31 day);   
6 `/ T; T9 d2 I* ~$ @! o# B  -> 1997-12-02   
. ~# v, ]- \6 _8 c; Wmysql> select extract(year from "1999-07-02");   
8 P$ X, J/ m( ~; J( s- `- {  -> 1999   
% F1 p, U, D6 D! k" Emysql> select extract(year_month from "1999-07-02
: ^/ z, W4 _/ U0 {* a  Q# W01:02:03");   
5 h! R2 X  ?5 f! b1 G# C! j  -> 199907    + L4 H2 z, a, y
mysql> select extract(day_minute from "1999-07-02
; _. f, F$ d8 B6 Q  L0 c! M2 R01:02:03");    . b6 h8 K; [5 g
  -> 20102   
) D' k3 V& k8 q- E ' m2 Q. U2 W0 u2 u4 d
to_days(date)    ) ~+ u2 \5 b- M# O& h, S5 w, g. Q* x
返回日期date是西元0年至今多少天(不计算1582年以前)  * V, m$ S# x% Q. o. J2 @" D
mysql> select to_days(950501);   
( N0 r) ^! L- X. v% U  -> 728779    * Y/ I, r* o0 W: l% K: Q. x1 x1 D* \
mysql> select to_days('1997-10-07');    ; J% w/ @9 @: Q
  -> 729669   
2 V7 u! g# X7 M/ ]" d) h / B# u* A4 N( {" f* {9 K+ B" b
from_days(n)   
8 f/ s$ o/ @- [( w8 H 给出西元0年至今多少天返回date值(不计算1582年以前)   ! W" a$ N* Z6 x$ c  y5 P* L* \# p
mysql> select from_days(729669);   
8 l# F8 D5 d4 Q7 C  -> '1997-10-07'    " l: l: f. Q4 |2 K
! \% Z( J. e3 p: ~, |
date_format(date,format)    ; o3 h6 [' G8 S# G
 根据format字符串格式化date值  9 ]$ }0 p7 y# X; U& b8 d
 (在format字符串中可用标志符:  
4 a( p" V7 F7 N %m 月名字(january……december)   
0 L6 Y% Y# M: @2 Y  `3 C %w 星期名字(sunday……saturday)    : {3 o" T& i1 Z3 G9 ?& c: b- J& D, q
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)   
7 a" O' |: Y# J$ t %y 年, 数字, 4 位   
$ b& U% y% V( M0 b3 v& W %y 年, 数字, 2 位    % l4 \9 s6 Q0 R$ d3 u9 P! d. G$ s6 A
 %a 缩写的星期名字(sun……sat)   
# D& Z1 g+ \1 p. T %d 月份中的天数, 数字(00……31)    * i/ v. l* }7 X# p  K* `8 r
 %e 月份中的天数, 数字(0……31)    - O# I& k, q  x
 %m 月, 数字(01……12)    , F  J, c+ F# N$ o
 %c 月, 数字(1……12)    # e% a3 J, K- {/ ~/ J5 i
 %b 缩写的月份名字(jan……dec)    4 D1 x4 X) k3 g8 Z
 %j 一年中的天数(001……366)    & Y/ l$ l) i8 {8 D
 %h 小时(00……23)    1 m- U( k0 z8 S, O. m
 %k 小时(0……23)    : c+ Q4 d9 N, ^' Y& _5 Y8 ?7 I1 W
 %h 小时(01……12)    . d. V) Z) ]9 H+ W2 t8 Z
 %i 小时(01……12)   
& Z' H/ @. D2 v1 W7 r( E: l %l 小时(1……12)   
: g: D# f) {1 \- Q* h %i 分钟, 数字(00……59)   
' {# A, a( d' |( g; G8 W. } %r 时间,12 小时(hh:mm:ss [ap]m)    8 o! l4 G" O% F7 s/ y7 N8 e
 %t 时间,24 小时(hh:mm:ss)   
( m1 N' c3 {8 }. d: K; _, F( W %s 秒(00……59)    9 [6 b* H. r3 p( s/ }
 %s 秒(00……59)    ! \" J; c. T& o) w
 %p am或pm   
  g0 Z: I) C# R( E8 Q %w 一个星期中的天数(0=sunday ……6=saturday )    & ~4 c# q0 F4 E8 L; p
 %u 星期(0……52), 这里星期天是星期的第一天    6 Q& V0 F+ M0 q9 t" b
 %u 星期(0……52), 这里星期一是星期的第一天   
; b6 X: g- b: G %% 字符% )  , o" Z6 o& `+ U5 K1 v3 q; q/ R
mysql> select date_format('1997-10-04 22:23:00','%w %m %9 U0 k/ Z7 B3 Q! p' I
y');   
, Q0 s$ l- a$ y5 j  -> 'saturday october 1997'   
/ B3 K; T. ^- \, _8 gmysql> select date_format('1997-10-04 22:23:00','%h:%i:%8 a0 e7 @2 u' f6 o; I
s');    ; x- P0 U/ @* t7 e9 x2 X  d& r( ~
  -> '22:23:00'   
/ y/ f  Z2 h$ d8 {8 gmysql> select date_format('1997-10-04 22:23:00','%d %y %a
1 A$ H( T2 [: L+ ]% w%d %m %b %j');   
7 z. e1 T( i# P+ ]8 m0 r) W/ B  -> '4th 97 sat 04 10 oct 277'   
- `) t- V1 A  m" W; Z( zmysql> select date_format('1997-10-04 22:23:00','%h %k %i  \) X  r% \* g' s; M7 v
%r %t %s %w');      }$ K4 m0 n" o) p/ T. G) v, I
  -> '22 22 10 10:23:00 pm 22:23:00 00 6'   
8 s7 U) O* D2 O! o
" x, j0 N$ [* W4 xtime_format(time,format)  
' R. s) F& o* D! d. h, |$ L) x: W 和date_format()类似,但time_format只处理小时、分钟和秒(其
( _+ {& }6 x+ k/ E# C! S余符号产生一个null值或0)  
" ]/ p, _' q  t * Q; r4 l; {; d: Y, ~6 P( g  S
curdate()     
: {& s! c* I8 X! n+ |5 Xcurrent_date()  
3 N! [# {1 {: V' h1 Z* g. C 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
8 n/ a3 q% S) h( O4 i/ ]6 ?处上下文是字符串或数字)   
0 d4 u& s, `1 C  E/ x, [mysql> select curdate();    : a2 l% K) m, z! y5 q! o
  -> '1997-12-15'   
4 j0 a- ~2 }5 h* U$ Mmysql> select curdate() + 0;   
! o4 I. Z/ x# U* ]  -> 19971215   
# P) Z. ~5 x4 N' M5 y, g5 G$ K. r
/ _# `5 C$ m9 g% ecurtime()   
. U# q. O( E$ `9 _; R1 d) Bcurrent_time()  
7 _( A6 u: ~" Y 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
! ~0 s. V7 a0 ~2 A# x; ~下文是字符串或数字)      3 W2 i. a; q( z' M0 f0 @
mysql> select curtime();   
1 }/ j, p: y# U0 d  -> '23:50:26'    7 O  y# S* K9 K1 G  v
mysql> select curtime() + 0;    ( u, c/ U" W; x; D
  -> 235026      P' n) V+ J0 c. o  O
$ r; x  B1 `: J( F9 p$ d. C9 p
now()    
8 N+ |3 k' u- rsysdate()    , ]3 I1 l; A# k+ Y
current_timestamp()  
2 b* k9 ]4 M3 R. E1 U* M 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
4 n/ W  z  O, M3 W7 J9 ^, ~时间(根据返回值所处上下文是字符串或数字)     
# I- A9 `1 w9 K4 l) H8 A$ C' Ymysql> select now();   
$ N( s; v- m" Z6 o- p  -> '1997-12-15 23:50:26'    - g& B6 ]$ |  |1 g4 V: P; Z
mysql> select now() + 0;    1 P6 p0 D! y) C  B: I& U) r
  -> 19971215235026   
/ }& Z" R. ^) d4 x# ~- y+ t
( S) i2 T6 m# r% E: K& H2 q" bunix_timestamp()    ( z1 }- r1 O$ _8 z! M
unix_timestamp(date)   
5 X5 ?1 B! Y4 g0 m$ k返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒: H' s6 B2 T" _; D/ T, n) i, k
数,date默认值为当前时间)  . p; ]" o, f- R5 J6 }1 T
mysql> select unix_timestamp();    + _2 Y, T; d' H
  -> 882226357   
; Z3 s6 f0 S0 L: fmysql> select unix_timestamp('1997-10-04 22:23:00');   
: }  ~$ G7 y7 }2 ]4 g1 a5 L* T0 z  -> 875996580    0 s1 W$ `2 `3 F$ C# y/ x9 N" C7 l

" t6 P- w7 F# @: Bfrom_unixtime(unix_timestamp)    2 q, t$ I8 K& o$ E4 o4 b+ X2 b
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的3 Z: K/ N$ k& X# N
值(根据返回值所处上下文是字符串或数字)     : `( S" @! s6 p. {9 P" X( R
mysql> select from_unixtime(875996580);      v" I  O9 m3 |- I* u
  -> '1997-10-04 22:23:00'   
/ j) `! Y4 ]4 [9 e, mmysql> select from_unixtime(875996580) + 0;   
$ @, _7 f& Y. e# `, R8 K5 J  -> 19971004222300      z* i- I3 s2 V; d# O& A' u* K, U
# H* ]4 Q) s) `% f, H3 W1 s
from_unixtime(unix_timestamp,format)    ' E6 \5 J& Z2 O
以format字符串格式返回时间戳的值  3 {. j% Y' [- U
mysql> select from_unixtime(unix_timestamp(),'%y %d %m %
2 p$ o  H* B' T+ Kh:%i:%s %x');   
% b0 y3 @9 n# v1 E2 i' U  -> '1997 23rd december 03:43:30 x'   
% h) f' n) F8 \1 ` 2 A4 }8 X; F  L* _% d. e
sec_to_time(seconds)    * [: ^2 B+ S0 U: V3 S, q5 t  g5 _
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     . @7 l5 ]% ?! X* H
mysql> select sec_to_time(2378);    ) n9 j  r5 d  o8 e0 {& t
  -> '00:39:38'   
3 V5 U- T' `" q  H( ~( lmysql> select sec_to_time(2378) + 0;    ! N; G3 E+ p+ y4 m! \* Y
  -> 3938   
6 T: T0 e8 V' O ' F# @& O* Y. V( b2 t! t
time_to_sec(time)    1 G/ K8 V7 A4 {" ~4 Q; a  U
返回time值有多少秒   
* s' M& }" I# jmysql> select time_to_sec('22:23:00');   
  O  a1 D& @% _  -> 80580   
) V4 P$ g: v, r1 s& h: Rmysql> select time_to_sec('00:39:38');    + h; Z$ O' z; z6 D8 V* _
  -> 2378 5 s/ u$ U% R7 u* _# B" ~

$ B9 A5 h, g' L转换函数
( S/ H* e/ d7 P( l8 b5 j) I, n' }cast2 b  T3 v2 |- U
用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]5 ~" |; ~8 t7 ~) z# t- T# X2 D
实例:select cast(a as unsigned) as b from cardserver where order by b desc;
" v5 I( z; g9 _convert:
! ^! S* A+ j0 g4 J2 [" F用法:convert(字段,数据类型)
! P5 V) I7 s9 i# z- }) D* p" g实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

7 f% S6 Q1 W9 C. Q8 m
回复

使用道具 举报

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

本版积分规则

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