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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数. y: n% Z/ n; s: W) o, ^5 ^
ascii(str)   
5 `. W% T4 o& S+ ?返回字符串str的第一个字符的ascii值(str是空串时返回0)  3 ^! |: j) j  {
mysql> select ascii('2');  ) D9 x2 ]% ]( W  s( E5 h
  -> 50  : ?6 _; X) ^' j4 C0 ^6 a
mysql> select ascii(2);  
+ {! O4 y! L+ A  -> 50  / U$ m6 }! \& `; h0 `& T  K' E
mysql> select ascii('dete');  + @4 [( i/ m" p% N
  -> 100
# K8 X/ ]8 u7 Q% X; s! k
ord(str)   ; t' v* A1 H' v; r: ]
如果字符串str句首是单字节返回与ascii()函数返回的相同值。1 t7 d& r1 q8 y" N' a) E
& X$ i9 i, D" h0 ]: w
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  
% I7 M) G" s& Emysql> select ord('2');  
3 ?' S! a$ r+ N  -> 50  
4 E/ Z6 p/ |! N' E   . f' b5 ^1 s' l
conv(n,from_base,to_base)   
0 E& y0 v0 C& ]. ^6 G对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
% O2 b$ `3 N; s, U+ d) Fmysql> select conv("a",16,2);  % M. H1 w2 d8 w" [8 }
  -> '1010' ; p* H+ D4 m! [1 @- E: |: U
mysql> select conv("6e",18,8);  1 H1 `  t7 @/ p# W& O! I
  -> '172' 2 S3 v9 ~3 B4 \( n
mysql> select conv(-17,10,-18);  ' b4 x- v; O. }4 v2 H0 k  U
  -> '-h' / |0 i0 T, H) q8 G& O" Z
mysql> select conv(10+"10"+'10'+0xa,10,10);  7 J& j, f, g) @' c
  -> '40'
( P( v: s1 x" C  _* o   
! |" s+ s8 h! [) Z. @6 ?5 Y) R# S5 Pbin(n)   
* _" B( E7 K- x0 [4 i把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
. N' u9 y8 \6 j; r; P0 Z" bmysql> select bin(12);  % f# C% F- c' E
  -> '1100' 9 F. F* [, g. n9 X
& D1 X3 H' B* C& e! H/ q/ d
oct(n)   
; h4 h( y' N4 l. }把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
; c& V, M7 C  b! X5 q( cmysql> select oct(12);  
2 E# F5 j* U% u4 o6 z8 b  -> '14' , Q$ M( F+ G8 Q8 l' e
   ! A/ F, I" U' T. [! J5 J
hex(n)   
9 Q/ _% y( e& z7 q9 q5 q* W' Y, g把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  / |, C! [, U9 ?# y/ F
mysql> select hex(255);  
6 y7 O" i# `, M  -> 'ff'
; y$ @" w) N1 ]( T. i4 P   
7 b/ N/ c  y* r5 }  I- fchar(n,...)   1 ?2 e4 N' ?1 `3 R2 k
返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   
  v3 h. i6 s4 C+ w% g2 B7 Bmysql> select char(77,121,83,81,'76');  
* b. r  {+ ], e2 G  -> 'mysql'
1 @; ^: a/ B. b& qmysql> select char(77,77.3,'77.3');  % {0 w( O5 d: T, W/ J' |
  -> 'mmm'   Q% X* }8 i: k6 t, n
   
+ x( v$ J1 Z5 X0 c& m2 X5 A' iconcat(str1,str2,...)  
7 t; A; z+ j* y% r* v/ s7 R0 \9 v把参数连成一个长字符串并返回(任何参数是null时返回null)  4 o" r2 w: l0 V8 }1 W" j
mysql> select concat('my', 's', 'ql');  
4 C7 o- ]  Q2 r% l& j# D  -> 'mysql'
. D% A. e8 B: k% Ymysql> select concat('my', null, 'ql');  3 R+ E4 P* o6 \. x$ Y8 I# R
  -> null ; {8 ]8 a1 D0 O4 \# Y: T+ f
mysql> select concat(14.3);  " Z$ h, l$ ]. \/ J
  -> '14.3'
5 i! ~) P- d# V7 O" G , H, k, s, x6 [  ^$ E8 m
length(str)   
+ w' U9 X2 L+ b# W& e& \+ Doctet_length(str)  
' a# u; O; S# \& wchar_length(str)  4 T4 Y6 ~% i: b
character_length(str)  
  J( Z3 p* N. U( a' [返回字符串str的长度(对于多字节字符char_length仅计算一次)
; w) y) a& U6 Z$ _mysql> select length('text');  - u8 h$ E4 H+ s
  -> 4  
