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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数
. M; {  W& Y5 b, t( T! Nascii(str)   
8 J6 B4 L6 T4 D; q: u# d返回字符串str的第一个字符的ascii值(str是空串时返回0)  * \% r& k0 K& u( @. G
mysql> select ascii('2');  ) j- o5 S0 o4 R+ ], N
  -> 50  
' K# G( V7 J6 W" w) D9 L0 s! Dmysql> select ascii(2);  
2 v) S/ s! t9 D7 [  -> 50  4 k4 w( d  q) ]- ?6 Y1 c$ l, Y
mysql> select ascii('dete');  
% l5 _. S9 L$ {( ?4 K1 `  n  -> 100
' X* _0 m5 C" N
ord(str)   " @4 l, a  ?, \& v% [# }
如果字符串str句首是单字节返回与ascii()函数返回的相同值。5 w9 }$ T3 I/ [" C; ?6 n5 X
# T3 |- I) y& k7 d2 h2 d: t
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  / k6 B  U* d5 `( |# h
mysql> select ord('2');  
* r$ r: A2 J2 B( Q; v1 y+ F  -> 50  
. ?3 p1 H5 h4 |5 n- f3 O+ {- H   ! [4 u4 N7 x. s' l6 a
conv(n,from_base,to_base)   % i5 B' Y0 W0 `5 Q+ J$ S! G1 z+ a
对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
: K6 s/ I2 ]3 d- Tmysql> select conv("a",16,2);  
& c& y/ j1 D/ I/ ]& E" f9 F  -> '1010' " M9 F/ V$ h6 E8 y
mysql> select conv("6e",18,8);  6 T; R' ~6 T. f. b: y: u; q
  -> '172' : p; \& O/ `6 H2 n! a
mysql> select conv(-17,10,-18);  
; p# S& M* g: k  D; C% T  -> '-h' 1 R& ~! S9 Q2 b5 r" K
mysql> select conv(10+"10"+'10'+0xa,10,10);  2 i9 h- _. _( U- H& G( D
  -> '40'
/ }; `7 i0 r+ i7 x  |  B   & f# v: P4 F2 X7 Y+ q. P, v3 [
bin(n)   
8 h5 G" B5 ~3 h- N( s把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  ) u3 D8 d" m5 K% `& C: Q
mysql> select bin(12);  ! T3 ~! q& |8 z1 f) b; [
  -> '1100' . j. i5 M: u6 f. {

. D  O, o/ {8 e4 F6 g. `: O1 Coct(n)   
/ b, r" e. F0 o7 U; n: j2 `  ]把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  8 _* q9 ~& p4 [
mysql> select oct(12);  % y& U, v" E% v9 Q
  -> '14'
: e6 p8 L* D0 A7 D8 m) q& u   
% K: y2 H3 w- fhex(n)   % Y7 _, A+ u$ W, r) V
把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  4 [6 e$ s1 a1 ]  h7 P
mysql> select hex(255);  
, C  [3 F9 \: E  -> 'ff' ' k  a. M# t( @
   . R0 M% d. l) |  s$ K: v& \$ M
char(n,...)   3 {$ D, S$ Y# c8 M
返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   9 G3 H/ m1 T- @6 s
mysql> select char(77,121,83,81,'76');  4 u0 t% ]/ H* O  R; x9 a, V& Q( E* _
  -> 'mysql' 6 _# B) s6 i& Y, X2 v) g
mysql> select char(77,77.3,'77.3');  8 ]9 G6 f- q- V* O( a+ [
  -> 'mmm'
4 e% `- x( y! [   
' B1 M/ l5 Y  F( F1 v7 P2 |( Aconcat(str1,str2,...)   / I0 m& p8 w& l. V' y7 Z& S8 F# D
把参数连成一个长字符串并返回(任何参数是null时返回null)  
7 x0 g7 x+ f: V# R" umysql> select concat('my', 's', 'ql');  8 ]4 G. J! w3 @8 H
  -> 'mysql'
& I9 e& R. L+ ?  T; K& s, J6 n) ~7 `mysql> select concat('my', null, 'ql');  ( i& p( `' V0 g2 I
  -> null 6 [2 y' M9 d, z
mysql> select concat(14.3);  
4 K1 H( I! r" h% Q& d% i0 Q! V% v  -> '14.3' $ {7 R9 [5 _# z4 _0 K/ Q- p
# L" h- v' r: I% F
length(str)   ; l: ?% K% r/ [% n, [/ `6 Y
octet_length(str)  
5 u1 k0 x% e8 o( m7 R8 o7 wchar_length(str)  8 X/ O! R/ a& F- G$ a# U
character_length(str)  
- V" _# n5 z% K0 q: h返回字符串str的长度(对于多字节字符char_length仅计算一次)+ n1 R$ z2 k) s6 B) ~0 g( R* v
mysql> select length('text');  ; @- W  S9 R$ \
  -> 4  3 e" t1 _1 i# K# ^8 f: a  a( g
mysql> select octet_length('text');  
; P: u; Q" W' h$ g# e; a  -> 4  * ?: x# V8 b9 k8 v% x
# B+ g1 D( K  Q4 {( q- t
locate(substr,str)   ! {" r8 n9 m7 f
position(substr in str)   / F* s6 B3 u$ O
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
4 ^8 m- r2 ]/ N% ]5 Ymysql> select locate('bar', 'foobarbar');  
9 A' z( t  N; k  -> 4  # x  b' K: Y) \% U/ ~! A
mysql> select locate('xbar', 'foobar');  - ^" s! @' `9 _" Y* o
  -> 0  2 Q0 v( N& ]3 L8 {
    ; }' @4 P/ q0 v5 h" U
locate(substr,str,pos)
5 k- ?! L+ g& c( T' g返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  ) @0 ]; }% t( p" ]# L, c( u6 G
mysql> select locate('bar', 'foobarbar',5);  
$ o7 p2 o! ?5 l) G' E4 V1 X2 h# n  -> 7  
( e# {& p5 H$ p8 J9 ^6 M% `1 \' i3 E
: g9 u4 |( G' j- P0 g" e+ linstr(str,substr)   , d0 g6 r8 c5 [6 p: h8 s2 p
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
6 {' s- Y- i+ nmysql> select instr('foobarbar', 'bar');  
. }" F' m" Q( K( [  A" t; m  -> 4  * }4 w. f9 ^) B4 Y
mysql> select instr('xbar', 'foobar');  6 b& o# m5 J( a1 _& q( u9 }
  -> 0   
, d8 D- x) o8 q( K/ B: Y) \2 g
7 q. [0 Z$ H9 \lpad(str,len,padstr)   # f5 M- _$ k& m9 \. M
用字符串padstr填补str左端直到字串长度为len并返回  
8 u3 S. J* u4 [) o- ?mysql> select lpad('hi',4,'??');  5 i- w2 C( j$ j4 t6 }' A/ L
  -> '??hi' 2 ]/ p/ b1 U& e* q# l1 V. l" i
     ?/ c+ v, q/ |- c
rpad(str,len,padstr)   9 [8 V. r' N, Q
用字符串padstr填补str右端直到字串长度为len并返回  
; e4 K6 c: P% q1 W% V( Dmysql> select rpad('hi',5,'?');  7 c; z6 l3 N1 W# c; e$ c9 |
  -> 'hi???' % \$ Y8 s$ w3 e) P# @5 X0 h9 Q3 c

7 t) G; Y& |. G/ \( `/ y0 W% eleft(str,len)   
' W( S* @" J: g& V返回字符串str的左端len个字符  
3 }6 m' u. f# N( b- f( B6 X' Hmysql> select left('foobarbar', 5);  ( l( Z8 Q. d5 J
  -> 'fooba' 3 J) j, N' D$ o. ]
* ~7 C1 d$ e. E7 M3 H2 N
right(str,len)   & E% x% a0 I  j& ]; A( L: ]
返回字符串str的右端len个字符   0 W3 h  Y  n% f2 j
mysql> select right('foobarbar', 4);  - s; |! I; K  j2 {5 `
  -> 'rbar' 1 `& ~0 t' X# ~# k

/ N1 w1 g8 a! L3 \: X4 j: xsubstring(str,pos,len)   . n7 p' d( @' D% E6 W; L6 }, E
substring(str from pos for len)   
2 z) w% b6 N8 p( Kmid(str,pos,len)   
4 M) H" J0 }  S  y; f5 C; m1 h返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
( L% [  L5 R. r+ G# i' \  -> 'ratica'
  g0 B. b( X; ^, W+ W " M2 D4 C( p7 e9 R$ s# o7 _1 I
substring(str,pos)   4 Q3 [& z" J' [- \! x% n( z
substring(str from pos)   : @$ [! M) o6 R
返回字符串str的位置pos起的一个子串  * o0 f8 d6 F. T; ], a$ {
mysql> select substring('quadratically',5);  , d5 E5 j$ J' s/ k; @. S
  -> 'ratically' ; P6 H9 |2 b& u$ K; R- I. S* `
mysql> select substring('foobarbar' from 4);  % w# L: j: p7 a
  -> 'barbar' $ n; x8 @) u4 N: |+ c* n

" b6 E( J1 z0 h* Hsubstring_index(str,delim,count)   
" }4 A, ^9 {# v) Q* u7 p2 L( t返回从字符串str的第count个出现的分隔符delim之后的子串7 E3 ]8 }* q3 O+ [" Y/ e8 h
(count为正数时返回左端,否则返回右端子串)  
  F' O! r3 o% `, J) g8 K( amysql> select substring_index('www.mysql.com', '.', 2);  6 D( D+ F9 Y- C8 R3 T8 {1 ^
  -> 'www.mysql' 7 d* Q) X- p: J1 X
mysql> select substring_index('www.mysql.com', '.', -2);  
) e7 \+ l; Q9 t  |. G. _) f) P  -> 'mysql.com' ' Q7 ]/ J4 c" b5 T

" {2 W  r- Z0 b8 u- ?4 Wltrim(str)   4 i# s: k" L5 o
返回删除了左空格的字符串str  & J5 W! }$ l: W4 B& @
mysql> select ltrim('  barbar');  5 P0 k0 ~( O5 y0 w
  -> 'barbar' ! p) g8 S, g) L- e0 s, d4 \8 y' y

7 y" \: P5 _# s/ a! a# `' Y; \; Rrtrim(str)   8 G1 O$ g$ h7 Z: t" t
返回删除了右空格的字符串str  
* a7 R) M$ r6 V/ Y3 d$ w4 wmysql> select rtrim('barbar   ');  8 ?; z2 ]/ y' H+ L
  -> 'barbar' 5 B. n8 x! v; K

; M& s0 q8 U5 x( x; h3 [" D6 itrim([[both | leading | trailing] [remstr] from] str)   # x  e; n1 C' B5 N1 t
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
, z% V3 y+ f  H0 E  k1 cmysql> select trim('  bar   ');  " p2 Q. P9 u1 @. K
  -> 'bar' 1 [: a  R3 ?! x3 }" J0 |, i
mysql> select trim(leading 'x' from 'xxxbarxxx');  
8 L* D+ B7 _2 e' @+ ?  -> 'barxxx'
2 J) C. x1 t* g4 U9 [! ^0 d3 [5 c7 Nmysql> select trim(both 'x' from 'xxxbarxxx');  
; z+ v7 s1 P! _. w3 b  -> 'bar' 8 i- w, }, X5 }" ]2 ], s( c
mysql> select trim(trailing 'xyz' from 'barxxyz');  
7 I' ^2 w; M5 v  z/ L* }  -> 'barx'
9 e# J9 l7 @; C2 X( Y2 U $ O$ [  C( K: Q7 h8 ~; }
soundex(str)   - W0 ~/ N# f: t) F* Z9 E
返回str的一个同音字符串(听起来“大致相同”字符串有相同的: e% x* c4 q1 i" @+ u# e
同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  
0 H8 _  f* ~0 k6 Y* ~5 z7 amysql> select soundex('hello');  8 Y4 z/ c: g3 h& I7 o2 k4 m* `# e
  -> 'h400' 1 z2 V1 q5 \0 l: T/ x9 M0 A& ?
mysql> select soundex('quadratically');  
( f9 B( J& ~8 R+ [  y  -> 'q36324'
2 _* O* Q7 v* @: W8 d. l  U* Y   
4 w7 D# B2 M; o. n) U. cspace(n)   
, @2 h5 O4 L, ~7 z返回由n个空格字符组成的一个字符串  ) b7 t0 x7 R) l4 _% K
mysql> select space(6);  ( Z( D( ?3 y; D0 ]1 g9 r" h
  -> '      '
3 \) F! {0 f1 w; R1 i! h* L! }   
) J: T0 l: J6 I  [2 F0 ?replace(str,from_str,to_str)   ) P& t$ m7 Y! O+ A1 O
用字符串to_str替换字符串str中的子串from_str并返回  
* N3 [- c; l# p4 w5 a, @  |2 ^mysql> select replace('www.mysql.com', 'w', 'ww');  2 M6 i% x- }% Z" p
  -> 'wwwwww.mysql.com'
* q. H2 t3 H# G" f- }" ` ! l. B; Q1 d$ Q; w7 s+ s
repeat(str,count)  
5 U7 `0 F2 P9 b. U) B返回由count个字符串str连成的一个字符串(任何参数为null时
: z+ }6 ~2 c! o" A+ {9 Z$ e返回null,count<=0时返回一个空字符串)  , z3 U% h$ W" o9 C
mysql> select repeat('mysql', 3);  
8 x- _9 ^5 l9 J' u, b" ]  -> 'mysqlmysqlmysql' 4 F$ u2 V8 m) o/ n2 s
   
: k8 i/ J0 m. V# w' U) y, h. }reverse(str)   : C7 l/ o1 c* C9 R
颠倒字符串str的字符顺序并返回  + X" n0 |* T: f- ~! m: X
mysql> select reverse('abc');  
7 f) U$ N& A. k  -> 'cba'
+ ~7 ^: H7 o* g4 @7 [ ' e' R/ l3 p& F& V0 l% _% _: H
insert(str,pos,len,newstr)   
- K1 `6 J% z% ?" H. ^3 S把字符串str由位置pos起len个字符长的子串替换为字符串
4 n; y. ]& E0 R- }newstr并返回  
* ?1 K# V) v( ^4 e, Gmysql> select insert('quadratic', 3, 4, 'what');  
( R9 y2 z+ O4 ]- ~  Y4 b# ^7 y  -> 'quwhattic' 0 d( K5 H( P' ~
3 J8 L7 z  B% i1 E( V9 d5 f
elt(n,str1,str2,str3,...)   ! z4 b& B2 x7 h3 o
返回第n个字符串(n小于1或大于参数个数返回null)  + [0 `3 F  W; K) }, v, R3 F
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  6 ]" P5 ?* i: m
  -> 'ej'
9 A* j3 G9 I2 j: ]$ dmysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  
2 h& y: P+ ]# L" R" W  -> 'foo'
, f& x2 I5 X! m# c
9 z  d4 R3 Q# s# [field(str,str1,str2,str3,...)   % k- P( O. N/ [0 x+ T: V- E
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  4 z) C* b6 g. `0 w& n+ m5 z' `
mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
* ?  N7 I/ B* a; i3 w! r'foo');  + [& F4 v0 L, r
  -> 2  . @, ]. q5 ~0 j7 j; o  R
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',5 s& p% |! T2 B7 N9 [+ L
'foo');  - ~  s2 A- R' i  V( ^& }. N7 g% p
  -> 0  2 L) X2 V7 N1 b5 [8 o5 x
* u3 Q+ w6 |# _) b$ f0 o
find_in_set(str,strlist)   * O: ^5 `; r9 I' M! I
返回str在字符串集strlist中的序号(任何参数是null则返回
+ D7 h, v$ l( d. ^null,如果str没找到返回0,参数1包含","时工作异常)  
8 ]! O& W- E, J7 u' r  t4 n( Hmysql> select find_in_set('b','a,b,c,d');  - ^2 i4 }9 O2 k/ W* u
  -> 2  
5 r1 ]9 a- B% W6 j   
) k. |- Q# b9 g3 Nmake_set(bits,str1,str2,...)  3 d6 C4 e2 A) V* h+ \
把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
0 \# S  m+ n, X9 Z& B$ o位置的字串选入字串集并返回(null串不添加到结果中)  
, Y( T; A% N4 l  i+ q% Lmysql> select make_set(1,'a','b','c');  : q2 K- M' q/ l; F  c% j, v3 J
  -> 'a'
' Y7 c/ K% {; ~3 x* a) Omysql> select make_set(1 | 4,'hello','nice','world');  
. p9 J7 r, f$ _- M, g  -> 'hello,world' ! D! \9 L6 k. ^# R. D" D3 e
mysql> select make_set(0,'a','b','c');  
; d& L! [1 y* s) Y  -> ''
1 u) G) V( f( E" R4 m5 y3 K5 l / |2 [0 }% E7 V3 R/ b7 M! u  G# Q
export_set(bits,on,off,[separator,[number_of_bits]])   
" q4 d( q. d2 Z3 ^" X8 S9 i按bits排列字符串集,只有当位等于1时插入字串on,否则插入
3 x% i0 J/ K4 W+ ?off(separator默认值",",number_of_bits参数使用时长度不足补00 b' q/ G  O: k7 @) c( U/ l* h
而过长截断)   4 i% j8 }7 _& P+ T5 |
mysql> select export_set(5,'y','n',',',4)  3 y! q1 h/ r7 {/ k7 t
  -> y,n,y,n   6 P. S. G6 u: L( i

5 G; r& G; G' U# A  zlcase(str)  
1 U2 d. A2 d: v+ F' @& Jlower(str)   & X& s5 K, M# G4 S- f3 e8 ?
返回小写的字符串str  ' X( o/ x1 E- r" |; D
mysql> select lcase('quadratically');  
* C2 c4 t( G2 x  -> 'quadratically'
! Q  v) _# i, G) l/ ?/ {1 X   
' Q* C6 ]. ~2 R( h+ {ucase(str)   
- H$ |2 T8 @$ i/ R" L" W* I$ f6 k% Fupper(str)  
/ I' D& w2 x' S4 Y返回大写的字符串str  - j  g+ c1 t  p0 U0 k
mysql> select ucase('quadratically');  
5 H3 i; }! T' J1 l2 Y2 O" y  -> 'quadratically'
/ P, l, `- g$ V8 J8 N) V5 s # u) B8 a) }2 Z% w6 b
load_file(file_name)   
+ B, v# ~8 F( \, N. Z: d: K读入文件并且作为一个字符串返回文件内容(文件无法找到,路径( V  D$ m/ F% f0 P
不完整,没有权限,长度大于max_allowed_packet会返回null)  
5 K2 H7 Y3 ?' }% Gmysql> update table_name set blob_column=load_file( z# C5 Q3 ?- Y- C
("/tmp/picture") where id=1;  
. r3 W" ~# P& |. K7 s
. V( I  Y( G2 p& o2 B2、数学函数
* r' Z( P9 @& b/ nabs(n) , t  J; g* \7 e
返回n的绝对值  . \- h, ]4 a& G' W4 Y6 I
mysql> select abs(2);    % t! J/ t. }& ^# v& e7 z
  -> 2   
