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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数
# b" I; `8 ?$ l" U7 fascii(str)   ) W. ?1 W2 {% C, Q" U& Q
返回字符串str的第一个字符的ascii值(str是空串时返回0)  7 ]% C* `# ^$ d) g: H5 U* d! g" I' `
mysql> select ascii('2');  
' \# l! P- @' }4 `1 _' I; N  -> 50  9 B' x  @, Z  z1 ]% u% o
mysql> select ascii(2);  ) r9 S8 |9 G8 C
  -> 50  ' C" A1 b5 p6 ]5 Q# T
mysql> select ascii('dete');  
4 F* H9 M5 ^) g4 v9 T# r, ~  -> 100
) S* h+ ~6 [* Y- m
ord(str)   
+ H$ N2 t1 R( A" T5 |如果字符串str句首是单字节返回与ascii()函数返回的相同值。. d. s$ `1 \5 @4 M4 j+ W" w

4 a0 Z2 j3 d2 ^) i5 K如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  
  a  T) {. {, N$ U' C( w% Mmysql> select ord('2');  % j3 f$ P* u3 q0 y! l6 r
  -> 50  , A" j0 V9 Q7 |( |2 b
   
" ^  M- G5 l9 kconv(n,from_base,to_base)   
7 V6 @* z4 D8 F. \对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
& @# H" K' d4 T4 w$ U0 Mmysql> select conv("a",16,2);  # ]+ Y) D% x8 i: y. ^
  -> '1010' . a6 a4 i- K9 y# U+ H
mysql> select conv("6e",18,8);  
5 W$ |5 R# |% I/ q$ h# c  -> '172'
1 A( b' q( P  S* Tmysql> select conv(-17,10,-18);  
: M3 u3 W4 d8 q  -> '-h' ! L" v" b; r7 f2 y' S9 `: W$ O
mysql> select conv(10+"10"+'10'+0xa,10,10);  ! V5 [7 e+ m' q+ ?' {* a
  -> '40' 6 O5 U- v* _  y1 Y: `
   - D& Q3 N  w/ C& I4 u
bin(n)   " t  `& N5 P6 V* C' n+ P! _
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
& Y! y8 [) E& X0 ]% U0 Imysql> select bin(12);  6 z3 N9 b+ P6 B( R
  -> '1100'
0 G8 m$ N' j) t6 J% n2 T* k
# ^, r+ |3 ^" l) |/ e) {, V' i9 \9 Noct(n)   ; S, f1 J8 v/ I+ I  P
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
3 Z) x3 b" h1 U; Y3 Y( Pmysql> select oct(12);  
! {) z6 P( v8 D' k; H  -> '14' ' N# H2 M- M9 p4 d: E4 Z- y
   
, j6 ~1 n* k1 ]+ @- L! P, G9 ^hex(n)   ; L' r2 V; |/ @- Z, v: O  L. H; L4 G
把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  9 K1 u- l# U7 d
mysql> select hex(255);  
% {% M; U3 ~( x& n0 r' K  -> 'ff'
3 R# G0 j( Q! l   
6 b) f( V1 x# X) v( c7 c$ o6 m* mchar(n,...)   
; c5 @4 ?4 R" m# t6 D4 |3 R: \返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   9 y7 u. M: O7 `1 P9 }5 `! `5 w  ^) L& a
mysql> select char(77,121,83,81,'76');  
, P$ ]  F: Q5 \0 T$ I  H4 W5 F  -> 'mysql'
+ P$ ]: x9 J$ p  h, gmysql> select char(77,77.3,'77.3');  
+ ^# n* t/ t; |' Q# g/ k4 M  -> 'mmm'
! X5 K/ S; {9 T2 E   
: |* o( _0 ~( |0 `concat(str1,str2,...)   9 `/ L& f& _9 O. H. d+ Z
把参数连成一个长字符串并返回(任何参数是null时返回null)  
9 ^; y. T. d- \" m9 v8 {mysql> select concat('my', 's', 'ql');  
! w4 f2 {3 C7 E+ F' C  -> 'mysql'
* v4 G% I% F: y$ w' lmysql> select concat('my', null, 'ql');  5 P% q6 y9 A3 ?
  -> null
7 \* R4 n# a7 d( p: }) lmysql> select concat(14.3);  
! y, V  _* a. ~& f5 j+ c  -> '14.3'
% E( T% {# ^# E( h) C
' n1 q/ F6 `1 Z( L+ r8 t% C1 Wlength(str)   9 `" B& n$ ~( t4 N4 C
octet_length(str)  
0 c+ ?( [) ~/ |& {; rchar_length(str)  
9 k) z1 F1 P" j( G" D; H2 `) a3 u5 }character_length(str)  3 q( b, V  T- q' d
返回字符串str的长度(对于多字节字符char_length仅计算一次)' @' e# D8 ~5 F4 X/ U( j! a
mysql> select length('text');  
; f8 n( Q4 A* j5 O6 _' ?3 z  -> 4  9 F  N$ @+ }1 l- z1 o- z
mysql> select octet_length('text');  9 K7 b+ K/ r/ S* ]8 B
  -> 4  
: y! i! ]$ {* z& T
; I/ p5 G$ a2 ^2 b: Glocate(substr,str)   
# a# U7 x, X/ B; kposition(substr in str)   
, B9 |. U* R& \; I; }. _1 S2 M返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
: N, h7 R/ k. Amysql> select locate('bar', 'foobarbar');    r2 h: K" V" E6 [5 \
  -> 4  
! ?( ?! M2 ^6 p) Qmysql> select locate('xbar', 'foobar');  + g- G5 b2 X* `( V$ r' U6 E
  -> 0  4 Y) A7 V' B' V6 x# [& d9 _+ `4 b: d! @
   
* {$ t* k# y) q" z9 C3 w) ~3 {* glocate(substr,str,pos)
: R% n+ H, N1 B5 k$ o% g/ P0 X返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  1 e/ M; v9 X- `; c2 P
mysql> select locate('bar', 'foobarbar',5);  
  r, [/ f' Q. B1 j6 I/ s  -> 7  - P0 V* S0 o+ ?+ q; n2 ^9 B" H

8 n- w/ }  |/ r* I$ y( h4 uinstr(str,substr)  
- A3 E. P2 q: t  p* q* c4 I返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  * T3 o$ [( J9 e0 d7 P5 p4 T3 A3 J
mysql> select instr('foobarbar', 'bar');    b1 j$ N: u2 J( b
  -> 4  ; S0 k6 S& S# d
mysql> select instr('xbar', 'foobar');  $ V, E! R- h( V; a2 p! N+ o8 X. a
  -> 0   
' i$ \, c5 L4 i) N: ?4 N # D. l6 V$ C6 r4 K5 }$ N/ ~
lpad(str,len,padstr)   
& S, R* S! {( u. R7 o# T, Y2 i6 ?用字符串padstr填补str左端直到字串长度为len并返回  / S0 b, ~/ ^$ X. g! l. K  Y9 s
mysql> select lpad('hi',4,'??');  
, R2 n% z) S, B6 D  C  -> '??hi' ) ]1 s! W7 [) b4 B4 d
   
, n8 v  u4 M5 B2 b6 J+ Orpad(str,len,padstr)   
% ^6 W' q) B: y# f用字符串padstr填补str右端直到字串长度为len并返回  0 m0 f$ [6 n6 F8 c1 h
mysql> select rpad('hi',5,'?');  
7 h* g( ^0 A3 ]$ D+ h1 U  -> 'hi???' " Q( X( C# ~0 ]: Y# S/ y5 p
# N. g9 ?9 F: C% p
left(str,len)   % O' U2 j" A- X! d+ u+ N! Z4 j: \6 G
返回字符串str的左端len个字符  
" a" l) g  q. @1 J. [, u% cmysql> select left('foobarbar', 5);  + ^! R, ]; @* G6 ]5 u
  -> 'fooba'
( P2 Y$ q$ w8 K( r. o0 a
* o) H# j- {9 ^1 r( Qright(str,len)   
- ^; O* g7 ?! z$ b! k, \5 H返回字符串str的右端len个字符   - Y5 q; t8 U; _1 n2 ~
mysql> select right('foobarbar', 4);  
$ Q7 r. N  _8 \( q; J1 _( ^  -> 'rbar'
/ A% v! M( V9 E% P! S# u
1 k) A- d  U" s  E. m- @" Z! bsubstring(str,pos,len)   7 o+ J. f9 G+ d, H
substring(str from pos for len)   
  B) s% y" E4 m  X3 I# Q  ]% Bmid(str,pos,len)   9 B5 w" k$ z+ E- i7 L
返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
- e8 \; j1 I% R: H8 x  -> 'ratica'
- e# e; D" z4 t. u1 h
& _5 P2 v. Z7 T; T# B8 _% Ssubstring(str,pos)   4 ^/ b9 x8 y1 @% \2 c
substring(str from pos)   1 w$ F! w/ R. f& m( M) G2 N% e3 o0 {
返回字符串str的位置pos起的一个子串  8 o5 l& m" h' L) |/ V8 R& n4 ]
mysql> select substring('quadratically',5);  
4 a0 A7 e5 X4 ]: j# O" v8 ^  -> 'ratically' - m8 }" ^2 w0 w3 m: Y
mysql> select substring('foobarbar' from 4);  
5 e8 T# t' x, Z/ w1 L  }3 G6 g  -> 'barbar'
: Q& [0 w% J: W4 A# a0 |- B 0 k! _9 |. k0 x: B, C
substring_index(str,delim,count)   ( _' I4 x. ?5 G( G
返回从字符串str的第count个出现的分隔符delim之后的子串
5 I, Y5 o* l6 T1 O/ U6 U" V3 q(count为正数时返回左端,否则返回右端子串)  
2 p: Y& B: B/ H- Wmysql> select substring_index('www.mysql.com', '.', 2);  ' x: k# F* y* X0 V: z
  -> 'www.mysql' " W: h7 V; L9 w8 o* u) r
mysql> select substring_index('www.mysql.com', '.', -2);  7 Q: [, L! g( D+ a  o
  -> 'mysql.com'
% b+ X3 [4 k' X  s( [+ T9 | % o3 `5 t( M6 u4 ]% X$ v* J- h
ltrim(str)   
: o9 Y& m/ f# a( ], h返回删除了左空格的字符串str  - Y0 q* P& I. M% o  y
mysql> select ltrim('  barbar');    Q' J6 w& ^6 z# w
  -> 'barbar' ! n/ U  p! y- X4 ~1 I$ u# y
' b( R  H# {( d  z! s
rtrim(str)   7 R: Z. |( l- x+ o; g2 E1 B( E
返回删除了右空格的字符串str  3 j8 E! i" K% E1 b: A
mysql> select rtrim('barbar   ');  , M- B! h% Y8 u! U7 x0 \
  -> 'barbar'
/ {3 E+ d0 O$ D# s) S . s6 B; ?2 g0 p) Q- m9 Q0 H
trim([[both | leading | trailing] [remstr] from] str)  
5 s. c: L  `! U2 v* Z) [9 U9 I4 H' L返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  1 ?" H0 ]- J1 m) ]5 O( \
mysql> select trim('  bar   ');    e) Z7 T' K2 t3 C- {% s
  -> 'bar' " d6 s0 J7 P, b( n1 x
mysql> select trim(leading 'x' from 'xxxbarxxx');  5 a" e) [& G! F- M1 d
  -> 'barxxx' $ T% R2 }0 U7 M  F% r
mysql> select trim(both 'x' from 'xxxbarxxx');  % \$ t5 {/ x: }7 j* @" _+ d" H8 O
  -> 'bar' % o2 h+ k. R" Z
mysql> select trim(trailing 'xyz' from 'barxxyz');  3 H- y  g2 [) v) K9 ^
  -> 'barx' 4 W" T. Y1 E  R& A+ T

$ z% q& u! o8 c$ F: V" t! ~soundex(str)   - ^& T( S9 t% |  l. J# Z1 c, g
返回str的一个同音字符串(听起来“大致相同”字符串有相同的3 |, e9 f1 g, U
同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  7 v5 Q+ E6 U6 }
mysql> select soundex('hello');  . C4 I' y+ ^+ [- N% I  M; B/ z
  -> 'h400' + q% M/ I' Y! \0 s: r, z
mysql> select soundex('quadratically');  / A. K+ E2 F% U$ P7 m
  -> 'q36324' 1 Z. U7 J4 t9 W! o. |" [
   # }+ {3 l  x( c+ C" s
space(n)   8 X# L/ T( D/ G7 C% o
返回由n个空格字符组成的一个字符串  
. H, p4 s4 o  P; dmysql> select space(6);  
* X) I  z% k; [+ s% _  -> '      '
, n, J9 J4 e! ?9 @, D6 p   
0 c& W2 A  D- Greplace(str,from_str,to_str)   
) L6 y1 U- X" l9 B用字符串to_str替换字符串str中的子串from_str并返回  8 G% w. f$ r( m& Q1 M
mysql> select replace('www.mysql.com', 'w', 'ww');  
2 ]5 F+ ]( i3 Z  -> 'wwwwww.mysql.com'
" a6 K+ S& z5 z
% R# j. h; I9 O* M/ |repeat(str,count)  
6 N7 I; H  i: [返回由count个字符串str连成的一个字符串(任何参数为null时
0 E# N. j$ m$ }. S1 C返回null,count<=0时返回一个空字符串)  
7 h/ J1 ?3 L; e1 s* \* a! omysql> select repeat('mysql', 3);  
( R1 ]  E7 p$ a/ ~% L  -> 'mysqlmysqlmysql'   g  L* P) K+ _% q
   
1 R/ S. u; L1 w9 Dreverse(str)   8 s5 C7 v' U5 E# W
颠倒字符串str的字符顺序并返回  
7 [! u  S+ F, G% Q5 Cmysql> select reverse('abc');  
& v& i- `% |9 n4 d& b6 ~" ^  -> 'cba'
& F7 S. P. K# U, q+ C1 K7 @ " j& \- B# d% `) f5 g) u9 V
insert(str,pos,len,newstr)   # E+ |% ^' R8 C& E! X, n
把字符串str由位置pos起len个字符长的子串替换为字符串  d8 ^8 d) s2 k- ^4 P/ Z1 g
newstr并返回  
/ \- M6 b9 j" n, `3 ^mysql> select insert('quadratic', 3, 4, 'what');  
$ {: |' Z6 [# B7 a, Q' ?  -> 'quwhattic' 4 D. g+ F3 q- }' S3 f

. B5 ^9 b. C' Q6 I4 R1 Uelt(n,str1,str2,str3,...)   
* M6 K( x0 N  }# H( H返回第n个字符串(n小于1或大于参数个数返回null)  
( m0 ], z4 f. B0 X" W- d) T/ b$ o3 w$ [mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  2 @& v9 H3 Z1 ?
  -> 'ej'
/ O1 t2 k& R0 i: q. Fmysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  ' A; O8 G' X$ t
  -> 'foo' 5 a6 n! K1 h$ |% `' F  X) x. H/ u

* Q* B% h, o' @5 m' xfield(str,str1,str2,str3,...)   6 y6 x0 ]& b+ ?2 p! \2 l
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  - g: p) ~0 _% t0 {0 V: P
mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
4 {* \1 j! _1 O4 m- [' I'foo');  
4 p0 ~0 r2 Q' i# j; s  -> 2  
: q3 c6 b! {" Dmysql> select field('fo', 'hej', 'ej', 'heja', 'hej',) }2 X3 K7 @( h- r; {$ J
'foo');  1 N3 L9 a$ r. {# T9 o. ?5 \
  -> 0  
  S% Z: ^. ~7 ]& g 9 y0 L7 [* O8 f7 H5 U
find_in_set(str,strlist)   
& W$ L. p" R* f) X$ z! j4 @返回str在字符串集strlist中的序号(任何参数是null则返回
& v# u. o* q7 a# W6 Qnull,如果str没找到返回0,参数1包含","时工作异常)  
+ w3 Z8 c7 E* W4 C: w, Imysql> select find_in_set('b','a,b,c,d');  
9 o* {) ?% A7 o6 U0 m7 r/ B' t2 ~  -> 2  
& {" m3 E" a5 a" O+ L3 q   
' ~. R- R$ s4 @6 amake_set(bits,str1,str2,...)  
3 k: o! _3 v: C' B- s. v把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
: I) [! O4 P/ n* d% Q位置的字串选入字串集并返回(null串不添加到结果中)  # `: j3 c9 H& ]0 t7 {- W: M
mysql> select make_set(1,'a','b','c');  9 [- P" V7 J8 Z+ _
  -> 'a'
& `  H/ J: {  T1 ?# {mysql> select make_set(1 | 4,'hello','nice','world');  
, ~0 X: ^- b8 n+ M  -> 'hello,world' 4 {# h  W" x2 [& h
mysql> select make_set(0,'a','b','c');  
' X9 x7 A2 X# n2 t/ W1 d% o5 o* Q  -> '' 1 |! P' I' s* ?  \/ X1 `

/ G6 K! g8 T0 }7 _3 |1 Pexport_set(bits,on,off,[separator,[number_of_bits]])   ! c9 n5 f6 s; a6 ]
按bits排列字符串集,只有当位等于1时插入字串on,否则插入
) z, n' K1 M: l3 D" zoff(separator默认值",",number_of_bits参数使用时长度不足补0( ^4 c5 ]0 s# m2 a1 p/ g% y! A: t
而过长截断)   
$ ~6 X- J1 S! r5 U. tmysql> select export_set(5,'y','n',',',4)  
- p* K% s' I. }% K: E. L  -> y,n,y,n   ) m# i+ x0 \( K# L/ q" q+ a% ?

  l/ N; F" \4 W3 {- A. xlcase(str)  
0 V+ g( J/ {5 Wlower(str)   
( Z4 w5 @" u2 Z. m) m返回小写的字符串str  . J! l" R, `& E& T& U, @
mysql> select lcase('quadratically');  
* @# \6 x5 Z5 P. s+ E  -> 'quadratically'
3 }$ J2 e( Q' |# F" G   1 @4 m7 `3 s( j0 L
ucase(str)   - H) W- Y3 N. @. V% N8 g
upper(str)     A% r5 e8 c: Z
返回大写的字符串str  " ~7 }5 y3 z  g" ^5 ]( _& a/ t
mysql> select ucase('quadratically');  
* P, _  M. [7 H! Z2 {( b8 z* D  -> 'quadratically'
! q5 i4 y) I9 ^% b: |
, k( @- p0 A' N# V$ C' Jload_file(file_name)   
, d4 P( S: x# r3 T) R/ n5 [$ w$ O读入文件并且作为一个字符串返回文件内容(文件无法找到,路径9 @$ a* ]3 N" C; C, o2 p4 E7 K
不完整,没有权限,长度大于max_allowed_packet会返回null)  
9 j5 L; G- z  m" Qmysql> update table_name set blob_column=load_file
/ Y4 @! R( b3 D/ ~("/tmp/picture") where id=1;  
5 L4 K0 q# N8 l9 [: j
$ U2 M" k& [! _2、数学函数
8 A4 [9 `& g' @) pabs(n)
. Z% b0 [4 x5 O4 Z. K# Q4 R返回n的绝对值  
  P6 y- Z& v  Y0 R4 N2 jmysql> select abs(2);   
- q! N% T1 d. B' B) o/ g( K  -> 2   
. s4 j) W) i" e9 f" P0 wmysql> select abs(-32);    8 D" v: S. t$ N8 i+ f. F/ e
  -> 32    ) N$ C8 K- z. y0 E! v  v
   
* |1 t+ U* c2 x4 l) K7 ssign(n)  . C( o$ i! A, _
返回参数的符号(为-1、0或1)  
4 l. T! P7 q( o, Rmysql> select sign(-32);    , V" S1 k2 n/ t9 @
  -> -1    1 ]0 N3 r7 l4 y
mysql> select sign(0);   
- I# f9 ?" I$ Y& w! F  -> 0    ) g1 h& k/ C3 C# K
mysql> select sign(234);    * B% J8 p8 }# P+ o
  -> 1   
7 J* T7 V; M3 p0 N3 @5 e 0 s, D; }/ E( I. Q' `5 w5 A
mod(n,m)    0 B, p) d3 O# I' x& }
取模运算,返回n被m除的余数(同%操作符)   
" W" u9 h: v+ }- B, y7 H$ Kmysql> select mod(234, 10);   
* C7 z8 {; s. J  -> 4   
+ [! ~+ G+ G/ Z  }mysql> select 234 % 10;    / E3 T. K/ Q9 p# _8 W6 Y$ P
  -> 4   
& Z4 H3 G* M9 q) Smysql> select mod(29,9);    : ~  B2 y: N9 L1 w
  -> 2    ( t! S1 l3 G0 N1 S7 k, _2 [
) Z; m. x$ J4 @+ \) u2 Z/ X8 h$ F
floor(n)  
$ {$ W# V  @/ Q! X8 E( _3 s返回不大于n的最大整数值  - P( p, n+ k9 j+ n7 e6 s
mysql> select floor(1.23);    / A8 Q& \& K# W' B4 q
  -> 1   
1 i: S$ w5 f( N! j, [$ ^mysql> select floor(-1.23);   
  x! P$ l  U' y! T# j7 ^3 y  -> -2    5 s, m. `+ ~# P$ U6 B6 S: J

4 U7 A$ V% K7 _. [* A: xceiling(n)  7 Y6 _9 ?% v: y. s5 u0 ^  a3 F
返回不小于n的最小整数值  2 r2 f0 d8 U8 l
mysql> select ceiling(1.23);   
% t+ ^; W7 Q# s4 J" ^  -> 2   
! x) E7 X* `: ~2 T$ Q7 b2 smysql> select ceiling(-1.23);   
  A0 [: A7 D* w, W! |+ {6 `3 o  ?  -> -1   
& Q( Q2 t/ l3 o; {" A& k9 H 5 L' `# h2 ^  e5 Q: n
round(n,d)  
( ]$ L4 x' I% w返回n的四舍五入值,保留d位小数(d的默认值为0)  ' h& Y, j- t4 B& e; Y# m
mysql> select round(-1.23);   
7 k$ {9 e/ i& t1 k& j$ k) M  -> -1    $ f7 i! v0 [# ?# {& a0 I. k' P
mysql> select round(-1.58);   
' x' M  m/ B4 m3 M  -> -2   
/ q2 J5 m: N' p% l0 d& fmysql> select round(1.58);   
6 C/ \' Z/ y' }  -> 2    % J) l) x, i8 C, f/ ?$ x
mysql> select round(1.298, 1);    1 }4 w7 S0 V2 u
  -> 1.3    # `9 c0 O7 [, d) \1 e1 w6 ^
mysql> select round(1.298, 0);    $ |: n( _+ E, ]( {
  -> 1    ! K) ~& ?: @- Y, g
+ C3 M/ G; N5 u/ y$ m" `* |. g
exp(n)  
2 }+ `8 h2 X8 I0 [返回值e的n次方(自然对数的底)  7 o% P: J0 K0 [3 k% P
mysql> select exp(2);      ^6 A  Z( E* F1 N: U
  -> 7.389056    ' X* \/ P5 D1 G( w- |6 V# Q' i
mysql> select exp(-2);   
9 D+ t% m$ O0 W; n  -> 0.135335    # I; F# Q7 V5 r, `: V

# N  @3 a+ s: u2 w$ Elog(n)  8 [! {( E/ ?' z" O% P6 B. _5 Y
返回n的自然对数  
% D7 t. f, U7 n" r8 n2 M0 tmysql> select log(2);    $ i. w# d- i% }8 k6 U
  -> 0.693147    8 p: \  ^' _# ~; [
mysql> select log(-2);    ; R, z% h: K  ^
  -> null   
  a& v0 q. S+ K% `; E; A
3 [' A  h7 `9 e0 `/ G/ slog10(n)  
" P. q6 k- A; |: i+ m" r5 B- R返回n以10为底的对数  / P7 J4 i' R/ N5 O: D) p
mysql> select log10(2);    0 M7 n; ^+ Y( T7 H$ M1 x& L- p
  -> 0.301030   
. E! Q/ C' ~2 H2 h. n; xmysql> select log10(100);   
" e# s6 B0 r) r/ r% o  M, L  -> 2.000000   
, I: H2 K5 s5 o9 bmysql> select log10(-100);   
" A% d* ^8 a% j) d% L  -> null    : D9 y. v1 b% b$ R6 p* L

& q" R; e8 G/ ~1 V( @/ t3 R; y0 Gpow(x,y)   
  `; n5 W, H, x5 `* N+ s5 M# Opower(x,y)   
" T6 [- m' A1 v& S  m 返回值x的y次幂  
9 ?: F* N; M  `! _mysql> select pow(2,2);   
2 g  N. X* ~7 n$ s) `8 K4 |8 G  -> 4.000000    6 B, C$ X' W) r4 ~
mysql> select pow(2,-2);   
, Q# v' ^3 f" D7 B) J' w. v  -> 0.250000  1 B' u' z* u3 P1 o. s( S

$ o! M% w% o; l) {8 m' w9 zsqrt(n)  # p  m; Q( o/ y! n: \, [9 C
 返回非负数n的平方根  3 q/ \; H9 \4 P2 L" K9 m
mysql> select sqrt(4);    - Q  E9 \5 L' S0 l0 _
  -> 2.000000    ; P: S, s  k4 ?8 x( g+ P
mysql> select sqrt(20);    % @& t( P, D9 |# {$ o+ Z
  -> 4.472136   
# \2 t' M( `9 k 8 F* L3 x) X- \& \3 X
pi()    / T, {1 C: ~+ k2 T
 返回圆周率   
& m5 o# {. i* u) Kmysql> select pi();   
) V, @8 H9 f* }% R  -> 3.141593    ( a$ M$ i  t  V, v& w7 s  l% w
3 ], u5 r% J# Q9 {8 U. `' T
cos(n)  
8 d: Q+ \2 H+ J9 s% @# v6 I+ M 返回n的余弦值  
" ^* N! _$ S( U  V7 d% U1 f3 zmysql> select cos(pi());  % d( f: U2 q% }% h7 f/ O
  -> -1.000000   
; D5 `9 F! o! m8 B$ F
8 R. C& H) O2 P; l- D" q* R3 `4 H6 P) Jsin(n)  
/ k( d8 l+ B5 Q* c 返回n的正弦值   
! N' r2 d% r7 `8 J" j9 h- ymysql> select sin(pi());   
3 y4 I; h/ q( d  -> 0.000000   
3 m% F: x7 k3 h) _+ h8 r/ d . G& y6 p$ L& o" e+ e6 Y" X: h
tan(n)  2 M$ P  X" b1 a: D1 `
返回n的正切值  2 p' k- D8 P! l- l. V( S
mysql> select tan(pi()+1);    7 s: W+ R* h3 @7 A
  -> 1.557408    0 A1 t* G' x+ N; Q* R
( a3 u1 K" b5 n3 x) s
acos(n)  & z; E7 P2 z* N$ c) `
 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  
: d2 W+ [. b0 ymysql> select acos(1);   
- z' g4 v' w1 z) V$ A" Z' @  -> 0.000000   
* N# U0 e0 Z2 }( D! [/ g; }& ymysql> select acos(1.0001);    , d1 j5 U4 ]! A- b
  -> null   
- ^( c; R# h. c; D* ?2 @mysql> select acos(0);   
9 `# T1 b! g- l) a  -> 1.570796   
, \6 ~0 y2 [* [4 s5 `( r 5 O( U7 E- ?4 W7 s. D
asin(n)  5 m# B9 h4 v  a$ N; ]2 g
返回n反正弦值  
% Q0 S8 t0 g- M' ~0 W0 G% J% g' xmysql> select asin(0.2);   
) \# l- D, x5 a3 l) W  -> 0.201358   
. H6 G* V6 k+ A' [( M7 {mysql> select asin('foo');   
" L  C: W/ m/ L% ]! |  -> 0.000000   
% y5 q% `) `5 Q/ M9 A
! ^9 [7 ]1 ]" v6 j/ J; A/ xatan(n)  
6 S: s2 ^7 A, v/ w返回n的反正切值  
, B& g% ~( B2 S3 Omysql> select atan(2);    6 J, O4 r, h$ n" T- ]2 O# s8 Y
  -> 1.107149      p1 p0 w( E) b# c, G, Y" P( h! `
mysql> select atan(-2);   
# L, l& C  c+ B0 g* e& X3 U+ T, _  -> -1.107149    8 t2 |% g9 k3 g1 b+ l; d* L% D- u
atan2(x,y)    2 E+ }. [& m4 K2 A3 r1 Y
 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  . Q' m8 o: V% ~. y" J- J# y" r
mysql> select atan(-2,2);    4 s$ {# T1 J: ^+ g, W3 [5 H) f/ W
  -> -0.785398   
% c. P: c) r0 h7 w/ J" {! Y2 c+ Omysql> select atan(pi(),0);    ! H3 t, B3 l5 X7 \" V8 k
  -> 1.570796    " t" }% G  x( }0 w8 M) M

" I$ l9 d. d% ^cot(n)  
" q( d) _- b9 ^6 w& v3 {返回x的余切  ! [/ }2 _- F; p2 z; }
mysql> select cot(12);   
0 h! o* K  G. H  -> -1.57267341   
/ D& l# s& _& N# smysql> select cot(0);   
( H( Y) g) z/ m8 z  -> null    7 z3 u% c6 N, Q5 w

, ?  z$ q! }* erand()  
% n& m8 E& [0 e8 Z  A. |! yrand(n)    0 \0 l' q' \! h1 U
返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
% p9 e% X) U+ I 3 x1 P! E) q% b& G3 q0 s: m
mysql> select rand();   
0 ^1 ]8 ^+ L8 f6 L3 `6 n- N* ?  -> 0.5925    * w, p4 G  S; q/ b6 R5 x; G
mysql> select rand(20);    8 C  L$ u+ Z6 ^, Q5 p6 Q: I
  -> 0.1811   
0 u9 N! b8 [. w8 A4 imysql> select rand(20);   
3 E: a, F- q  k+ a' a! O8 T( A  -> 0.1811   
4 r% Q4 f/ g. K! x/ w' x9 \$ W+ k0 cmysql> select rand();   
0 c8 X- I( C& F  -> 0.2079    , a4 y/ J5 ~$ Q$ F# D: S- |
mysql> select rand();   
$ {; c/ q: d9 D1 D2 p* o3 E+ ?3 S  -> 0.7888    ' f. |% `9 [: n, N! P3 `7 F

: Z# q, T- M) a: ^degrees(n)  $ d. E7 H# a# K( ~* f7 j1 N
把n从弧度变换为角度并返回  
; h; j, b5 f) q% T9 kmysql> select degrees(pi());   
9 b  l5 F0 o6 w: l4 r7 E' v  -> 180.000000   
" d2 Z. F. A# F& }  } 8 H$ b8 L! i* p
radians(n) 2 B' t3 R7 ^. s7 _- e
把n从角度变换为弧度并返回   " H' F! ]$ b  `* F  b
mysql> select radians(90);    ' Q* {' f! t" y+ B- \
  -> 1.570796    1 }" @3 ^5 {4 Z3 R+ L5 Y

8 Z( T9 m+ C! |$ g; m4 X& U2 |truncate(n,d)    : G) l  D' r! Q. r3 N- h, ~
保留数字n的d位小数并返回  
% |6 _7 x, @* h0 X! O3 rmysql> select truncate(1.223,1);   
1 H$ F  }+ U  }4 q. S7 }  -> 1.2      r" C  V7 @7 m+ a# R4 j7 }
mysql> select truncate(1.999,1);    * g9 c' J2 u0 U4 s( n2 n5 W
  -> 1.9   
6 ?/ F7 f2 n9 x  V0 K) Hmysql> select truncate(1.999,0);   
0 i' }- F3 Q: q2 h, D- P  -> 1   
! \; Q8 g2 Q) M# e) c8 f   e# O4 b) w# x8 p2 J* P" r* g
least(x,y,...)   
( e8 s2 Y$ R3 X/ K" l5 t) b4 x返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
2 v! u: o) i9 h0 w' N' ]. ]mysql> select least(2,0);   
' n0 _5 t+ |6 |, B9 d7 Y  -> 0   
( Q: W) l2 F; q6 s: Kmysql> select least(34.0,3.0,5.0,767.0);   
; U( O  f+ Z, b; r9 O8 Y) P( p$ G  -> 3.0    3 H3 Y9 X5 r0 l+ W; ~. y) T& K: l
mysql> select least("b","a","c");   
! X' E1 J: r+ e; F4 P  -> "a"    8 p( j8 x" x* s, v

" Z# @3 x" v. b4 Z( Sgreatest(x,y,...)      m* k- L! O2 n- u6 m- y5 y
返回最大值(其余同least())  
$ D5 L6 l( y9 l! {$ U' emysql> select greatest(2,0);    - P9 p! V3 l/ w
  -> 2    * S# Z" {$ ^: \# w
mysql> select greatest(34.0,3.0,5.0,767.0);    ! R' R" U2 g; `" y: s3 @4 @' u
  -> 767.0   
: u* H& S/ B" P* w0 g9 bmysql> select greatest("b","a","c");   
& _' ?' D$ r, M# W5 _& G/ e  -> "c"     6 v1 w' A) u3 w+ e: ]  `
3 J% E3 M, x1 ^3 M0 R
3、时期时间函数 0 p& H+ V5 ~# L: e0 ^/ d
dayofweek(date)    # d$ k8 T. X$ N, D' g
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  4 _6 M2 F" u# X7 N2 K% H9 R( S
mysql> select dayofweek('1998-02-03');    1 ]3 i# P. @# W% L
  -> 3   
9 n4 O2 R6 q: m1 T+ J7 W ' q% G  O7 {( v" u4 H. u9 z% x# p
weekday(date)    3 q; p8 o! I& W/ V
返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
0 L  n% |" S8 D0 `3 L; z+ I5 i$ R  
% H9 m! u* d! u: [0 R" Bmysql> select weekday('1997-10-04 22:23:00');   
7 c# ~- W# U' i8 v$ b, p  -> 5   
4 o8 ^4 [1 v. Q8 @" Vmysql> select weekday('1997-11-05');   
) J& f/ p' }" i2 l6 \: z  -> 2    + m* `6 T, ^' \& r4 l! I
, r# d9 \: V8 d& C
dayofmonth(date)    % ?$ o8 m3 R4 `3 d. [0 }4 C9 X
返回date是一月中的第几日(在1到31范围内)   
5 a, T0 U! C, z( I/ ]0 s( j# jmysql> select dayofmonth('1998-02-03');   
7 r) F+ M" W5 F" S8 H% l3 }9 ]( |  -> 3    % |! a2 Z& W, t& L, A: J  N0 K
4 E" i5 e; P5 f, y, X3 k1 U
dayofyear(date)   
1 g; x% j% w! A. d5 n: C返回date是一年中的第几日(在1到366范围内)    4 A  n# H; y/ v6 `+ o) C
mysql> select dayofyear('1998-02-03');   
1 W. [7 N1 g  N- M4 N2 r4 P  -> 34      e& `+ c4 T: Z: `6 W- d
, r( G" F3 D4 J9 P
month(date)   
0 p, y! l) m' c) m返回date中的月份数值    # m4 r1 |- ~# d; E
mysql> select month('1998-02-03');    $ X7 C$ z! U8 I4 L0 s
  -> 2   
8 k: ~1 J2 M, Y' k+ ~2 f $ j: q. ^$ W) C; f  Z+ s
dayname(date)    3 A& b' t6 D0 g* _4 Y4 r
返回date是星期几(按英文名返回)  
  X' m- z" g! K% G# F2 R; p) _, w" Cmysql> select dayname("1998-02-05");   
# j  f1 U. V$ t) \, O# a/ z  -> 'thursday'   
! `  \. D! l' j6 P, Z - ^6 U$ Y- Z& r' q
monthname(date)    
) _1 C. e9 Q" u返回date是几月(按英文名返回)  
5 o) |4 d; }  _( q. ^% lmysql> select monthname("1998-02-05");    ' B8 A. e' c3 [4 _7 G
  -> 'february'   
4 \6 \& f8 p/ S8 d4 y
  ]2 d. O: p- I' F3 y* L4 i- Q+ q. Wquarter(date)   
8 A1 g' e: _: Z! \. Q6 z5 R. ~返回date是一年的第几个季度   
! H3 _! _" e/ Xmysql> select quarter('98-04-01');   
( i3 J! }# |0 U/ m  -> 2    , {/ I8 ^3 s6 ~5 }3 H: j- h" A
9 G1 B( I  b% `; f, z
week(date,first)   6 J  I7 o4 p/ R7 n0 @
返回date是一年的第几周(first默认值0,first取值1表示周一是: h5 W6 r2 K, d" G4 {- a
周的开始,0从周日开始)  ) x' W+ p& N! K$ X  g
mysql> select week('1998-02-20');   
: M- w0 v. [6 C0 ?! X* M  -> 7    ! T9 S: I" a  C/ r* d+ c% b
mysql> select week('1998-02-20',0);    2 Z6 n% S7 s' t* f* y# B- r. p
  -> 7    ' H9 }, f- d3 C4 V$ R* D' O
mysql> select week('1998-02-20',1);   
4 g% p" D; M2 \1 M; k8 F' g) P8 P  -> 8   
6 n1 m, y! N$ p& X ; m  y" G' E6 F
year(date)   
9 @8 c8 ~) P- R8 m1 ~返回date的年份(范围在1000到9999)    . K  l, }) R3 [; {& ~: c5 F
mysql> select year('98-02-03');   
% C  |) Y7 A" G! L/ y  -> 1998   
/ \) q) m4 {2 h
2 {) S/ @& @. q2 z' L$ w+ d' n% Shour(time)    5 X! _1 ]% A/ F; l5 r, L( q$ E
返回time的小时数(范围是0到23)   ' {" j* n  v" n' C
mysql> select hour('10:05:03');   
/ d% o! [$ q( o- P1 g1 i  -> 10   
: V4 @' |# |! |8 ^0 ~. @3 i
" P. U8 ?; W9 A; T: jminute(time)    5 k* H; I* K% |4 l
返回time的分钟数(范围是0到59)   
; v$ p) Y, F: l) V- L. z) Rmysql> select minute('98-02-03 10:05:03');   
9 {" N+ F' M  U7 [5 Z  -> 5   
3 a7 Q9 A( s, C4 I# O  q . v# p6 }  C7 u+ M  A
second(time)    3 Z. Y  H  e2 e3 c) v. H# l
返回time的秒数(范围是0到59)   
. F, t' _% }: Y! ]" a; K9 ?# umysql> select second('10:05:03');    5 a+ U8 r  u1 ^' u$ n& M9 C0 a; j
  -> 3    ; M' N) r' b, }% j. T5 ?2 i

" j+ y/ ]1 Z7 xperiod_add(p,n)   
' H; p2 B( D* C! ?; P+ Z- k$ T, V增加n个月到时期p并返回(p的格式yymm或yyyymm)    / b# A9 n% u' r; `% ^
mysql> select period_add(9801,2);    3 j7 Z3 u1 o. L2 A4 T# N
  -> 199803   
# I) g' O- o: v8 i ' L3 A! o3 O; X- a8 s
period_diff(p1,p2)      h" D; K! W3 m* M
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  
$ l2 F: M6 F& S( V  fmysql> select period_diff(9802,199703);   
5 |8 X& T2 v- W/ F3 K  -> 11   
% m6 B& R) y! S4 s & s6 Y% D6 t  K% Y. Q
date_add(date,interval expr type)  
/ n: v4 k8 H  f8 hdate_sub(date,interval expr type)    . n7 u; H" G  j4 c6 |
adddate(date,interval expr type)    ; {. a' S; K# e. b
subdate(date,interval expr type)  
$ P* Y: y6 Z% I  c% f2 t对日期时间进行加减法运算  # I, _0 h+ H* x
(adddate()和subdate()是date_add()和date_sub()的同义词,也, o; h% z5 d4 W- b, K1 u
可以用运算符+和-而不是函数  0 M# w) \+ c# o, V1 M: f
date是一个datetime或date值,expr对date进行加减法的一个表
1 N: S/ A1 H, l1 g& _$ y达式字符串type指明表达式expr应该如何被解释  2 @+ @$ |# O2 b/ C1 ?  p+ g! r8 l
 [type值 含义 期望的expr格式]:  
" G' S3 M* I4 [) S second 秒 seconds    0 T4 p; T- Q; S, g+ Q4 y8 S/ h$ _
 minute 分钟 minutes    % v4 D! ]( K4 S* _) x, U
 hour 时间 hours    3 H: A, F. o: P  z
 day 天 days    7 }3 i* `9 `  i- l, c5 @
 month 月 months    + P6 g8 T+ c* ^! i1 F( K
 year 年 years   
* i5 H3 F+ J- a, z4 C0 s2 D' K minute_second 分钟和秒 "minutes:seconds"    1 t0 ]! i9 ~8 x" L
 hour_minute 小时和分钟 "hours:minutes"    9 E# H4 Z" {- e. ?2 o; `
 day_hour 天和小时 "days hours"    4 x  N% G, R2 ^+ \3 m. Z; o
 year_month 年和月 "years-months"   
8 y( c$ z, T3 ?/ V4 ~ hour_second 小时, 分钟, "hours:minutes:seconds"    4 I9 I$ u" L: P6 |
 day_minute 天, 小时, 分钟 "days hours:minutes"   
6 l4 ?" D# @% o  Z5 j0 O day_second 天, 小时, 分钟, 秒 "days
3 e& W5 t. z: P) S+ s) P5 N( qhours:minutes:seconds" $ ?4 t7 b0 N# Y& W+ \
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个5 N' R; `9 ~& I6 y9 H: x6 [- b3 R. {1 m
date值,否则结果是一个datetime值)  " r/ w9 L7 Q/ k# v  |; @
 如果type关键词不完整,则mysql从右端取值,day_second因为缺: r, s1 ?4 u( v" F4 t! p7 w
少小时分钟等于minute_second)  
! O+ A& @1 Z9 L5 r0 T& S0 j+ n 如果增加month、year_month或year,天数大于结果月份的最大天
  [9 r& O1 e$ A4 y5 T" G/ M数则使用最大天数)   
/ z) d; x2 L3 ?. Q# X( emysql> select "1997-12-31 23:59:59" + interval 1 second;  
8 }% T! y, C; p" k9 b2 U% F$ E 6 O) K! Z3 [* h
  -> 1998-01-01 00:00:00    4 X4 u/ t1 `# `" |/ \9 u/ c$ \
mysql> select interval 1 day + "1997-12-31";   
2 d0 e) ^! d# F" @+ B2 W6 X5 _  -> 1998-01-01   
  x, X, _6 ?3 y# kmysql> select "1998-01-01" - interval 1 second;   
8 l; m; ~7 b: r; [* a7 n  -> 1997-12-31 23:59:59   
* h% b- V5 F8 V0 e5 X& Amysql> select date_add("1997-12-31 23:59:59",interval 1
8 s- M" I6 }* p$ K$ Isecond);    3 A& E7 K' h" t
  -> 1998-01-01 00:00:00    0 D, H4 E; l6 W$ G6 b1 P
mysql> select date_add("1997-12-31 23:59:59",interval 1
% x9 ]1 q) T" v; x6 l6 S: Sday);    6 k' x: w5 _* l: h" s, ?
  -> 1998-01-01 23:59:59      k# ?% C7 y/ ^
mysql> select date_add("1997-12-31 23:59:59",interval% l5 b6 L6 F( P' o/ X/ x
"1:1" minute_second);    ; F" f3 M4 Y* H. h& H2 H$ X# O
  -> 1998-01-01 00:01:00   
. r1 [* A" w- W/ N4 W7 [, y8 x. }mysql> select date_sub("1998-01-01 00:00:00",interval "1
2 g" q& q1 }! h. g$ T1:1:1" day_second);    2 y9 ]) N, x7 u
  -> 1997-12-30 22:58:59    : S: j* n* j$ k& z
mysql> select date_add("1998-01-01 00:00:00", interval "-1
0 a$ n: B1 Z1 x/ w10" day_hour);  
) e% t+ {( `" K  N9 O4 O  -> 1997-12-30 14:00:00    5 @  f3 D/ S) a+ ~
mysql> select date_sub("1998-01-02", interval 31 day);   
: S' z6 A5 Z0 s" M& z  -> 1997-12-02   
- w% h+ z. f0 p$ R* f9 E  f3 @% h& Tmysql> select extract(year from "1999-07-02");   
) L5 c- p" L. z$ }: P1 @: h$ w: h2 k+ Q  -> 1999    & q- T2 ~# A9 g8 N  m4 v0 W
mysql> select extract(year_month from "1999-07-028 @! \# {% F( h4 Q3 K% Q5 K
01:02:03");    - M# V% ]3 k  [' g# P) p' C# U' {% s
  -> 199907   
; H! q3 j! u) K% ]# N- b4 _mysql> select extract(day_minute from "1999-07-02
4 M, t7 H: R% T' j6 u2 e01:02:03");   
7 k' f* @* _! K7 l0 X* \  -> 20102   
+ B' L* \' M: y( U1 v7 }$ w: ^1 J
; g% c( D# p2 X/ tto_days(date)   
( g  U. |% O; ~6 e返回日期date是西元0年至今多少天(不计算1582年以前)  & i; X; V& {, t6 x
mysql> select to_days(950501);   
" K  B3 t1 F# A% T( P  -> 728779    % y. X7 {$ _; w" r* p" j
mysql> select to_days('1997-10-07');    : O' I8 v+ b3 J$ |& f4 [8 M' |
  -> 729669    6 _: I  l2 p/ _

  y' n! |3 E. _5 b( S  nfrom_days(n)   
/ v, |" r1 b- P 给出西元0年至今多少天返回date值(不计算1582年以前)   
0 q0 h* @$ p3 xmysql> select from_days(729669);   
) |$ e2 }' q3 o% X6 I% [  -> '1997-10-07'   
0 m. F7 g9 q9 D, l! e8 e8 ]
* L) Y0 w2 e5 ]3 b# |" g- {1 Ydate_format(date,format)   
. \5 g) E1 s% ]$ w, _5 \, q1 s 根据format字符串格式化date值  
0 g. @! O8 u0 {" R1 m (在format字符串中可用标志符:  
2 ^9 Q8 B- y0 d: P5 ?7 K %m 月名字(january……december)    % G- z6 F$ s5 H- i$ B  W
 %w 星期名字(sunday……saturday)   
. B! y; Y/ B1 g: A8 O- o %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    . {# G: }7 R3 y0 r2 z# C
 %y 年, 数字, 4 位   
" J# b1 g3 j5 Y! d% l %y 年, 数字, 2 位    % z$ o/ u' C8 i7 Y8 \4 N/ g! h
 %a 缩写的星期名字(sun……sat)   
& ]5 P8 a3 }7 H; b' f %d 月份中的天数, 数字(00……31)   
/ k/ ~3 S6 f- L, \, Q! s* r! s9 K %e 月份中的天数, 数字(0……31)    1 u8 y+ D, ]" C% y  F2 s6 o* @
 %m 月, 数字(01……12)    ; G; A% s8 D  y7 H" O- b" R
 %c 月, 数字(1……12)    ; U6 d* u# T* n% z3 l7 s, N2 d
 %b 缩写的月份名字(jan……dec)   
& z% P! q9 w0 J1 | %j 一年中的天数(001……366)    " W5 _+ l7 k4 M3 `0 K' m) p% A# L
 %h 小时(00……23)    0 V1 X, a: }8 G7 o! X
 %k 小时(0……23)    1 w3 u/ X  E! o# T
 %h 小时(01……12)    5 ^  I# v  r  P4 R7 x/ n0 z
 %i 小时(01……12)   
  [+ N$ z. _% g- {$ [$ X+ |$ h %l 小时(1……12)   
9 Y) W3 q+ q+ L" d8 { %i 分钟, 数字(00……59)   
1 Q7 F3 ~* ]$ B; y %r 时间,12 小时(hh:mm:ss [ap]m)    / J2 A" f. L8 P% D; {
 %t 时间,24 小时(hh:mm:ss)    7 V) Y$ @' T; f! C1 [
 %s 秒(00……59)   
8 y9 ?8 b! H# D- o( K/ Q  b+ i0 k %s 秒(00……59)   
& r4 p0 q- T4 e6 J %p am或pm    , s$ L+ a  \! H
 %w 一个星期中的天数(0=sunday ……6=saturday )   
2 B2 [9 @6 u" `5 w; y  I %u 星期(0……52), 这里星期天是星期的第一天    & F  f* E7 u* \7 H+ ?5 B
 %u 星期(0……52), 这里星期一是星期的第一天   
. S: q- e1 ]( ?9 T! G2 Q+ V %% 字符% )  
) v" a$ M$ Y; Z9 ?- f. ^mysql> select date_format('1997-10-04 22:23:00','%w %m %
. N7 Q0 m+ d, M: S1 a8 Iy');    5 B/ d: m9 k+ y3 i8 I) F. p1 w( O+ X
  -> 'saturday october 1997'    0 Z/ o6 O% t, t
mysql> select date_format('1997-10-04 22:23:00','%h:%i:%0 ~- x- Y" q7 ?4 Y# u
s');   
6 l/ g. B6 t0 f% v  -> '22:23:00'   
' X2 v7 e# n; \mysql> select date_format('1997-10-04 22:23:00','%d %y %a
# `- O. Q4 S% d- C" w4 f%d %m %b %j');   
8 a1 }* _( ]  V8 ~: \) D  -> '4th 97 sat 04 10 oct 277'    ) h# b2 A- h: ?$ T" R* Y
mysql> select date_format('1997-10-04 22:23:00','%h %k %i1 X, v4 Z3 z6 l; J
%r %t %s %w');    8 j/ ^4 F0 C7 U2 \2 u1 e
  -> '22 22 10 10:23:00 pm 22:23:00 00 6'    / ]' b' w" g7 M. Y) `  \7 _

8 R% H- B7 x& @. m) N6 @8 Etime_format(time,format)  & i  a/ e8 |' m4 `
 和date_format()类似,但time_format只处理小时、分钟和秒(其
4 `8 Q& E+ P- s& K! w余符号产生一个null值或0)  
& C/ ^6 l( @3 L  T# w8 ^# N( K
4 F* P8 K5 F" i( w; t" G: e" gcurdate()     
' d  {5 z, Y% _current_date()  
# v# f4 N8 O. b* q; j9 T( Q7 r+ k- B 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所' I9 d3 s/ ]$ u9 v9 x
处上下文是字符串或数字)    ' A* d1 y2 c7 m2 g
mysql> select curdate();   
6 }6 @! r; l5 t  -> '1997-12-15'    : k8 w$ }3 ~. L
mysql> select curdate() + 0;    3 @2 e" m1 i. A$ l9 ^- L
  -> 19971215    # v3 Q- b2 k5 x- Q5 h* L) k
  [8 M- \/ _: W3 f* I' G
curtime()   
1 W, Z/ R# |$ G+ B  x4 Lcurrent_time()  
+ O( A/ a) ~$ f  K+ {5 y; @ 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上2 ^# f6 Y, \8 u% z/ E7 w
下文是字符串或数字)      
2 T/ u, H5 p7 s" V- v; rmysql> select curtime();   
0 E' g& d8 O0 t9 _# T  -> '23:50:26'   
4 S2 w4 w% N2 g+ H/ imysql> select curtime() + 0;    / z. m7 \& G3 {2 o  y1 L
  -> 235026   
" T, }6 V" r2 o" X
8 a3 [( M% |3 M: B1 Cnow()    
  a" \' O) j1 a% w# Jsysdate()    
1 O: y5 k3 Y9 M' n; P1 N, [0 Scurrent_timestamp()  0 A- t7 i0 g+ w; d0 p" U
 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
! L! ?* q- Q8 G  m4 v时间(根据返回值所处上下文是字符串或数字)     , T6 V2 @1 R& C. Q8 a
mysql> select now();   
* V. U+ n# d! c  -> '1997-12-15 23:50:26'    : _5 c9 s; Y6 G4 j# A2 G! b& \' t
mysql> select now() + 0;   
( K5 I  i: U* k6 h  -> 19971215235026    : P9 B2 o' x8 U6 }& z6 ]4 m* |
3 Q: M6 w/ g5 {- z
unix_timestamp()   
2 D% @4 C, Q" h3 qunix_timestamp(date)   
' |6 k4 w9 Q. z返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒3 O9 P# K1 }; f. \$ I+ R
数,date默认值为当前时间)  
+ b" S7 m) C4 ^6 [, m; ]mysql> select unix_timestamp();    % K1 `( h% f  e4 _* \: N( D, B, o) W
  -> 882226357    # O$ f- @0 D" T
mysql> select unix_timestamp('1997-10-04 22:23:00');    ! |) q" l$ ?! b: |6 I( o
  -> 875996580    8 c" z2 F2 g( f; x1 G
- ?# s/ [" c/ D: b' Y) q8 Q
from_unixtime(unix_timestamp)    & }5 K7 X" r7 ]8 ], ?& o7 i
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的
- Y# f$ v+ L, `/ b值(根据返回值所处上下文是字符串或数字)     
8 Y& I% ^- [2 Z8 a8 [2 E; p* ]0 \mysql> select from_unixtime(875996580);    : U, u5 Q4 Q1 Q% F# N2 f  l
  -> '1997-10-04 22:23:00'    ! \8 P5 t! J1 j8 m* E7 h0 O
mysql> select from_unixtime(875996580) + 0;    $ M( e; w2 p$ \$ e' X
  -> 19971004222300   
% p# W/ E+ i9 u8 _  `$ y
, m  C7 ~% Y- d! v0 Ifrom_unixtime(unix_timestamp,format)    
9 U/ D% I4 h$ f( c- ~# j4 Y" V以format字符串格式返回时间戳的值  
) i5 O. {+ E9 b# T9 N8 ymysql> select from_unixtime(unix_timestamp(),'%y %d %m %" S0 s: }2 g5 [) d8 z
h:%i:%s %x');    ! G& t, l" U& }  |9 f$ B5 ^3 o4 q5 D
  -> '1997 23rd december 03:43:30 x'   
+ \1 l7 x0 q/ L3 g* I* I# t
, G- }% [" C7 k! a  P' Dsec_to_time(seconds)   
& a/ U2 [$ F5 M( `以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     + r. B' S; W" A7 _6 H& H/ _
mysql> select sec_to_time(2378);   
, ^. Y5 J2 v$ K  -> '00:39:38'      U4 r8 r7 ~  `8 U3 D
mysql> select sec_to_time(2378) + 0;    - K- _  x! P0 z* p. n4 z
  -> 3938    0 T* c7 e0 @" ^& |; T7 \7 t) n  w
' E/ c: k5 o, n' x  ?' e4 F( w8 G( e1 u
time_to_sec(time)   
% G) B$ K- x+ S返回time值有多少秒   
1 a5 C. q, V; y3 tmysql> select time_to_sec('22:23:00');   
; ^9 v6 G0 r9 {8 B; g  -> 80580    9 o* Q; M/ O/ ?# A% C! c( S
mysql> select time_to_sec('00:39:38');   
6 h# w+ S) a+ V  -> 2378
7 u- x& i. ?4 Z7 K% V 6 k' X( O: i- N* W' R9 F- W
转换函数
: v8 _# g! F4 W( b+ Vcast' \+ _0 n# v# b2 p
用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]
9 E- u* `8 A. @8 u% g. \实例:select cast(a as unsigned) as b from cardserver where order by b desc;
2 U0 ?3 j9 `- P* ^convert:
' d: L5 u( m& J& w, F0 t# O) z用法:convert(字段,数据类型)4 b( a# T/ K* w  k; x: `  a
实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
: P" V$ ^5 Y1 U6 S
回复

使用道具 举报

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

本版积分规则

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