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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数+ W& }( q4 a0 U5 R) M" Q0 |
ascii(str)   ) f# n$ L, d4 l2 {0 S" ]* C
返回字符串str的第一个字符的ascii值(str是空串时返回0)  / B0 I, r; p" _+ X# Q+ m  n
mysql> select ascii('2');  4 [% a  C; T0 T9 _1 B6 t
  -> 50  
4 N) p8 w5 Z$ B5 c; X% i6 d2 Vmysql> select ascii(2);  
/ R2 d( a5 d5 A  -> 50  / \+ o/ K5 w' O) Y0 r' g
mysql> select ascii('dete');  % a8 ]- S2 b2 ^. O2 p6 v9 W
  -> 100

0 d, b1 l7 k2 b' y7 Y' N. }+ @! F- word(str)   
0 k0 w$ X/ S1 H9 h" o如果字符串str句首是单字节返回与ascii()函数返回的相同值。
: A+ s  _) ?6 ]& F
* j1 A" e  [/ F" E" g; W如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  
/ e4 Q: h+ m6 a% O$ Lmysql> select ord('2');  + F1 i1 i1 m* [
  -> 50  
0 q- M8 a0 Y/ a0 n   
/ i; h2 T1 H+ }- Z4 aconv(n,from_base,to_base)   
# D/ j* I6 E% m" U对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
: B& q  e5 z  X" S1 k! \mysql> select conv("a",16,2);  + |- g( N( a- L! i- Z& w
  -> '1010'
- x/ C) |7 h/ mmysql> select conv("6e",18,8);  $ i+ I* f7 O  ?
  -> '172'
+ f9 G( a2 O; gmysql> select conv(-17,10,-18);  5 v. |; f% R5 @7 b! c0 V6 R
  -> '-h' ( P, r! y- t! j
mysql> select conv(10+"10"+'10'+0xa,10,10);  $ P8 m7 p9 @1 R0 }. Z5 a6 G0 b
  -> '40' " Q1 O5 M: ^" {# V3 f
   : }% T4 a0 S; z' H3 j! p
bin(n)   * V" Z8 p# Y+ u3 @+ D' i- @
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
  ]- P% Z9 W% _( S$ }mysql> select bin(12);  
3 e3 Y& T: E& ?  -> '1100' 5 M+ k8 Z0 E0 n

" Y7 i& o* i) A6 Doct(n)   2 ?$ |5 u' L+ x% C; m+ F
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
; S2 v" N' A! p: y: m' w4 \mysql> select oct(12);  * b# b6 f* ?$ Q# e+ a
  -> '14'