. ^; [+ f+ L4 a# |mysql> select abs(-32);    $ v7 O; P2 x* O+ F( t9 C5 F6 m
  -> 32   
' L' T7 u; f: m# J( R& _8 x+ C   
" F# ^; ]4 B  W( u1 hsign(n)  6 N7 d1 H- V7 N% k
返回参数的符号(为-1、0或1)  
1 p# r" ^0 ^  Z4 J# Y+ hmysql> select sign(-32);   
/ t/ y7 J6 E2 s2 |% F  -> -1   
$ h3 ^" V9 a% P( u# xmysql> select sign(0);   
3 \( s- H4 C  q1 z2 g6 y  T1 k3 v  -> 0    $ U7 a+ N2 y3 V, M
mysql> select sign(234);    0 n/ U! I) w8 x( z# G. D  m
  -> 1    : D: f+ h3 h1 k

) E9 @, X, }1 {: p9 gmod(n,m)      W, k5 k2 M2 w7 v
取模运算,返回n被m除的余数(同%操作符)    ' ]1 u7 A$ y0 ^
mysql> select mod(234, 10);    , C& g. N+ Z" q0 ?" c
  -> 4   
3 i" V: u& j* P4 Z& pmysql> select 234 % 10;    # e( z% T% X4 I  c
  -> 4   
4 z( G& e  h2 ^8 |' Vmysql> select mod(29,9);    0 t$ s, H. k- i3 h! ?' _- T
  -> 2    % k* |3 v/ Z* T" @' g7 B

& ?% T! F' C7 d) d! t+ j# {floor(n)  
% h* d4 m! y$ ]: K, E4 e1 e8 k- Q返回不大于n的最大整数值  
6 K# G0 t0 V. @- J# r9 W+ imysql> select floor(1.23);   
: J8 u7 o' v! \) j/ C  -> 1    - C8 T1 O/ n1 T& O( M5 `# [
mysql> select floor(-1.23);      A2 N3 j( B  W/ z: p. ^' z
  -> -2   
+ |/ P; ]3 T" _! ^
5 p0 D& x9 |8 {- z$ e$ v' hceiling(n)  * N2 b. S5 j' R, D8 e: B
返回不小于n的最小整数值  ( z5 j$ h) E/ k0 ]8 n
mysql> select ceiling(1.23);   
# y# \& y) h, @1 d  -> 2   
1 d* R7 c3 @  ~: F* M. Omysql> select ceiling(-1.23);   
6 @. {2 u  C& Y# k  -> -1   
, Z' N+ O& s0 p. n  e . E& T$ |* |3 u' b+ z+ T
round(n,d)  4 d( u. \) O, M% C  W6 H. r6 V
返回n的四舍五入值,保留d位小数(d的默认值为0)  
. }- p+ D2 s3 a3 C- Fmysql> select round(-1.23);   
3 F* o! u$ U0 j8 C" K  -> -1   
$ F( H  G% ]' F+ }4 \: }; {4 X9 Cmysql> select round(-1.58);    1 ?" j, k- @  h$ Q3 i" s- g. r6 g- U
  -> -2    ! t9 j& @0 K( R; w- R# V" N$ }' u
mysql> select round(1.58);   
9 z6 o3 P/ j. n3 k  -> 2   
( D5 {4 D- ]9 f7 G8 _1 pmysql> select round(1.298, 1);   
6 Z2 M2 y6 M  B' d* ~4 [2 u  -> 1.3    2 y3 O2 f# R6 M5 @" E1 t% v+ I
mysql> select round(1.298, 0);    ; N! _, p8 s8 ?
  -> 1    + O0 R; r: Y7 s5 a8 {8 v9 Z
- V4 J7 g4 Q6 M1 e- L# C8 s
exp(n)  6 h# K+ k. h4 f, ^
返回值e的n次方(自然对数的底)  
, `$ e1 H9 U" rmysql> select exp(2);    & ~5 G& ^5 m  P
  -> 7.389056    : r8 g2 |# D+ ~% f8 B! T; h  M1 W
mysql> select exp(-2);   
# r0 I7 b7 c5 |8 r  -> 0.135335      _% R. X( K. B2 k
' R* [8 }, j5 d. m. c
log(n)  8 z: v  j0 o/ _+ ~9 q, T
返回n的自然对数  6 ?+ i4 E: q  w: i, z3 x/ c# T
mysql> select log(2);    # e7 s5 P+ N* N
  -> 0.693147   
$ [0 Z+ {/ B) @" w- X9 W& amysql> select log(-2);   
  N& U" m) U0 B" t5 y% _% J  -> null    2 v: w' L" i. I/ P6 w$ R0 t
# @2 @) O' r5 V7 j0 c/ }
log10(n)  
8 a' D8 |# q/ R返回n以10为底的对数  + h) W- F: ?7 p/ n9 y; g; q
mysql> select log10(2);   
7 {, _7 R/ j) D/ e; D  -> 0.301030    % D" M" A2 a+ H# i- d/ L2 P0 g7 e: E. m
mysql> select log10(100);    * P6 D7 ?( M' f7 `8 t2 J6 R4 G' K0 }3 V
  -> 2.000000    * l6 ]1 K) _2 i8 \
mysql> select log10(-100);   
6 B3 s$ {9 {. j! ^1 p4 L* T8 f4 V  -> null    % H. Q4 f7 e4 u7 A9 Q/ w
7 b# s) {7 R+ B* ^3 ]. U
pow(x,y)   
/ J7 U( z$ f8 ~% s' Opower(x,y)   
( {! K* S7 L3 T1 L7 w9 h; X 返回值x的y次幂  . X- U. l; C$ J2 g$ h7 U  K8 `4 A
mysql> select pow(2,2);   
1 }, d# s8 t# Y/ q9 I7 d% _6 y  -> 4.000000   
( M! {1 F& Y7 R! ~mysql> select pow(2,-2);    8 U$ N3 s7 k1 D  d2 Z. s
  -> 0.250000  0 ?$ H& y6 L  K

& B. W9 ?7 f1 R" t2 bsqrt(n)  
) n! }' @! ]8 u  W 返回非负数n的平方根  & j6 y6 z; V3 ~. t. G
mysql> select sqrt(4);    0 _6 ~% o9 x4 |8 W) d1 j
  -> 2.000000   
( }6 Q, \- J& F4 a$ Smysql> select sqrt(20);    # C. x/ w! Y. U* u5 Q. S+ `
  -> 4.472136   
7 t  o7 r/ R! o) c; e8 ~  m " N( }+ C7 o( r& q
pi()   
0 c2 {0 s) H  M' [) A* ` 返回圆周率   
) ^6 h* x) Z9 `$ smysql> select pi();   
! g1 Q, G- w# M  -> 3.141593   
# `, p( Y8 y; ~& M; O 0 h0 h. f4 @. w6 W& H
cos(n)  
. K9 [# l1 {, Y% \" Y  H 返回n的余弦值  " @# U: W1 r  i
mysql> select cos(pi());  * w# [) O$ h3 [/ n
  -> -1.000000    % H  I9 }3 }" K" H* e

$ W+ H9 p2 r+ P% f; O/ |sin(n)  
& M/ S8 ~" w* Z" u6 j 返回n的正弦值   
0 u( ^) \" I) L: f' B- e" i  Wmysql> select sin(pi());    9 J5 P' l% k0 U' H; f/ @+ D
  -> 0.000000    " W' @7 ^$ L1 `9 z: a
# i: ?# L3 z  H8 Y
tan(n)  % S4 }) a* h: n8 Y% j" P. E
返回n的正切值  
6 M8 u2 S  @: Q! ?! ~5 `mysql> select tan(pi()+1);   
& F0 P$ g8 J, }, r  -> 1.557408    + V) [# T8 \$ A) M6 S- n& S

6 I; O, a6 N( Macos(n)  " f7 M4 B% P' h, v; L4 m
 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  8 p' u9 ]  P/ k! F2 d1 S
mysql> select acos(1);   
" H$ p* b+ J( ?, x0 D' t7 Z9 {  [% a  -> 0.000000    9 x0 A+ L& P1 p  B
mysql> select acos(1.0001);    6 l# s5 d0 y+ ?2 x! ^3 _
  -> null    6 j0 k4 c7 d' D
mysql> select acos(0);    9 }+ a% |3 O+ y
  -> 1.570796    7 X* z- W- I0 k2 O  q) b" q2 [

& e. P; {8 B2 N  l1 i' Nasin(n)  
7 \4 L4 R% K3 o" N1 e5 j6 Q返回n反正弦值  
8 }0 }% _( H8 _3 e. Pmysql> select asin(0.2);   
6 n; V7 H3 M; f$ c  -> 0.201358   
8 q! R3 x, @9 M2 m) _4 ~mysql> select asin('foo');   
4 x( J$ Z1 y3 h# o& p  D  -> 0.000000   
" m4 k% a: h8 |  w; m
+ S$ H. h+ ^5 g/ Latan(n)  8 J% H4 @9 U2 `  r# c! w
返回n的反正切值  ! K* W5 P* r: v) R8 T  z  B& c" G2 S
mysql> select atan(2);    * T  ?6 K; a3 N" K8 v% p
  -> 1.107149    : ?& R2 U4 x) L# }4 B) h