- |  F6 K0 J2 X6 B% A4 s1 n" Imysql> select octet_length('text');  
/ y" O. |0 g) A6 G4 H" t% Y7 J* T  -> 4  
% N4 i! [: ]) D; B- X0 C1 l& ]
% Q2 r  R! [$ Q, R8 j2 _locate(substr,str)   ! D3 w8 g% v; ~
position(substr in str)   8 V. N# z" s" e4 W
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
# n5 m( h# Z, ]1 b/ Imysql> select locate('bar', 'foobarbar');  
5 @0 G8 N* k, U  -> 4  " `- K9 ?7 @0 [+ n# ^
mysql> select locate('xbar', 'foobar');  ! r- M( d* t5 K- }( A* W1 ?9 i- S
  -> 0  
' E, L, C5 s& k, W" p; V) _0 p$ S   
, H2 ^- U) [2 Ylocate(substr,str,pos) . a6 P$ n8 [! U: v" V
返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
+ J, S9 w! b3 `1 Qmysql> select locate('bar', 'foobarbar',5);  
5 q  u  b) S% A( ?9 D% R, I  E  -> 7  
! `/ _( r1 s" r, [# A
# N9 F+ F" I: d* z; einstr(str,substr)  
6 M( ?. f! K7 r返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
8 m0 @% m- g6 G0 y3 O7 \mysql> select instr('foobarbar', 'bar');  
9 h1 ?9 U/ k- p$ p( ?  -> 4  
! P7 D% ~- p  H& _mysql> select instr('xbar', 'foobar');  ! ]* z8 Z' ^& W6 w# K8 S
  -> 0   
% B  X. e* n$ d3 ?1 r 7 I$ \; P/ h" J0 w+ n
lpad(str,len,padstr)   ( z" d! n. y0 h' {: c; u6 @- `
用字符串padstr填补str左端直到字串长度为len并返回  4 H* i/ s- R' F- [3 }) ?  N6 E% b
mysql> select lpad('hi',4,'??');  
2 }% ~- {  V9 m* }  p  -> '??hi'
' G# T3 ?1 }& N3 `6 f   
6 X) J8 S; N+ k4 A5 m& f; Jrpad(str,len,padstr)   1 Q. n) l8 W- T% B8 n( K
用字符串padstr填补str右端直到字串长度为len并返回  
, Z9 {1 c: e/ z% {. K! Bmysql> select rpad('hi',5,'?');  
9 J7 V3 s9 x, P* C$ I$ A: [  -> 'hi???'
. T# T* l; c5 ~4 F, _ 8 O4 Y% R4 K; _+ c' H+ F6 M
left(str,len)     [, g7 A! |. o! ^1 ]- L
返回字符串str的左端len个字符  8 _$ g5 M; z% m' h
mysql> select left('foobarbar', 5);  
3 K, V$ H+ Y& Q8 {( ?. _* _# {6 N+ j. S  -> 'fooba' " G4 w+ d+ W4 Y4 G6 T) g! U6 }
7 o; t4 f7 H1 T4 D
right(str,len)   ) Z3 k6 i! r7 L$ N9 b
返回字符串str的右端len个字符   
3 X: a$ z/ i/ L. V0 T# X- umysql> select right('foobarbar', 4);  
# F/ i+ k5 N" S: r  -> 'rbar' : W0 `# C# d6 L. m" T5 y$ A8 t

6 \2 Z# M0 ]$ }/ l& W) Csubstring(str,pos,len)   ( v' s. m8 k/ `$ ]7 h3 \- @
substring(str from pos for len)   
0 D9 M% }1 p, b" Vmid(str,pos,len)   " F( u5 U3 Q8 B8 z) h4 \
返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
3 _+ E) G( ?, n  -> 'ratica'
6 ^8 ?( Y/ b4 ~% c6 a  k0 c 2 d; d$ }! l7 A' [; u
substring(str,pos)     [; I+ P; m0 s
substring(str from pos)   
$ a3 Z+ \) y* N! J$ B返回字符串str的位置pos起的一个子串  : v8 V4 _2 Q& l6 c9 B
mysql> select substring('quadratically',5);  ( Z9 r( W/ e: `; G! e
  -> 'ratically' / D1 H; }' R$ g3 e' F8 n
mysql> select substring('foobarbar' from 4);  
  P  c; o$ V% Y- E% W; o  M  -> 'barbar'
+ G  {  B. Q* W( N* ?+ L
2 u% v$ H. T/ O( K4 m+ l3 Hsubstring_index(str,delim,count)   1 J8 u) a0 [' U8 G4 g$ b9 S
返回从字符串str的第count个出现的分隔符delim之后的子串
+ C3 G9 S$ R: v2 s! [(count为正数时返回左端,否则返回右端子串)  5 U& F9 H- N& L
mysql> select substring_index('www.mysql.com', '.', 2);  
: a9 K* P6 Q. i/ R  -> 'www.mysql' . A# R4 u1 B' x
mysql> select substring_index('www.mysql.com', '.', -2);  
# t. w% |( Z3 [( L9 L  -> 'mysql.com' . a0 @: A( @6 `

: w) R& C4 [9 T, M6 A9 Jltrim(str)   0 ^/ x2 b# j( |/ N2 v5 B
返回删除了左空格的字符串str  : H1 f' I! s' a% x5 M
mysql> select ltrim('  barbar');  - J# f! ]7 f! e4 I
  -> 'barbar' - a1 A+ k/ V& P# e: ?

1 m- O- {! b* M/ U7 ~& A6 \0 crtrim(str)     W7 z* `" q' T2 P9 O& B
返回删除了右空格的字符串str  + L  g6 b3 M5 F
mysql> select rtrim('barbar   ');  * a# J# r5 t, T0 C
  -> 'barbar' ; h- k& {" R; A0 Y' N4 s

! `  K- k9 @3 j9 xtrim([[both | leading | trailing] [remstr] from] str)  
/ x" _% t  U2 n返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  4 b5 k, V9 D- W) v* D
mysql> select trim('  bar   ');  
: g) ^$ {. ^% [  -> 'bar' 5 }/ ^" ~9 q- ?: @+ n" o2 f2 h
mysql> select trim(leading 'x' from 'xxxbarxxx');  
+ M* C" F0 ~) X$ t5 s  -> 'barxxx'
# P  E' J3 y) O0 p3 I- f$ V! cmysql> select trim(both 'x' from 'xxxbarxxx');  + e* ~+ C; b9 h) r# D+ f
  -> 'bar'
  A& ]  {( ~4 ^% Mmysql> select trim(trailing 'xyz' from 'barxxyz');  1 j, S* f5 A: l3 P. H/ n
  -> 'barx'
- x9 s7 L5 \3 n ( l8 K; {/ z; T: a, j
soundex(str)     P7 z2 j+ ~) y( v7 d: c
返回str的一个同音字符串(听起来“大致相同”字符串有相同的
+ ~5 b2 y: y. W; P同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  
) E; ^  e& K5 ]4 w5 l1 d0 f5 e- @mysql> select soundex('hello');  ; ]0 b. m& z7 V8 ^7 i. ?& {
  -> 'h400'
9 ]& [$ X, \6 d2 M5 u& W3 Qmysql> select soundex('quadratically');  
1 g1 P8 ]$ D1 e0 r! V8 P& a2 ?  -> 'q36324'
9 m% F5 O6 c" `3 j) a   
: f- Q4 n; y% p' l% h5 w. U3 kspace(n)   0 c* M  r8 D4 Z8 B: [
返回由n个空格字符组成的一个字符串  ) Z! z4 @/ V2 Q# l5 O: r( w  ~1 \" I' G
mysql> select space(6);  0 E$ H) f1 X* r) J& Q5 ^6 f9 a
  -> '      '
# [5 b+ R8 i% m7 G$ `  _   
  o5 ]) w" G, ^/ n; Kreplace(str,from_str,to_str)   
( {: U" h/ S4 g( ^- F: _' M用字符串to_str替换字符串str中的子串from_str并返回  * J8 R. e2 }5 n, E4 o; N
mysql> select replace('www.mysql.com', 'w', 'ww');  
+ Z% ?- l  \% J5 _( _& ]  -> 'wwwwww.mysql.com' ) U! `& }( Q5 w( ]+ U& G

" u+ r7 u( A% [8 _3 r0 f8 J1 qrepeat(str,count)  
. b# p6 G! L$ D1 S! k返回由count个字符串str连成的一个字符串(任何参数为null时
8 b; e) P2 |0 D( Q' [返回null,count<=0时返回一个空字符串)  & I( p# q1 v6 E: @2 Q6 k
mysql> select repeat('mysql', 3);  
; o6 {/ W& u: B% ^* ^) D, M  -> 'mysqlmysqlmysql'
1 R( D! K- s6 o9 n' J   . N( N( b! C( r  b' {7 |; _
reverse(str)   
+ H" V" ]9 I! A颠倒字符串str的字符顺序并返回  
( Q7 H, |  U7 B3 B4 ^mysql> select reverse('abc');  6 ~) J* P5 k% n( c& L0 Q
  -> 'cba' 2 C6 W7 A$ N4 @  y3 q

$ [/ n" \4 y" O0 ^/ @5 B; E7 R4 Z+ Hinsert(str,pos,len,newstr)   - p+ C! u9 Y: _4 k0 d/ n
把字符串str由位置pos起len个字符长的子串替换为字符串
0 }9 w1 X2 Y9 c) mnewstr并返回  
' z$ h7 B# E/ ]3 q  c/ U: wmysql> select insert('quadratic', 3, 4, 'what');  
. p+ W; u) q: |8 e3 b  -> 'quwhattic'
! Y* s- G9 h9 j! r$ h- O
% y, c% Q' Y0 Xelt(n,str1,str2,str3,...)   
5 P/ \) w4 P9 r' z2 g) Z2 u' P返回第n个字符串(n小于1或大于参数个数返回null)  " B' ]  J; J0 _+ T1 B, W
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  ! _- I% I5 D, r0 U# T! E. j% k3 h7 o
  -> 'ej' + v% x( T7 A  \! ]# c& I
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  
5 w$ C6 f6 _1 D. T, k2 B  -> 'foo' 9 H3 [$ q  P- n! f8 X6 ~3 X

  h' p8 y9 I6 Z# t; rfield(str,str1,str2,str3,...)  
  {9 v- C7 s3 g8 M0 K4 F& {返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
* f' m2 O7 H- t' f0 T; |* Tmysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
' X* U, Y; M+ y" V0 n4 l9 U'foo');  # j# u& ]: B9 F5 J* `; o$ B' E- L
  -> 2  
! o1 G( k# Z9 v4 j5 H$ ^* X9 Imysql> select field('fo', 'hej', 'ej', 'heja', 'hej'," b) u9 J) V. m9 s# L  g7 [' q
'foo');  
" e& R  e  Z; u. I  -> 0  # n5 o7 S1 Z5 q4 z7 `
3 Y( n: K1 T7 B$ N8 z
find_in_set(str,strlist)   
% g& @$ d7 G& ]6 v返回str在字符串集strlist中的序号(任何参数是null则返回8 S4 N% ]& W& Y: A2 _: [
null,如果str没找到返回0,参数1包含","时工作异常)  
% n3 H. q% N! @* {/ c( ?8 gmysql> select find_in_set('b','a,b,c,d');  1 ~- p  K6 n( R1 M9 a
  -> 2  
: W% O/ e* h" C   : l/ x5 R! v& R: ~( g
make_set(bits,str1,str2,...)  
3 Q' Q( K- u" F把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
: K# x2 x* |: E$ L位置的字串选入字串集并返回(null串不添加到结果中)  & F% a5 v9 Y; a. a) j$ a, n$ z" T
mysql> select make_set(1,'a','b','c');  
1 U9 k/ _9 q- ?& q- N8 M- x  -> 'a'
1 _1 k$ a! w% O$ I- Fmysql> select make_set(1 | 4,'hello','nice','world');  + m1 n* f3 C" S6 m! c
  -> 'hello,world'
6 A, n0 @" h( S% \mysql> select make_set(0,'a','b','c');  
, z7 w; u$ q( z/ d% t  r  -> '' $ k. z% l1 u& Z' I; l
0 i6 j6 g& y; i
export_set(bits,on,off,[separator,[number_of_bits]])   4 ^  }! A' ^* O, b: ~3 h
按bits排列字符串集,只有当位等于1时插入字串on,否则插入
/ [7 d$ O" S" I: b% toff(separator默认值",",number_of_bits参数使用时长度不足补0
  [$ W$ U3 b1 r- r而过长截断)   . r* ]6 L# Z) T" g  N, L
mysql> select export_set(5,'y','n',',',4)  
0 W) V7 B1 l+ U# v# P9 J  -> y,n,y,n   5 D+ @3 K8 s/ k7 R2 J

6 U7 @  Z& m- k2 w8 elcase(str)  
& r5 z- C6 P1 slower(str)   $ |% ~: E( g2 m$ i
返回小写的字符串str  
4 O; ^: {& p- V" m8 ^mysql> select lcase('quadratically');  9 k$ F5 ]% Q( v6 y( [: t. }
  -> 'quadratically' 9 f* \& R! o; f8 j5 k
   
: J0 Q0 X& [$ _ucase(str)   
6 A! h( F& m+ m8 _5 y! o8 f; [: Pupper(str)   7 W& P# g: W7 X. K: `4 i$ ^/ R
返回大写的字符串str  / g: {$ A: Z8 s
mysql> select ucase('quadratically');  
/ W! R* Z% i, t) f: m  -> 'quadratically' ! D; T" V! k  W4 W% M9 m% ~
* A; G7 J6 F$ t3 }- {6 F
load_file(file_name)   
) m# ?/ C  Y2 Q, P6 p, G读入文件并且作为一个字符串返回文件内容(文件无法找到,路径8 V/ i9 H( I6 r) T  Q" i# W5 U* F
不完整,没有权限,长度大于max_allowed_packet会返回null)  
) K) y8 y3 d, e4 p3 g! A& L1 C. |mysql> update table_name set blob_column=load_file6 B6 q  @5 J: \7 h9 l
("/tmp/picture") where id=1;  
4 J1 l7 ]: k# V $ |* r9 J) x3 k
2、数学函数- j& Y: N+ _& O5 E% b
abs(n) 3 s* H9 t! T: h4 f7 H( V, F
返回n的绝对值  ( k; J" Q$ n' e3 Q$ F( ]
mysql> select abs(2);   
, m( z. b, A) T$ T1 S; x% M  -> 2    4 @, D8 O  @- W! f+ p' w' Z
mysql> select abs(-32);   
% C& G" Y9 O2 L  ]. L& _( a  -> 32    % L; K* s, P$ H; l7 e, B; q6 a
   5 h3 F8 y& Z. m' t1 P
sign(n)  
1 n4 ]- L& A' N3 r8 V2 {( g, I8 V( U% H返回参数的符号(为-1、0或1)  
9 c, {4 @5 F( b# q1 f3 B8 ?mysql> select sign(-32);   
8 B/ B2 }$ J4 A' E+ s5 d0 d  -> -1    - r4 z1 p( T+ g2 V0 C
mysql> select sign(0);   
: h8 k" t) W, f. r; p  -> 0    8 r# b+ Y1 a: X0 j; W# ?
mysql> select sign(234);    ! Q& x& c/ `7 i
  -> 1    ) w( w8 p( w- g

3 L1 p! {7 m7 w, Zmod(n,m)    $ Z5 g+ R$ s( M& v7 x0 b
取模运算,返回n被m除的余数(同%操作符)    1 a: `  }8 M3 `7 r& Y, Y" W. k
mysql> select mod(234, 10);    ! n1 ~* f" ^: c( `! m
  -> 4   
" @" Z0 O+ P2 c: omysql> select 234 % 10;    5 A  h, @% A8 ^% U7 s
  -> 4    2 d- Z/ e- k6 K* z! T& T5 q8 D8 X
mysql> select mod(29,9);    ( f- Q* A7 y+ j, ~( c6 I% ?
  -> 2   
. _, a/ i8 n! H
; A- V' [+ G& Gfloor(n)  6 K: l5 m% l9 L: R
返回不大于n的最大整数值  2 x' U# M3 ?% A! k  C! V1 o
mysql> select floor(1.23);    : _% c! Q! }- V5 q/ C
  -> 1   
2 e, E3 I, r; c3 [3 _mysql> select floor(-1.23);   
& s7 X3 _3 Y4 _! M  W6 h: G  -> -2   
3 g  e4 p7 k$ k! S 6 m5 t: e. t; y6 |  c+ W. b
ceiling(n)  
! G4 o/ _- p, y& V返回不小于n的最小整数值  
9 w4 q7 j5 H0 l5 umysql> select ceiling(1.23);   
8 |9 v0 r9 F. ^  -> 2   
4 W0 D& H: B$ N6 s9 Y1 D3 lmysql> select ceiling(-1.23);    4 r  N" {  D9 o0 O
  -> -1    " b8 H  w- P  a% H+ c
( S: S1 ]: q% A
round(n,d)  ! T9 ^% K6 |( z+ j5 Q! F
返回n的四舍五入值,保留d位小数(d的默认值为0)    h0 H  A% g/ P; ^& s! Y, R
mysql> select round(-1.23);    % a2 |+ l& s1 @
  -> -1   
, A1 p" M; E/ L& ~+ S- cmysql> select round(-1.58);    ) {& w# ^7 r" G
  -> -2    ' e9 ~# I: w8 k+ U* [
mysql> select round(1.58);   
/ n; O4 G  ^* {, `. o  -> 2   
$ o7 r) Z' @! N. e4 ^mysql> select round(1.298, 1);    ( f/ ]& C7 N( k0 x2 G: ]
  -> 1.3   
8 v1 [1 f7 F: D; t& r3 Q2 Kmysql> select round(1.298, 0);    & Z! Y+ B: z0 V2 k& m: H9 \* b( _  k
  -> 1   
" y2 p$ U1 K9 b7 ^* y; A' D$ L ) R9 u' Q7 v$ Z8 w' v+ n
exp(n)  
7 L- Y7 z) W2 J0 J" g7 W返回值e的n次方(自然对数的底)  
: J/ C3 E7 R. }/ J6 N/ ^5 Tmysql> select exp(2);    . l) m3 w" d6 I- {7 o) _% e8 i
  -> 7.389056   
4 t- m8 R6 }1 J, J! v; m* p- ?7 S( Z* rmysql> select exp(-2);   
4 |4 K! ^) B5 D1 K3 D  -> 0.135335   
4 {% u( S: z4 B8 e4 s! t7 n" X 6 r6 ]- M' r2 c3 b( `( B; W2 `
log(n)  9 x( U. r# v, d' a
返回n的自然对数  ' w3 i" n; f+ G" w1 l
mysql> select log(2);   
8 M5 T! p1 \  `; f$ Y3 {1 x+ ~  -> 0.693147   
; f7 v4 c0 I1 J* lmysql> select log(-2);    8 N! K9 H( n0 R; w1 y
  -> null    ! q' O2 X, H7 X+ j" y

0 L5 h8 V. k, q; ?3 A9 l/ y5 v- D, dlog10(n)  
7 O% T7 r0 R, e' V! q返回n以10为底的对数  2 ]6 X( C0 u7 I5 F0 H
mysql> select log10(2);    ' _) f4 `$ ]4 G+ Z
  -> 0.301030    ! c" p" ?- j. }$ \( b% |
mysql> select log10(100);   
, T) b4 h8 ~3 m0 q" \' e5 `9 x  -> 2.000000   
* e" |" Z. }! Z7 T! t& tmysql> select log10(-100);   
  c; I3 Z9 G7 w4 B  -> null   
0 u9 W8 A' ^0 t) l7 _, ~5 T
/ p, V& g  I0 d& Y) Ypow(x,y)    0 Z( i" V& U7 [6 x- q: ]
power(x,y)    ' U# M! C2 H; y) ^5 ^7 Y
 返回值x的y次幂  + x- l% J! k) P& G& v0 ~+ \( }
mysql> select pow(2,2);    6 m/ S3 d2 Z- ^4 F
  -> 4.000000    8 E* b' X5 n. k6 n2 ~) h
mysql> select pow(2,-2);   
. [: b& t0 I3 E2 n0 f# |$ |+ o' A1 M  -> 0.250000  
: b" W' u9 R: M" e5 D. ]9 K  Z& O
* t. {3 a' v) H" `! jsqrt(n)  9 a. v( e0 F9 z8 @4 a
 返回非负数n的平方根  6 s4 ^( J& V; Q- w
mysql> select sqrt(4);   
$ J# G8 _- z* W6 [) ~  -> 2.000000   
3 d2 T, e& |/ _4 M  ?# fmysql> select sqrt(20);   
* o& b5 _+ ~; b: v! Z) |, k  -> 4.472136    , ?6 D; z8 U$ y$ {7 c3 i

' k4 C. N* @) B6 Ypi()   
8 S% C# N7 O' @ 返回圆周率   4 b4 G/ E, n, ^- L
mysql> select pi();    ( y$ p' @/ O2 @6 N. ^( E
  -> 3.141593    / c7 |* Q% g' `

1 m8 O4 T6 d9 `0 pcos(n)  0 Z! b, \/ g9 F
 返回n的余弦值  
" q! p+ |" Y9 k% `( z% z; Vmysql> select cos(pi());  8 F% s+ w: N9 E7 ^& @5 q# f( w4 b
  -> -1.000000   
, L9 m! t: ?6 Y. s
2 ], F2 M8 t* v; F# Vsin(n)  ) _: ~* X  B5 ]
 返回n的正弦值   0 P9 q4 |0 @$ P( W/ Q: P9 m
mysql> select sin(pi());    # f5 \) H4 r8 A, L- v
  -> 0.000000   
" Z5 W6 u- N$ c
+ n2 L4 ^. J. i4 [tan(n)  
& a" Z2 ?2 A8 u% \返回n的正切值  
, D6 f6 Q0 g6 X0 t, o; Vmysql> select tan(pi()+1);    1 z- T  v, J! ?0 ^  w; T8 B% W# \6 M
  -> 1.557408   
1 r5 V' g7 z- E# p, F. v
4 n/ m! H: {' V" t- }acos(n)  
' d. U* \1 g- D( {  L8 I% S! t 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  ( t/ Q& Z8 N& W0 [. }
mysql> select acos(1);    " N) i% x! J( u: D& j1 s3 u) E
  -> 0.000000    ; S# I8 M; w  B1 {( i/ n
mysql> select acos(1.0001);   
7 r& i3 l1 |* m  -> null    : a/ X5 |6 ^  {$ ?3 f
mysql> select acos(0);    7 S( @, v3 V% J- e: Q- Y
  -> 1.570796   
& P; Q" y! m0 t0 t/ K
: v" `  l, r) I- b  D! jasin(n)  . Y6 r9 j. h( l, a0 T" P
返回n反正弦值  
1 H& T" J/ P3 Mmysql> select asin(0.2);   
$ K( f7 `0 [; C/ M* U  -> 0.201358    + O0 F, l! C* P6 p: d: W/ N
mysql> select asin('foo');   
5 ?9 F' ~- E& [- j  t+ X  -> 0.000000   
% X; x$ z! x! h0 ~/ i 7 u+ j, m2 e! _
atan(n)  
: n4 l; L1 R( X' h$ R' s2 h返回n的反正切值  
; Q3 s: }' `. R; d# C8 t+ h9 wmysql> select atan(2);   
4 e" t% H9 g. t7 R2 \7 K  ?  -> 1.107149    ' R5 o' t" Y, ~! p6 d/ B
mysql> select atan(-2);    . o/ q3 @9 m) Y, ]# Y5 W8 L
  -> -1.107149    , J  V' c* `1 m, R( Z- U. f
atan2(x,y)    : U$ S6 i& }9 M. `8 e
 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  
) c; q# V2 ~# x  C( }5 emysql> select atan(-2,2);    , r. h4 Z8 S! |0 {
  -> -0.785398   
$ Q' f4 M& F) L% P8 }mysql> select atan(pi(),0);    " s+ g% K, n$ y1 J! `
  -> 1.570796   
! A4 c% B- I- Z 5 z8 u- r, [& D% N
cot(n)  * @& M6 ^. P! @* x% G2 A; F
返回x的余切  ' n( s6 B: E, ?% R
mysql> select cot(12);   
: E3 @# D- a+ n  ]  -> -1.57267341    & K# Q. L" ?1 S$ ~% r0 A* y8 x" A
mysql> select cot(0);   
+ \8 i) h* f4 T  -> null    4 c" j0 b1 M, Q5 H

# J$ d4 o/ l7 e# xrand()  2 h' G, x& R9 J1 V6 ~. ~9 f
rand(n)    + K9 n: m; G* o" b$ W- Y. N
返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值) 2 v2 d* a$ V- R
. R( `' X/ k1 o* s
mysql> select rand();    ! {; A; ~% d8 X  x
  -> 0.5925   
) v( F$ _1 @4 @- ?) Xmysql> select rand(20);   
9 s9 y7 ~. n% Q! d  -> 0.1811    3 p# c2 n4 P4 F' K# V
mysql> select rand(20);   
+ e  W5 C: q2 y, J: P  -> 0.1811    1 P/ g! @6 O0 a7 U3 X0 S: T1 q1 g
mysql> select rand();    ( k2 q+ J# P" L3 c$ {5 a
  -> 0.2079   
: V# m) H/ o1 f+ hmysql> select rand();   
/ d/ q! f& g: n# N  -> 0.7888    7 |- H% d5 u6 ]* Z' j2 {

, J% R( U' g0 u8 k4 E- Ldegrees(n)  ! |$ b; b: \: p. Q0 @
把n从弧度变换为角度并返回  
; {$ X) {9 j4 {; [- S, ?' Smysql> select degrees(pi());    & q& _5 t$ ?$ b3 j) i
  -> 180.000000    ' j" U6 Y- S4 R% o5 u

& v4 ?) z4 b; @8 K( ~radians(n) & g% ?, Z5 L- r+ _6 ^  @4 A
把n从角度变换为弧度并返回   
; Q3 Z4 }4 r* D  H# ~) K( u) i2 [mysql> select radians(90);    1 {: |" O% x; e, m/ `. D; x
  -> 1.570796    0 E& X+ y# ~: r% E1 U/ s8 q
9 s. Q1 h1 q6 T0 K) @6 R
truncate(n,d)    # A  o! m/ [  n8 X8 o
保留数字n的d位小数并返回  
9 w7 P$ v/ ^- @mysql> select truncate(1.223,1);   
0 V* e! N# a: ^* L: o  -> 1.2    ; b* t3 P- `- j9 ?8 B' f- L
mysql> select truncate(1.999,1);    # t- d0 L6 A/ E3 ]: C0 w; K
  -> 1.9   
/ |' q8 P- T2 `5 {/ O* K% e! jmysql> select truncate(1.999,0);   
& Q2 |( V2 I9 t2 F- J7 ~  -> 1    4 h6 E# ~" w( W; F

5 |( ]' p3 k8 zleast(x,y,...)    , \1 P' ^* [- L% Y" T
返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
3 Y+ k6 v6 ^! x( W7 a, }mysql> select least(2,0);   
, G5 d' O4 `$ ^/ ~  -> 0    ! @+ T8 D9 J. O
mysql> select least(34.0,3.0,5.0,767.0);    2 k8 w% Q) |, T
  -> 3.0    & Z4 m" q' m1 u9 v; O
mysql> select least("b","a","c");    # z! i, i3 R+ c) x+ Y4 i
  -> "a"      m6 u8 P. b1 \

: }  g8 K% |6 K; t) \greatest(x,y,...)   
- \+ `( ~8 j4 N返回最大值(其余同least())  3 l4 u* Z, M9 w6 I
mysql> select greatest(2,0);    % A! v3 B7 W9 G- ?0 G2 b# \
  -> 2   
9 n; N6 H9 H/ ~* E8 ?7 J7 n" w2 Vmysql> select greatest(34.0,3.0,5.0,767.0);    5 [7 d) d, Y+ c/ j: j
  -> 767.0    " C0 ^: h( s6 ?: q+ j( t
mysql> select greatest("b","a","c");   
- i, x3 [/ f5 y. [3 d  -> "c"     
5 j, k  }% O! P; ~7 F* [! f& A
  e; N3 N( Z! G# [3、时期时间函数
& k+ E: b- G+ H+ W$ Z! x. ?9 rdayofweek(date)    7 X' a. X- s/ S* w
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
! E) L: E  P. i6 Q- y( fmysql> select dayofweek('1998-02-03');   
! L7 a8 S+ @! o* w  -> 3   
! L' J2 S+ Z4 i  K; i & W6 E  c7 q5 Y6 _
weekday(date)    " X; B/ i% z! G- u
返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 : I# o  r! i: ]- P2 h9 F
  ' Q$ [( Q: k7 v+ w: h: ~1 i1 h
mysql> select weekday('1997-10-04 22:23:00');   
" o% P& K1 W9 g( S* B/ T  -> 5   
: @" k$ T$ {' n1 Emysql> select weekday('1997-11-05');   
& b, W9 h) ^, u8 b  -> 2    7 P* N: z1 |3 M" F
7 U4 H- O" d: j! f
dayofmonth(date)    
/ E/ ?6 m/ d* y' O4 H! ~) T返回date是一月中的第几日(在1到31范围内)    ( R& k( K' N6 v0 ], ?
mysql> select dayofmonth('1998-02-03');      Q7 K2 a) d3 X$ }% a
  -> 3   
6 v) M5 P: \" y5 E! F
" N; n0 s* v. r7 c. edayofyear(date)    - P9 {" o7 b# r6 f* I4 E
返回date是一年中的第几日(在1到366范围内)    * s3 I# {; j9 f( ]
mysql> select dayofyear('1998-02-03');    . B2 p6 |1 j5 |; s1 z; R
  -> 34   
5 V# H2 {% |9 y3 ~( D" { 1 V! ]6 @2 Y5 H. j  Y+ d, E2 ^
month(date)   
/ k  G( F( F, w3 E7 p返回date中的月份数值    : Y/ b2 O0 a- }& z
mysql> select month('1998-02-03');    1 B/ _  S  a* r" D/ c; b5 c* P
  -> 2    5 c* W, h" S5 N0 n
  d/ L* m5 d$ t0 p
dayname(date)   
( ]* q8 D  L8 t& s6 e5 U; d) |: m返回date是星期几(按英文名返回)  6 F2 K# U# E/ k7 d% [
mysql> select dayname("1998-02-05");   
9 l# Q- y% }3 l/ f* Q5 I$ I% I  -> 'thursday'    ' i1 C+ A: q6 ?  i
) p% u( U4 N! f. J
monthname(date)    
/ y& r/ k' O* E7 i7 Z, f  w返回date是几月(按英文名返回)  - S3 r- z& v* W) x) k3 B
mysql> select monthname("1998-02-05");    # K5 Y+ X! {5 ]2 w( E; d
  -> 'february'   
0 Q6 _) G5 U/ y- ~3 G( W
* j- l! a' M! c8 B8 equarter(date)    " q1 T( r- }  y" j3 X$ d1 @& N
返回date是一年的第几个季度   
% I  S6 n+ A* E2 G0 F/ ^mysql> select quarter('98-04-01');   
2 _( N$ y9 G# [7 r' G- C" d  -> 2    # L- g8 `- x( |1 O6 m, ]

0 M& I$ O- p% N1 u, gweek(date,first)   
* n$ F- l5 U$ X/ {9 h返回date是一年的第几周(first默认值0,first取值1表示周一是
1 {! \$ [: ^+ v+ ?3 l. f9 v周的开始,0从周日开始)  
8 t: F' W! c, [9 O! ^( t+ zmysql> select week('1998-02-20');   
# g+ \3 G' _: P) m9 n7 D  -> 7    6 [( T3 }2 h# f$ c- W
mysql> select week('1998-02-20',0);   
  d/ N  R6 g$ ]( a- F! \  -> 7   
7 p& ~5 I, I5 Hmysql> select week('1998-02-20',1);    * b: b+ M& A. B+ R5 h
  -> 8   
& `( u8 l* A  n8 t! d * H8 X  T+ f+ q( ~2 A
year(date)   
8 H* P3 b4 v, N+ ~4 C: G3 x返回date的年份(范围在1000到9999)   
; Y; b  \# w6 F4 d. {: omysql> select year('98-02-03');    8 }; z5 A5 J+ O( h% |4 B
  -> 1998    4 l% `+ Y  s7 k3 m, {  s

. R6 r( b3 g1 E) h1 t7 f/ Xhour(time)    ; g% n* [. W: Q
返回time的小时数(范围是0到23)   
3 P, x7 Q$ G5 cmysql> select hour('10:05:03');   
  c( z$ b0 L& |& N# v! K1 ?  -> 10    * w+ y/ w, X/ V% g
+ X+ }( m  i. B, ]- i
minute(time)    . Z2 b& r: T& [7 i$ z6 }# c7 m0 I
返回time的分钟数(范围是0到59)   
% w  @- ~* r" Qmysql> select minute('98-02-03 10:05:03');   
  E7 Z% I" H( |) ]3 y, X" n  -> 5   
4 I! y% Z* l3 L+ j" a
) X" l8 |7 v% r+ k* ]second(time)    . V( a0 m4 V( W& Y  Z* |
返回time的秒数(范围是0到59)   " Q, u% H1 B" F
mysql> select second('10:05:03');   
5 s% u: }- I' }2 ^" P  -> 3    8 _6 c( Z, ]0 c* ]! s' k
* o! f! o4 G( E# J/ g; {( i6 V
period_add(p,n)   
' ~' V9 m6 H/ z( k' @2 M增加n个月到时期p并返回(p的格式yymm或yyyymm)   
% G$ H: N  X7 \( R" F( G! pmysql> select period_add(9801,2);   
1 }* a9 }$ A' c% }$ ~7 c  -> 199803   
9 L# w) T+ j8 `# @& ~" u
6 f; {' G3 q) lperiod_diff(p1,p2)   
! B( B; Z* Q. \$ I4 ]; W返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  
# g! _- w$ Y% o) {7 dmysql> select period_diff(9802,199703);   
1 w0 c+ [0 u" t8 W# S; m+ s. L  -> 11    0 b4 \* k' z/ N, f: v! Z; n
; Q6 q6 r; s( h9 S; S" O
date_add(date,interval expr type)  
! @; z+ x- m! \1 V: Zdate_sub(date,interval expr type)   
7 h. r5 E/ z% X$ `adddate(date,interval expr type)    - {% ~5 ~% h* _
subdate(date,interval expr type)  , W' N# a1 S. Y8 J3 `
对日期时间进行加减法运算  . h" Q. ~' Z/ e/ f  |" d( d
(adddate()和subdate()是date_add()和date_sub()的同义词,也0 h! L- v; |' h; d
可以用运算符+和-而不是函数  
3 H" ~* N  P: d$ Q7 L# mdate是一个datetime或date值,expr对date进行加减法的一个表
: w* o. L0 o7 `' a1 G达式字符串type指明表达式expr应该如何被解释  " ~* x0 i% _  X" p5 v) E2 k
 [type值 含义 期望的expr格式]:  * u; k; j6 H0 U2 x* ~
 second 秒 seconds   
' _( V8 S  N) O. v  w4 o minute 分钟 minutes    $ {! y  r  h6 Z4 C0 ^
 hour 时间 hours    : T  `( d4 k; x: C, ]: x8 h
 day 天 days   
  C( L! S; O$ k9 W) K, C month 月 months   
; Z& a0 ]: U# p6 h" _ year 年 years   
2 |7 X! q0 z+ a minute_second 分钟和秒 "minutes:seconds"   
. y) {1 O+ X* E* B/ T hour_minute 小时和分钟 "hours:minutes"    , d3 M/ n0 O- ~3 ?+ X, i, F
 day_hour 天和小时 "days hours"   
& _3 {8 L. u0 X year_month 年和月 "years-months"    - t. B  @% }5 r/ ]
 hour_second 小时, 分钟, "hours:minutes:seconds"    7 G7 ]$ ^2 Y7 c6 {3 n7 @
 day_minute 天, 小时, 分钟 "days hours:minutes"   
1 c4 p) [; L3 x day_second 天, 小时, 分钟, 秒 "days8 |0 l* {% U, y. e# y( J
hours:minutes:seconds" 1 [  x1 l( h  b; q3 c
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个! |7 |, N2 d" d; W" }
date值,否则结果是一个datetime值)  
8 k9 f! j- i7 R) p" I* ~ 如果type关键词不完整,则mysql从右端取值,day_second因为缺3 R3 N6 l% _! @, P5 L
少小时分钟等于minute_second)  
4 D5 C/ `1 Q6 z2 c2 H 如果增加month、year_month或year,天数大于结果月份的最大天
% J1 b7 Q) k! c6 S/ i# ~% \6 c数则使用最大天数)   
& a) y7 r$ q  P& Q3 |3 m3 D( `- }mysql> select "1997-12-31 23:59:59" + interval 1 second;  ' L4 Z) I$ d1 Q: ?

1 w4 \3 b- k# c, Y3 H7 H  -> 1998-01-01 00:00:00    : n1 S4 m2 ?9 H/ e- u
mysql> select interval 1 day + "1997-12-31";    # C6 S+ b* O/ z
  -> 1998-01-01    ( T- E1 \8 o/ V; c$ f$ y
mysql> select "1998-01-01" - interval 1 second;   
, U; I' `; r4 n9 ]8 x  -> 1997-12-31 23:59:59   
$ d# ]1 U. }- j- M4 Y: y. Smysql> select date_add("1997-12-31 23:59:59",interval 1% Q" P2 q7 G! y& R+ w' K1 ]
second);    & D& \, }3 \* \; o# o
  -> 1998-01-01 00:00:00   
# i/ x' g& _  t, ]/ C+ hmysql> select date_add("1997-12-31 23:59:59",interval 1( G9 {8 E! E% z+ y
day);   
3 s/ O5 X: `( b$ m' G8 i  -> 1998-01-01 23:59:59    9 h  h, N  T  b1 \
mysql> select date_add("1997-12-31 23:59:59",interval+ ^* T8 b  \2 D& C  D9 c
"1:1" minute_second);    ( ^& Q" p0 T9 c; i' _
  -> 1998-01-01 00:01:00   
1 O8 ?7 L* x' _' V6 ]: qmysql> select date_sub("1998-01-01 00:00:00",interval "1
% g3 g6 h: x4 `1:1:1" day_second);   
& M" M5 x* s- q0 f+ h: q4 P4 ]1 x  F  -> 1997-12-30 22:58:59    / |8 n4 G4 H! N0 @2 e4 I" G; b
mysql> select date_add("1998-01-01 00:00:00", interval "-1* a8 r- Y  H9 k8 B3 w/ j
10" day_hour);  
% `3 j# a( N1 ^  -> 1997-12-30 14:00:00   
/ C- n- e% d' l" rmysql> select date_sub("1998-01-02", interval 31 day);    - y; r- D) M/ T6 b) G0 X: p
  -> 1997-12-02    5 B1 f! R8 a0 V
mysql> select extract(year from "1999-07-02");    , y+ ]- N5 Y& m7 [. W
  -> 1999   
! o# T' ~7 `9 s- umysql> select extract(year_month from "1999-07-02, F/ E1 g9 H' n* {
01:02:03");    ! P! [% h" c" A( I
  -> 199907    7 C: z% k& \! D" A+ u! H1 z' _! K
mysql> select extract(day_minute from "1999-07-02
" K5 i8 v. t( P9 }* s01:02:03");   
, k# a' W8 C) B. t1 E  s' P/ t" N  -> 20102   
% f5 p) r4 ^8 x2 R: L
. e, V+ A2 G  E* C2 ~$ X) ^4 |to_days(date)   
; C) ?4 S4 a1 |% g1 n返回日期date是西元0年至今多少天(不计算1582年以前)  9 ~! ?* o7 K6 o+ i3 t9 R
mysql> select to_days(950501);      Y, S& k) b" G9 M6 g! T- d
  -> 728779    : w& |% I0 U4 g: E
mysql> select to_days('1997-10-07');   
) K9 J; ~& t% h' q: F* K; f  -> 729669   
, ~6 A  R) D& ` - t+ P" _) h' F
from_days(n)   
+ C. a, X% S+ D" a8 E! L9 E- s 给出西元0年至今多少天返回date值(不计算1582年以前)   
" F' U0 ^' Y6 pmysql> select from_days(729669);   
" a8 c# i8 q6 p  -> '1997-10-07'    . E7 L# k$ \) m4 i
" `4 ^4 \( z, e6 j3 b0 ~
date_format(date,format)   
  }9 M# h+ K+ [- j- D% y+ `$ L; z 根据format字符串格式化date值  * l7 B4 L5 Q" b& {2 C; g
 (在format字符串中可用标志符:  
. g& v; F2 s5 a1 U# Q  O %m 月名字(january……december)   
3 C( J& b, R* ?4 b %w 星期名字(sunday……saturday)    ; r- j( r" Y6 j" s: g: K
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)   
+ I& u7 G) Q' w# M %y 年, 数字, 4 位    4 l( d4 K# j/ C( C
 %y 年, 数字, 2 位    8 g7 m- M3 P4 J8 I8 z- ]
 %a 缩写的星期名字(sun……sat)   
3 ~5 l0 w2 f1 ]. G+ _# H %d 月份中的天数, 数字(00……31)   
# L3 ]# V7 A8 S+ }2 j %e 月份中的天数, 数字(0……31)   
( b- a" q4 J. _" P1 t8 q8 ~ %m 月, 数字(01……12)   
2 h6 j! S/ b' ~3 L/ B7 M2 ~ %c 月, 数字(1……12)   
0 s% A, B* p5 V* |) ] %b 缩写的月份名字(jan……dec)    " M1 N! g) G2 L$ {
 %j 一年中的天数(001……366)   
' d7 {& p3 ~0 U: z, b4 P; N %h 小时(00……23)   
* M& P: r9 ?8 i2 m" c1 |  w %k 小时(0……23)    + v( Z, L9 Y, z& Z0 f; u' \) i* }
 %h 小时(01……12)   
7 U8 c/ F  c7 s% l& u9 g %i 小时(01……12)   
4 g* a+ N3 V% M %l 小时(1……12)    - C* v9 F5 r' t4 [# o6 J
 %i 分钟, 数字(00……59)   
1 N* X, @) J; o0 w% w %r 时间,12 小时(hh:mm:ss [ap]m)   
6 S1 Y8 X. N# w %t 时间,24 小时(hh:mm:ss)   
4 [/ G1 l& X$ q- q+ v6 ~ %s 秒(00……59)    2 @. K1 U0 Y' t& ]# U
 %s 秒(00……59)   
) G8 o+ L) Y: @ %p am或pm   
1 V) F% S  b9 m  y' Y %w 一个星期中的天数(0=sunday ……6=saturday )    + y( s/ a' K& r& ?( _/ y
 %u 星期(0……52), 这里星期天是星期的第一天   
/ }" D2 o, J$ i2 ~ %u 星期(0……52), 这里星期一是星期的第一天    ! Q! ]5 L) K; z% }1 D
 %% 字符% )  
# g; o3 ?3 r* @. {1 B5 Jmysql> select date_format('1997-10-04 22:23:00','%w %m %
! {) B; v4 W& i/ I- Ly');    ! A: }: d" y0 \4 Y7 S0 Y4 A9 }
  -> 'saturday october 1997'   
2 r. f8 L& G7 o" q& Q+ U6 r& r: T/ Hmysql> select date_format('1997-10-04 22:23:00','%h:%i:%
; }+ |/ N" w0 Z- D. K: Q; o5 Xs');      Y  Y3 z  o7 w! c  p6 O
  -> '22:23:00'   
2 V. a1 W0 V) \9 ^2 l& rmysql> select date_format('1997-10-04 22:23:00','%d %y %a$ ]3 H5 L3 j: e. i5 Z
%d %m %b %j');      y& v4 F' j# I: N' X% Z
  -> '4th 97 sat 04 10 oct 277'   
& _5 b/ q# G3 kmysql> select date_format('1997-10-04 22:23:00','%h %k %i! h  F) L  g4 X! h5 j1 y- H/ L/ N
%r %t %s %w');    : O; p0 x2 t" z# D& \* ^+ Z9 c5 F1 K5 f
  -> '22 22 10 10:23:00 pm 22:23:00 00 6'   
) M4 A; y( {8 C4 T5 B* M" {( g4 H . S$ {. T0 c+ ^. E' e
time_format(time,format)  
9 w+ q' V& C. B/ S- N7 H1 b/ M  | 和date_format()类似,但time_format只处理小时、分钟和秒(其
, O8 [% R3 D9 r% M余符号产生一个null值或0)  # H7 C! O) X8 y  i) }1 K; a

$ b) d% D* K) O5 xcurdate()     ! A6 O0 c* ^4 k
current_date()  
4 e  i5 X8 [2 L8 b- e0 ] 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所0 X# f3 d7 J; U1 S# z5 I
处上下文是字符串或数字)    . Y5 X2 _3 G, f  E
mysql> select curdate();    4 q8 p, v8 |' v5 N2 N
  -> '1997-12-15'      z9 N+ a! ]* [
mysql> select curdate() + 0;   
0 Y: f; u: B% o4 A7 y  -> 19971215   
( L. e" _# o4 \  y( J' u4 y2 e / ?" o) [. p4 l
curtime()    * K9 g* X; s8 ~# H. X
current_time()  & }( T$ C2 S! w# o
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
! ~4 v; W% r' R下文是字符串或数字)      
$ b' k: A/ g' V" R( E; wmysql> select curtime();    + {1 I9 E+ k: d( w; ]! O7 O
  -> '23:50:26'    . C4 q  D# M! n* N9 g! u) N
mysql> select curtime() + 0;   
3 I' }8 c9 A: @) `& S( t  -> 235026   
% ?' b% b2 `+ \, U9 x3 L" p 8 r, `( L& Q! O4 W) x4 [
now()    % L- W6 K: g5 x- B( S( S  I
sysdate()    
$ B* y2 I; A9 m2 o. lcurrent_timestamp()    {. ]5 M7 b' t% q
 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
4 p' y9 r5 _; a+ d5 ]时间(根据返回值所处上下文是字符串或数字)     1 l$ a; l  M0 P: a
mysql> select now();    : s# z% h9 X0 g9 a3 n
  -> '1997-12-15 23:50:26'    6 e; R9 k" n& I% J$ @
mysql> select now() + 0;   
/ w$ b5 r8 y. ?8 D  -> 19971215235026   
) H8 @% C% c. |; `' t1 Q  f3 ~
8 t1 g: S* Y' z( f; dunix_timestamp()    3 |" Z/ G" T5 K% N9 @8 F5 e  `
unix_timestamp(date)   
8 @4 k% T% M8 p$ W: t2 @' T返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒0 \1 t3 U* D6 A1 d1 v3 D
数,date默认值为当前时间)  
9 \+ E. R7 p7 F! Lmysql> select unix_timestamp();   
9 [) ^% S# U( W, O9 G1 y" [4 N  -> 882226357   
& X1 h. J6 `# B. [mysql> select unix_timestamp('1997-10-04 22:23:00');   
" e& X* |5 w2 y# [' @  -> 875996580    ! i. j$ p. x3 W  V! r  M
3 a3 T( b8 W2 P+ `3 @( Q
from_unixtime(unix_timestamp)   
4 J# Z, I7 @' Q2 ]8 x, C% q0 S以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的, [' ^; `8 @) i; M5 f( Z% @# i6 L& i
值(根据返回值所处上下文是字符串或数字)     
# J! N+ v7 q9 w( ?mysql> select from_unixtime(875996580);   
) {/ l6 ?4 X0 _. M5 D  -> '1997-10-04 22:23:00'    / ]3 c4 I4 n/ S
mysql> select from_unixtime(875996580) + 0;   
. O6 t2 \5 z0 ^; c! U  -> 19971004222300   
) Q, [. _3 A% m7 s+ G6 m 1 g' A3 x3 f, N* g9 M
from_unixtime(unix_timestamp,format)    7 |2 R: {/ [- _) X* x/ L( C, V
以format字符串格式返回时间戳的值  7 Y: b$ c- `0 S2 T' Y- X# o$ E8 L
mysql> select from_unixtime(unix_timestamp(),'%y %d %m %9 k( a; h8 g1 o
h:%i:%s %x');   
1 D$ f9 K+ f* W- D, A  Y  -> '1997 23rd december 03:43:30 x'    " y4 H2 d3 b/ d: T

/ p% [* L1 m( y/ vsec_to_time(seconds)   
7 e9 }! O# R  D8 Z4 D6 C以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
) O; Q! B9 g7 S8 ?+ j. j+ h8 O' c- Bmysql> select sec_to_time(2378);    # ~9 v' i$ L! U) e1 {! h" J# e
  -> '00:39:38'   
: y; t' \$ @8 P: f) T' S6 ~! R1 fmysql> select sec_to_time(2378) + 0;   
# C6 w  l+ l! r- [7 A& C& S  -> 3938   
9 _  d) D. i  c. ~0 {/ ] ' A) z5 p: z5 Z6 v2 v- h
time_to_sec(time)    8 o5 B, S# q1 K! a% k  I9 `' \  q
返回time值有多少秒   
2 i6 b- V7 H3 W* bmysql> select time_to_sec('22:23:00');   
9 ^) V3 _9 F, i3 S5 ~. F  i! }! N  -> 80580   
5 A9 \1 ]8 q, q. Umysql> select time_to_sec('00:39:38');    & _: J+ i+ p* k& I3 G
  -> 2378
$ S* Y( L8 Q$ D! ~6 ?
0 b, `8 @3 [) Q4 E+ a+ V; y转换函数
: n: p2 o$ e, E- j9 }+ ^5 acast8 }4 v0 `% m) Z' Q6 E/ m
用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]
0 B2 C% K- T  B  l  s" v实例:select cast(a as unsigned) as b from cardserver where order by b desc;
, R! ?# c# L% a1 \: Bconvert:9 Z' ]# I6 ?. S7 ~# L8 c
用法:convert(字段,数据类型)
2 d$ P! n; I8 F  x+ a" T7 L/ m" f实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

7 r; T& r- \7 H8 @1 [8 D; {7 f; l
回复

使用道具 举报

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

本版积分规则

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