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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数# P5 _$ U% @- C1 {
ascii(str)   
7 l3 P+ N8 @5 i( ]( m) {返回字符串str的第一个字符的ascii值(str是空串时返回0)  
) K1 |& [& c8 ^* a" s. k: Mmysql> select ascii('2');  
* ^& c, e# q- R  -> 50  
0 H# y' T" l' B7 Hmysql> select ascii(2);  
+ ?3 Z2 u! ]; X% ^0 F  -> 50  
2 C. ]1 p1 _5 K' Q- `" _' Amysql> select ascii('dete');  / H; F" U* D. R, a  n) S6 A
  -> 100

) `' ^' i) n7 ?ord(str)   8 |0 b" C3 `# Z! `
如果字符串str句首是单字节返回与ascii()函数返回的相同值。
3 C) O# ]1 x2 s" [  ~3 D
  U$ w1 e. V7 Z! p+ V4 p2 L- b如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  
+ W2 p( y2 b$ X- Ymysql> select ord('2');  
& m. S0 j) P0 |2 G  -> 50  
) d( ^: _2 y3 x4 `   
) Y/ X: O+ r% v+ P' }conv(n,from_base,to_base)   " u) D0 l: ~& M5 W
对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
+ n* Y4 {/ j  u# ?; g3 Xmysql> select conv("a",16,2);  : r9 b5 a7 Z0 f/ Z
  -> '1010'
& r9 q1 D# I  Q: g4 p& Fmysql> select conv("6e",18,8);  9 Q" A2 `5 s, d$ D4 n
  -> '172'
( N4 ^5 A2 V" d% `  U6 Lmysql> select conv(-17,10,-18);  
7 ^: _5 Y  W( ~  -> '-h'
& h7 j+ B0 p, ?% N* a) Mmysql> select conv(10+"10"+'10'+0xa,10,10);  
& g; f. X( t) E1 }  -> '40'
. I4 k4 T0 c! R- _+ m   1 {5 ?; {1 v$ i) D5 r6 Z
bin(n)   
6 u8 v/ b4 [2 W1 \' u2 R* g! E2 i, x把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  " g* N" u0 q( O" a* @, E* U
mysql> select bin(12);  
8 _0 q$ J/ v1 ?( n4 K3 \  -> '1100' & r+ a' a! g8 ]! w% t* y
; C& X7 Z; o3 N
oct(n)   4 b+ M. N& |' J& ^6 z/ M
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
: s2 |% S) j, @1 g: {8 r5 Y, qmysql> select oct(12);  
% n% Q& ?8 v; Q) Q8 W  -> '14'
0 L/ W8 ~6 _8 ?( s, t) x+ L   
8 G% W6 z/ U. D* A, t  A( b: Ihex(n)   
3 F5 ~- ~8 ^: n把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  
* Q$ U+ |: Q3 [mysql> select hex(255);  
$ K: N9 n! @; Q8 I. S0 [  -> 'ff' ( M; p7 g0 ?" T: n7 A
   - J5 G1 L! z2 i9 u
char(n,...)   
+ K( B/ v; V- Y+ Y5 d6 ?返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)     a) U, r1 u3 J1 ]1 ~
mysql> select char(77,121,83,81,'76');  
3 h1 z. y* x& O9 P9 O  -> 'mysql'
( i) }4 N* `$ s/ I0 M  f; w# C( ymysql> select char(77,77.3,'77.3');    S4 y& W' @& g: u' \
  -> 'mmm' ' l# q- u% D6 k
   
2 k9 X4 T/ r, @) P+ }: uconcat(str1,str2,...)   3 {8 o: Q, _. |, V
把参数连成一个长字符串并返回(任何参数是null时返回null)  
' Z* j& `/ J( I1 G" Jmysql> select concat('my', 's', 'ql');  
- J6 N( B0 S. T  q  x$ S  -> 'mysql' 9 P: x, [+ I- I. M% z' \
mysql> select concat('my', null, 'ql');  $ Q2 T4 v7 r$ \! |+ }3 @0 F( @; Y
  -> null
! Z1 g6 B+ ?: x1 a6 w% G7 z  Fmysql> select concat(14.3);  
3 R4 Z  u/ K; K9 n/ t! z) }  -> '14.3'
1 D" V( G0 J3 y3 d5 C+ n2 B8 L
  e$ c3 z$ h# @* `length(str)   
" B# J' Z0 E, O' Boctet_length(str)  
/ N* y6 m% w! v7 _) j0 ~% p) Bchar_length(str)  
! g0 V2 c  P% m, e& fcharacter_length(str)  9 q! o8 @$ F* @& Y0 x0 \
返回字符串str的长度(对于多字节字符char_length仅计算一次)
" q  y  s0 d& {9 W5 M8 Xmysql> select length('text');  
0 @( c& \" o5 S5 O$ @8 o  -> 4  % T4 y& b1 o/ z2 I2 X9 p0 Y
mysql> select octet_length('text');  
- h" m) |0 _2 \" J  -> 4  2 a, O7 V6 x% [0 d, [5 G: r" _

9 T) _3 [. T$ |locate(substr,str)   9 |( d" a5 I, V/ J3 C8 l  u! J
position(substr in str)   
8 k+ B* E, A) E! z返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
; A: }1 G4 a9 a# V8 b7 v  U7 p  nmysql> select locate('bar', 'foobarbar');  $ F& ~, S3 _. I& i9 O1 Y/ Y& R
  -> 4  7 r1 p* [4 T; `5 ?
mysql> select locate('xbar', 'foobar');  
/ y5 y. ~9 k7 C- a, H  -> 0  
9 A  M4 C1 p; V$ b3 I$ `1 O8 G; z6 Y    $ J; t/ V& M5 k
locate(substr,str,pos)
  ]& i% I$ h- f! ~9 I: Y返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  1 d3 _! v  g' _) c- G5 d
mysql> select locate('bar', 'foobarbar',5);  
3 d& s' U/ F6 i1 k8 F  -> 7  
6 |( r1 G2 t. x( v: z( u
0 |' U. h) x' {instr(str,substr)   # @! R, d/ a' ^+ F
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  ) ~* a# V  U3 I
mysql> select instr('foobarbar', 'bar');  6 K4 p3 B7 e, D* Y  L
  -> 4  ; b  d; T3 h; Z$ ]
mysql> select instr('xbar', 'foobar');  
; @8 q3 m2 Y+ f" C# M# H  -> 0   
0 F" v' W* J+ Y) V/ M, i
4 _% z5 u3 Z' h0 {; @lpad(str,len,padstr)   
! _8 e0 x& d+ i7 T5 N% {用字符串padstr填补str左端直到字串长度为len并返回  
1 l; D: G& m" `0 W& rmysql> select lpad('hi',4,'??');  3 ]4 i, l9 A3 h* {& D
  -> '??hi' * K4 y' o2 I3 Y' U  I$ O, R* t
   - Y  e  R$ q3 H1 Q; N1 n- @
rpad(str,len,padstr)   3 K3 w% {  I  i. P7 U) _: ]  j/ Y2 a
用字符串padstr填补str右端直到字串长度为len并返回  " u3 w% n8 z2 a' t2 n, c
mysql> select rpad('hi',5,'?');  
+ m4 M3 [/ Y1 P7 j$ Z* F4 G2 \  -> 'hi???' 1 M" e/ C& a$ e/ _5 S
2 x- S% u6 j. G
left(str,len)   $ |$ u+ ^$ o5 |8 z1 ]& P) N+ s# Q) v
返回字符串str的左端len个字符  
  i7 Q* w; q4 X0 H1 Cmysql> select left('foobarbar', 5);  
2 U+ |2 N7 Y. a/ V: w  -> 'fooba'
0 s8 K; O$ Y; m$ n2 Q . O( |8 L' s3 g2 |. ?7 a2 ~0 ]- r
right(str,len)   5 c! p( N9 i' G# j" n1 e% `; L8 N& ?
返回字符串str的右端len个字符   ( @' A; \* g  c; n' V9 O
mysql> select right('foobarbar', 4);  
3 I3 w. E, J+ {0 @1 R5 |& F  -> 'rbar' ! ?+ L. e" b- q* Y. y7 R9 p- n1 P

# E! j5 V: Q. D1 X+ Ksubstring(str,pos,len)   
( P3 N' H& E8 y0 T) asubstring(str from pos for len)   1 G! R) p, u2 b/ m. G& q4 C. ~4 R
mid(str,pos,len)   ' D1 }7 @( }, C, K
返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
. u* |, c6 d% k4 o4 {8 r  -> 'ratica'
1 s0 I# j; R- c
$ y# ?! I. d$ Y2 k6 W9 x. Q: j9 Jsubstring(str,pos)   
9 E+ p4 c" \( q# msubstring(str from pos)   
$ H: S8 L) u% k& e. p返回字符串str的位置pos起的一个子串  
: f! L2 U4 Z' {8 P* Ymysql> select substring('quadratically',5);  
- p3 K+ _2 W2 j  W4 u9 H) ?  -> 'ratically'
+ @6 d4 ^) f1 ], B4 vmysql> select substring('foobarbar' from 4);  
3 a+ \/ _2 W9 q' N1 M% @  ]0 f( [  -> 'barbar'
. W+ K0 J2 a' D 7 T" M6 {1 e& J3 i
substring_index(str,delim,count)   
! s! n7 I# L% o返回从字符串str的第count个出现的分隔符delim之后的子串$ C7 ^; z5 x2 i$ E7 @# Z; g
(count为正数时返回左端,否则返回右端子串)  % Z! f# _. |; t0 `8 u
mysql> select substring_index('www.mysql.com', '.', 2);  
) P& Z- K6 M) S. ]  -> 'www.mysql'
3 @( I: q3 L0 Tmysql> select substring_index('www.mysql.com', '.', -2);  
, u* H, g' V5 Q0 S/ g1 m  -> 'mysql.com'
& Y- S: a" D. G+ ?; V! r 9 _. Z2 r5 w/ E) [) e7 ?
ltrim(str)   7 O" \( A$ k$ {' \
返回删除了左空格的字符串str    t4 _  R6 `* g
mysql> select ltrim('  barbar');  # V7 w, C  h# f4 q
  -> 'barbar' - z! w) O" W  m
0 L& Q% C6 ~$ s6 p
rtrim(str)   1 s1 t& h/ l' Y7 l1 _$ ]: i
返回删除了右空格的字符串str  
" @6 J& A- B. Mmysql> select rtrim('barbar   ');  
  R: u9 b6 M/ n# `# T9 X  -> 'barbar' * `2 ?" _' W, b
# a# h' I0 o5 b- J) I7 \- k
trim([[both | leading | trailing] [remstr] from] str)  
( z+ _4 ~: G8 V返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  - {" o8 g# d" o2 t2 F
mysql> select trim('  bar   ');  
1 w7 O" F5 @% {* O2 b  -> 'bar'
# C; |* h( R- G, p/ imysql> select trim(leading 'x' from 'xxxbarxxx');  9 k" s6 e6 X# b6 r3 O! _+ \
  -> 'barxxx' 7 U7 z8 M" }7 c
mysql> select trim(both 'x' from 'xxxbarxxx');  
3 K5 W, K- u2 e, U4 z  -> 'bar'
' `* Z; ^5 ?+ x  }) X! Lmysql> select trim(trailing 'xyz' from 'barxxyz');  5 t" `+ X  p/ e" n, }2 C
  -> 'barx'
2 \- ~' Z# l5 c5 `! G 8 d* D' t4 g  g) H  ]2 `% D, ~
soundex(str)   3 k, ~3 T* r2 v# A  T2 g( t6 t
返回str的一个同音字符串(听起来“大致相同”字符串有相同的$ o  T, O2 ^" o0 ?- x
同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  
' o. n6 v" K  c2 a$ ^/ p0 q  x- ^1 lmysql> select soundex('hello');  
( W! T! T; _, {" Q  -> 'h400'
6 a; e0 Y( P9 `2 hmysql> select soundex('quadratically');  
/ `* l( |" }, s* o& w  -> 'q36324'
& R4 m2 W% S; }7 r. a3 N) n% j: W  y   
0 ^' }( P1 F7 C* F8 S' F: @7 Nspace(n)   
$ e5 n  k& c: b8 i5 t. C返回由n个空格字符组成的一个字符串  
% S. J* \! {; ]% p5 kmysql> select space(6);  
( N* u+ ~0 _5 j. z# x  -> '      '
7 A1 `/ }* d7 {% \2 c   
0 {& u) `/ B2 K2 y' V. P0 M0 T$ k3 j& \/ vreplace(str,from_str,to_str)   ) X4 ]% w7 x# b' W. o* ~" Q
用字符串to_str替换字符串str中的子串from_str并返回  / h3 q7 t+ l* `8 n4 m2 M6 {5 x8 s
mysql> select replace('www.mysql.com', 'w', 'ww');  ; F; H  I  i, D
  -> 'wwwwww.mysql.com'
2 c. u. m( e, d* I$ u$ a 9 i0 M0 t, C5 O5 j& Q* H+ z6 [- ?/ [
repeat(str,count)  
- s' t3 `2 Y, ?8 h" W+ W返回由count个字符串str连成的一个字符串(任何参数为null时
9 B0 K! Y6 R3 c返回null,count<=0时返回一个空字符串)  
/ D5 F1 A$ v+ L, `3 Gmysql> select repeat('mysql', 3);  : p% j: Q! B& u4 N/ [- \
  -> 'mysqlmysqlmysql'
/ u" H1 v: j$ Z   2 {3 ^7 j0 Y2 u/ u- a6 A, K4 b+ P0 p
reverse(str)   
; _* u- G$ V  ]. ]' Z5 s8 w颠倒字符串str的字符顺序并返回  
% H/ J2 `9 d8 i( Y+ C/ Dmysql> select reverse('abc');    ]* S) v+ Z3 _2 o/ C% ~
  -> 'cba'
: I3 ?3 r$ l+ G, m( u( o ; P4 e3 b6 j& P) a8 D, H$ g
insert(str,pos,len,newstr)   ) Q& O1 U% s4 n" {. c1 z8 V
把字符串str由位置pos起len个字符长的子串替换为字符串6 x5 G& a6 h) C3 ]  l7 M& F
newstr并返回  9 ~' I2 y. G' r$ y! X5 ?
mysql> select insert('quadratic', 3, 4, 'what');  * }) c0 t+ [' R4 e  J. ^
  -> 'quwhattic'
; ^8 t# k/ _0 B
# T( L! K% X' Lelt(n,str1,str2,str3,...)   
3 I- {2 H+ p! r0 s返回第n个字符串(n小于1或大于参数个数返回null)  4 z, ^5 X( P5 O* J* k3 _
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  
- C4 a) l3 ]5 F  -> 'ej' 9 c. ?5 F4 ^8 w2 r* u& C; ~& N0 c
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  8 Z  n2 o- Z5 m8 z6 u8 S
  -> 'foo'
( `) r+ Q% H9 a; S# d- A
$ j+ `4 d" T( afield(str,str1,str2,str3,...)  
$ C3 g2 M7 i) s' l8 Q! ^# `1 x( j5 g返回str等于其后的第n个字符串的序号(如果str没找到返回0)  & T1 f) y. @2 W
mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',$ a! C7 S+ ^+ J. Q
'foo');  
7 w! R8 n) n2 h' m" K) u* ?  -> 2  0 K! u( P% R( E2 p8 y$ u
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
9 X4 O3 w% H9 r7 l'foo');  * ~5 d# [9 ]3 B, U4 w2 Q
  -> 0  