mysql> select atan(-2);   
1 u6 g+ K" m# l( s( z  -> -1.107149    ) S. [7 @6 }8 Q! b+ e
atan2(x,y)   
6 m! j9 J- }* v$ F. x% L4 o/ l 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  
6 V7 K5 D: k! J# v) b, p) D  ]mysql> select atan(-2,2);   
! m/ C2 C- H8 [; O2 K7 t  -> -0.785398    ! d0 D" J3 m6 j, X. G: X
mysql> select atan(pi(),0);    ; w' L) V% R4 S# }- m- V
  -> 1.570796   
, [% [' Q; Z* R/ {# C/ Z
8 v6 s& D: h5 _. Fcot(n)  
. }: Q: j1 F9 r$ @. H返回x的余切  
6 E) x# G, T! f! y5 Pmysql> select cot(12);   
6 _5 r& @& Z8 b  -> -1.57267341    # a* g. b$ ]9 M% m  j  q
mysql> select cot(0);   
/ }# p  V4 y4 \) [% q7 z3 G  -> null    7 |4 V4 g' I. O( }* n# |

5 X  v: }: P+ o% d0 Z, P* y. |rand()  
3 c4 t9 u# }! m. y" |/ G3 zrand(n)    
4 @& S2 ]& c$ d& e: E返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值) ! a$ G5 c) q" `  K! I

  t- K( `4 y1 Y  R% I, H% Lmysql> select rand();    " t7 G$ h- X; I% {2 P; |% E0 a
  -> 0.5925    ! ~! D/ p: @6 L
mysql> select rand(20);   
/ I: Y* |' C4 P  V; d  -> 0.1811    1 S; t9 a+ @5 t6 S
mysql> select rand(20);    ' N; m9 g/ t% n* z
  -> 0.1811   
% H+ S# |8 \  U! h( pmysql> select rand();    2 v% k0 w+ u$ N( D3 @- p7 {1 ~
  -> 0.2079    2 B! _6 e1 f5 C" u' [! q
mysql> select rand();    - |! _! O$ A  ~: V& ^, A4 r' m: \
  -> 0.7888    1 H$ L9 ^; T1 a' U( E) o
& R& B2 t1 \2 n+ Q
degrees(n)  
8 y. v" [! M9 G5 u% O5 W3 J& p把n从弧度变换为角度并返回  + ]# E) o  V5 U( H
mysql> select degrees(pi());   
$ K3 J5 _* `, ^: I3 L% p  -> 180.000000   
1 i% }  O' I0 u  h3 b' ?
) O9 @* V/ I* a8 f) nradians(n) $ S8 l; x# z8 Q$ C- W* e
把n从角度变换为弧度并返回   
3 s3 |, t, l- R; emysql> select radians(90);   
2 O+ {- U3 B/ d: g, ?  -> 1.570796   
( a* b, f$ s. {  D% f$ k: j' Y( R; b% d& O3 O
truncate(n,d)   
- P/ ]% `1 f, s保留数字n的d位小数并返回  + H  R! X4 y" O
mysql> select truncate(1.223,1);    & X: }+ ?" M& o3 f+ }
  -> 1.2    , H/ x: K, x; i2 |
mysql> select truncate(1.999,1);    ) \. r% B5 N, u- H  v, E
  -> 1.9    ' q; I0 z- X5 K
mysql> select truncate(1.999,0);    ) g5 f# U1 T: s6 w) p- f, x
  -> 1    & G9 _/ K! x, b) C8 M3 a, L: H

, |6 d- b. ^1 l$ G5 H: uleast(x,y,...)    ; w6 u3 J+ q/ y& N+ D/ q! x
返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  0 W- v; F' M. Z, t1 n
mysql> select least(2,0);   
) D, I, w7 q' K, j  -> 0   
5 f# S3 M6 e* [, W9 `4 dmysql> select least(34.0,3.0,5.0,767.0);   
1 U% j: u4 _; S6 e2 G' s  -> 3.0   
1 m" s' {% Q, o, ymysql> select least("b","a","c");    6 L2 n1 T' Y, \+ D
  -> "a"   
6 Z4 K; w, n. N1 O   E5 B& Y% o+ N
greatest(x,y,...)    3 n3 {  z0 b5 y  w2 ~& d6 x4 L! q
返回最大值(其余同least())  
$ {' }3 J* D- M' m2 J; ~" kmysql> select greatest(2,0);    ( U1 s6 H7 l( \4 T
  -> 2   
/ w1 g% u4 J0 u' C0 wmysql> select greatest(34.0,3.0,5.0,767.0);   
1 g6 j/ p. U* x6 q5 [7 i6 c0 D  -> 767.0   
  d, q& L  c# P& j4 cmysql> select greatest("b","a","c");   
- Y( C( a( T% c: E  -> "c"     / ^) K* A. T4 d' ]

( ~, J0 M2 u8 r: _% U4 c9 k3、时期时间函数
; V2 a: u6 h3 }  N1 idayofweek(date)   
  K1 Q4 f6 R0 ~4 O( ?返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
$ w6 [8 Y* ^  ^1 v9 Pmysql> select dayofweek('1998-02-03');   
8 o2 ^. R- ]) _' n- j. V& Z" Z  -> 3   
% u# O) c, C$ R( U" e9 n" Z" n" i6 B 4 N6 E, T9 K- A$ a
weekday(date)   
: k- |, W4 N0 ]$ M2 @返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 3 v' x) R1 _  M4 F) u2 }
  
1 A. \$ @. O% |/ J. u4 f2 {mysql> select weekday('1997-10-04 22:23:00');    3 Z5 ?5 k2 ^) ^4 N/ M# g  T
  -> 5    5 `! A3 g9 {$ T% t2 w/ l8 d% i0 ^
mysql> select weekday('1997-11-05');   
* U6 q+ o, w: F+ e0 w8 J  -> 2   
2 s0 Y/ V) z8 m# I; p% { 1 Q5 ?* |9 l8 |; v7 h1 F- Q
dayofmonth(date)    
* U2 S9 ]1 D* L+ W! c0 X9 q) r; ~返回date是一月中的第几日(在1到31范围内)   
1 I1 K/ V2 r" f) x$ M0 V, Wmysql> select dayofmonth('1998-02-03');    0 U( v9 W7 @+ G5 o$ U/ p& k
  -> 3   
" S0 B* a# m& H7 d# e9 g' ^3 j. V 1 |5 W  l( {& P$ r3 X  k
dayofyear(date)    9 D6 h" W* l0 `* v8 J3 l
返回date是一年中的第几日(在1到366范围内)    - I$ S$ C. u' Z. o/ ?  Q
mysql> select dayofyear('1998-02-03');   
- ]: E% u8 Q7 @# F/ B  -> 34   
- _  O; j4 Y! `8 O* c ! R& x! N7 s& {5 \- I) ^
month(date)   
8 x) h9 z- L, I# j返回date中的月份数值   
; r* i. t5 O7 `* m+ lmysql> select month('1998-02-03');    0 f. {+ w4 p' k: ~
  -> 2    " L3 T5 V, t7 o6 n% L

! D+ ?# X1 [3 `6 w  {3 q. y# _dayname(date)    " g- l5 D" Q# K- Q, q3 t$ o
返回date是星期几(按英文名返回)  2 t! k( ^/ C5 B8 H7 ^/ o
mysql> select dayname("1998-02-05");   
- q5 }0 A& W5 R1 V7 w  -> 'thursday'    / d: G. g6 h% D7 x9 m" q6 W
5 G2 ?! p8 l" ]0 n2 X0 }* ^* k9 {
monthname(date)    
8 i* g. n0 ?3 |. c3 a2 w返回date是几月(按英文名返回)  
4 g8 d2 ?1 Y4 w0 V0 F1 A! Z( umysql> select monthname("1998-02-05");   
8 @" A( p1 ^9 \# x# o  -> 'february'   
" g" p0 z3 \6 g3 z
0 @( Z5 e& j8 u& n. t6 Iquarter(date)    " I# M! B: R: B& f( t$ [
返回date是一年的第几个季度   
/ ^% _9 g" m  j6 amysql> select quarter('98-04-01');   
* J& J0 O5 T9 b" L$ c  -> 2   
$ h  j" f) F; K, W. G' f % w* @! U. X6 z5 F
week(date,first)   6 p7 Y+ \- X/ Y" j
返回date是一年的第几周(first默认值0,first取值1表示周一是6 q1 y# S2 U) Q- `
周的开始,0从周日开始)  
* \7 C( G" |$ Z! mmysql> select week('1998-02-20');   
6 G# j% D; o; t0 i$ K0 z1 C  -> 7    $ A4 `; ?  ?5 p9 Z( M4 N) K6 O
mysql> select week('1998-02-20',0);    6 D! f5 U9 e/ G% \! W4 z( w7 L1 E
  -> 7    + ~, K$ Q- I1 x  I2 `
mysql> select week('1998-02-20',1);    * k3 B& c1 Q/ s
  -> 8   
5 @. f% u) l0 v7 k- r " y. ?! f5 d7 r/ @4 ^- x/ I  D3 d
year(date)    8 i% ^$ V# s, c$ u# a% ]3 g. u
返回date的年份(范围在1000到9999)    7 @& z( M) t) U) V* k4 m; M% z
mysql> select year('98-02-03');    ' I$ D0 k2 u$ a0 r4 ~* ^" v
  -> 1998   
/ l; w8 {+ F5 C) I! R
0 _: b: x$ X& _& v* m3 chour(time)    & W  l$ [2 [0 N+ h) \" n  P
返回time的小时数(范围是0到23)   
7 d6 T* q8 ^  N% j. y: i4 \9 y; Emysql> select hour('10:05:03');    % U2 H4 ~& h) ]  Z- N. @- ~
  -> 10   
1 v2 f: W; f5 V: t0 ]' c ; `" t, S8 g- \1 J  V
minute(time)   
2 E7 F* C9 l, I  j! A7 [3 j返回time的分钟数(范围是0到59)    7 Y: J+ a1 ^* i& @1 T3 r5 U
mysql> select minute('98-02-03 10:05:03');    * L" I, Q, {. p6 ]/ V% y. s" v
  -> 5    5 ^  T; B0 q* F6 W' `

- H  l( h# H( P- q, W* Ysecond(time)    
/ q" c) C* N! W( |& {# P返回time的秒数(范围是0到59)   
" g( k# Z! P% U5 qmysql> select second('10:05:03');    8 c  B: y& o3 k- }) k8 `8 J
  -> 3    ) Y/ M0 ^1 O. `
& Z+ `5 n$ P( q  d: _% k
period_add(p,n)   
( ?5 o( s. @3 |  K, p" M  R增加n个月到时期p并返回(p的格式yymm或yyyymm)    - t4 |9 S7 S+ m, k: n# H6 ~
mysql> select period_add(9801,2);    " X. }% r# `( d
  -> 199803    4 F, U3 C0 F- Z  ^7 }) c- @: u' k

- O) a' L$ _3 |1 Z4 wperiod_diff(p1,p2)   
7 N% [! d  H1 M% X# {; M# m返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  
9 J& H1 a/ s  p' B9 t4 Tmysql> select period_diff(9802,199703);   
; Q+ K  h/ I# Z  -> 11   
" ]0 O; E5 c1 @7 S( N! B
# D; F7 B" C# Q* L* A4 P1 \: Idate_add(date,interval expr type)  9 E: D  [' f5 G8 _6 s8 @! S
date_sub(date,interval expr type)   
3 T: a. \8 j6 ]/ ~5 Yadddate(date,interval expr type)    2 S* x6 _7 u' c: Y4 R
subdate(date,interval expr type)  6 W. v# y! Q9 w
对日期时间进行加减法运算  7 O! l3 @: Y/ R0 x9 c$ d+ C
(adddate()和subdate()是date_add()和date_sub()的同义词,也& h( P; h0 m) x% D2 [7 ~0 y+ {, R
可以用运算符+和-而不是函数  
4 t3 F& ~1 t' K2 P' [% ]date是一个datetime或date值,expr对date进行加减法的一个表$ }+ ^2 V8 H, Q. z; j$ {( z
达式字符串type指明表达式expr应该如何被解释  " H; u$ o, I5 M3 }
 [type值 含义 期望的expr格式]:  
7 h# M; F- {) b second 秒 seconds    ( x; I7 `: e% j, ~) Q
 minute 分钟 minutes   
5 f$ }6 c/ y6 N, [8 V hour 时间 hours   
. D0 c! W4 i$ k# e) A day 天 days   
% s$ ?% {  U; G2 H8 p! H% z) ]0 O month 月 months      W- e* G" j# s5 M
 year 年 years   
1 U2 u" E" Z, E3 y/ @  } minute_second 分钟和秒 "minutes:seconds"    % k: p4 I3 l8 y( \
 hour_minute 小时和分钟 "hours:minutes"      \. d% {" X- C/ n- \" r
 day_hour 天和小时 "days hours"    6 |+ r6 @6 u( t3 r# o
 year_month 年和月 "years-months"    2 T0 F" g$ l% D5 e/ e$ r1 S
 hour_second 小时, 分钟, "hours:minutes:seconds"   
, |+ w  |+ B" U7 Y$ S$ B day_minute 天, 小时, 分钟 "days hours:minutes"    $ S" [5 t# j- u5 o, t- S! p
 day_second 天, 小时, 分钟, 秒 "days: D* n8 y4 |7 H
hours:minutes:seconds" 1 b# e0 c4 m1 X: [& D5 w
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个! d. y4 t0 m1 ^  q; _& p6 r
date值,否则结果是一个datetime值)  ( M* c) `3 `5 ]9 n5 A
 如果type关键词不完整,则mysql从右端取值,day_second因为缺* R3 e" O) _2 A
少小时分钟等于minute_second)  
0 O- `, |! v) d8 }& z' u2 C 如果增加month、year_month或year,天数大于结果月份的最大天
1 b7 C; m, t# z  A9 z6 Q数则使用最大天数)    % }; N! s3 P' Z0 C
mysql> select "1997-12-31 23:59:59" + interval 1 second;  
. I- H  o; b9 ?2 m; M) [, \
0 Q% D3 _7 j  @: [& b* a% X  -> 1998-01-01 00:00:00    - ~. S/ t. d4 n7 B
mysql> select interval 1 day + "1997-12-31";    + j; q1 N. f: q" h* c
  -> 1998-01-01    " Z, G! M' S+ T# x) q: y
mysql> select "1998-01-01" - interval 1 second;   
. `4 \) |+ U+ W/ m( L" N& u  F, q  -> 1997-12-31 23:59:59    2 `6 ^6 Q' O1 U8 }
mysql> select date_add("1997-12-31 23:59:59",interval 1
+ P) t8 Z) F- i# Q7 p: c+ Gsecond);    * ]' `  f/ G4 ]% i" Y/ X. J4 K
  -> 1998-01-01 00:00:00    + @2 V- f+ S# E
mysql> select date_add("1997-12-31 23:59:59",interval 1
( g3 Q& M5 b+ `! d  h% qday);    # M! Q* ~5 I* @
  -> 1998-01-01 23:59:59    7 Y) v  X: _* V8 v' K, U
mysql> select date_add("1997-12-31 23:59:59",interval1 y$ p0 P, N$ p8 }6 @5 \  J- P1 ^
"1:1" minute_second);    0 M1 K! q' u+ M( _* X
  -> 1998-01-01 00:01:00   
( _& {7 c3 B# X0 X( m- k2 Lmysql> select date_sub("1998-01-01 00:00:00",interval "1) _, c! L! J- m
1:1:1" day_second);    * n& |" k8 l' t2 e
  -> 1997-12-30 22:58:59    7 F) r9 d* T3 [6 Z; v5 j% T  \: ?* W6 X, f
mysql> select date_add("1998-01-01 00:00:00", interval "-1
, H0 w0 j8 B( x! N2 [, ?. u4 \0 t/ X) S$ X10" day_hour);  
9 R9 J& q1 e0 Q  I  i$ Y4 w  -> 1997-12-30 14:00:00    3 Q, y, }  R, b# R
mysql> select date_sub("1998-01-02", interval 31 day);   
: N, P0 R  B, B' L' V; m, \9 Z1 R! x  -> 1997-12-02   
+ u& A1 ^: I* [7 ?mysql> select extract(year from "1999-07-02");    2 {  P( m  f  s3 U5 G( K
  -> 1999    0 A: K8 j$ w6 `
mysql> select extract(year_month from "1999-07-02! U/ Y8 d' C/ h7 ^9 v7 g
01:02:03");    ( ?  L( w( [9 m6 Z8 l( u! l& b
  -> 199907   
# p$ N; B) a  b9 [  t1 y! r4 {( G- qmysql> select extract(day_minute from "1999-07-02% x$ x, i' {5 @. o: Z
01:02:03");    2 z; M% X, H" m4 D, @) [/ [, g0 V
  -> 20102    : w- r8 }/ @& T% }  n/ y2 s" n! u
4 W" e6 Y( m) F, e$ c( L
to_days(date)    3 e0 r7 m0 R9 A: z5 z. N8 P
返回日期date是西元0年至今多少天(不计算1582年以前)  
; a/ M4 \1 }% Z8 x" U& i- ~mysql> select to_days(950501);   
* C9 D3 I& S" W7 o4 s' V  -> 728779   
& |  v/ d9 N3 x! I: R  w2 Imysql> select to_days('1997-10-07');    ( Y" h1 h7 U: ~) N1 y" b
  -> 729669   
& E, e; H+ S( e9 h$ }3 _+ x " j8 }5 e" w+ Q+ d# ]  B3 g
from_days(n)   
/ }5 e& B$ j" `4 K% C' q 给出西元0年至今多少天返回date值(不计算1582年以前)   
5 W0 S, K6 N3 D% j7 Z8 x- ymysql> select from_days(729669);      q7 \0 ]4 X% f7 `5 U
  -> '1997-10-07'   
: n4 |9 A3 \$ v  T$ q- l# u
' K, [3 E: ^+ |3 w0 V# c$ P: y4 \date_format(date,format)    . I. f% B" \  l1 ]4 u0 u0 a7 q
 根据format字符串格式化date值  - l0 ^1 w& B# B5 x* H
 (在format字符串中可用标志符:  
' O0 ]  D; U) G" Y" X; z+ w# }1 d %m 月名字(january……december)    0 s# @# ^! m: C, K4 G! |
 %w 星期名字(sunday……saturday)    ( q3 X+ k5 _6 D2 l( A9 K5 V$ |4 }
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)      p* S" L/ U( j, u0 b
 %y 年, 数字, 4 位   
5 L5 A9 u2 d1 P2 j( ^6 q! J' ? %y 年, 数字, 2 位    3 w3 t! g# Y5 D/ }$ l
 %a 缩写的星期名字(sun……sat)    4 N9 M$ ^/ ]1 c% o0 _* p8 i
 %d 月份中的天数, 数字(00……31)    ! E3 R% J  o+ S  E% h6 }
 %e 月份中的天数, 数字(0……31)    & ^$ {! m* [5 k3 w. ]3 M6 H
 %m 月, 数字(01……12)    9 j7 u% \% ?9 P" n9 E8 m
 %c 月, 数字(1……12)   
+ m7 z1 [2 d7 J3 C %b 缩写的月份名字(jan……dec)   
( ^( B+ H# B1 n %j 一年中的天数(001……366)    ! u) I2 ~* A9 a& \) W3 Z: N( h
 %h 小时(00……23)   
  Z, g) Q7 l3 _ %k 小时(0……23)   
, n9 q2 R5 o& f0 U& t: l) J8 n/ O %h 小时(01……12)    ( W& E- x$ Q  M7 b
 %i 小时(01……12)   
+ ?$ \$ k- t4 W+ L %l 小时(1……12)    " W) |7 h1 j7 X! o9 H3 W
 %i 分钟, 数字(00……59)   
/ z" e2 T% Q/ I' y  U, ~1 o %r 时间,12 小时(hh:mm:ss [ap]m)    2 U& R4 K2 v7 v$ z$ ]  b* [, v* B
 %t 时间,24 小时(hh:mm:ss)   
0 [1 a% v9 q+ a+ c5 u& B! V %s 秒(00……59)   
& K& Y4 K! s) ?; o" D: U& ~ %s 秒(00……59)   
/ K+ W% W- ~- `9 E& z/ v8 G+ g %p am或pm    ! D# o# w7 b" ?, Y$ J; K
 %w 一个星期中的天数(0=sunday ……6=saturday )   
- E% m, a2 Q  b& ]7 R9 A" d: ~ %u 星期(0……52), 这里星期天是星期的第一天   
7 n) d  C$ ^% G8 a) g, b5 p# n& h %u 星期(0……52), 这里星期一是星期的第一天    ! p% D, E% j( p# H$ V
 %% 字符% )  
. i2 G& J$ u4 S- emysql> select date_format('1997-10-04 22:23:00','%w %m %
4 a* l9 s8 L3 g/ Xy');    ) O+ Z$ J/ D# p. B" R+ g
  -> 'saturday october 1997'    ( I( q' y4 h3 L3 q" q$ t
mysql> select date_format('1997-10-04 22:23:00','%h:%i:%8 q. A/ y3 V3 T! D! U
s');   
3 }; ]; Q, Z  s8 P* S0 z1 n7 ^  -> '22:23:00'   
3 i. _4 b8 `8 B" c8 E1 Nmysql> select date_format('1997-10-04 22:23:00','%d %y %a
7 w7 l8 M0 u& v2 j/ l4 _9 b% w%d %m %b %j');   
1 B) g3 t- Q6 ~) m4 y8 R/ p! j% a/ ~  -> '4th 97 sat 04 10 oct 277'    ) T( U5 m# i: r( ]" {
mysql> select date_format('1997-10-04 22:23:00','%h %k %i+ Y6 B- e0 y) {3 c
%r %t %s %w');   
! O  i' i! H: X, h  -> '22 22 10 10:23:00 pm 22:23:00 00 6'   
% w* S2 f. B5 T; _0 M' [
+ t: Q* {9 b8 C( d% [$ D+ ltime_format(time,format)  
# N, h) J% Y5 r( L; Z, Q8 \; J 和date_format()类似,但time_format只处理小时、分钟和秒(其
+ ~. s0 y8 k0 _, l余符号产生一个null值或0)  " H1 B4 a9 z8 g, z8 O

" l; Q0 F, n8 y/ F0 Hcurdate()     , R! V" ?3 ]3 R% x; i' ^
current_date()  + y% @* U; F5 ]1 C( {0 c
 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所+ I& J" @4 U5 _/ `2 E3 L' {
处上下文是字符串或数字)   
% H, j: p: t% c1 @) h) Y; Cmysql> select curdate();    . Y1 V( y8 T- Y8 s
  -> '1997-12-15'   
+ ?! u( _2 F% m: c, ?; vmysql> select curdate() + 0;    , u- C# h7 x, q  [) p# G6 T7 ?
  -> 19971215   
6 M6 p# }. T6 ?$ _8 S) @' S( b  i ; b, r) y% k7 n  D7 b- h
curtime()   
( W, z7 ^0 V6 U, m. y$ Acurrent_time()  & q& [! ^/ i5 b9 X, K
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
5 g/ n( D! i8 I; D' ?4 C" r$ K/ A; X下文是字符串或数字)      * J: L) q9 @. l% V
mysql> select curtime();    ; K0 A  ?# H5 i& s$ n
  -> '23:50:26'   
# c3 @/ l5 F2 }! w' Lmysql> select curtime() + 0;   
& g0 z" j1 I: S# l. D- L  h  -> 235026   
" e1 H  m$ a# c- }$ g4 d$ _ 4 G1 i6 w( U  w1 W; f3 A
now()    
9 q4 \& R- N6 z2 Bsysdate()    
6 h: K' l4 N4 E/ @, x4 w3 L3 e* Gcurrent_timestamp()  $ A# f9 {5 f0 `2 x1 w9 [
 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期( E. H1 T9 r( E! o* L" C9 m, {
时间(根据返回值所处上下文是字符串或数字)     2 A4 W& f9 C* R9 f: m" @: D6 q
mysql> select now();   
+ n4 A; |. G) e- m  -> '1997-12-15 23:50:26'   
2 I8 J& H! r+ \. u/ Imysql> select now() + 0;    8 Q  p' `9 n0 }- q$ S9 O1 I
  -> 19971215235026   
) o- b! U3 i. o 1 y" F- L* ]; I. U+ Q. I
unix_timestamp()    : ~' l4 k7 Q; n. m0 L
unix_timestamp(date)   
: ~. Z9 I1 g" l. f5 Y5 Q8 F返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒) o0 v" r! H' z
数,date默认值为当前时间)  , i. {/ E6 C9 O1 \: B% D+ u# Y
mysql> select unix_timestamp();    8 }, T9 k0 @0 x# l/ o; j) c, K
  -> 882226357   
8 b3 E' [* ^9 {4 m; N2 a  U6 Cmysql> select unix_timestamp('1997-10-04 22:23:00');    5 n" X& D1 N, P9 l" F) K5 O! O
  -> 875996580   
/ _( K/ u4 v$ i0 g# [ : ?7 e" \1 U- f9 V# n9 |3 _9 a: f, o
from_unixtime(unix_timestamp)    + R! F  A# C, u& D0 l
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的
2 }6 g- N  X4 t" `值(根据返回值所处上下文是字符串或数字)     
8 }0 c: u* [& B. C; a$ ?( D+ Dmysql> select from_unixtime(875996580);   
. k' Q- H; ], M1 z$ v  -> '1997-10-04 22:23:00'   
3 Z, b2 _! a+ Q5 ]* R4 n8 Fmysql> select from_unixtime(875996580) + 0;   
) K8 f8 ^7 [( i; @5 A4 @/ l( N9 ^* m  -> 19971004222300   
  i1 h/ r- Q, D$ Y( J
+ Z  a, C9 q$ S8 a8 ~5 sfrom_unixtime(unix_timestamp,format)    - Z! M* M; Y( D# L4 ?( f
以format字符串格式返回时间戳的值  
) V% z2 ~. ]4 ?1 d3 y& o7 k/ N* emysql> select from_unixtime(unix_timestamp(),'%y %d %m %
8 r- d5 U% T! c/ t  v: Oh:%i:%s %x');    * H2 Z7 h# z8 y3 m$ p* Z
  -> '1997 23rd december 03:43:30 x'   
2 O/ |$ N* T! V  `" a3 K. {7 y; |
/ g" g4 q8 `2 zsec_to_time(seconds)   
7 |, F0 a: H- D/ r以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
5 `: \+ I, F- I9 j/ _& j# F- amysql> select sec_to_time(2378);    - }2 Q2 L. l2 l; o0 v
  -> '00:39:38'   
# `/ X* p3 O+ y: e( K$ \mysql> select sec_to_time(2378) + 0;   
6 H. v6 r  V* M8 D  -> 3938   
, S% |% o. \) g  z
. h) h. V: }+ Z9 Ntime_to_sec(time)   
* w6 c$ `' q  x& f4 Y9 D返回time值有多少秒   
; [* D+ h$ }8 U3 t7 x& D$ }( jmysql> select time_to_sec('22:23:00');   
9 j0 ^2 b. t' F* [) j  -> 80580    " |1 c  q+ W1 A6 d) c5 ]
mysql> select time_to_sec('00:39:38');   
& S# p) ~  ]( t- u  -> 2378 0 H+ E+ k3 N9 r) e7 l1 z% ~3 e2 m

, e  z: c$ L- W& W! [转换函数
& c( F. x! c5 f2 ~+ N+ vcast
4 a3 H; t, n+ S( w) \: Q用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]
" m" u3 u- T0 i. j0 o( Q0 c实例:select cast(a as unsigned) as b from cardserver where order by b desc;
. \: K/ E( h# A7 Aconvert:
. Y4 ?1 v8 O1 C% u4 N用法:convert(字段,数据类型)
% l/ Q  U% f5 _. A. q实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

/ B& G; q# u, }; w' V0 X3 r
回复

使用道具 举报

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

本版积分规则

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