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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数
, H0 g7 p1 |" f; P" g- S- p& Lascii(str)   
. J/ e. M5 v( W3 u返回字符串str的第一个字符的ascii值(str是空串时返回0)  
$ d9 J$ i; a" r% o3 Q. N3 Amysql> select ascii('2');  
8 s' l( F( l) ~( U( n  -> 50  * D3 i/ e$ }: j( |* e
mysql> select ascii(2);  : m6 E& k6 D3 R8 K. H- i
  -> 50  7 L/ P0 F0 {5 B8 I* G6 A
mysql> select ascii('dete');  $ i5 g: A+ w( ]
  -> 100

) C$ s8 R( `; M) w, |: j: T& ]ord(str)   " O; q4 v7 d: _2 ^+ `
如果字符串str句首是单字节返回与ascii()函数返回的相同值。
; V- ?, \$ c6 p - S  Y# @1 H+ M8 ?
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  ' H: f9 u2 k# E+ C( y. m' E9 W9 k
mysql> select ord('2');  
1 ~0 |/ e% \( e; K9 q0 e, ]  -> 50  ( i' j# \8 s, ~$ N
   
: n. b+ c- H" @" i0 P" W$ ^9 Uconv(n,from_base,to_base)   
/ G$ Z- t6 e: A% B对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
/ e8 B2 M0 q+ F9 A1 j! ymysql> select conv("a",16,2);  
0 q8 a' J  c. G  -> '1010' 9 g& I* K8 [5 k* k' n. Z/ k& z
mysql> select conv("6e",18,8);  % ]; B) C, |6 v, H
  -> '172' , d# g' k' u# ^. `9 y
mysql> select conv(-17,10,-18);  2 X* q+ M6 ^6 }; Y
  -> '-h' ) W& S, n( N% S" h- J
mysql> select conv(10+"10"+'10'+0xa,10,10);  ( m% Z: D% |+ s6 [' _# v8 s' ?1 _- C
  -> '40' 6 `1 R: C# N) P: x$ P& d
   ! e0 F4 E" D2 y
bin(n)   8 B( o" ]4 x/ J) k0 U! z5 o$ Q5 w0 M
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
$ c9 l* s% v/ R( U- b6 ?mysql> select bin(12);  
/ v3 a& R' m& Y" s- v  -> '1100'
1 e* u3 d2 E$ x; s/ E' A9 W
& ]/ j' ^7 F+ u. w% [. xoct(n)   1 i  H) D% U( K+ A
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  / C9 l9 ^8 s. B; ^
mysql> select oct(12);  / @1 \! t4 y: v  E
  -> '14' ; r0 d" Q0 D' U+ {. ?/ I" e5 d6 \8 V
   & K& {% `+ _, f- \$ y
hex(n)   
7 T5 A" M; x. n6 K把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  4 X+ ]' ?3 q+ w1 A
mysql> select hex(255);  , h$ h! f; f. c7 K' L# g. q8 q
  -> 'ff'
" k6 u  J. f( i* W   
- ]- O3 ]3 t1 q* G* i" ochar(n,...)   
$ e' K* O* m8 q2 R返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   
3 y7 O9 ^) `5 J5 |mysql> select char(77,121,83,81,'76');  * q( ?& y+ g3 W8 V- X6 P, `
  -> 'mysql'
7 U& D( F% e3 h6 c: r* i: nmysql> select char(77,77.3,'77.3');  * E+ e# y# p' V1 s+ S* t* a
  -> 'mmm' ' s9 d# d; ]/ P! N  E! I8 B; o
   
5 `4 G& `  E$ k0 v( P% R1 fconcat(str1,str2,...)   " L( x6 t% D5 n) b% }# V) H
把参数连成一个长字符串并返回(任何参数是null时返回null)  : E3 ]. U& h" _
mysql> select concat('my', 's', 'ql');  
' _1 k+ n; U6 M4 J, F' g' s% z  -> 'mysql' 8 _& j2 a0 Y1 R+ L1 C
mysql> select concat('my', null, 'ql');  
7 o# ?2 M: H9 [% ~0 t  -> null " [7 j) s3 r5 e2 |$ _
mysql> select concat(14.3);  
# g) ~4 Y- ?+ w, H) z  -> '14.3'
+ `$ W$ v! y: R( W! k: |( T( ^/ F
+ c3 \0 Z/ D4 V6 s. D) Z4 glength(str)   
" E4 A! n- z* R1 Aoctet_length(str)  ! j; d7 G! R0 z5 h1 \( {( K0 Y/ i
char_length(str)  
7 z0 m1 |. @- |4 J7 dcharacter_length(str)  9 {' H: M' `' _
返回字符串str的长度(对于多字节字符char_length仅计算一次)' K  ]1 h$ r5 _8 K& U: f
mysql> select length('text');  
! A& D8 W* }" r9 @/ D; B- @5 V: V  -> 4  
% k: D/ Q' l4 X( G" L& wmysql> select octet_length('text');  
4 M4 V6 D# p. q& {% e7 i& |9 U  -> 4  + U5 u/ `; d4 Q
. t3 o8 e3 X% u
locate(substr,str)   / L1 F3 L8 [  _; g8 |5 R
position(substr in str)   
) F3 ?- K* I0 A9 {返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
# }1 r  z7 s3 J! ]" ]/ w( C1 Bmysql> select locate('bar', 'foobarbar');  
8 E5 q4 E: N8 O' j. w  r1 R+ D  -> 4  & e% R' S$ ?6 o4 ], b* o, {' n2 G
mysql> select locate('xbar', 'foobar');  / U, ]" x* J3 c
  -> 0  - X+ c. e1 j5 c2 @. @. I, {
   
/ ?6 D! Q: a) N6 X/ `: Llocate(substr,str,pos)
! \7 K: ]- V$ }! X0 y* u- w# d返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
5 J% ?& w+ W# j1 S! pmysql> select locate('bar', 'foobarbar',5);  0 l2 h* b- {" s3 r4 @
  -> 7  1 Z9 }$ y5 R; L2 E+ ?

7 |. y! V, a6 M7 u$ zinstr(str,substr)  
) _6 K+ f# i: ^0 H9 E+ e$ F8 {2 t9 y: y返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
6 }/ p$ Q1 U+ `mysql> select instr('foobarbar', 'bar');  + P9 M2 ~0 e; c" G% x
  -> 4  5 }( N6 L8 U4 P4 ~4 E9 Q  A' c
mysql> select instr('xbar', 'foobar');  0 V. ~6 M% r$ E/ I: U
  -> 0   - S' _) v  p2 C2 F

$ b7 ?! V7 x6 B; n" rlpad(str,len,padstr)   
; M! Z  ]* ?4 `3 m2 @/ q用字符串padstr填补str左端直到字串长度为len并返回  7 I( Y3 b% {& S* O
mysql> select lpad('hi',4,'??');  * e7 j2 j# L. a( @  O. r# Z1 N
  -> '??hi'
# S: D0 \6 r( r9 \: R! n/ g   
; s; g9 s- _8 Y* J( O# qrpad(str,len,padstr)   5 `8 W5 J4 c; E4 u: c+ Q
用字符串padstr填补str右端直到字串长度为len并返回  + X6 n4 O. O9 \- E7 _& ~# k
mysql> select rpad('hi',5,'?');  0 W0 b9 y3 P) g9 t
  -> 'hi???'