4 Y' [3 J: N6 l6 k   1 ?7 z1 b) V3 Y1 u8 j0 R
hex(n)   * I4 d" |+ h) J
把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  
, Z2 G1 M5 t! L0 m! D$ Emysql> select hex(255);  
9 Z  z# @0 T  E3 g+ u  -> 'ff'
6 {7 r1 v7 ?8 y; S5 A* h& B$ J# Y   " j" @5 \  s1 C8 U& y% W% s9 p
char(n,...)   0 p6 T( d5 ~1 c" W, ^4 d
返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   0 |- j" r2 p5 I$ O
mysql> select char(77,121,83,81,'76');  
+ y) g; `. g7 O' M* f  -> 'mysql' 6 T) J& u) r: {" ~5 f8 R: a! A
mysql> select char(77,77.3,'77.3');  
4 d/ m- ?, x4 ]# @& w0 `8 x1 c  -> 'mmm'
0 W* k- Y! A& v5 z   3 M4 u3 V9 j/ m2 \& S
concat(str1,str2,...)   7 l, K  o' y  T3 X, @
把参数连成一个长字符串并返回(任何参数是null时返回null)  
9 U. i. y  `' M% V/ V& a! p  Dmysql> select concat('my', 's', 'ql');  
; Z' A2 g7 D! t/ k% t/ ?9 |% k  -> 'mysql'
$ E  h; N6 [- S; Fmysql> select concat('my', null, 'ql');  # `, c4 S; d' p9 a# W
  -> null 1 ^4 L  ~: N' f2 n6 a/ `& d* w
mysql> select concat(14.3);  
1 \" O' r! M" q( u  -> '14.3' 0 _: b& U3 \7 J: k5 j
% {( A6 r4 S; A3 d
length(str)   ( a5 K- P4 j0 A0 S9 x* _  n
octet_length(str)  
. o2 J# v6 f0 p: dchar_length(str)  
5 U; E& b9 Q8 @$ M$ ~: Pcharacter_length(str)  
* t6 E% Y* [2 ~0 ]返回字符串str的长度(对于多字节字符char_length仅计算一次)
$ a+ K/ X# a7 T/ n/ h' qmysql> select length('text');  % J. {7 `+ G3 K0 c$ @
  -> 4  
' D4 H3 |) x6 emysql> select octet_length('text');  . i0 q" U# L$ ]4 }( k. b
  -> 4  
# u; ?8 H0 Q4 |! F  w4 a: Q/ H + F5 b5 b. q4 u
locate(substr,str)   
. F# |) m4 y8 k8 S1 z7 q6 vposition(substr in str)   
$ j1 j7 f' _5 H& B返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
1 b* }8 T/ e: b. emysql> select locate('bar', 'foobarbar');  7 r1 ^5 l8 r! S* s0 h
  -> 4  % x& |- v% a9 ~2 q
mysql> select locate('xbar', 'foobar');  
5 ]( c$ M3 A8 y  -> 0  " m6 |8 E3 C( P+ D' Q. e! ]2 a8 t
    9 C- T. o1 [6 }1 Q# l% V
locate(substr,str,pos) # K5 a; \3 i8 I2 t. T* F
返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  ' [. y3 E' a7 K0 o- i+ s* x  h4 I
mysql> select locate('bar', 'foobarbar',5);  , L& J  `6 S1 T2 }7 N' f7 M- ~  F
  -> 7  
' a0 Y) \% I7 b' V# ^; E ) V/ Y+ k0 I; P' s; Z0 c3 s
instr(str,substr)   # T- X% t8 J2 D  P% S; X' d
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  4 {( {4 O1 S# ?8 c3 i
mysql> select instr('foobarbar', 'bar');  
, M- b' n' t- r2 X1 ]6 m4 ]" C  -> 4  
$ }( A; ]( s' K  q9 Mmysql> select instr('xbar', 'foobar');  
. R3 y5 T& Y' Q  -> 0     J+ q! h- W: ^. [0 N2 D

* O! [6 t: W; Nlpad(str,len,padstr)   
" t* U* B4 q8 H4 [# p用字符串padstr填补str左端直到字串长度为len并返回  " E. T# V: b9 _8 y# h
mysql> select lpad('hi',4,'??');  ( e1 C2 y1 }1 P; K- F
  -> '??hi'
( ~3 [* S6 z& B- C   
0 g  ?4 R: A, l, B. Prpad(str,len,padstr)   
2 g4 ~0 e1 h+ m- I; o用字符串padstr填补str右端直到字串长度为len并返回  - C9 x2 K& f8 f! `
mysql> select rpad('hi',5,'?');  
# i- w. K  z" ?  -> 'hi???'
5 I9 h$ z# t; l3 q, Q 2 C+ y/ B) P' l/ |+ G& f
left(str,len)   
- i7 p8 P0 ~9 j3 ?! V返回字符串str的左端len个字符  
5 _7 I, C( }4 i) Z# \mysql> select left('foobarbar', 5);  
2 R8 e! T" W3 J% k  i4 M( I9 q/ n  -> 'fooba'
3 y" ^1 O. Y" P, J0 x2 g
, m8 T2 Y% m0 a% f# nright(str,len)   ; v5 `6 d/ j- s$ S7 P
返回字符串str的右端len个字符   0 q" s: N. d0 X' C; l& ]" S
mysql> select right('foobarbar', 4);  5 P( c  z, ~( Q7 I
  -> 'rbar'
3 |- o9 K- S& ?& I' z0 y$ @$ V! O
6 m4 [) O, Y2 q; Q9 a. dsubstring(str,pos,len)   
$ A( ]6 ?3 X  ?substring(str from pos for len)   
: }0 d' \" v3 P. m6 e) z: k, A+ z5 Qmid(str,pos,len)   
0 a" S: V3 U1 P# s7 e返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  ( A( e+ k8 n6 a/ y
  -> 'ratica' ! q6 ~: F8 Y. ]- o% Q; [

' f/ ~7 j% F" o$ {substring(str,pos)   
( _* g) T) t3 Z! r* s  k6 usubstring(str from pos)   7 i, l4 [# N/ }9 {3 E" ~3 V& F* p6 e
返回字符串str的位置pos起的一个子串  
, w' T. d7 B9 P3 U& pmysql> select substring('quadratically',5);  
, E: [0 R$ `7 r  -> 'ratically'
3 w, p( K% p/ ], r+ o0 Nmysql> select substring('foobarbar' from 4);  $ E9 D( d( H8 b/ [1 Q
  -> 'barbar'
3 _7 n% d: V+ g; q0 M5 K 2 w5 \2 J) ]3 _, [2 O2 a
substring_index(str,delim,count)   
& k1 c: p, q2 D+ R0 |2 h返回从字符串str的第count个出现的分隔符delim之后的子串
5 s: G/ ?2 X! P( K, G" e/ o" [! D9 C0 S0 N(count为正数时返回左端,否则返回右端子串)  
$ p& M: i! i5 t/ l* x& Rmysql> select substring_index('www.mysql.com', '.', 2);  
/ k- W- m. I/ _; l+ q7 }! e5 K  -> 'www.mysql' ) K/ H9 ?2 e* v) v+ c2 a- [
mysql> select substring_index('www.mysql.com', '.', -2);  
- _% H  K5 m# u- Y8 _  -> 'mysql.com'   \& ]! m; w* n. Y* ]
& f( m  q0 I% S. n3 o/ {8 e6 {# A
ltrim(str)   
, P: I1 W, c/ ~# k, D返回删除了左空格的字符串str  
$ v1 k' D; F9 C  p  |, `mysql> select ltrim('  barbar');  ; \/ M, Y) l" t1 p# G0 S$ C3 N
  -> 'barbar'
3 X3 P& t! e; v, N5 L: e8 \, g 6 }; }; _, j( T; o
rtrim(str)   , y8 o# v; H8 z: I
返回删除了右空格的字符串str  
4 H# x, d- y2 |; w" r. f% k3 M6 u* ]mysql> select rtrim('barbar   ');  ; l( W0 X. f# c6 L# K. `% k
  -> 'barbar' ) _. H( Z1 @! x- V% E
' v2 ^  @, R  m! c& z) r. n
trim([[both | leading | trailing] [remstr] from] str)  
" ~1 [* t9 V) D' m返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
( K( V2 h4 r4 lmysql> select trim('  bar   ');  0 Z- ^" O2 l6 h; W% [; Q
  -> 'bar' ' h+ J* _" J% c8 A0 [+ x
mysql> select trim(leading 'x' from 'xxxbarxxx');  3 m7 `0 j- x, C
  -> 'barxxx'
7 r; |$ M+ ]: n/ t& Q  zmysql> select trim(both 'x' from 'xxxbarxxx');  " N! _* a) W- k5 V
  -> 'bar' 7 Z8 h. p+ O0 J" V, l
mysql> select trim(trailing 'xyz' from 'barxxyz');  2 }/ H. R  P9 {8 q" m9 n, R
  -> 'barx' 4 `% a: N6 g% L5 k: S) m( D8 p
- B4 r% _. N, b4 X' P/ r- }& p
soundex(str)   
- g. [8 o9 ^2 S返回str的一个同音字符串(听起来“大致相同”字符串有相同的
3 ~0 d2 U) \7 ^' z7 d+ Q同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  
  w* W" M1 k8 A+ r0 Y/ {mysql> select soundex('hello');  
& t! l1 @+ x: l( F0 j  -> 'h400' % ~  t' }, d2 ]3 m
mysql> select soundex('quadratically');  
0 Q( Q  u5 m6 K9 h: X) Z  -> 'q36324' 4 Q# q* C/ ?1 }( d4 E: z5 [/ g
   
! J! u/ P9 S1 W3 U7 s0 xspace(n)   ! n6 Y9 Q$ z/ S
返回由n个空格字符组成的一个字符串  
; c/ x( v# L, m4 imysql> select space(6);  2 C/ r; f, s* Y3 G. F: ]- m! P( W
  -> '      '
5 g! F8 \5 \# J( j   & M# `  X% b1 T  e) d2 N
replace(str,from_str,to_str)   4 w9 s5 t5 A" q1 O( x- T6 {1 n
用字符串to_str替换字符串str中的子串from_str并返回    y: b( C1 w9 ^  K: y, p0 E4 C7 u( N. H
mysql> select replace('www.mysql.com', 'w', 'ww');  
8 e+ B" L1 C5 g  r6 o6 A  -> 'wwwwww.mysql.com' 8 _; R& D& X; c3 u( i+ t& V
+ V5 O. M$ o' n& E3 e% U8 U
repeat(str,count)   6 M5 h6 R, n  T0 w# v: x; e5 g
返回由count个字符串str连成的一个字符串(任何参数为null时0 V; H- W8 B) z: k3 N% O; p' E
返回null,count<=0时返回一个空字符串)  4 I  u( _6 p% J4 o, o6 Q
mysql> select repeat('mysql', 3);  4 y( m( K* M3 R  F* A0 T  X
  -> 'mysqlmysqlmysql'
5 f2 q% L" c3 U! m( m   9 h7 m9 A7 C! Y3 R& K) @
reverse(str)   ) T) {% N# u% o% U2 O
颠倒字符串str的字符顺序并返回  9 ~1 V8 i) p( _" S! ]
mysql> select reverse('abc');  ' O) {8 m# ?. S; t1 k2 e  `" C1 ~7 ^
  -> 'cba' ; \3 \/ B" L- |3 C* y; }& @

9 G2 v4 k3 y- h- f3 Ainsert(str,pos,len,newstr)   * }  j; R! ~6 f3 j" j
把字符串str由位置pos起len个字符长的子串替换为字符串
2 E. }/ D$ L  j( z) T, K# Cnewstr并返回  
  C6 k  \; A+ B$ I+ W* wmysql> select insert('quadratic', 3, 4, 'what');  $ b, J- B' u& [% [4 n: p
  -> 'quwhattic'
0 b; s4 J/ Q* a& c5 F0 { 5 B3 s$ C( x  g8 @7 e# v
elt(n,str1,str2,str3,...)   
9 _% y! _% I# S  @返回第n个字符串(n小于1或大于参数个数返回null)  
& d- s! g$ A* C' f8 [mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  
1 D) e% H" v9 ^1 ^+ L  -> 'ej' ) B+ F4 A: K( ?  v- q! c$ a
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  
8 k0 Z* P' O2 @3 |4 `) Q  -> 'foo'
3 `1 K8 m  t$ X! p9 N) U ( Q0 C! _% [* H( J* V, j
field(str,str1,str2,str3,...)  
3 `' W* p2 i4 q/ Q) Y返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
+ P/ w% Y) h! r- vmysql> select field('ej', 'hej', 'ej', 'heja', 'hej',' q( ]0 i% ]$ ?9 D; e6 g2 X( F
'foo');  
4 M) t2 h9 H4 h" |* [; ?  -> 2  
# ~! S& m) k) z7 ?4 C" ?9 Jmysql> select field('fo', 'hej', 'ej', 'heja', 'hej',# ~/ ~- v# O4 K6 R
'foo');  8 ]$ q! b' }% _( c+ j& r+ b
  -> 0  * {. l# C6 I  r4 F8 Z! A2 Z

! a9 n6 z% K7 a& Efind_in_set(str,strlist)   " s2 F7 A/ k6 S; D) _$ h
返回str在字符串集strlist中的序号(任何参数是null则返回
1 {  v4 H, Z: X, Mnull,如果str没找到返回0,参数1包含","时工作异常)  
" k0 f% m% N! i, {" S% rmysql> select find_in_set('b','a,b,c,d');  7 s4 m$ Y' E/ a
  -> 2  ' {2 H1 Z( s0 D6 u
   1 V( p8 `: C4 k! u% K0 x" }+ w
make_set(bits,str1,str2,...)  $ r- p& r, g8 w
把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
- E) T$ M6 H6 w2 A# |位置的字串选入字串集并返回(null串不添加到结果中)  
5 a; ~& e! T3 b& G8 {8 |mysql> select make_set(1,'a','b','c');  . H! t& V" `$ Z9 t! T; z
  -> 'a'
' C$ Q& ~- X! m$ ^: \mysql> select make_set(1 | 4,'hello','nice','world');  
; q+ N0 E0 d* D' y9 T' b  -> 'hello,world'
- w- b, F7 K6 N6 l, Q2 U$ D% bmysql> select make_set(0,'a','b','c');  
3 C% \  ?# T$ s  -> '' : d+ E/ y+ S2 n

+ |0 R# d1 v7 [5 V1 z$ X: X' v; Dexport_set(bits,on,off,[separator,[number_of_bits]])   
  g/ o  W! p: s8 {6 \. \按bits排列字符串集,只有当位等于1时插入字串on,否则插入
, y' X. ]& _6 ]& Q$ Goff(separator默认值",",number_of_bits参数使用时长度不足补0
3 I% `' C' b7 W1 n- Y/ _: b4 s而过长截断)   
) C0 \+ e# Z. I3 A. D* i2 b. lmysql> select export_set(5,'y','n',',',4)  / [; ]" ?) X! c: m" c* O
  -> y,n,y,n   8 \- I8 ?. x1 b0 _

& M( ]; j: J! u9 I$ ~9 ]! G! Qlcase(str)  : y  f- g+ J0 ^8 i. C. E
lower(str)   
8 K, o! X* j7 ~/ k2 n7 S, V, B返回小写的字符串str  8 ^0 N) i$ s" a7 E8 K
mysql> select lcase('quadratically');  
1 i; w* _1 _/ R& j9 ~  -> 'quadratically'
2 C. _* Q  p6 M3 k$ m& _: Z   + s2 C' ~8 p0 A/ }" C3 n- ]+ Q2 L0 d
ucase(str)   2 \3 P" T% g6 w
upper(str)  
* u+ G, x- @( C2 q; v( j返回大写的字符串str  3 x4 A) _) N# p8 R& M) b
mysql> select ucase('quadratically');  . g" P1 ~4 V% X+ p% k9 O
  -> 'quadratically'
' q5 c( ~0 y) c0 z' f3 C. c . ~% H4 b+ K! N. V4 n
load_file(file_name)   
/ @( `. @7 Z& ]5 G, F4 F5 J" ~, k读入文件并且作为一个字符串返回文件内容(文件无法找到,路径; Z3 ^& _' g; u( v/ D2 e4 {
不完整,没有权限,长度大于max_allowed_packet会返回null)  . z5 \' b6 P' }* P0 Y% W5 d
mysql> update table_name set blob_column=load_file, ?+ m8 C0 Y# h% |8 s
("/tmp/picture") where id=1;  6 \9 {2 g  Y" l/ o+ x) Q0 w
4 ]+ H& I3 F; e4 G0 Z
2、数学函数
2 x; o: {; R; Pabs(n) + i. \* e5 o2 U# A$ f- C9 m& x3 P
返回n的绝对值  6 z. Y- P) j- k+ B# D
mysql> select abs(2);   
, d8 N* _$ }& `, f# t  -> 2    ) P" M4 O) v# b- s- Y& k$ c
mysql> select abs(-32);    3 D8 z1 i5 a, r, k. u: ]: u
  -> 32      ^! O/ @- T7 l  e$ t9 f: m9 H+ }
   
3 @0 N, I$ n9 W$ bsign(n)  : v) e0 L: m5 s2 D0 O6 r
返回参数的符号(为-1、0或1)  8 k  Q, f1 b1 s+ U1 U
mysql> select sign(-32);   
$ Q5 a# T/ ^1 |: `- v  v' D  -> -1   
- Y* I) j& {; a0 P! G% ?8 M% Q9 Nmysql> select sign(0);   
" \6 |& L) j0 f3 S( r$ ]- p  -> 0    2 x3 G' o2 m  r: w7 y  W) k
mysql> select sign(234);   
+ B. P. C2 {: g, p- u" {4 v- j  -> 1   
4 P( F* A* b3 v6 k, k# k! d
. f$ P7 a8 j' ]- z; E$ C# D4 a' `mod(n,m)   
) Y+ y" a9 ?( X( P取模运算,返回n被m除的余数(同%操作符)   
% A7 N6 a( c$ s% ?mysql> select mod(234, 10);   
$ Q) b" v7 k/ r. p! [- W  -> 4    ! y# a) r. e$ R0 ?8 r4 K
mysql> select 234 % 10;    * D1 ?- l6 _) y
  -> 4    6 Q& @+ }( k/ a- F: M% j3 G: R2 X
mysql> select mod(29,9);      |- O+ l* x( W9 r, w# S
  -> 2    $ N5 B" ~; z( c# N+ z7 x$ B

: V# J% q9 ]. R6 H1 d" C+ V; gfloor(n)  
# h6 `0 V0 A( u$ T返回不大于n的最大整数值  
) M8 b/ \' V% M5 W0 U  M4 Pmysql> select floor(1.23);    : P, B8 a& l5 p2 v% d
  -> 1   
8 V8 T$ F# M2 Imysql> select floor(-1.23);   
! J: b8 t% D: R  -> -2    # u* D+ ~8 ^: \$ W: ?2 i7 b+ `
1 F+ z2 s& I7 |8 O& P8 w8 o
ceiling(n)  
+ Y+ X' T- |, [6 T& y, E$ y  ]返回不小于n的最小整数值  
+ M& ]6 b" `8 l8 \7 Amysql> select ceiling(1.23);    ; W* L! b" Q  f0 s( O
  -> 2   
/ n3 Q/ r1 K1 u4 {  hmysql> select ceiling(-1.23);   
* L" B6 g7 E! q8 H  -> -1   
5 N' Z7 x# ]+ C) p9 s# g3 A - V% z/ g# O9 W9 _# i
round(n,d)  1 I' X; Z& H/ b3 V) C) _9 r1 X8 V
返回n的四舍五入值,保留d位小数(d的默认值为0)  ! R/ u. ]) W6 e% u/ M! l" j* c
mysql> select round(-1.23);   
, O; N( q; r8 X8 t# H" O2 f, j  -> -1   
' ]) S1 W6 I* W+ M- Z5 P1 z5 A3 Mmysql> select round(-1.58);    9 k7 z1 s$ N4 g8 `% V; E3 b& s0 h/ T
  -> -2    5 W* I/ g! B' _0 |$ r1 ^. H
mysql> select round(1.58);   
9 [( G1 T* W* l/ z  -> 2   
. _$ r+ z/ H/ X; Q( bmysql> select round(1.298, 1);    0 q1 k5 E* _8 |* s, Y: z) B
  -> 1.3    1 h; \/ Z" x+ p
mysql> select round(1.298, 0);    ' j: t0 w" l/ {& i+ l# |
  -> 1    0 x, \3 f6 o" F, F/ g1 A

8 M9 R! u! r5 ?5 lexp(n)  . C8 X5 m; V. x/ Z( ?
返回值e的n次方(自然对数的底)  
" @6 m! d7 g2 s# u+ l3 S/ Ymysql> select exp(2);    . j7 c" \+ a7 D2 u# Y' x5 ~* L% A
  -> 7.389056    ( B! [9 v+ d, p* |
mysql> select exp(-2);    6 m$ p( c; Q$ @4 I
  -> 0.135335   
6 A; m4 f; Y. o- o4 i4 n
' M7 M4 k7 C2 g. B* D  |log(n)  - O2 h. m0 H! q" M) I" j
返回n的自然对数  
! f. J# B9 |# I3 |4 nmysql> select log(2);    7 z+ Z( v: ^# h* H9 r
  -> 0.693147   
2 F- S0 q! L. smysql> select log(-2);    3 F/ v" H: @, ]5 c- c' \5 V- G. l
  -> null    3 R$ f* e7 i' E4 ]. D

5 T5 e1 E) |% O4 n1 s( g9 z0 ylog10(n)  5 O: [! g, m( ]' K
返回n以10为底的对数  
6 Q6 J3 W/ N2 J' p/ L' `mysql> select log10(2);   
% j6 ~6 W. s# E& E5 t; m) j  -> 0.301030    " ]0 W3 c, u: o; M3 J( l+ J
mysql> select log10(100);   
% x2 f0 {+ K# |0 N" a9 U; K2 @  -> 2.000000    0 Y4 K$ r- n* b, {/ c1 k5 R
mysql> select log10(-100);    # l- `2 [6 p& D" l  b5 H9 ^* r" U
  -> null    9 U& S: a1 M* g3 d* s1 _2 D1 m

4 L$ \) x% H4 ]0 I: {pow(x,y)    0 B9 g1 S6 t' W: l3 v* a( A/ z1 v
power(x,y)   
5 H$ A# y' v7 V; Q# t& z5 _; v 返回值x的y次幂  
& e; f3 ^3 |! y$ Gmysql> select pow(2,2);   
: g5 |' r6 v) t+ A  -> 4.000000   
/ V! U7 @6 C- c- Z. D1 cmysql> select pow(2,-2);    6 B1 f9 S3 \. A2 ^; {
  -> 0.250000  
9 [* a' u, \- M
5 T0 v3 V+ \* E$ Esqrt(n)  3 U# r- w' J8 O, x
 返回非负数n的平方根  
" H/ g  S% B2 |$ r* [& Umysql> select sqrt(4);    / Z# |& G5 e% t9 [1 u
  -> 2.000000   
# h4 w' f' A7 j* q: dmysql> select sqrt(20);    ! a3 P1 c+ _1 a8 _
  -> 4.472136      \' A7 h; W- T0 q. u' S6 K* M6 v

; S5 N4 z& }; Z9 Epi()    $ e: _& v$ q; h  p
 返回圆周率   
+ O0 ]3 ~/ F! i) V/ v. }7 t8 V1 Hmysql> select pi();    ; [" t! {. K' l* P3 p# Z
  -> 3.141593   
- x7 _5 J: s% D" d. w8 L
$ N; y2 d2 W8 H- G- tcos(n)  : V( K# q% s9 q
 返回n的余弦值  . |# }; J' m$ a7 @/ z8 I7 D
mysql> select cos(pi());  
' e4 z% Y9 ?$ H; Z2 v  -> -1.000000   
* |* T1 l2 f1 ]) n* R; U) Q. b( }
. j9 }4 I/ E" {' N& X3 h' Asin(n)  # z8 `- ]; K+ |- E; e8 l/ C9 P
 返回n的正弦值   
1 a  f$ n3 ]; U; Y: O+ u. [, pmysql> select sin(pi());    & x0 `% J" U: i" m- V8 p- d/ _
  -> 0.000000    $ V3 U8 [# t- W3 g% H. c: v
  R7 V( D- s8 }
tan(n)  
" v3 i% F: r$ d返回n的正切值  
7 P1 g9 ~0 ]% x" Q8 m6 Q' d' q2 x  R! Hmysql> select tan(pi()+1);    $ D# o$ G  {* p. F0 ]4 p2 C
  -> 1.557408    : }! E: m' `% i4 G
" S$ A( ?: h6 o8 N% j
acos(n)  1 d+ Z' q7 Q6 n( [# W' s* s$ X. e
 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  
2 f# S/ n% I% U3 u* ]8 Zmysql> select acos(1);    ) v1 w- E  _2 F3 T
  -> 0.000000   
4 L) p, v3 R9 f6 `+ V, Fmysql> select acos(1.0001);    7 u1 b8 X) i& i' u2 h# Z
  -> null    , w. P* P; c. d
mysql> select acos(0);    0 Y& C" Z  b& H* r
  -> 1.570796   
) g2 Y: B5 H$ t* s  A: M2 H$ A* x ! K) e* w, @  Z* C3 g8 a
asin(n)  
2 }2 {8 k/ X8 E- h# E/ S2 ?8 C返回n反正弦值  
% ^+ d/ a1 w+ e) k. s" Ymysql> select asin(0.2);   
& P8 N- p6 |' B$ S  _, B9 {  E  -> 0.201358    & n1 k- }; V& I) v4 h
mysql> select asin('foo');    ; Q8 K' U0 T% G6 r, v( M2 c3 A/ a- d
  -> 0.000000   
7 K- f% ?/ p' P6 p4 {# p! }" ]
. T, T  N. L7 d1 u6 m1 D# Eatan(n)  
5 {* L$ ~% C6 t. a0 B& N0 s返回n的反正切值  
1 o( G  g9 N! V: v9 ~8 p9 `! }/ [mysql> select atan(2);    ) }3 a3 e0 ~2 G$ i( j! N
  -> 1.107149   
0 K# b) T  ~6 [  lmysql> select atan(-2);    4 f3 s/ Z3 _" a% F! `/ i
  -> -1.107149   
, b5 v' s- U! Z/ F% `atan2(x,y)   
0 d* D+ l: h5 b# a 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  
$ n% D" e; h) {! C8 i' r; Kmysql> select atan(-2,2);    0 q5 @2 G! L& B7 @0 P5 }
  -> -0.785398    $ E# q& Q; {: t& w( T$ K4 j/ B0 h
mysql> select atan(pi(),0);   
& L. J4 [/ k9 |0 D  -> 1.570796   
8 z0 S! u+ t# @! P" n* |& D1 z7 R& n ! D* X# {3 }+ Q7 O( y
cot(n)  
# j: `2 g( G( |. V0 |6 D* r4 z返回x的余切  
% |7 f+ Q' d0 amysql> select cot(12);    - o0 J5 Q8 k# v: R) e- L
  -> -1.57267341    3 }1 V8 n$ @4 u5 F5 B( \. k/ D9 Z' Q
mysql> select cot(0);    8 M. L3 z9 P" U1 N+ w
  -> null    2 {: O" U$ l" L  u

8 t+ V; U% y, N3 z# Zrand()  
. ~2 L+ ]/ l# T3 c$ D6 X' z/ l- _rand(n)    : ?" U% o5 d7 `. _/ j" h
返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
- N6 W' O0 Y1 j   m" b# p- U6 [$ l
mysql> select rand();    0 p  L. G. G! h* A- w
  -> 0.5925   
" b* m6 q1 H: q- Q! [) pmysql> select rand(20);    . q' |$ w6 K% D7 ~) r
  -> 0.1811    ( N# m! x3 b$ z
mysql> select rand(20);   
1 M; |% f. w* U9 ]+ q3 x4 j  W  -> 0.1811    + B, I0 L( ^, E" x8 X: Q$ j) |
mysql> select rand();   
( R) j2 p8 U0 [  -> 0.2079    4 `+ d- Z1 C* R# p% r, S3 S4 I- B
mysql> select rand();   
. [3 j- h6 b1 G/ O3 T) x  -> 0.7888    # s' V& e* ]6 @4 W7 X
5 L9 D  \  y. W7 {
degrees(n)  1 K9 [6 N. B6 M( U4 d3 e9 y
把n从弧度变换为角度并返回  
1 W6 {& v  _( l- Q& M! Amysql> select degrees(pi());    # U0 w. U) }) z- U. y
  -> 180.000000    ( c5 f. x0 I) ?% i( \* ]
. {7 g' @1 n. |$ ^9 S7 g0 s
radians(n) 1 w0 c" H: E( f9 o+ m# d
把n从角度变换为弧度并返回     Y' S6 G; n" F4 b/ Z+ L' m
mysql> select radians(90);    . u6 m" K" L7 Q1 `* D: h* e, O
  -> 1.570796   
' x$ K6 p2 E2 U( j: h& R5 K
( M% L8 q' d$ x7 F# Q1 w+ y7 Atruncate(n,d)    $ I0 V" {! t9 R$ m- i0 g! F" L
保留数字n的d位小数并返回  4 Z$ E2 \: ]! r3 a6 |$ H" P4 R4 A" R
mysql> select truncate(1.223,1);   
* F& [8 G3 `. J8 d( o  -> 1.2   
  d  l' w3 |  m, Z4 i2 d5 Omysql> select truncate(1.999,1);   
( P1 H0 b2 u* ?$ b. Z" K- W2 [  -> 1.9   
, ~6 j7 }* M; Nmysql> select truncate(1.999,0);   
9 T/ E2 d' O( V3 M+ j  -> 1    9 E$ Q: r/ c% }3 ^: y8 P
& K  t0 Q: K9 G) y1 O
least(x,y,...)    8 i- V: ?2 ?: f& ~
返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
5 z1 T9 |# p) W; N: z1 fmysql> select least(2,0);   
  X5 M, }2 a4 c" `  -> 0   
! b" g, A* _/ Ymysql> select least(34.0,3.0,5.0,767.0);    . P7 G) m  c: j) r8 D) w
  -> 3.0      o1 ~' ~( D, r2 K& F+ r$ g6 ~/ E7 n
mysql> select least("b","a","c");   
+ M  a- g' K! s7 z: l  -> "a"   
: n8 s5 q; I- a4 b4 \7 p8 \
/ y3 r( s7 U  zgreatest(x,y,...)      P* T. J8 N; |& _) _( |
返回最大值(其余同least())  ' f. f+ ]' ]( a- K* \
mysql> select greatest(2,0);   
* ]7 X- P9 d) X3 h  -> 2   
. w. x* G0 U% c  p8 nmysql> select greatest(34.0,3.0,5.0,767.0);    & L6 Z4 i7 t: n6 s
  -> 767.0   
" f# N: b0 z( U: }0 Umysql> select greatest("b","a","c");   
& T7 j- x7 I2 ^. O* C# d9 L/ E  -> "c"     
' p; R6 ]- j. T1 w3 j* |3 z$ q$ B; Y+ Z- E1 d
3、时期时间函数 * I! D: Z$ G' x" ]" r
dayofweek(date)    5 N  }+ `6 \1 A) ?' m  |4 s5 Y
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
; e" f& x9 }$ Z5 G' Zmysql> select dayofweek('1998-02-03');    1 [' B" x- _( e! o( x, H: H
  -> 3   
, X0 d4 v9 f  G9 p0 ~2 X
! n+ C7 o3 e& X- ]weekday(date)    2 d, l3 L8 `' e. [
返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
6 p' z9 v: V/ w/ E3 ]  I( D  
9 D/ m6 O! D9 I% _9 o$ l7 I6 d0 Lmysql> select weekday('1997-10-04 22:23:00');      k6 N3 x3 Z2 U* V- k6 N
  -> 5   
$ |0 J* [) c; d4 g7 Smysql> select weekday('1997-11-05');   
, J: \9 j- Z2 k, U, z  -> 2    ( f0 H2 g, Z5 }

( M) K) z8 P6 u1 o( A3 [dayofmonth(date)    
4 {5 N4 d! K! R" T/ g# G  c返回date是一月中的第几日(在1到31范围内)   
( Q6 S; g6 P5 l* k6 Z1 wmysql> select dayofmonth('1998-02-03');   
! m+ Z  G2 u6 n4 k1 l. C# d' T  -> 3    * u9 Z$ L5 h. `

. x+ t# v, ]: j+ V' z8 v$ Ydayofyear(date)    1 h( u- m& K/ f& i5 c4 h% I* {
返回date是一年中的第几日(在1到366范围内)    6 T9 I% F1 Y& s$ V/ S
mysql> select dayofyear('1998-02-03');    % h  s, M6 n; U* v. C, n+ ~* r
  -> 34    - Z8 i1 D# x& J) \7 m9 l
1 h! b8 |$ j1 ]" [# g* Y3 O
month(date)    0 y# V6 v  a: e
返回date中的月份数值   
6 a6 ]/ [& p) x9 ^mysql> select month('1998-02-03');   
7 q( U; j/ M  Q3 ~, \/ O8 q4 q  -> 2   
, j$ K8 @' l! ^, u# y; Y8 B# c $ J! T( W; d3 {- t, p
dayname(date)   
3 i* X/ {5 y' Q3 P7 H4 g返回date是星期几(按英文名返回)  / M2 z, ?6 T& p% i8 t3 S
mysql> select dayname("1998-02-05");    7 t% ^, R0 x" p$ i4 I; U# R  f
  -> 'thursday'    , p& J3 u& Y# D3 Z8 q1 C

8 o' b: q- y- c+ Amonthname(date)    * W: C  d: B5 X& a( Y& H4 D. n9 S& Q# d! {
返回date是几月(按英文名返回)  - F2 x9 b- e* A
mysql> select monthname("1998-02-05");    3 I0 u+ ?/ X$ m
  -> 'february'    - F# m: ~8 x5 z  m& X' O  a
0 u0 R0 ]  j: R. R9 `- U
quarter(date)   
$ U* r8 |' G2 X; `7 W. ~. j返回date是一年的第几个季度    ( j) c$ d& e$ O+ O9 {
mysql> select quarter('98-04-01');    4 ?4 `# \" f3 Q  U1 E7 b
  -> 2    ) P9 k: S0 C* O9 h/ ?2 X
6 A/ A8 ~9 C) H" t* J
week(date,first)   
9 G$ d% O) }& B9 f返回date是一年的第几周(first默认值0,first取值1表示周一是3 }) Z7 v6 Y/ M) D9 I6 ]
周的开始,0从周日开始)  
6 z, H+ L8 l  }! B" `5 f6 ^0 Wmysql> select week('1998-02-20');   
/ R0 O; g9 V& s) c  -> 7    5 l( y/ V4 t8 K
mysql> select week('1998-02-20',0);    7 O: M5 ]# ^% G7 ?
  -> 7   
0 R$ l7 S) A* b! |  g9 i- L$ e. @mysql> select week('1998-02-20',1);   
, S* C' G2 V, h) Q, T4 _  -> 8    " T* ]! [+ ]1 j1 R" v
/ `- U9 h0 M+ p8 R' q& P1 \4 J
year(date)    - ]5 h9 E; g# k- l" |7 a' A
返回date的年份(范围在1000到9999)      Y, H/ h( |' ^; `) Q
mysql> select year('98-02-03');    : T7 }6 {- K; C5 @3 ~+ D% p
  -> 1998   
+ _; m8 c' r0 \+ X3 W, F* j 0 g! @, S0 b2 N& n0 G) e/ N4 `+ f
hour(time)    ! N4 j5 q3 x+ t# S. q. l
返回time的小时数(范围是0到23)   
! n# M1 k# o" L( F  q4 ]mysql> select hour('10:05:03');    3 h3 @- t$ p3 a5 M6 T
  -> 10    5 J( a. P2 l  ]2 f2 F

8 |% `" |5 u  z: C, l6 ?, O$ Tminute(time)    2 J7 P& z; X/ |$ I: C
返回time的分钟数(范围是0到59)   
3 R( d' i; F+ `. q  ~. v. w' A, Qmysql> select minute('98-02-03 10:05:03');   
0 {( U/ d) u, u  -> 5    + G; B) S! T) m& S; k2 {8 k0 Y

+ Y8 i" p/ @2 `1 y4 }4 A3 L/ H8 Nsecond(time)    
) r3 W! Z( P' K& s9 k返回time的秒数(范围是0到59)   
, P- j: d2 ^/ e7 Lmysql> select second('10:05:03');    - o% s; h: u" M8 e& f# L* Q
  -> 3    + }3 S0 b/ t" R; J3 D
8 a) d, j  l+ J" R8 V+ y$ {
period_add(p,n)   
' T; p" M( W3 B6 T8 o7 |( b增加n个月到时期p并返回(p的格式yymm或yyyymm)    $ k% H, t$ }7 I$ Z5 L% h
mysql> select period_add(9801,2);   
6 i; {! G; E& H+ n% |9 d& g  -> 199803   
* B6 m% r  ^- y3 S, X, n6 K3 c5 M
7 o$ j" {9 L- A# `6 z; ]' Tperiod_diff(p1,p2)    - s2 q9 J! Z7 g5 t( E( e+ k
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  8 U) f# r3 V' Q! r: w1 ^
mysql> select period_diff(9802,199703);      z! W% A6 u: `  A. ^' G# D2 r7 i9 L
  -> 11    8 A1 O0 Z& F; f  i. O

" z% o* f: d' [& I3 xdate_add(date,interval expr type)  
' l- t- z9 a; x, Q7 B2 p  qdate_sub(date,interval expr type)   
- I/ q1 s- f0 S9 N2 @adddate(date,interval expr type)    " q; a1 x, A& R: z
subdate(date,interval expr type)  ! a# J$ N3 n  J6 k
对日期时间进行加减法运算  & k7 V* P' E8 G+ c
(adddate()和subdate()是date_add()和date_sub()的同义词,也
* x! L- b& Q: @4 k6 E, K可以用运算符+和-而不是函数  ' }. t: D$ I" ~' ~. Q! T% r
date是一个datetime或date值,expr对date进行加减法的一个表
, a/ B9 q, S2 W9 z达式字符串type指明表达式expr应该如何被解释  ' u8 s4 M9 v7 V1 f1 v( l1 v
 [type值 含义 期望的expr格式]:  
5 H5 F5 `' T" d. }. A# ]! T0 T second 秒 seconds    5 O" i/ d% H5 X- ]# G' C
 minute 分钟 minutes    2 J) g5 i) q& N$ {6 s6 b5 A# ]
 hour 时间 hours    . r5 a8 {# h( Z. }
 day 天 days   
$ A$ t8 R- p+ t9 k- E4 b! W month 月 months   
) g! H& i  ^4 Y$ P) v. I year 年 years    : B6 c& o' [4 E1 u
 minute_second 分钟和秒 "minutes:seconds"   
9 ]9 S4 f+ `! y0 l hour_minute 小时和分钟 "hours:minutes"    ) d* I3 [. _7 z/ T" i- _1 `
 day_hour 天和小时 "days hours"   
1 f4 q  z% R) X year_month 年和月 "years-months"    ; v' @6 ?4 ^3 H# X( F# `/ M: _
 hour_second 小时, 分钟, "hours:minutes:seconds"   
! z% A. B/ V' R  V5 c" o day_minute 天, 小时, 分钟 "days hours:minutes"   
, e& \4 d5 O4 h day_second 天, 小时, 分钟, 秒 "days
8 ~8 J# Q2 [/ |+ V2 p6 ~hours:minutes:seconds"
; \. g$ ]4 y# E& ^' I expr中允许任何标点做分隔符,如果所有是date值时结果是一个7 r6 e- V" ?  Y( |5 d7 e* a5 V
date值,否则结果是一个datetime值)  
6 _9 Z) K  I! J 如果type关键词不完整,则mysql从右端取值,day_second因为缺
9 p* R. X- o3 _) {+ {0 t% S少小时分钟等于minute_second)  % K6 A- s/ ?  \1 s
 如果增加month、year_month或year,天数大于结果月份的最大天
, O. R4 g# g7 [数则使用最大天数)    8 l+ ^3 [9 G/ u5 E( b0 p  Q9 X$ d
mysql> select "1997-12-31 23:59:59" + interval 1 second;  4 u9 U: E4 G) }% K; U: r7 o
& d" f; I6 U' ^3 w
  -> 1998-01-01 00:00:00    # [1 Z7 k2 ?+ z: Y5 r% r2 Q3 r