- P% N3 S3 U, [% F1 \7 s . v* O, L" o) l
find_in_set(str,strlist)   $ Q1 x% I. W& D+ [4 w& S8 c, }6 M
返回str在字符串集strlist中的序号(任何参数是null则返回( Y  Q: P- u7 \; r& T2 S3 ~
null,如果str没找到返回0,参数1包含","时工作异常)  
3 n. r7 f1 E5 q* l5 B, I# ^3 J8 pmysql> select find_in_set('b','a,b,c,d');  4 O. T" M8 {3 P. z- @# w
  -> 2  " F6 b8 ?( c, @
   
1 X/ {; G: ^) Z9 a5 nmake_set(bits,str1,str2,...)  
6 s4 y3 C- U7 ]5 [& d把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
& m2 {$ m5 z4 G9 _+ ]0 P位置的字串选入字串集并返回(null串不添加到结果中)  $ j  [8 g% n+ w# K- V( y; U
mysql> select make_set(1,'a','b','c');  
; j7 Y% i" [7 m: I  -> 'a' ( ~  `% V* ^5 a$ S1 P% Y! }" ~
mysql> select make_set(1 | 4,'hello','nice','world');  ) @& d9 r' l+ {) M' i7 Z/ g
  -> 'hello,world'
; a5 `% A& q! f0 B' Rmysql> select make_set(0,'a','b','c');  ) d& E: G$ [9 r
  -> ''
4 [3 f3 R6 B! s8 ~% E 4 q8 E0 {  S) L
export_set(bits,on,off,[separator,[number_of_bits]])   
! f# q% s5 |* O按bits排列字符串集,只有当位等于1时插入字串on,否则插入
1 p+ v5 U0 l2 H4 \6 D. x$ y% o/ J6 S1 Noff(separator默认值",",number_of_bits参数使用时长度不足补0
1 N/ x+ O  W0 Q2 k: w) |而过长截断)   
" n' P4 O: f1 ]  G. V) W" _' _mysql> select export_set(5,'y','n',',',4)  
+ E  A. [3 T5 ]6 n  -> y,n,y,n   
1 c2 u  {8 Q- x' q! q ; n' G+ l4 e/ r& I
lcase(str)  
( m) X9 i' y2 M  w  {$ v! \lower(str)   6 _( a* @3 M+ V5 `
返回小写的字符串str  
2 C2 ~( C- [5 n9 h/ Wmysql> select lcase('quadratically');  ( }5 v" X  N, k# t: _
  -> 'quadratically'
5 P* r. t; W3 K6 k  E5 n   ' B3 i7 R7 A4 L4 ]5 W( u7 p! n
ucase(str)     E/ C) n2 U. s; T" r
upper(str)  
; ?( |6 i# y0 F9 O' X返回大写的字符串str  
- }: n8 F  P# xmysql> select ucase('quadratically');  ' d+ t* f- `; L% c- R! [
  -> 'quadratically'
! n( T# o# O$ N. t6 a- o 2 H1 \  P) d( q9 R) ^
load_file(file_name)   - K  A9 s8 D% z! Y: x; S0 O
读入文件并且作为一个字符串返回文件内容(文件无法找到,路径" ^/ t* t( P: v# r% N8 {6 a# G
不完整,没有权限,长度大于max_allowed_packet会返回null)  
% |, ~5 L, r0 s2 [/ \mysql> update table_name set blob_column=load_file: k+ V" M: H; _
("/tmp/picture") where id=1;  
: u' A$ K# Y3 e% W9 d
* i) H5 @% {0 R7 ^2、数学函数
$ Y8 d! ]& {* R, {6 I1 _abs(n) - A. V1 x& m+ W, N8 ?* q
返回n的绝对值  
! L! C& y) j+ ]  Q$ b  a- ~mysql> select abs(2);   
1 @" X7 c% e( Q: h  -> 2    7 B+ `+ B2 f4 T# i9 B
mysql> select abs(-32);    : J6 t, \1 }5 G  f' m% }. |: o! D
  -> 32    $ O7 ~' f' V8 C4 S& B0 H9 o
   0 t9 e  a) L+ E+ x. n1 O
sign(n)  
) b% M' z% B" j3 D; D' b* r- [返回参数的符号(为-1、0或1)  
5 ^& H, i# R% O' @: r, K3 \mysql> select sign(-32);    # F8 i; y" j5 Q& k1 R7 ^
  -> -1   
& Y! E6 x, G* u+ {mysql> select sign(0);   
* c; |9 `9 l3 ^; R4 s8 L- h  -> 0    ( T* z" T1 Y9 |
mysql> select sign(234);    . A3 N/ _( V/ L! U( X
  -> 1    ' M) u( G& T. q9 A. q( S' S9 V
, b+ {7 r0 d, {8 w
mod(n,m)   
" G, r0 Z, k; B& [7 }# T6 r取模运算,返回n被m除的余数(同%操作符)   
" M' M7 Z5 u1 f. D8 Bmysql> select mod(234, 10);   
0 s5 i' ?* {/ |' |: K# Q  -> 4   
; j# J) U- U9 ]3 lmysql> select 234 % 10;    3 G0 @3 V' G  K. m6 c0 J3 X# j
  -> 4   
2 ?( G! b$ R3 F7 Z0 J/ ?9 Rmysql> select mod(29,9);   
* [6 T4 u+ I! h" |% J" T  -> 2    : x5 _% y* a4 Q$ E( }1 W% U
5 m4 |  W  }8 ^) T% X
floor(n)    o3 h1 P# X2 J( E' H5 {
返回不大于n的最大整数值  6 c4 v' b$ b. b6 S3 y, I! @7 q; D
mysql> select floor(1.23);   
, P9 p+ g9 b2 e/ e# ~3 u  -> 1    & [. o3 T2 O: z3 T3 F( E
mysql> select floor(-1.23);   
1 x4 y9 y+ Z# ~* y. v  -> -2   
0 a9 f! h7 u$ d7 s ' @* ~9 \* }: |+ r! d9 a
ceiling(n)  ! Y  i! W' b2 i" f8 x
返回不小于n的最小整数值  
8 A5 l/ p5 i% v& P' N5 e7 amysql> select ceiling(1.23);    / X% C& |4 j: F( M6 U
  -> 2   
6 O& ?' S# {  d, _/ L& l3 k9 Gmysql> select ceiling(-1.23);    3 u7 Q4 K- [+ g! j0 W0 [$ q
  -> -1    3 H0 \! N6 s3 |! R# F% u  V8 q
5 |7 d% y9 l' W6 I
round(n,d)  
6 c& U' i2 M/ g9 D( }5 x9 D' G返回n的四舍五入值,保留d位小数(d的默认值为0)  1 b4 t' G/ u" j- o
mysql> select round(-1.23);    3 a' m2 L& Z' x* ]5 r
  -> -1    ! {- C. l5 ]& }
mysql> select round(-1.58);    6 @* `2 _) C0 O" ]1 S5 x( t4 ]
  -> -2    - {9 M% ?7 n! O6 O5 X" @# C
mysql> select round(1.58);    ; ]* K* W  d6 S4 p
  -> 2    1 L6 T5 ~) |  R9 I* R4 m
mysql> select round(1.298, 1);   
( G1 B- H  v3 K% H  _* p  -> 1.3   
& v3 g5 d7 b- b! C7 p5 Omysql> select round(1.298, 0);   
' M5 s; L- ], t) q8 Z8 [  r  -> 1   
0 T5 k/ {  S- x
9 \$ [  }% P( D' O4 e' J+ w. ^exp(n)  
/ L9 m, A+ }8 b, S返回值e的n次方(自然对数的底)  4 m0 W2 b# m8 Z$ f& S% K
mysql> select exp(2);    6 d( ^( M$ a: G
  -> 7.389056    9 v; u7 k. r: W& K4 R
mysql> select exp(-2);   
) }2 O9 |) ^9 @0 ?' d  -> 0.135335   
- U* g$ b$ G, ~% u) g$ J5 Q) v+ q& L1 Z
3 I% q6 S7 P' R  llog(n)  ; b' E; V7 }6 D8 u. c; l6 w" }$ A
返回n的自然对数  
6 A( u9 p  B1 Y2 v( ?/ z* q# fmysql> select log(2);    $ k" D" B& l- S0 L2 b! L
  -> 0.693147    0 U! ?( |% a/ ^
mysql> select log(-2);   
  [+ p5 C& b1 K# x6 _  -> null    2 |) N5 c: p& B0 j

% S9 \/ n5 v! R4 Q0 ilog10(n)  & h% w/ c: J1 p; t
返回n以10为底的对数  
" S0 s# Y  T: p) H% m% P1 M$ ~! Amysql> select log10(2);    3 U: g+ Q9 h9 b8 v# L# F$ P3 M
  -> 0.301030    6 F* F4 j! [; s& A# Q
mysql> select log10(100);   
. q- c& h) p  u1 j* Q  -> 2.000000   
) Y3 U8 x. h8 t+ ?: g3 Cmysql> select log10(-100);    : i+ k2 F) }8 |) O7 P: H; ?
  -> null    2 C  h& y- I/ D8 f: @( c; o

6 w& h/ e/ H" j% c) j6 T+ Vpow(x,y)    , O/ P+ d) _% b9 y7 [
power(x,y)    & B( R: X' e7 `+ c0 J2 B. O
 返回值x的y次幂  
# P' z" v( ]* |$ P4 F' y% Gmysql> select pow(2,2);   
6 [0 ]% f' S$ B( u7 P) B5 v9 H  -> 4.000000    ' a( P8 S' q+ y/ I
mysql> select pow(2,-2);    4 i* G7 T  w( Z- k6 L
  -> 0.250000  * y! i; U% P9 S( Z( p! A. T

7 }$ B/ S# q. a, |sqrt(n)  9 I) @* a1 g2 y+ M8 I8 k
 返回非负数n的平方根  % Q+ j% [8 M& V/ C3 I
mysql> select sqrt(4);    - f0 Z% ^* K, E) Q  A0 y# s7 O7 g" N
  -> 2.000000    ! A0 A' |, R" p, i. M3 i. v
mysql> select sqrt(20);   
* B+ T4 j7 Q8 T4 r  -> 4.472136   
6 t$ F6 F$ g5 M7 \ 8 v& R7 M& G9 E' p
pi()    & I9 ?0 Z3 T. O" T! C
 返回圆周率   ) h+ ~" N; ]+ H" a, ~0 L2 L0 r
mysql> select pi();   
  M& J5 s$ I" t  -> 3.141593    4 U% L/ m+ F5 e) O
( Y1 F" W' A- U8 |; M
cos(n)  1 R' X9 t2 G* M7 x" M
 返回n的余弦值  
1 z5 `% n2 D- ^0 Rmysql> select cos(pi());  + s( K, R$ p8 d! H
  -> -1.000000   
6 _, A9 q& x4 {9 h5 o % m" Z- E4 m  I, ?  l3 X' @
sin(n)  
5 }0 M, d/ r: B; U0 b) j; S) }8 b  A 返回n的正弦值   
/ H& Q+ z* s! C2 @mysql> select sin(pi());    : K; N% O( W# ]6 x
  -> 0.000000    9 D  B+ e) j( x# `

" c! L1 b$ _3 P& M7 P- Ltan(n)  4 e3 k' D) y( U; u; o/ j8 z+ |) W
返回n的正切值  
/ r8 }. l# p" z" o0 Kmysql> select tan(pi()+1);   
+ {1 I) i$ z2 j1 b  -> 1.557408   
' g  E, ^; [, H3 h( \9 t+ @
* L+ L3 Q5 A2 r+ w% K) ~, vacos(n)  3 ^0 c  B9 `6 S6 P* d: p3 d/ H
 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  ) I7 L& G: \' y: x
mysql> select acos(1);   
. \. _4 D( l! L# N, }! q8 `  v* R  -> 0.000000   
5 y) c: y- O$ Zmysql> select acos(1.0001);   
+ N4 N0 W: p! G/ l' Y  -> null   
- {/ }) o3 w: l# Imysql> select acos(0);   
4 K/ I- P2 X+ K; ?  -> 1.570796   
( c1 |: L' \1 _2 F, p/ K/ P
( y4 k' {$ U* Pasin(n)  
3 j' r# ?3 w' `7 k1 @5 k& ]返回n反正弦值  ) H, v* F, q- W1 Y
mysql> select asin(0.2);    5 O4 r8 [6 @! b4 g' s
  -> 0.201358   
- ~( X/ J! y5 K+ kmysql> select asin('foo');   
) Z) a9 T! g" k  J& N  -> 0.000000   
; z! p* J3 ~4 y: n& C& k' x / }. F$ j- `" b7 K& h" j
atan(n)    B' Z0 r: A: E6 y4 S. @
返回n的反正切值  3 S# X  M* w. ]& j. D4 v* l9 b& q$ V
mysql> select atan(2);   
) \5 ?& D5 P- p) F+ W. l3 V  -> 1.107149   
: [6 V! L, j$ F/ L; Qmysql> select atan(-2);   
0 S0 ?6 J. E1 U' R4 d  @/ S  h  -> -1.107149   
* l0 |4 u9 o0 a; T4 ~) a! Gatan2(x,y)    * q4 C" J3 ~$ |4 w  \8 @. A
 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  + ^$ C8 m" A% U7 m; e
mysql> select atan(-2,2);    3 F* T1 r6 b- t! I) a. P$ e
  -> -0.785398    " M# i0 }" D: Q8 [+ r
mysql> select atan(pi(),0);    , V- |0 x4 T/ o+ _: p
  -> 1.570796    5 z6 V/ n; s" K3 n, z
$ n+ i  ^! F( s3 ^' c( \
cot(n)  ; \4 n$ `+ ^* \: O! @5 q4 t) G8 K
返回x的余切  
6 P; h9 F" Q6 A5 M1 J% G$ Z( j$ a! ~& rmysql> select cot(12);   
6 G: U0 O* a3 @  -> -1.57267341   
9 c( C% G0 T& w' E. S5 s9 Emysql> select cot(0);   
6 ]7 G) V( D, n! }6 T4 N  -> null      j9 }5 K) \' A2 N
6 a4 c, R& S% g( O; d( C( I$ _
rand()  
* k) B) g+ m9 @  ~# D. vrand(n)    
% w) k8 ~+ J  q% g  f- }- u返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
1 d% ?/ H, y9 _& W 5 D* c/ [% P1 Q- x2 u8 K, N" u# m
mysql> select rand();      n* N( f! Q' E3 V& ~) I, M2 K2 A
  -> 0.5925   
0 D, H3 O; W( C& f7 Dmysql> select rand(20);   
; s6 g; r' Q" }  -> 0.1811    7 n5 y" |! S" B- [6 m9 |; G/ K) M6 {
mysql> select rand(20);    ' @# U; {$ L% I  a7 L- @- g
  -> 0.1811   
! v& p5 D" E# Smysql> select rand();   
# ?& T0 k4 _# h) L% p) T  -> 0.2079   
% k7 V# _& ^; N4 U3 X) G- u5 M( o8 Smysql> select rand();    5 ^% T3 M7 k# z/ h. J0 ~
  -> 0.7888   
7 ?! {. v5 o2 W
* m  m' i$ o% G1 c9 `6 J/ Fdegrees(n)  
3 k" T: H+ r( Y/ a, s+ ?把n从弧度变换为角度并返回  ! g+ d& P- [" \0 f: \9 ^8 b
mysql> select degrees(pi());   
) u6 O: s$ p4 d0 x+ n6 R  -> 180.000000    " Z% E' D/ k' j) Y  G1 V

  E2 D' {6 ?$ \9 y4 O8 n/ Zradians(n)
: s6 Z- s' G+ o: r把n从角度变换为弧度并返回   3 a, Q/ Y3 S, i( s* ~1 ?9 G9 t
mysql> select radians(90);   
: G6 c2 ~- |- M! G+ m  -> 1.570796    0 N6 M: y% y! q/ O0 J
' a  F, G! K5 V& e# z* @; z1 ?
truncate(n,d)   
$ B) L- y+ j' \4 U( u' d保留数字n的d位小数并返回  
  y3 N  Z4 d9 \) F: Fmysql> select truncate(1.223,1);      i  V. z1 ^% f! j8 X# g
  -> 1.2    7 J( t5 g6 i( J
mysql> select truncate(1.999,1);   
' I, O: N9 i2 S3 B/ {  -> 1.9    ; [% @; j8 k; Q0 V1 r* e4 K
mysql> select truncate(1.999,0);   
5 j& E: A# a" j, k/ s  -> 1    " ~3 `$ `0 V, l
9 R4 c- Z3 V7 o, [7 C
least(x,y,...)   
6 N; |* K# ~! F/ s; D2 w返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
0 L+ F- S7 C# C3 u8 q- vmysql> select least(2,0);   
( W% [( V3 ?$ K1 s! {6 x  -> 0   
9 U# W& B0 v: F5 M# m- s1 dmysql> select least(34.0,3.0,5.0,767.0);    ' {( }. k6 ^0 K8 |- }6 A. I  D
  -> 3.0    ; m: X: ^! f/ |* n; g
mysql> select least("b","a","c");    ) N' F5 ^: q/ T! l( ?
  -> "a"    . ~% Z9 r/ J* y/ K0 c
1 O" N% `. Q7 R0 {6 u5 i8 V- E. r& t$ V
greatest(x,y,...)    * G  [; k* r) q7 ^
返回最大值(其余同least())  
; w7 K3 ~% P% ^- E' E$ b7 Kmysql> select greatest(2,0);    1 R/ l% O2 M! R* Q  q) |5 F  p* T
  -> 2    ( _+ F5 K$ ~4 E6 l
mysql> select greatest(34.0,3.0,5.0,767.0);    ( i( ?5 M7 A; X! }, [4 y7 O
  -> 767.0    + U5 B/ K' o' g( b- c) \. L
mysql> select greatest("b","a","c");   
9 V( s- H" F  {; c& r; b  -> "c"     
( |$ O5 G$ |+ P
! K. f. Z* g+ R" ?  G: D3、时期时间函数   D6 }% [+ T) j! [
dayofweek(date)    # P( I2 W# t, I7 R9 d3 Q( K. w
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  7 o" M7 l$ [( q, Q) ~
mysql> select dayofweek('1998-02-03');    # J  D3 H4 a( A! d6 v( n* H  I7 y
  -> 3   
- ~; R; j9 q+ V& Z: l$ M9 c
$ E# v9 U; m. l! B/ E! Uweekday(date)    . M( |& E- d8 E8 l" y, f
返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
" r5 a% H3 Z* P/ a  P) l  
. U% U1 v/ {" u" F( s5 R1 _. mmysql> select weekday('1997-10-04 22:23:00');    . e( f6 m( g1 u1 {2 h: U' i
  -> 5    + `. F/ M5 M5 `5 G3 x
mysql> select weekday('1997-11-05');    . |! V9 a  R5 x
  -> 2   
' m# {6 E* V4 H2 ?8 i  o
5 K' Y% x5 U4 u$ U; e$ i6 Idayofmonth(date)    
- F* b5 D3 f2 R$ F3 [3 @8 A- _- E  Q返回date是一月中的第几日(在1到31范围内)   
/ \3 Q; N. n2 Q$ amysql> select dayofmonth('1998-02-03');    6 f4 I( G5 s2 f/ E: T3 m6 H* n
  -> 3   
# h" J; N" c, T8 c$ s9 B/ f  z
+ g% p" e- d& k9 K3 tdayofyear(date)   
! o% e& X, Z7 s. }& w返回date是一年中的第几日(在1到366范围内)   
& T9 i0 U& ?# @) Q! q$ N" Omysql> select dayofyear('1998-02-03');    8 Y, j# h- m) ]3 c
  -> 34    : N# V  a1 a3 p& q% Q+ M2 h' U0 o( x

4 {( J: U1 o7 Q! ?month(date)   
! M' N& X9 n$ `$ ]" q" ?返回date中的月份数值    + w& U8 F8 U5 Z. `
mysql> select month('1998-02-03');   
4 g2 C& C6 Y& R( H/ V1 e  -> 2    9 |, j* o; `6 n8 d+ ^4 D* E

$ J$ k; `; ^0 `7 Cdayname(date)    % \5 H7 c- m+ @
返回date是星期几(按英文名返回)  0 F% ^3 T4 ]. K' e6 `
mysql> select dayname("1998-02-05");   
6 Q6 K) e# d9 t$ D+ V  -> 'thursday'   
7 `) v: \9 ^( G9 |( a
, ?% D' d2 ~1 X- g" y$ B+ c& cmonthname(date)    
" q+ p; e7 N! B% G2 r/ Y返回date是几月(按英文名返回)  7 [/ B" F* T3 l8 e
mysql> select monthname("1998-02-05");   
( v- @# r& f4 e  -> 'february'   
% o1 h1 a, h. ]* D
  m9 L0 R" M# [" G. b$ `, jquarter(date)   
7 V3 {) h. y; B# ?返回date是一年的第几个季度   
( V  H( p# e2 N7 U2 U" m$ {8 {# N; amysql> select quarter('98-04-01');    5 O- t5 L& G3 p8 g. L# [( r
  -> 2    % n; R" i' v% i4 s+ U' M

2 j/ X5 P* P5 M+ F8 N9 Uweek(date,first)   
9 |/ ~6 ]0 k2 k- E0 V: S. V3 G/ p& ~返回date是一年的第几周(first默认值0,first取值1表示周一是
( L; p  ^/ z8 j  U  G- X$ n周的开始,0从周日开始)  
  u! P  P, v! e. _mysql> select week('1998-02-20');    , g0 W3 G; `; G1 q; W0 J/ D
  -> 7    ( X/ k6 Q7 X3 q
mysql> select week('1998-02-20',0);   
& a2 }: s7 Y; k- J  -> 7   
* j3 l" c5 n: Hmysql> select week('1998-02-20',1);   
4 d" ?% G% P6 Z+ [2 r% Q: @* t0 X$ E  -> 8    * J6 ], ?% `' h2 b
) M" z+ I5 y# U0 ~
year(date)   
9 |7 d; j2 o( S2 g( {7 A( R0 ~6 z; F返回date的年份(范围在1000到9999)   
4 G4 S0 J" w. W* H4 K% H' amysql> select year('98-02-03');    ( q9 h% x8 |7 W8 w9 b
  -> 1998   
' S9 g  L% r- h/ z
0 N* u* n8 `1 [0 n9 Uhour(time)    - i; j, c3 Y4 D8 a& {2 ?3 X* m
返回time的小时数(范围是0到23)   
$ s* f! b# k" \/ b+ h4 Dmysql> select hour('10:05:03');   
: a2 @4 k. M5 A& M; X  -> 10    : c- C  m( V% D

5 V8 C. d% M7 ^! J* D' Vminute(time)   
! ?& \# v& Z' Y) d* E3 L0 a返回time的分钟数(范围是0到59)    6 p; A. I, m  |! ^6 h) N1 H
mysql> select minute('98-02-03 10:05:03');    0 x! ]  B  O& q
  -> 5    . z, V/ Y6 q9 z* h
+ ^' R6 H* t1 ]4 k3 {% j+ D# c
second(time)    
- x7 ~: c8 K7 `- U! p返回time的秒数(范围是0到59)   
. r( I; d8 I/ a* W0 e8 Hmysql> select second('10:05:03');   
6 @5 e/ ?) q, a' Y8 [' f, W1 ~  -> 3   
, x5 \7 i0 y5 w( ~ % W- P: D5 |$ j( J! x" D
period_add(p,n)    % {) ?; v5 c. t% n. V
增加n个月到时期p并返回(p的格式yymm或yyyymm)    - B4 S: e& ]% Y( z7 ^% V$ o
mysql> select period_add(9801,2);    ! i+ ?5 c# z: N
  -> 199803    : n$ S. {& G" V3 ?/ Z7 `7 R
5 _# v1 B1 b2 |1 E3 P: N( D; {
period_diff(p1,p2)    . A  G( j- m  H! d
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  . u5 K6 T- {! q6 P* P
mysql> select period_diff(9802,199703);   
% w! O9 x( L5 g' I  S1 f0 t  -> 11   
8 l8 D* X. h" G# L
( h# w0 d, a$ z# _date_add(date,interval expr type)  
* N$ Y2 B# g! g( m% i& B/ f# Udate_sub(date,interval expr type)   
$ Q2 G  p! S5 u9 l0 R% u$ X! O+ ^adddate(date,interval expr type)    - y: }& a( H  C# @3 p" M! s
subdate(date,interval expr type)  
5 p0 k. F6 A$ O对日期时间进行加减法运算  
5 p& J, F6 O$ g* v, r' k(adddate()和subdate()是date_add()和date_sub()的同义词,也6 U3 A: Z4 i  G% i
可以用运算符+和-而不是函数  
: t9 h; S& W$ g  zdate是一个datetime或date值,expr对date进行加减法的一个表8 ~( U+ I( w& c0 G3 c4 \( V
达式字符串type指明表达式expr应该如何被解释  
. g# O- X5 W" m: M( p [type值 含义 期望的expr格式]:  , l- s* R) ~( P$ s
 second 秒 seconds    8 k4 r$ G8 [) [0 n
 minute 分钟 minutes    + |; D1 ?( V9 h4 W" {+ \
 hour 时间 hours   
/ F' Z8 ^7 b- h day 天 days    * t# l2 g" Y  M4 @# c
 month 月 months    6 b$ L5 b! @" `+ ^/ a7 h
 year 年 years    . @; O. @. z5 a
 minute_second 分钟和秒 "minutes:seconds"    8 V& f1 ^6 A* x, s% o
 hour_minute 小时和分钟 "hours:minutes"    0 k, h7 ^9 {% h6 F, j
 day_hour 天和小时 "days hours"    3 x4 y) h0 U9 P- z4 O( u
 year_month 年和月 "years-months"   
1 z, H* W/ s+ _ hour_second 小时, 分钟, "hours:minutes:seconds"   
$ G$ Y6 ~! ]- i. g7 r* o day_minute 天, 小时, 分钟 "days hours:minutes"   
! b$ \" k" }- o$ q5 C2 v$ s day_second 天, 小时, 分钟, 秒 "days0 y; f% k/ e6 @( q7 ^: c
hours:minutes:seconds"
1 X: F) f6 |2 O( Y: K+ Y( D expr中允许任何标点做分隔符,如果所有是date值时结果是一个
+ W: P0 b: W) l2 ~7 ~  L+ I% ^date值,否则结果是一个datetime值)  
0 k+ G7 d$ |+ a* V: m 如果type关键词不完整,则mysql从右端取值,day_second因为缺
" n: P3 D: B8 h4 r1 Q  [; U少小时分钟等于minute_second)  5 `* k* D! u( S) f. n& v  ^9 K
 如果增加month、year_month或year,天数大于结果月份的最大天
* ~: O+ V" b& W, L6 Y' p6 d& o数则使用最大天数)   
1 L$ W2 l# x; t3 _" z0 Y$ E: S' omysql> select "1997-12-31 23:59:59" + interval 1 second;  " o! U8 }; b; c! |: d4 P( y

6 Y" ?- W) v( i' R  S  -> 1998-01-01 00:00:00    1 r& U1 \2 ?( O
mysql> select interval 1 day + "1997-12-31";   
" h$ W/ x% c) K; Q7 G8 [) w  -> 1998-01-01    ; m6 q0 h# z+ b
mysql> select "1998-01-01" - interval 1 second;    " H8 }6 ]: X+ _! p' M4 ~
  -> 1997-12-31 23:59:59    : U, Y. u. Z4 i
mysql> select date_add("1997-12-31 23:59:59",interval 1
3 y8 J8 d2 `& R* W% C+ G4 Wsecond);    0 Y9 |! ?$ u5 e) R, e, W8 W
  -> 1998-01-01 00:00:00   
, w. Y  K* d1 Z- i! Jmysql> select date_add("1997-12-31 23:59:59",interval 1
7 K  G- {9 M, V  j1 d6 Jday);   
  _, j: v2 H) Q2 u) v4 A: \: h1 x  -> 1998-01-01 23:59:59    " w9 @: C) j+ Z
mysql> select date_add("1997-12-31 23:59:59",interval  `; I& k3 w+ Y3 S2 q* v; \
"1:1" minute_second);    ( S6 C! J! N+ u; w" Z( B) O
  -> 1998-01-01 00:01:00    ) {7 v7 Q/ p7 P# c6 s' l
mysql> select date_sub("1998-01-01 00:00:00",interval "1
+ x' Z2 a3 s  d5 @! e3 g1:1:1" day_second);    + z$ s- m  Q+ n, G! ?& N8 _
  -> 1997-12-30 22:58:59    ( i+ I# y/ U% |* H* n3 S
mysql> select date_add("1998-01-01 00:00:00", interval "-1; e7 ^3 E/ g5 T5 A! r/ y4 z4 P
10" day_hour);  
' _: e- Q9 [" ~$ G6 Z  -> 1997-12-30 14:00:00    , F: t8 \; k5 H
mysql> select date_sub("1998-01-02", interval 31 day);    ! L9 h; J% m6 T0 k" ?" Z
  -> 1997-12-02   
$ ^4 [6 S3 E5 R8 g. \! xmysql> select extract(year from "1999-07-02");    , F# G, \) a' s- o+ }; x% f' |
  -> 1999    1 ?9 Y. j- k/ a# |
mysql> select extract(year_month from "1999-07-02
+ x  C7 E) L7 z5 M7 x01:02:03");   
: o$ b9 L- {; g  {* g. I# O6 d' z2 _9 h  -> 199907    8 B9 o; m2 h( Y! t, U
mysql> select extract(day_minute from "1999-07-02' U: P; b) F" t' ~( X$ R
01:02:03");    - `- h  ~6 l/ d6 x
  -> 20102   
" e+ Q8 G5 {/ k' T4 r
1 D  g8 r# g. o4 vto_days(date)   
: ^7 Y8 Q! ?3 Y4 Y% h+ @返回日期date是西元0年至今多少天(不计算1582年以前)  
( Z2 }4 [! B6 ]8 O" H0 Vmysql> select to_days(950501);    # p" G5 Q. y7 z# q$ ]6 p  v7 M
  -> 728779    $ ~: d+ H7 S1 v* f2 P: N
mysql> select to_days('1997-10-07');   
1 S  B5 U8 v* |6 D$ q  -> 729669    ! d9 }% L, R( G
% R) v8 j9 g- y+ l& e8 D+ l
from_days(n)    ) s2 n9 E+ o3 V. X5 e3 w
 给出西元0年至今多少天返回date值(不计算1582年以前)   * q1 N  Q2 K: |$ f" ^  N( K
mysql> select from_days(729669);   
, X0 n+ P6 c. [2 }" y; \  -> '1997-10-07'    7 i& p$ f& F( _1 i) A
" r/ X& K, @! A% ?5 G, B( L
date_format(date,format)   
7 x5 s5 Z; b% q! b# ^ 根据format字符串格式化date值  % q$ m. N( R+ p4 X& @/ P, e( ?" C
 (在format字符串中可用标志符:  
- H& A- M' M* g$ m& b1 a4 e6 P2 L6 v# K& g %m 月名字(january……december)    ; T# ?, y& H5 Q% Y$ L
 %w 星期名字(sunday……saturday)    + a# y6 L9 G3 ~' ^7 V5 ~9 ], N
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)   
) r) W# B7 p5 u# C8 J %y 年, 数字, 4 位    1 q" u# {1 P, p+ G* x( D9 Y  u7 [
 %y 年, 数字, 2 位    + h1 s+ D3 L+ b5 F
 %a 缩写的星期名字(sun……sat)    ( C* V6 s5 f% w# _# r+ ~: a
 %d 月份中的天数, 数字(00……31)   
/ f! l" C9 {& U %e 月份中的天数, 数字(0……31)   
( x% T& e' u' v %m 月, 数字(01……12)   
/ ]0 H( \  ^0 ]7 } %c 月, 数字(1……12)    ! O0 @" `) G& N. d' H& F( W7 a/ i
 %b 缩写的月份名字(jan……dec)   
9 L# f9 h6 ~8 Z& m& k9 U3 N %j 一年中的天数(001……366)   
. m/ u9 o* U$ r5 H0 C %h 小时(00……23)    2 w4 C( Q1 ^% n& H; D
 %k 小时(0……23)    * X2 X; [" C7 u
 %h 小时(01……12)   
: q( M  ]0 I; E5 L# i) u# d %i 小时(01……12)   
' m9 O" w5 e! g; M; y: J* U8 ^ %l 小时(1……12)   
, f' W. x6 W' A %i 分钟, 数字(00……59)   
5 e$ h) E) c* x8 o5 I* ^! ^ %r 时间,12 小时(hh:mm:ss [ap]m)   
! ]) Y) F& @4 L( l  K! U$ E %t 时间,24 小时(hh:mm:ss)    " [( V' c1 \; Z, w$ f$ t
 %s 秒(00……59)   
3 ~9 n/ _  H, C& K %s 秒(00……59)    ! l7 B8 z2 l2 D! d8 W
 %p am或pm    ' L: s+ m9 Q" K7 |3 F- p' N: [% e8 Y
 %w 一个星期中的天数(0=sunday ……6=saturday )    ; v' t( e, L& r- h- H
 %u 星期(0……52), 这里星期天是星期的第一天   
+ d% W4 K* T# O: G. {& ^ %u 星期(0……52), 这里星期一是星期的第一天    , @9 A$ g. k/ g  t( o
 %% 字符% )  5 t, e9 k$ K; r( x2 N1 \4 H1 E
mysql> select date_format('1997-10-04 22:23:00','%w %m %) V$ `0 ?' ~+ X- G. a
y');    : i* W4 c- n- b# w% z
  -> 'saturday october 1997'    ' P1 @" F# p" `$ B9 y
mysql> select date_format('1997-10-04 22:23:00','%h:%i:%; P& O4 e( c$ h3 u* Y: r
s');   
$ J+ x' J1 S- w4 {. M  -> '22:23:00'   
. p1 k$ H$ g: ]1 y7 Nmysql> select date_format('1997-10-04 22:23:00','%d %y %a
/ {: Q# {9 y- X" I%d %m %b %j');    " U, t, o) Z! {! Y/ F$ d  j% \0 n
  -> '4th 97 sat 04 10 oct 277'   
" x# c% g+ N& H& K0 W1 amysql> select date_format('1997-10-04 22:23:00','%h %k %i! R+ r: F. T+ y  u; J, i+ M
%r %t %s %w');   
2 ~  Q9 g& S+ L  -> '22 22 10 10:23:00 pm 22:23:00 00 6'   
" l2 p8 g) E2 K& H' b, r  W ! V" {* u! ]% t) M
time_format(time,format)  
! L# ^. P2 R3 l& X& _8 n5 H8 a 和date_format()类似,但time_format只处理小时、分钟和秒(其: `  h: F: p# \, W
余符号产生一个null值或0)  " H3 L7 A! |  Y. @7 s& w& j

% q7 H9 f( A/ o  V2 Mcurdate()     , W8 B6 u6 x) K
current_date()  / p& R, |/ ?9 y2 X" G
 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
" u* ]. N- y( _9 C* I- Z处上下文是字符串或数字)   
7 q6 K+ N5 S4 ]# }% rmysql> select curdate();   
% \# ^: O/ c  C* e3 ^: P) C  -> '1997-12-15'    . y( E) d: v8 C, Z/ c
mysql> select curdate() + 0;   
5 V0 \% v$ \+ Y! Z: A0 g/ l  -> 19971215    / N4 B: W/ s, j  F

  d% s0 Q9 x; ~! r! Ecurtime()    % J/ n5 N9 ]3 f& b/ v- {% ~
current_time()  7 ~9 K+ |  W2 q% h, s2 K
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上: m' [8 T  `4 g) N+ o; k/ t
下文是字符串或数字)      
/ B& E" c4 l6 X% T+ x9 d( s! B5 qmysql> select curtime();    : V2 E! f% @/ r+ H2 J3 V  h
  -> '23:50:26'   
7 f2 J3 X3 r9 n' o+ Dmysql> select curtime() + 0;   
7 h/ ^- |8 [6 C" K. F  -> 235026    ; \& ?9 ?$ ^! P

( z7 s8 O* Y$ s8 l6 Dnow()    1 M% G0 x9 y( U% W8 m; F; Q
sysdate()    + ?* o- ^1 ~0 ^" k$ ~. }
current_timestamp()  
/ |; e2 G3 K% ^) a2 i0 E) h 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期+ Q. U: `) W+ J. a0 K) y7 g9 O$ _  ?
时间(根据返回值所处上下文是字符串或数字)     
' _. I2 U) t& h$ c' }mysql> select now();    & w* ^* }: o* Y1 ]
  -> '1997-12-15 23:50:26'   
8 o% u; P% B+ ]# {, X* W. h/ Pmysql> select now() + 0;    / ~* g( U4 `( R& f0 t
  -> 19971215235026    9 v: y0 a# Z2 ^. W( {+ t
* r/ e6 o" B4 D$ x8 q
unix_timestamp()    " S* {( L" l5 b$ Z
unix_timestamp(date)   
  B2 g( \- D7 A% ?6 U2 R* c返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
  z3 c- j' Z3 ^数,date默认值为当前时间)  6 X: K! x" s( U0 S$ a8 h0 `
mysql> select unix_timestamp();    ( t+ I3 W2 F+ k& N! w1 E2 q
  -> 882226357   
$ ]) Q8 J+ V. n/ l. o3 {$ _* Emysql> select unix_timestamp('1997-10-04 22:23:00');   
; d! n7 r" m, Y' c9 V  -> 875996580    ! B3 [& y& Z! e3 \( {
+ o. J) r* ]5 L2 e6 Y) c; J# Q
from_unixtime(unix_timestamp)    ! U' ?' W$ v/ A7 R
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的% g0 ]' `* E9 ?2 i
值(根据返回值所处上下文是字符串或数字)     . U, Q, t) E  e
mysql> select from_unixtime(875996580);    4 a% K1 T$ l0 a' L# B& M6 p+ i3 B
  -> '1997-10-04 22:23:00'   
) C( B# K: E% Q6 i- _1 |6 Smysql> select from_unixtime(875996580) + 0;   
& _6 u+ |5 o' o, Q  -> 19971004222300   
+ J0 P1 r% X( \- p/ @# P+ N + E3 k' S( Y7 f4 w7 v
from_unixtime(unix_timestamp,format)    
0 W' B# O/ K3 Y, _6 C6 C4 ?9 Z以format字符串格式返回时间戳的值  
$ I! S: R' L3 p9 i/ Y) smysql> select from_unixtime(unix_timestamp(),'%y %d %m %
0 N/ V8 H$ m+ ?0 f: O$ }1 ch:%i:%s %x');    1 ~% B7 a; p1 e1 E, K
  -> '1997 23rd december 03:43:30 x'    ; X' B! p9 S- z& r' m3 B7 t/ V' V
7 i! a. [, e! C2 c0 f
sec_to_time(seconds)   
! ^- ^+ W, t' {6 [以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     ! H# f$ ]' M" O
mysql> select sec_to_time(2378);   
( `9 s3 Q4 c' B& b  -> '00:39:38'    9 B) T8 P4 _( U
mysql> select sec_to_time(2378) + 0;   
) {: y) c# P' f, [+ V- T4 N' S  -> 3938    6 x, c# m" R+ ^% c/ _2 S
7 |! K+ P9 k* z/ r( M/ x, [" x
time_to_sec(time)   
% y9 x/ a+ [. b5 n/ r! w返回time值有多少秒   
2 f; p6 n7 g& O+ z2 o! `. H- o3 Rmysql> select time_to_sec('22:23:00');    , S- d9 c4 I4 J# \2 g6 s' k: g  b
  -> 80580    7 J; Q8 ?$ X  W+ z0 `  F& p# K8 ?( ^
mysql> select time_to_sec('00:39:38');    2 L9 e, f1 F& s
  -> 2378
  f, Z* l: w% b
' O- W! W$ v. C) b5 }转换函数
0 H# \* O+ p% l9 ?( l3 n) F# o5 Tcast# }- ~2 T7 E* r/ ^6 ~8 g% g6 Y
用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]
1 L. D. O$ ^+ L实例:select cast(a as unsigned) as b from cardserver where order by b desc;' P: C" Z* R- Y  E) S
convert:
1 g: l& r. L  _! ], [用法:convert(字段,数据类型)
4 P7 h4 R2 i7 J/ ?0 r实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
& B6 m" m) J, X7 j* f
回复

使用道具 举报

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

本版积分规则

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