( o& s! O; K+ S; s6 ]
: D& w0 n" h& k* jleft(str,len)   
) O! p" y- B5 V# x; {' f返回字符串str的左端len个字符  
5 u. k4 r" r9 c7 z4 N8 Fmysql> select left('foobarbar', 5);  
# h8 E- Q: ]2 C) y, W# R& L1 X  -> 'fooba' / V: ~- h' t( z) \
5 e% ?3 p' N' Q: R3 D; H
right(str,len)   
' i# F1 x& p* D6 z4 c( @/ u) s返回字符串str的右端len个字符   : V' T! W9 s2 r- ~0 i
mysql> select right('foobarbar', 4);  8 L6 A" `& i$ L) n1 e' _
  -> 'rbar'
1 Z6 {( r& I' G8 B$ G8 P0 M ( Q- Z2 `6 o. i
substring(str,pos,len)   # q: X- z1 Q; ]; U* v/ s
substring(str from pos for len)   
4 D( k, Z# ]( }mid(str,pos,len)   ! l( Q6 C$ b+ ?9 ?2 T, l7 e
返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
! d% Q& C  A: S) Z  -> 'ratica' * j& s% Y+ ~, H+ o) i4 Z
6 U4 w0 E5 d: P( m
substring(str,pos)   , ?/ J: L9 O! M
substring(str from pos)   ; ^; o% I8 E% [! P' [
返回字符串str的位置pos起的一个子串  
$ W- X4 z: ]: S" {" emysql> select substring('quadratically',5);  9 T! l% e  W7 H
  -> 'ratically'
6 U3 B: B- f. ^. y; r+ Bmysql> select substring('foobarbar' from 4);  5 F& x: i5 g4 B' ^- ^
  -> 'barbar'
: s0 e8 A% @. ~2 H  s+ X- l
, p, A% C! V6 }& {! jsubstring_index(str,delim,count)   ; [, n' v/ f* Q) V( y
返回从字符串str的第count个出现的分隔符delim之后的子串
* S9 A( h  O0 r( i, V6 s. h0 |: Z2 M(count为正数时返回左端,否则返回右端子串)  
" K0 U1 A6 v) _0 u6 Imysql> select substring_index('www.mysql.com', '.', 2);  
  e" U# V$ Y" {$ X  k" @  -> 'www.mysql' 0 r  n/ G! `+ y5 F8 w
mysql> select substring_index('www.mysql.com', '.', -2);  2 W: }2 o' ~% b& o
  -> 'mysql.com'
( a' L6 e0 t  n/ G+ m7 Q# \   \8 X( r4 W9 V
ltrim(str)   
, k6 S' P8 x8 |3 B% f返回删除了左空格的字符串str  ! {7 |' r7 |$ o% @
mysql> select ltrim('  barbar');  
- j  {. [/ L& }  -> 'barbar' # ]' v6 P5 \8 T9 B

8 @: Y/ Z* ^! `rtrim(str)   & B& V, P, G6 f5 w  r+ {4 B( n
返回删除了右空格的字符串str  
3 i/ _9 e" s0 ~7 T* p1 R: Qmysql> select rtrim('barbar   ');  
% B1 y" ^" g$ p  -> 'barbar'
' \/ T: o. b( ^, L: n
, B& X, ]+ Q8 ^4 O" jtrim([[both | leading | trailing] [remstr] from] str)  
8 {* z: v: D* X% T返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
6 K, \; L; Z. V2 o  Y6 \# Zmysql> select trim('  bar   ');  
" ?: V/ o# a7 C) B* ~  -> 'bar'
7 B' \% b& V. X- k/ |- m  }0 Z! \mysql> select trim(leading 'x' from 'xxxbarxxx');  
, `$ |4 x+ |" K9 J% ^  -> 'barxxx' 8 F! J1 ?$ M0 N, _& t& j
mysql> select trim(both 'x' from 'xxxbarxxx');  
# c6 w+ T1 Z) A2 F: c  |+ `* s: Z  -> 'bar'
' a8 `! K3 B7 umysql> select trim(trailing 'xyz' from 'barxxyz');  
0 u  Y& }0 W; F5 o. M  P6 ?  -> 'barx'
6 m) z6 B* a5 ~* p! h; s& N 0 \& s( `8 S  ?' J& M( k" _3 \9 D8 `( W
soundex(str)   . ~% U' Q" q6 m
返回str的一个同音字符串(听起来“大致相同”字符串有相同的
6 c: x1 r( ]* {, R同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  ! _; Z7 B! Y* v/ M  t) o9 H, f7 t7 w
mysql> select soundex('hello');  
/ `' q2 f/ G. S8 w. p  -> 'h400'
/ L. T0 E# J7 V& i2 j" bmysql> select soundex('quadratically');  
0 E) U2 [' P; s! ^  -> 'q36324'
6 j, S5 z/ M$ ~# x   7 P/ C2 K! o4 g( J8 r
space(n)   : Z1 J( o7 I% S0 @
返回由n个空格字符组成的一个字符串  
4 O* `& R) o7 X  Emysql> select space(6);  
: Z. ]2 z) F' Z7 y5 x  -> '      '
& _$ n& `# u; P9 r' [9 ?   * t* q* p. B7 Z& i
replace(str,from_str,to_str)   4 j! r7 {; Q9 i. |3 T# u+ p
用字符串to_str替换字符串str中的子串from_str并返回  + t7 X1 y3 B4 B  j7 g
mysql> select replace('www.mysql.com', 'w', 'ww');  
3 g% \1 g  d) B+ {  -> 'wwwwww.mysql.com'
4 Z. p1 E0 Y9 O$ w- a% G+ I
2 n1 y7 \/ q+ p5 e5 s6 Jrepeat(str,count)  
1 I6 G" W6 F2 v. S/ V返回由count个字符串str连成的一个字符串(任何参数为null时/ o. z/ z* l' H
返回null,count<=0时返回一个空字符串)  2 n# I0 c- @0 ^0 l, V% A
mysql> select repeat('mysql', 3);  
9 ^* z& j% G, d& W* L$ \6 h4 z  -> 'mysqlmysqlmysql' 0 e% r; e: F# S: U$ W
   
) k2 Z6 w2 k% @% kreverse(str)   7 d' a) T) M: U1 k  n
颠倒字符串str的字符顺序并返回  
+ A' S, {; L9 c' ~$ G4 ]4 E4 Kmysql> select reverse('abc');  7 E, r4 V1 J0 u% d$ N" l
  -> 'cba'
" C" `1 o) N$ }% ?, f
. ^6 b9 y! l% R( n% |/ _4 Xinsert(str,pos,len,newstr)   0 F  T0 f6 ^/ e! L
把字符串str由位置pos起len个字符长的子串替换为字符串+ T9 R) F$ `7 r7 y" }, h
newstr并返回  ; A9 w) W, M9 a; j3 W9 S
mysql> select insert('quadratic', 3, 4, 'what');  3 Q7 N1 a1 [$ H4 ?4 Z
  -> 'quwhattic'
- F# B8 o  D, J  D , U7 V' n* T1 r3 K& y. q
elt(n,str1,str2,str3,...)   
( s4 T- z9 Y$ u: t( f8 f1 ^返回第n个字符串(n小于1或大于参数个数返回null)  
! w; R$ G# V5 ^' ~$ T: [  L! fmysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  . t4 d) b7 w+ `" K2 j8 @3 O3 s& Z' E
  -> 'ej'
( w7 r% Z% N/ G) Z; w" d! [mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  
4 V' E: \: D' a- O  -> 'foo' 4 B* j/ V4 q) A; b

1 J9 h. `) F, V3 dfield(str,str1,str2,str3,...)   # Z6 N6 j% @2 o1 V
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
- z* Q* u& k' F4 a) @7 H  R6 [mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',3 x( l& I; a) U" K  E
'foo');  
6 f) _, J& c, P  ~* M) h) f  -> 2  
! s" F: A2 L+ X; j8 f% F" ^mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
: r6 ]  A7 I! o'foo');  
5 d9 U( z# ], X) S9 C' c2 n6 L  -> 0  
# r8 e6 i0 r' Q4 d# j
" C" g; {- Y3 X2 ffind_in_set(str,strlist)   , f2 ^& P. c7 S( U* i; j
返回str在字符串集strlist中的序号(任何参数是null则返回
* ~% n! x4 M  b9 Y- v, ~null,如果str没找到返回0,参数1包含","时工作异常)  6 {8 [4 l2 ?9 r+ ~
mysql> select find_in_set('b','a,b,c,d');  5 Y2 d/ X+ R( n1 s0 f  o% ~
  -> 2  + f7 J9 T$ g$ q# t/ }- E0 F
   
/ V2 J7 Q. D8 J3 ^make_set(bits,str1,str2,...)  7 V9 r" d8 m- c( G5 i
把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
" S# d/ _# `, |  o* H; x$ C# A位置的字串选入字串集并返回(null串不添加到结果中)  + y1 o0 [2 X, ^2 y# J* P
mysql> select make_set(1,'a','b','c');  ; D7 r  m' l6 e+ c+ _
  -> 'a' / ~6 ?% z7 R7 p' E% q% W' S
mysql> select make_set(1 | 4,'hello','nice','world');  
& i  ?- Y$ c7 \0 J( I" d. O  -> 'hello,world' . [/ R1 f; f# Q- P) Y9 o
mysql> select make_set(0,'a','b','c');  
9 F/ B+ C) r1 i, Y  -> ''
! q* J+ F, e/ r: x, J % l* r7 i. J  J7 C% r% D
export_set(bits,on,off,[separator,[number_of_bits]])   
$ G0 h) s  A- d按bits排列字符串集,只有当位等于1时插入字串on,否则插入
7 s+ s0 v8 O! m1 W. Q- N& coff(separator默认值",",number_of_bits参数使用时长度不足补0' r; Z0 R7 D8 E8 S$ u
而过长截断)   
& b8 m3 G/ n) W0 w* Tmysql> select export_set(5,'y','n',',',4)  ) |: T, R/ u' h+ F( _; O
  -> y,n,y,n   6 q9 T7 t& J) \% J/ ?* U7 X