mysql> select interval 1 day + "1997-12-31";   
+ }+ @* I/ n& s" P+ J  -> 1998-01-01   
7 j( T6 o6 X: Q8 nmysql> select "1998-01-01" - interval 1 second;   
5 y% h. F: J8 V; E/ i( _- k# y  -> 1997-12-31 23:59:59   
% z: I- d- l/ m5 y$ V; Wmysql> select date_add("1997-12-31 23:59:59",interval 1
+ f0 i6 C$ X' Q! X- @second);   
9 }$ _. s3 r/ {% r$ T* s  -> 1998-01-01 00:00:00   
& W% o$ o5 N* R9 Y4 }3 J7 ^$ r. mmysql> select date_add("1997-12-31 23:59:59",interval 1
5 [9 n: L6 L" q. l8 Wday);    , \7 h8 O8 A* d' a
  -> 1998-01-01 23:59:59   
  _. f, |" o3 C9 f1 Qmysql> select date_add("1997-12-31 23:59:59",interval4 D' V2 l& a& F
"1:1" minute_second);    - p- Y; Z% b) L4 h. `, N" e$ _, F
  -> 1998-01-01 00:01:00   
5 e- G4 ]2 _( c* _; |0 ]8 Smysql> select date_sub("1998-01-01 00:00:00",interval "1
* q/ J7 S- @, W, A1:1:1" day_second);   
1 _9 K+ \' J6 W$ e& V& b7 ]/ P' k  -> 1997-12-30 22:58:59   
4 }7 }1 O! B( n$ J% dmysql> select date_add("1998-01-01 00:00:00", interval "-1( R( ~0 W4 r( ^0 X. v+ `2 `, ?" l
10" day_hour);  . B7 m6 b" s  r
  -> 1997-12-30 14:00:00   
: A7 {2 ~; o! K, ~, \  V$ O- cmysql> select date_sub("1998-01-02", interval 31 day);    2 x7 V) s$ @' c4 G- @6 l/ H
  -> 1997-12-02    : f; s4 E! M; `7 X
mysql> select extract(year from "1999-07-02");   
' T9 H1 {5 s; b( m: i  -> 1999   
7 M1 ~; O* b" r' x" u: Kmysql> select extract(year_month from "1999-07-02( k2 n' E( x  i
01:02:03");    ; i) \9 ]( `( P- F0 ]5 h' U$ L
  -> 199907    # |1 Z0 }1 m; K8 V8 ^( a% ?! ?
mysql> select extract(day_minute from "1999-07-02* `4 P: I& g5 j, Q0 O3 q4 t
01:02:03");    2 _5 _4 L& Q$ ?& n( `5 B- w+ W/ s
  -> 20102   
  ~1 T+ @% U6 k' V6 \% E; x- ? 3 H; b* d- P  O3 j3 n4 P6 O7 s" v
to_days(date)   
0 Q; Q- q* k2 d" `: f4 ?返回日期date是西元0年至今多少天(不计算1582年以前)  
6 X* S6 v3 y$ U% l9 I/ v: gmysql> select to_days(950501);   
* c! A3 \+ R3 B& {/ V' r' ?7 ~  -> 728779   
. J6 c* P0 O5 V5 H6 K) r: Vmysql> select to_days('1997-10-07');   
; W* d8 f- \7 o5 l0 b6 N  -> 729669   
5 ^; a, i0 u2 j3 f
1 H$ G/ u8 J8 |- h# Yfrom_days(n)    / M; n9 p4 r% p' S
 给出西元0年至今多少天返回date值(不计算1582年以前)   
+ `5 y5 X, V8 Y, k  ?: z7 [: Nmysql> select from_days(729669);   
" c6 d) @0 T8 o5 c. b" k4 v  -> '1997-10-07'   
# K" c4 X/ g( S; H0 r 7 m8 r: I4 C& ?2 C5 P% I7 Y! ]
date_format(date,format)   
4 w. ^5 O) O( a  P 根据format字符串格式化date值  
' u! t2 r" Q+ Q& @ (在format字符串中可用标志符:  ' b4 Y! F# m: D& P
 %m 月名字(january……december)    2 p( g# d% A* q% o" Y. w. D
 %w 星期名字(sunday……saturday)   
5 S5 q, }0 f- g; W. Z/ J %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)   
" n2 Z) _3 [1 a' G; f& f. e %y 年, 数字, 4 位    2 @" U5 i( \& d% L, M2 \8 Q
 %y 年, 数字, 2 位    # u% |" X6 w& g4 S  @
 %a 缩写的星期名字(sun……sat)    + G3 A5 f) R& ^3 x
 %d 月份中的天数, 数字(00……31)   
5 G) D3 M9 {" ~4 m %e 月份中的天数, 数字(0……31)    / P# c- e! X2 K/ H4 h. T
 %m 月, 数字(01……12)    : M& `4 L4 {5 g/ p
 %c 月, 数字(1……12)    0 ?. E9 [# l: ]3 f* p9 L) `' Q) y
 %b 缩写的月份名字(jan……dec)    ) g8 n1 b+ P( [* W% R2 }& s9 K& z: l' g
 %j 一年中的天数(001……366)   
5 U; L3 j, X9 h, d2 P7 m# V %h 小时(00……23)   
- o7 W* r7 y* Y" { %k 小时(0……23)    5 \( n/ b7 N# V5 [- z
 %h 小时(01……12)    , l5 p+ E# G% p% }8 e9 l) d  N
 %i 小时(01……12)    ; u! O4 I, I. m6 E+ F5 m# t
 %l 小时(1……12)    # d" H& d7 A, v- e6 P( P9 {
 %i 分钟, 数字(00……59)    2 s4 P. Q, w, B1 g) _* U
 %r 时间,12 小时(hh:mm:ss [ap]m)   
4 t5 b( b6 B6 d/ m" M& p %t 时间,24 小时(hh:mm:ss)    & {, t& w: D  w3 U+ H- G
 %s 秒(00……59)    + ~3 I) N/ A5 v
 %s 秒(00……59)    9 ~4 H* }2 [* d4 S
 %p am或pm   
, K% N+ Z/ I7 U# G  p %w 一个星期中的天数(0=sunday ……6=saturday )    % Y# a; h% j. E7 o4 H
 %u 星期(0……52), 这里星期天是星期的第一天    4 ?7 l: \" b6 U
 %u 星期(0……52), 这里星期一是星期的第一天    . I) u% R" s# o
 %% 字符% )  
0 o/ r7 ?' o0 O/ g" jmysql> select date_format('1997-10-04 22:23:00','%w %m %
, ]/ Y7 z' D- e. P( I/ n! Dy');   
! l' w+ n' x+ f; a, a8 k# x1 I  -> 'saturday october 1997'   
# G/ q- D& ~( k9 ^# ~9 o& jmysql> select date_format('1997-10-04 22:23:00','%h:%i:%
/ S' H; x2 X' w  xs');    7 D6 T" V0 T# }2 I) R; Q; V5 {2 u
  -> '22:23:00'    : [% g0 s  A, V3 x& Z
mysql> select date_format('1997-10-04 22:23:00','%d %y %a
% i2 R' o; r, S! e%d %m %b %j');    . ~  a, c: ?# v
  -> '4th 97 sat 04 10 oct 277'   
; C, Y  J( Y3 Z6 s+ tmysql> select date_format('1997-10-04 22:23:00','%h %k %i8 p% K& d' E& h1 b
%r %t %s %w');    8 l5 P  Q2 N5 @2 f
  -> '22 22 10 10:23:00 pm 22:23:00 00 6'    # S8 v& a% v7 i. _* B

+ x1 T5 J( N' J0 y( |0 [6 @1 h1 b7 Gtime_format(time,format)  
$ z5 J, u; P* H: |/ k4 `: \* }' f# l$ X 和date_format()类似,但time_format只处理小时、分钟和秒(其0 _4 [" G: d1 A( g# n: B1 q; v" E
余符号产生一个null值或0)  . M2 S2 s8 O0 H) f: a5 ?3 v+ f
0 A+ |) f, C! V0 c1 s
curdate()     3 o" k! ~4 W% u- ]8 T, k9 i6 M
current_date()  % D# F2 J5 U3 L  s' _
 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
0 b3 b" J4 b$ K' p处上下文是字符串或数字)    4 ?, s; E. G3 v% p  A
mysql> select curdate();   
; ]- L6 y. o, }$ C0 I/ S0 Q  -> '1997-12-15'    / L' I9 p, R3 T" g; ~
mysql> select curdate() + 0;    % x6 j+ q( Y! O( S* \( ]  b( r
  -> 19971215    " N2 F) C- Q' w: F. {* ]7 a  ?* A# {

5 m6 y6 h' q7 A( v5 l5 A9 Y, ocurtime()   
5 B* w  L" y" Ycurrent_time()  
% ], ^% c" r& C% d; S7 I! t4 ~ 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
, A: `  e3 x6 u! V. F9 Z下文是字符串或数字)      
6 L( Y: d. ^" q( c- H6 |mysql> select curtime();   
" c, }' [# @- l% ]4 q9 t- \& ]  -> '23:50:26'   
/ g, w0 T" E( |mysql> select curtime() + 0;   
5 d1 c8 y& k& P* {' s  -> 235026    ) _1 Q0 {8 F. y6 Z

" c1 W% i1 E$ w! ?" K1 r% nnow()    ! ]9 n$ U' A, ~; X( O8 A
sysdate()    
* G! U. t& n/ f& k: C- X8 _+ |: Bcurrent_timestamp()  + Q" H, s# M- H6 ^+ S+ ~+ l+ ?& `
 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期+ H$ d# |5 h4 p% g
时间(根据返回值所处上下文是字符串或数字)     
( I  R( P$ C1 {1 H4 Wmysql> select now();   
1 ]4 g9 C4 u9 ?0 R' V: r% c7 m- \, v  -> '1997-12-15 23:50:26'   
) F3 k6 K. W, a1 t$ h$ imysql> select now() + 0;   
  a% R+ b9 ^# U  -> 19971215235026    / P2 U& y7 U" Q& k4 Q" L
4 N; D1 C; l3 `8 [
unix_timestamp()   
& |; @/ V/ k. K5 Lunix_timestamp(date)    5 D- y7 H! p2 S7 [! R& \
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒! s7 S8 m* b! n
数,date默认值为当前时间)  
) q9 a3 a" g" F3 a: Q; e" \% ^mysql> select unix_timestamp();   
- m2 {* J+ ?9 W& n- |  -> 882226357    5 Q: U( O3 {4 H* P: |  s/ C+ ?) l
mysql> select unix_timestamp('1997-10-04 22:23:00');   
' L. w# R, G0 O  -> 875996580   
7 e/ c' `4 J' n5 _! a. f: ~" ]
/ j+ b3 x2 E: A( l( ]' nfrom_unixtime(unix_timestamp)   
& ?/ F, S% f6 y% ?$ W6 M$ Q! a4 O+ k以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的
8 d, F' w+ f$ b( I值(根据返回值所处上下文是字符串或数字)     
  |+ `* Q! ^+ e+ h8 omysql> select from_unixtime(875996580);   
" G% C& d) h) s# \9 o  -> '1997-10-04 22:23:00'   
- `2 \. B: }$ t7 v" [mysql> select from_unixtime(875996580) + 0;    ( i- x0 h8 \0 i- [
  -> 19971004222300    1 T0 i! {3 r+ ~6 M% Z
+ H( ]- I2 h5 u. |) \
from_unixtime(unix_timestamp,format)    
" C% f) @, s0 m以format字符串格式返回时间戳的值  # V+ H# S/ x$ }% s  B  C. L
mysql> select from_unixtime(unix_timestamp(),'%y %d %m %
* F- _* D4 M& U4 E" k9 K; hh:%i:%s %x');   
% [. F1 r2 ?; g! ?8 N; @0 _" R  -> '1997 23rd december 03:43:30 x'    # C5 @. V/ W( p# T* v. @& C2 k

! x  g* v1 g0 }+ E' h4 S( s0 e! |: _sec_to_time(seconds)    8 A( W% F5 g9 {% X$ w" `( K- }; ^
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
, F' A" M' w; E+ j, x- |: Zmysql> select sec_to_time(2378);   
+ o% e3 E& W4 A  -> '00:39:38'    " ~) Z; Z" p) c( k; j, t
mysql> select sec_to_time(2378) + 0;    - X4 D+ @* N' m! J; t$ x$ B, V& U
  -> 3938    5 {, N' {' {, j+ j$ Q8 H
3 m3 J% f: o3 l+ s+ o( [
time_to_sec(time)   
; x, c- h9 c0 O+ J  t/ W" c) J返回time值有多少秒    ( Y* m( u/ D/ b/ {7 l
mysql> select time_to_sec('22:23:00');    7 E* t, v, p0 N6 q% J1 n
  -> 80580    7 }! n7 M" }  w7 e- k) |
mysql> select time_to_sec('00:39:38');   
  @, Y: r% F) ~8 A' V/ I  -> 2378 ! ~1 R, d6 G" y& y! d. U& t3 l$ j

9 e7 |2 P) D7 c& {5 _4 F转换函数1 ~" b: `" a2 [  {# F
cast
% X( A8 d( I) u* ^+ n: ?2 F用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]7 l$ x# j% R% z' z" R6 }
实例:select cast(a as unsigned) as b from cardserver where order by b desc;
+ G0 p( J+ e, ?" B! Hconvert:; w% h7 b7 {$ r, U& j  }
用法:convert(字段,数据类型). a6 u) V5 d& E( L$ H/ A
实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
; ~- n  [- ]# n0 A
回复

使用道具 举报

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

本版积分规则

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