* Y6 c8 ?% ]: h: n
lcase(str)  + B, G3 P( W1 q  V6 a6 V
lower(str)   - i' [; f: z! g4 h) C
返回小写的字符串str  
/ Z1 K& x: n1 Xmysql> select lcase('quadratically');  
' k& e; S5 O; p0 @2 i# p  -> 'quadratically' 4 u+ g; w8 ~& y( J/ `, Z
   
9 \9 l  u- T+ T1 E- \' V1 `ucase(str)   6 I" o! I  c& b
upper(str)   * x, d  y% O8 z% E3 ~/ L0 D2 s- i
返回大写的字符串str  
+ r% s- X3 f( `# ^- e0 r6 mmysql> select ucase('quadratically');  9 e' [9 s) y# k8 y  `$ x" x
  -> 'quadratically' : V  z" g: o) K* Z" x6 `* {0 P$ _! g

9 q3 E' k8 E2 Y! j' [# q' Lload_file(file_name)   ' J8 I2 {8 C; k3 H6 H& t
读入文件并且作为一个字符串返回文件内容(文件无法找到,路径8 Y( x; {- U* y# K, l! @
不完整,没有权限,长度大于max_allowed_packet会返回null)  / |1 v# S% ^8 ~4 n
mysql> update table_name set blob_column=load_file
& c6 i; ?" y& s" x( P  n% W6 \("/tmp/picture") where id=1;  2 b& l. n. f2 {: ~' \1 @

4 u, v( q. x/ }# b+ W! r2、数学函数
3 r) S3 u8 [" \0 C* e& r, v- Xabs(n) : Y; m: P8 T" d( f
返回n的绝对值  ) W% z3 \2 x! Z" Y% v. M5 {
mysql> select abs(2);    9 E4 M8 T; s3 }3 Z0 c8 O6 @
  -> 2   
6 ~5 y9 ?7 ^2 Q2 nmysql> select abs(-32);   
! \' B. w" O" ?2 `. h/ x$ |. h  -> 32   
6 I, C# [8 x( _  z5 R' `0 I& P9 l   
# m2 P! \! v: M% H# P- n) Osign(n)  9 W) O5 k% n# ]1 C) t
返回参数的符号(为-1、0或1)  4 `2 b# _6 x+ Q2 I" y
mysql> select sign(-32);    1 S3 I+ x4 B) ?- s$ [/ q
  -> -1    # }6 ~: r, f2 ]* j
mysql> select sign(0);   
! Z3 H% }9 F4 b9 d; j# K5 c  -> 0    6 D) S& o+ ?+ U. d% r3 ^& o5 Y
mysql> select sign(234);    - G/ ]: f# Q+ Z" v
  -> 1    3 Y+ n+ `$ _" ~+ V3 w8 {1 \
( Q/ R3 O7 ^9 S; u/ F3 u- ~: C& a
mod(n,m)   
; I: t$ q2 [, [! K; d& x取模运算,返回n被m除的余数(同%操作符)   
8 P" O4 U4 s: v3 Wmysql> select mod(234, 10);   
6 P8 `9 X) o' G3 ?  -> 4   
# @. Z- K% g0 J! x+ ^mysql> select 234 % 10;    6 p5 g2 R( q. ?8 q  x* ^1 D
  -> 4    1 D+ w2 E4 A( j' D) {" }% A/ r7 N; U
mysql> select mod(29,9);    1 _  i: b! e6 i# d" }
  -> 2   
( p: R$ A, ~$ C1 O8 X
) `$ M" r( k6 d7 H% Cfloor(n)  
! _& B$ m4 C7 K" R3 I0 Q0 D, I4 ?8 A返回不大于n的最大整数值  4 C1 |  M8 j  M- v
mysql> select floor(1.23);   
- ?' q6 R$ A- M" X  -> 1   
8 R7 b: x  G2 k1 `- `: e5 |mysql> select floor(-1.23);    5 B- O7 V0 U( i) ^& l0 i
  -> -2   
& J3 Q! g$ w8 o9 F
9 z+ |. n( c3 _) ^7 @ceiling(n)  " w  J& x: l' p1 v6 o7 n/ `
返回不小于n的最小整数值  & `0 e% s" E* K9 P' C
mysql> select ceiling(1.23);    ' D. \$ [4 h4 I6 ?+ J
  -> 2   
% \: Y) l: T4 H- M4 k8 }  M0 {1 W; ]mysql> select ceiling(-1.23);   
& ~( f: I5 w/ V# \/ o: C, L/ y) P5 \( H7 J" u  -> -1    4 }0 t6 n1 B+ ]5 N. Z4 @! a0 |
2 K, Y6 R$ o  Y' {! T1 a3 F
round(n,d)  
$ F/ K  u8 [+ q3 `! v" j. u% z返回n的四舍五入值,保留d位小数(d的默认值为0)  
8 q% Y3 l6 x* T( x+ \mysql> select round(-1.23);   
6 r. [- X( ]) k6 R8 l( y  -> -1   
+ J: D* G7 K. x8 p  a, U1 k5 t8 C" cmysql> select round(-1.58);    # {( }+ C2 R6 G5 J3 p
  -> -2    3 g5 w3 F6 N( b, _
mysql> select round(1.58);    * F$ O3 }$ D7 G" }; w, p! c
  -> 2    0 j, Z2 a! C4 a5 `6 y, p$ o9 D
mysql> select round(1.298, 1);   
4 J# J& N, R4 n4 T' \7 F  -> 1.3    % @) s4 n. l! n( ]
mysql> select round(1.298, 0);   
% ^( N. r3 v( }. y$ P  -> 1   
4 d: q3 [; ~# ~6 S0 u
) u) p1 E( N$ K$ {% f2 k8 t* c; @exp(n)  
7 @* r9 f! Q8 H3 f8 M返回值e的n次方(自然对数的底)  ! j" p) o0 G  g9 k
mysql> select exp(2);   
6 i+ `0 W, |# w3 f  -> 7.389056    & i1 z8 `2 R; A: u
mysql> select exp(-2);    : E* S  P2 P9 t& M
  -> 0.135335    3 t( \8 M/ g4 f0 a

; F. i0 s5 ?1 ?/ N3 z. Y5 ~log(n)  
4 J" F$ R# S  [" |% h3 H# W. k2 g返回n的自然对数  . i7 l. t( P8 q1 d+ e
mysql> select log(2);   
8 H" @+ Y% p- e6 [& ?! x  -> 0.693147    . J( M$ v/ l4 j" Q6 a
mysql> select log(-2);    , V6 e% j. [- \, J9 F
  -> null    6 c# B: I9 P9 X* w% g
; @5 N5 W& x8 r+ T8 e, W
log10(n)  - }/ Y3 f1 z5 y- P7 V! [# v. I- v
返回n以10为底的对数    D0 z6 R. x: Y/ B# E3 j
mysql> select log10(2);   
9 ]* G- G# I: c) v1 @4 W! }  -> 0.301030    + u$ v; ]# M0 R( m, [* B  N; Y
mysql> select log10(100);   
$ [& V: x) C  ^( p. b" N7 V% M+ R  -> 2.000000    ; Q; H4 `' b# x: V8 q0 l0 C
mysql> select log10(-100);   
& {1 V, ^4 v( S5 t  -> null   
8 i* N/ G% e( |( H  P( x' ~* G2 | ) t' `; y4 x9 j+ }# o0 O
pow(x,y)   
5 b" i0 m  r  V4 Kpower(x,y)   
1 f- ~; f. a& ]9 G) j 返回值x的y次幂  
( F" t! J; q! j7 Emysql> select pow(2,2);    5 ]- e. n' \  T9 }# N! O
  -> 4.000000    7 c5 `% F4 G2 e( v& ]7 d' C
mysql> select pow(2,-2);   
9 B4 l9 Z9 u, z: b6 T  -> 0.250000  2 h4 y, B8 E3 l- `! B: F

* J) Z2 X% @3 q) @" nsqrt(n)  
; N( F3 E" \) d1 j9 \6 D1 C 返回非负数n的平方根  
+ _9 m7 V; m, ~# vmysql> select sqrt(4);   
" o6 e  K7 m  i3 f9 l# q  -> 2.000000   
% J- S' U1 S  jmysql> select sqrt(20);    ( \5 F4 a2 q% `. D- {- v
  -> 4.472136    ( d: `2 e8 p0 e9 {  Y

+ [9 x6 `% u9 K- ~pi()    - T+ |  ~" B! q& r
 返回圆周率   
1 v2 n, u$ s9 \# Q2 [mysql> select pi();   
2 E6 M0 P1 \1 b2 m$ V  -> 3.141593   
0 V( c+ g& x+ O - B  v7 i% g0 w$ @
cos(n)  " t9 c% h+ C( B" R- t3 [) l
 返回n的余弦值  
! A7 k2 m8 L  z- W4 ?# }/ w1 U0 dmysql> select cos(pi());  
8 N/ ~- w6 ?, U2 |( A3 g  -> -1.000000   
" ?# b* X' t/ s, A
8 v7 d3 T- j$ H; \sin(n)  
0 C3 X7 Z7 I3 G6 J 返回n的正弦值   
, \0 ?1 t6 Z' g0 O! L, z: L6 z& rmysql> select sin(pi());    ! c- Z" m8 u( ^- S9 `. q% f
  -> 0.000000   
& {0 S' ^/ I8 [. n4 a 5 }" D# D1 }1 ]* c
tan(n)  
5 H: N( F2 I0 {" s$ e6 Z( G* Q返回n的正切值  
& R, [; d/ u8 Ymysql> select tan(pi()+1);    ( D/ Q4 L1 D1 u- l
  -> 1.557408   
3 e+ Q% i* x- T0 D3 D9 G
' t3 U( @: a/ G8 V' Y; Kacos(n)  
3 X- X. c3 Q% O 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  5 X' z+ i! d$ z
mysql> select acos(1);   
; ?, D: S/ H! z  J" u6 ]  -> 0.000000   
( M* d. p% x! W2 Rmysql> select acos(1.0001);    - k; d. x6 O  ]5 `
  -> null    ( F1 c9 k* e# D3 l# d- ?0 Y
mysql> select acos(0);    / W: q0 H7 a! O& N6 B% v
  -> 1.570796   
1 C' t1 t8 N, Q& Q; o" c% q, B4 _
, h6 s  {5 v! X+ |1 q" V/ ]asin(n)  ; y, A) n+ G" b4 g) X' j
返回n反正弦值  
0 H, x$ R# H# a: r* `  r0 Z; ]mysql> select asin(0.2);    ) T! H8 A) @7 c. D- B4 @
  -> 0.201358    & m* }7 X& b. {1 T" U+ _
mysql> select asin('foo');   
) v) _) z7 g5 d1 k& M! M, q/ I  -> 0.000000    * Z1 V& ]. B# U* i- R

1 Q& T% P5 n" l; x# L/ Eatan(n)  
4 q# \- ~$ K. ^# f0 \6 l/ m返回n的反正切值    M2 m/ w3 P* v$ p( B5 l
mysql> select atan(2);   
6 F0 _' ]. ]4 \* M* \  -> 1.107149   
0 o4 c" o- w" Mmysql> select atan(-2);   
. `1 u% E  e/ Y* l( p9 w  -> -1.107149    6 `1 O1 ?% k$ d
atan2(x,y)    6 |- l8 V+ Z9 R* `( T; m
 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  
+ u  C  b7 @, T2 }5 `6 N! ~mysql> select atan(-2,2);   
6 t& ^0 x* o5 N! h4 S& e! j  -> -0.785398   
. Q) G7 Z$ F( A* D  r# h" M5 |/ v2 Imysql> select atan(pi(),0);    8 S) r/ T1 Y2 }$ h6 c& z+ `; D
  -> 1.570796    ; E  e$ J9 |# W5 O
+ r/ i2 D, L; N4 k. K9 ]; T
cot(n)  
) k0 s' Q, F7 u( p返回x的余切  9 y6 R3 g" |& Q6 Q, J
mysql> select cot(12);    " r+ u* V/ q4 `5 L' L0 z( H
  -> -1.57267341    - \" ^" j" S% f% K) m
mysql> select cot(0);   
2 d; k( w8 ~2 `* ?  -> null    , N  _2 j' i0 f& Q4 O8 @& F# c" c( V

5 R( M( `9 _2 ?0 Hrand()  
! k+ }4 D7 Q, c& |& z; [2 r( Irand(n)    
6 I& z9 g* K4 t4 I返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值) 2 q+ P0 ?: u1 y# [6 f
1 r. v; U6 W% B$ R6 v
mysql> select rand();    4 @) B6 z" d* o' e
  -> 0.5925    + m4 K: m( ~; S! @8 o
mysql> select rand(20);   
7 x$ l" Z. {. |- j0 a& f  -> 0.1811   
8 `1 c: m/ G, L- ^/ s$ u: z/ F( Omysql> select rand(20);    : _3 P4 a' A/ X; y6 e
  -> 0.1811   
! u: h+ A: L8 U8 F1 Vmysql> select rand();   
5 \) n, s/ `" J/ ]3 }" b  -> 0.2079   
2 B$ v2 T8 K: G5 j+ Hmysql> select rand();    ! y/ g9 Q" D; [2 C
  -> 0.7888   
, [" d( n5 u0 ~9 @1 j6 ^- T ; Z6 [7 w3 M! W- e* \
degrees(n)  $ N* H5 h; X! _
把n从弧度变换为角度并返回  
2 q. T& i6 L* q2 [mysql> select degrees(pi());    6 e$ M! q0 i" t' g
  -> 180.000000    7 U% X5 B0 o2 B3 N6 X
1 l! K7 L3 f2 i# I. W  O! q* n
radians(n)
+ z: M1 {9 Q: F8 H4 D8 m把n从角度变换为弧度并返回   
3 F, w+ K+ ^/ mmysql> select radians(90);    ) F& r" t- Z0 M5 M
  -> 1.570796    * s8 H: K9 v! P% L* I1 ]
$ ^# N) t0 m& Z$ a" K, V
truncate(n,d)    & M" v$ j3 f' x8 V* u! J
保留数字n的d位小数并返回  
& X' I: ?1 @9 {* j( C: ?mysql> select truncate(1.223,1);   
% i+ F5 [& O. x: j3 u  }  -> 1.2    + O! E8 w; a5 X
mysql> select truncate(1.999,1);    3 R' ~5 v; r+ N8 d
  -> 1.9   
* }+ S% E# v% N( }mysql> select truncate(1.999,0);    ; J& u1 p4 K9 m8 O) b
  -> 1    1 d% w, z- ~0 Y. W; m
. ^0 G1 q+ e1 @; R5 @2 ^" h
least(x,y,...)   
& g- j! [1 l# l. }) z( u; h返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  * [7 x# @5 R) p# M; S3 M: Y
mysql> select least(2,0);    ! b3 H" [4 |6 P# t  d% }8 M- Q
  -> 0   
! J2 B) D) m( h3 ~2 g0 wmysql> select least(34.0,3.0,5.0,767.0);    & t7 c1 q' _% a4 o' B
  -> 3.0   
; q6 [5 X' L$ bmysql> select least("b","a","c");    ) R4 u# I1 ?* R8 {9 S
  -> "a"    & O4 A8 S/ W( R

$ K8 T3 W, r3 G& `$ U, A/ t. ugreatest(x,y,...)   
( h7 ]) @5 L/ |/ o返回最大值(其余同least())  
1 |! T6 `) ?  N5 C6 kmysql> select greatest(2,0);    & V7 I5 I7 a/ Y+ ^; J
  -> 2   
) r8 D. Y. S0 J, s' L' m9 |mysql> select greatest(34.0,3.0,5.0,767.0);   
5 v0 l, z9 J% S( g" D  -> 767.0   
7 Y3 T8 `' N/ d' l+ U8 Nmysql> select greatest("b","a","c");   
1 _$ E- f5 ?6 V  -> "c"     
3 f# O' h+ d" V) W8 d5 J
# ^1 ~, h1 p( H5 L3、时期时间函数 # X& L7 m, s" C3 ]& {  b5 S
dayofweek(date)   
+ ^7 H8 _9 [, F4 m5 |返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
+ R. [! D1 |8 L; z6 w' Fmysql> select dayofweek('1998-02-03');   
6 Q5 j, @# W& v5 Y; \  -> 3    5 R3 _$ t) p$ K0 h. b

, ]$ _$ b; E. o+ S+ f  Q- w; p- Vweekday(date)    " E' a1 P" O$ y6 D" w
返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 * T2 P% O( ~1 Z4 r# {( o8 e0 w
  
6 t2 Y5 V5 f5 Xmysql> select weekday('1997-10-04 22:23:00');    % V% N! g( G/ ]- p
  -> 5    % E: P3 P( H" D
mysql> select weekday('1997-11-05');    . r# i& m+ ~& J' V+ k' N
  -> 2   
/ k, i) `4 @- j7 K" M 5 @6 H! N' p! Y8 d/ x" Z
dayofmonth(date)    , z6 M; J, a6 y% _7 F
返回date是一月中的第几日(在1到31范围内)    . ]! e! ^1 H9 T1 ^( I' e
mysql> select dayofmonth('1998-02-03');    6 o; H, \( g5 v, J
  -> 3    8 ~" A7 n5 Z4 m$ Q. f$ E9 R

0 L. d$ ]) A' w$ k. edayofyear(date)    # C: p5 ^% T! b
返回date是一年中的第几日(在1到366范围内)    & |3 J+ W$ q% v7 \* a
mysql> select dayofyear('1998-02-03');    8 c6 j4 U' l, G; [. R- x
  -> 34    4 B8 `" B1 ~) k# f7 k5 M

# {1 @' e4 A( M6 n& m$ Bmonth(date)   
$ s  q9 k* l# k返回date中的月份数值   
4 K4 l9 L+ O: c3 lmysql> select month('1998-02-03');    ) ^: l# c) b* B) d5 G1 O
  -> 2   
# H/ }8 i# t, ?! R6 o8 o
9 f# Q7 q2 a+ i$ g" kdayname(date)   
$ Z6 V- c9 T/ v% o/ K7 ~' z. r返回date是星期几(按英文名返回)  
0 D. g/ e! ~( O1 r8 s7 i* ?mysql> select dayname("1998-02-05");    $ r. e! I0 \5 L, ~
  -> 'thursday'   
- \3 W: C& F2 A' [8 c - o- m* e8 P/ S3 V& A$ S. k
monthname(date)    ' T. j; Z$ t1 w8 t
返回date是几月(按英文名返回)  
# `" v: q+ k4 B' Emysql> select monthname("1998-02-05");   
8 q7 u$ _, {3 R' |8 }5 H( w, T  -> 'february'   
# b( q. D2 Q/ c: P" p( S ' G* D, P: H' T6 H# x* T8 [( ~; @
quarter(date)    4 h5 g8 i5 z1 X9 s% x! L
返回date是一年的第几个季度    - y8 Q+ ?- n9 [6 ]/ q2 S, L. H* i
mysql> select quarter('98-04-01');    5 D2 `0 T7 e2 V) r' g, Z
  -> 2    & `; K( ?( s% Y2 w# |- z# p

, U( Q/ C  z0 ?6 o9 |4 Hweek(date,first)   
. v. A, ?0 n+ U2 I( R6 F! X1 Q返回date是一年的第几周(first默认值0,first取值1表示周一是
" G/ {) [5 ?  W: y) x周的开始,0从周日开始)  
. L. [9 I9 @) ^) b# C/ M0 }mysql> select week('1998-02-20');    % n  V( G0 G1 z1 q$ y: J, X; ?
  -> 7   
! N# a; L$ @: A: p; T" Jmysql> select week('1998-02-20',0);    / p5 U+ U" S0 _2 z6 ~
  -> 7   
3 Y+ ?5 a! J, t& x& L# I# Fmysql> select week('1998-02-20',1);    + c: `) J6 W8 H& \7 _5 ~" p
  -> 8   
; W3 h  u& {4 }" U; Q
8 S2 o( p/ P( h5 y+ d. g6 r9 @year(date)   
: B# X7 w. i4 E5 J' w& s  n返回date的年份(范围在1000到9999)    ( |2 S; z. N5 c- f* b' W
mysql> select year('98-02-03');   
) B7 T' y7 d* J( q5 E. L, |( G  -> 1998   
9 G2 a2 f. `1 w. k
7 @! g. f# B1 f; y+ ^7 ahour(time)    
1 s: n; l( h. s( s+ n6 y返回time的小时数(范围是0到23)   ' [4 s' K' F) t2 W! _
mysql> select hour('10:05:03');    ' D: d, e1 k( W6 y
  -> 10   
/ a0 O& |+ f  s1 F4 X
, K( W: k: U+ z) L, [6 a& ]6 kminute(time)    & H1 O4 M0 ]: I7 R" C
返回time的分钟数(范围是0到59)   
& _+ d! k9 L1 P; kmysql> select minute('98-02-03 10:05:03');    / f5 r- @; o1 Z- D
  -> 5   
2 T! v; J7 ?7 |7 z2 `- f & P0 X; L% H8 \& B- `4 @) F5 C, }# i
second(time)    8 c6 N+ J- G& K5 c, p5 H! i
返回time的秒数(范围是0到59)   
+ a: p- X3 B0 I: ^9 E9 ~4 Smysql> select second('10:05:03');   
, F5 _3 [3 o+ I& c1 A  -> 3    % R) {' n9 |5 A6 ?3 R: i4 ?

1 M1 q) _. h6 Zperiod_add(p,n)    : g# k2 `1 G2 c2 r/ m
增加n个月到时期p并返回(p的格式yymm或yyyymm)    4 e! e+ Q5 ?$ o
mysql> select period_add(9801,2);   
0 I5 O' O  B* H) o0 M$ H  y  -> 199803    - V1 W$ U- \& `: `/ ~

+ |7 I5 t: e1 N0 i, @! T3 yperiod_diff(p1,p2)   
8 f+ c: T! S: s返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  ! K# }9 L) X. g# ]# l3 H
mysql> select period_diff(9802,199703);   
% \5 y& [' U, E5 @9 X  -> 11   
+ J5 p* [$ O  X* k0 C% w, R* ?$ [
5 `& W6 j, z" vdate_add(date,interval expr type)  / n+ g3 n* J/ o; J$ ?. g; ]+ u
date_sub(date,interval expr type)   
% \) r2 w9 S0 u9 madddate(date,interval expr type)   
2 h4 v( d# q4 h3 w1 k6 t4 {subdate(date,interval expr type)  
/ w- M) p+ B& O# B对日期时间进行加减法运算  
2 m& {& u& X8 C$ S' `- v(adddate()和subdate()是date_add()和date_sub()的同义词,也  F  g- d) D" ?$ M, X. y9 C$ r, f
可以用运算符+和-而不是函数  : S, j: s2 P  q
date是一个datetime或date值,expr对date进行加减法的一个表
2 i1 Z  T# _5 Z( l6 M0 y% M9 j达式字符串type指明表达式expr应该如何被解释  + `9 y2 Y. [- J; |/ M5 _
 [type值 含义 期望的expr格式]:  5 R. l( y. Q% U1 p1 C, x
 second 秒 seconds   
5 n* H$ b7 N! `" a  [7 _) e minute 分钟 minutes    1 `/ C, u( [: H3 q* V. ~2 V6 Z
 hour 时间 hours    * a  J1 I) R" R( m# U) f. `
 day 天 days   
& I5 B4 X+ r- Q! M3 \5 v( S/ D month 月 months    8 q- o% x8 J  _7 [0 Q' T: U
 year 年 years      \% b* J" J) G; h+ ]  P' {
 minute_second 分钟和秒 "minutes:seconds"   
9 n! g! m5 C7 a5 x! x hour_minute 小时和分钟 "hours:minutes"    + @) h# Q$ ?. ^& v0 W4 Q" q( D
 day_hour 天和小时 "days hours"    " {& ~& G' p7 t- f" q
 year_month 年和月 "years-months"   
2 n6 b; i6 ?# v& E- N hour_second 小时, 分钟, "hours:minutes:seconds"    9 \) U9 d. U( X( B5 A3 U( `
 day_minute 天, 小时, 分钟 "days hours:minutes"   
( {3 |5 Q0 v( O" q2 u2 s day_second 天, 小时, 分钟, 秒 "days
0 O5 ]1 Z, j+ l; o/ Yhours:minutes:seconds" + u. T' V3 l: Z
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个# v3 u9 M5 `/ b5 U2 J5 Z. J( {
date值,否则结果是一个datetime值)  
7 i& |7 A4 K1 e2 T% Q 如果type关键词不完整,则mysql从右端取值,day_second因为缺+ P' J/ z# T3 |& Q7 Y3 J4 M
少小时分钟等于minute_second)  1 L, i6 F% ^; h/ r! s, b# w: u) C
 如果增加month、year_month或year,天数大于结果月份的最大天
0 M: a" I7 r$ g) a数则使用最大天数)   
3 g0 H  w0 ?' B1 K) }* x' C! r  Tmysql> select "1997-12-31 23:59:59" + interval 1 second;  ; H  ~  K  U+ j) G$ O

1 N3 t, ]" \% _' c' L  -> 1998-01-01 00:00:00    2 \* L7 G. J& J  Z; j: ~
mysql> select interval 1 day + "1997-12-31";      ^; X  G3 e3 ^  k7 ^' ]
  -> 1998-01-01   
7 x7 a; o$ @+ ~- H1 ]mysql> select "1998-01-01" - interval 1 second;   
& Y" E* J! m% L( Q. Z5 S  -> 1997-12-31 23:59:59   
4 c! U1 I8 b1 `3 C* f* \/ F4 [mysql> select date_add("1997-12-31 23:59:59",interval 1
% F6 w% |* s. U$ `! ?1 h' Z$ O" [8 n8 Gsecond);   
) i6 l+ I9 ~8 r: c  -> 1998-01-01 00:00:00   
! V9 R# {5 K" a) U3 V& k% D& omysql> select date_add("1997-12-31 23:59:59",interval 1/ `" J4 k. e8 M( u6 v# s$ L0 _. @, R
day);   
: t% N8 I5 h2 a- X  -> 1998-01-01 23:59:59    ) N' R$ g' e0 {4 r+ L
mysql> select date_add("1997-12-31 23:59:59",interval
6 g8 y: C+ i. r0 W/ ~5 q" _, Z"1:1" minute_second);   
+ g2 v: X5 N( X  -> 1998-01-01 00:01:00   
; Y% ]* a) K  G. ]" Y/ Ymysql> select date_sub("1998-01-01 00:00:00",interval "1
/ p/ d) ^& s# q1:1:1" day_second);    / F" L- U1 {& N3 a: i0 s( N  M
  -> 1997-12-30 22:58:59   
2 r- d  h7 x0 ?) z; Y* smysql> select date_add("1998-01-01 00:00:00", interval "-1
' h1 _5 m/ w4 i: N10" day_hour);  
! k! i; F: m# b* ^3 ?9 @  -> 1997-12-30 14:00:00    # Q) Y- [' d" x0 Y; L7 c$ r
mysql> select date_sub("1998-01-02", interval 31 day);    1 d( {* ?3 a4 I1 X5 q
  -> 1997-12-02   
+ m  I. l% C" Amysql> select extract(year from "1999-07-02");   
3 Q  e! p% I7 q3 z; b  -> 1999    : s( ?- ?3 T  \) m
mysql> select extract(year_month from "1999-07-02. B4 x' c0 a4 \
01:02:03");   
8 K2 o0 n) F8 y9 u! Y  -> 199907   
. I" Z  c% t3 x* v4 V7 X5 lmysql> select extract(day_minute from "1999-07-02' Z( }- o) U" q1 i5 i* k
01:02:03");    1 z+ f  A0 n8 Z% a) x. v$ a
  -> 20102    - D: W" f; j% x
1 G) H; X% F# O7 e/ `& w' K$ {
to_days(date)    7 v9 W" d* \, {* ?
返回日期date是西元0年至今多少天(不计算1582年以前)  
: ~0 x) q# L2 ?7 {2 _. D7 A5 A% c; {mysql> select to_days(950501);   
$ S' q. [/ h" P( h! T% g  -> 728779   
) q, `9 ~/ F# M% Cmysql> select to_days('1997-10-07');   
, \' _* `" [" M  -> 729669   
! ~" C4 m6 Y( ~0 ^4 @0 n! q. Z- i
. }( g1 D2 m# J8 ]from_days(n)   
8 [1 S; c* _2 Y3 D& ?& M 给出西元0年至今多少天返回date值(不计算1582年以前)   
5 {" q* y/ l. ~# O. D( Vmysql> select from_days(729669);    9 f  {+ P, ^! ]1 l. I
  -> '1997-10-07'   
( J% w6 j% u# z! z# h$ I
; M9 G& @- Q7 ^+ X2 mdate_format(date,format)    4 ]  b9 ?$ |, j, X2 X1 q1 i/ v
 根据format字符串格式化date值  
& u* L- f; I  h! _$ j* l (在format字符串中可用标志符:  : b9 X/ c) o& _1 K6 o8 @' a8 ?
 %m 月名字(january……december)    7 J* c, f$ G# }# \# u8 |/ m
 %w 星期名字(sunday……saturday)    2 x) N9 G% T7 t9 B$ t8 L
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)   
" g7 }; g9 D! ?2 {1 h( }2 d# y %y 年, 数字, 4 位   
0 X/ h* J3 C* x2 u: z- P5 j( f1 ]( T %y 年, 数字, 2 位   
% v1 p1 ?/ Q/ e# D! A: q. x3 f %a 缩写的星期名字(sun……sat)    $ N$ A( ?2 T; V& B( Z
 %d 月份中的天数, 数字(00……31)    , A: p. k% V: R/ H3 q
 %e 月份中的天数, 数字(0……31)    ! @0 J5 x/ o& q+ o. Y7 S
 %m 月, 数字(01……12)    : H2 p6 N/ W# `2 w/ F# v
 %c 月, 数字(1……12)    : {) C8 M2 l4 v; C( o7 G! M
 %b 缩写的月份名字(jan……dec)   
7 C7 F5 W" z6 Y& U1 v %j 一年中的天数(001……366)   
& M& g- M1 }) P! _; K$ k$ @3 A0 Y3 h %h 小时(00……23)    3 z5 k; h, o1 d3 s. o3 r* r
 %k 小时(0……23)      g% @% R4 t! |# [
 %h 小时(01……12)    . C. u. H$ {" n; r: o/ f% M) |
 %i 小时(01……12)    5 P# i+ {( ^7 u: L/ V
 %l 小时(1……12)    # _0 v! n8 @0 V8 \
 %i 分钟, 数字(00……59)    % E7 ^" f  `. B' k2 y; {
 %r 时间,12 小时(hh:mm:ss [ap]m)   
8 V1 Z& p( A. B+ A$ ` %t 时间,24 小时(hh:mm:ss)   
3 B# T9 I( A4 g$ y %s 秒(00……59)   
+ E0 J1 C# X. h* H3 U+ l5 ]$ h %s 秒(00……59)   
4 j- E! h; p' T  f1 o& r %p am或pm   
3 M7 @: a1 Y" G& E9 C7 I %w 一个星期中的天数(0=sunday ……6=saturday )    $ g& Y# |; R+ ]
 %u 星期(0……52), 这里星期天是星期的第一天    3 O/ Q" B$ p. ~6 ~
 %u 星期(0……52), 这里星期一是星期的第一天    9 G; J/ D# g- e# R) \- Z
 %% 字符% )  
% O% Q) h: L$ Smysql> select date_format('1997-10-04 22:23:00','%w %m %  Y" o/ P) z' x1 c. Z1 M( R2 p
y');    2 s% c! G6 v. s- K% S0 B2 J
  -> 'saturday october 1997'    " G  o1 }2 b) J/ o, t) x+ Y8 D+ l! `
mysql> select date_format('1997-10-04 22:23:00','%h:%i:%; I* W6 B1 _! u& R
s');    2 M( d) Y# c3 a% P5 S
  -> '22:23:00'    7 M& J7 p7 c0 g- C1 P4 H4 a2 s
mysql> select date_format('1997-10-04 22:23:00','%d %y %a
# |9 d; c3 j  S7 c%d %m %b %j');   
2 x0 y% N, ]1 i2 G. I  k$ p  -> '4th 97 sat 04 10 oct 277'    + \7 d# R2 ~0 B7 V& e
mysql> select date_format('1997-10-04 22:23:00','%h %k %i9 }7 R. o6 ~: G" t; J6 E
%r %t %s %w');   
. p+ {5 T1 B+ |2 Q2 n  -> '22 22 10 10:23:00 pm 22:23:00 00 6'    + m! H+ z1 o- `$ L
1 _3 ~- S- S: r5 g- Y; E2 {9 m
time_format(time,format)  ( O& z5 P/ S1 @( I0 f  F8 V# L( x# _
 和date_format()类似,但time_format只处理小时、分钟和秒(其* D( t6 l2 Y7 F& f3 C$ J9 k
余符号产生一个null值或0)  
3 P" k  p# s* L; F$ Y' h
, F6 k4 b0 Z% m; j+ c+ zcurdate()     % h! w/ m1 V; \: X# o  h
current_date()  ! }7 N- B; b) Q) X' H8 }! l9 K0 w
 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
0 P4 C4 H& W' d9 F. {" y: W$ Z处上下文是字符串或数字)    : _, {9 M9 S2 E: S3 H
mysql> select curdate();   
' b' n/ p9 v( S( {  -> '1997-12-15'    * Y$ g6 W, o- w3 \8 y: ]
mysql> select curdate() + 0;   
8 p: J) V% B: z' g  -> 19971215    ' q3 A8 w. e7 w" u. S8 Y* O
3 _4 u5 l, i$ {* p$ m. \, m
curtime()   
8 n/ J; E1 `8 O: \( L" N. V/ p* z* Scurrent_time()  
- O' P9 N& A/ k% W8 ^5 I# q& p 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
* }8 X7 L  y7 w/ Y( r7 k" j下文是字符串或数字)      % ?& i6 P+ B  l$ g
mysql> select curtime();    3 V9 }( F) ~( M
  -> '23:50:26'   
) J/ X0 L' b2 W' @# q! Zmysql> select curtime() + 0;    4 @1 H8 E$ z( s0 S0 `
  -> 235026    9 v* l' d& `8 \5 g' C

- Y" l0 n' b( M) P; s1 _/ Know()    
0 c! n; E0 z' e8 ~6 \0 v9 hsysdate()    
' c! ~; H0 _% Lcurrent_timestamp()  
+ C) j& v1 Q1 W3 E 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期( F) }) r+ N% {/ N5 X5 _
时间(根据返回值所处上下文是字符串或数字)     
* V8 F+ Y4 c6 L% Emysql> select now();    3 q* C- ~) r. R0 d
  -> '1997-12-15 23:50:26'    $ V' x8 E' r% V/ a- K+ o5 ^
mysql> select now() + 0;    ' a  S5 W+ p$ P" n; H
  -> 19971215235026   
1 v* }- t0 _$ X# I* S" ^ ( V9 A% S. t9 g+ X
unix_timestamp()    4 {8 L2 Z5 [; l7 ?$ z5 \
unix_timestamp(date)    " ?! O% N* e' _, q
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
% ^- T5 k$ R% f( D数,date默认值为当前时间)  ' ]) l/ }$ z4 [
mysql> select unix_timestamp();    4 l0 v  d: E% F$ N% r  {  @; B6 L
  -> 882226357   
- b; S6 x8 m+ t' ^  l: Umysql> select unix_timestamp('1997-10-04 22:23:00');    0 g- j8 t7 N$ f$ c2 k0 l3 |- o
  -> 875996580    " ?) @# `* r8 {& ~

6 a. F" v; j. Afrom_unixtime(unix_timestamp)   
7 [) C$ Y1 R0 |以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的
) z+ b, m2 H, H" S5 m  d* g) i值(根据返回值所处上下文是字符串或数字)     
9 w" P: T2 O4 s* i7 \8 xmysql> select from_unixtime(875996580);   
) d! `8 H* W0 e# w9 N! O' U  -> '1997-10-04 22:23:00'   
4 |6 a' j/ m+ U: o$ Hmysql> select from_unixtime(875996580) + 0;   
1 Q. j! w2 U  l& D' t5 t3 |3 A  -> 19971004222300   
: l& n- B, u5 T! @4 D' U
+ m2 {3 D5 p/ s; ufrom_unixtime(unix_timestamp,format)    
( t9 ~1 G; J- t6 b, ^; k. W  ~: M以format字符串格式返回时间戳的值  ) x" [. Y( J1 P: j" J( P* t
mysql> select from_unixtime(unix_timestamp(),'%y %d %m %
0 z% Q" x; ^# r& ah:%i:%s %x');    / [: g# D1 b1 R; T3 K" u3 D
  -> '1997 23rd december 03:43:30 x'    ' P, E5 f; Q4 t( b
" C( b1 e& J% \) `3 T3 ?( o6 A
sec_to_time(seconds)    1 m1 K1 E+ J; }, S6 b1 c
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
  A6 I  d7 r4 w: Q8 [+ Vmysql> select sec_to_time(2378);    # d3 c7 D- G# V! f# l3 c
  -> '00:39:38'    9 e+ y9 ]2 U4 p8 d. m
mysql> select sec_to_time(2378) + 0;   
1 I" v- H& {  l* R  -> 3938    / Y. K- \3 W9 y" ]

) W( _7 I; M$ j# E8 d- j1 Ltime_to_sec(time)   
" t7 Z, x  z4 B- D返回time值有多少秒   
6 V: B7 M5 `' s. nmysql> select time_to_sec('22:23:00');   
% |3 M* q# h+ S- |! s" j  -> 80580   
- G! y1 T8 M4 Q9 e0 Gmysql> select time_to_sec('00:39:38');   
4 l' g+ g0 l3 G% C$ v) W  -> 2378 % I) Y  y7 W; E. W* k
- e4 {& z. W& I4 V1 {) E) |
转换函数6 ^; u* m8 Q2 [& L! F
cast
! t  x# ?' R( q用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]- B6 Y, C+ P1 Z& I# `
实例:select cast(a as unsigned) as b from cardserver where order by b desc;
# w- C' R& I% Mconvert:
' {" _" X' L3 }, ^1 {- l8 e. v: b用法:convert(字段,数据类型)
$ A. O( u; O* Z$ X( t* |实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

( a" w$ P9 |/ T' {$ L% q- `: E' z
回复

使用道具 举报

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

本版积分规则

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