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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数$ N+ X) m, z3 N) v' V
ascii(str)   
7 k+ c4 u3 Y2 r4 _返回字符串str的第一个字符的ascii值(str是空串时返回0)  
! }; R% D1 S) P2 Q! ]3 h$ k9 w% Mmysql> select ascii('2');  
+ C. `$ x  M9 |( a" g; k" h9 C& k  -> 50  ) T" l! @  N3 r% [! z" B( e4 \; a" H
mysql> select ascii(2);  
9 e% k. b0 }5 b7 a  -> 50  5 ~# a9 j1 W7 X0 n, q! N
mysql> select ascii('dete');  4 c+ m) k* K# I" N* U: M; Y
  -> 100

1 q8 o- i3 G4 L' E% o+ Lord(str)   , N/ h) P$ G/ [% {: Z
如果字符串str句首是单字节返回与ascii()函数返回的相同值。4 l/ B* c6 Q8 c# Q

, W6 N1 Z8 b3 q9 }如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  
% Z  ^" u3 U5 @1 ^9 K7 W, lmysql> select ord('2');  
/ C4 s: {0 u+ K1 F3 y  -> 50    j) j6 Y" X6 |$ r" W
   
7 \8 i9 P  j7 e4 p  W$ a6 Lconv(n,from_base,to_base)   0 s7 c2 H) [: P$ n* N
对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
; t9 |# z! n1 M1 a0 L7 B5 C. tmysql> select conv("a",16,2);  3 n8 I" ~* _. F5 r
  -> '1010'
1 X$ \' X  O9 a/ z/ z9 r" ?mysql> select conv("6e",18,8);  1 X" ?: o# Z' \; L; A+ e
  -> '172'
. e' I0 Z' A% f5 S' u+ umysql> select conv(-17,10,-18);  * c! E  A/ h; g" H. ?5 E
  -> '-h' 2 `4 w8 @: X1 ^
mysql> select conv(10+"10"+'10'+0xa,10,10);  
9 C& M* C* e- h2 ]  -> '40'
* c( i/ a) [) t  V' j' F+ S5 n   1 k7 x4 m# S* E3 ]/ ]% L
bin(n)   
! d' Y2 b, a* r. J把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
3 `( z- A( Z& P: i* u9 Jmysql> select bin(12);  ' h" ~7 ?+ |0 b  \8 L  L0 W/ c
  -> '1100'
" `' Y2 T5 C. k$ m& I8 E8 U6 \ / t/ j( \8 N( G$ J3 C" E
oct(n)   
) U# M' T' {6 Y5 x& s把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
, h8 B' H  S7 G; F: Hmysql> select oct(12);  
5 N7 l0 a; F( M" M: p  -> '14'
3 |: Q: @* K2 B/ t   
$ Q0 v: H" g  {2 J9 y1 S; Khex(n)   ) e3 e; H/ S5 f3 a
把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  3 k! n& _9 k, i6 p* c, v" {1 N; F
mysql> select hex(255);  6 \) j, X; i$ I
  -> 'ff'
  {% d- F% N6 e4 \7 m' b   
8 t6 u2 t; ~$ U/ w8 x  j% R, Nchar(n,...)   
+ S( X- ~$ }1 n( ~) _返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   
) I5 s" N! U/ ^6 F4 |- cmysql> select char(77,121,83,81,'76');  
8 a; ?( i6 d7 Z# H9 J  -> 'mysql' ' v/ _$ Q  c$ q, c' ~7 k6 V! x
mysql> select char(77,77.3,'77.3');  
( C' t1 p! H" Q# j9 G/ t  -> 'mmm' 5 {3 y6 ^% O  Y1 M# W
   
3 m) B& K$ r/ e4 X4 C+ xconcat(str1,str2,...)   8 e+ n4 Z6 K7 ?- @+ l* r( w
把参数连成一个长字符串并返回(任何参数是null时返回null)  
4 z) Y" _! P1 b  Xmysql> select concat('my', 's', 'ql');  
5 V& x- j+ P7 m8 V+ q- ^  -> 'mysql'
: u2 t4 x( }4 h. _; H" ?2 vmysql> select concat('my', null, 'ql');  ' \$ B9 t# w0 a: O- {; {4 c
  -> null
, q# d- E- R, A, imysql> select concat(14.3);  
# k2 J2 z6 g, L+ R" h3 L  -> '14.3' ' l- j4 b  t! y$ A" B% n( v
$ U7 {9 K( P( A; x  |
length(str)   
" {9 k8 `+ D, Y* n7 poctet_length(str)  & v* v! e/ e  O) G! {
char_length(str)  9 q# w+ q0 W$ c1 l$ a7 U, ]" {
character_length(str)  
9 p8 {' B/ @3 ^  e7 n- a8 s) N, E返回字符串str的长度(对于多字节字符char_length仅计算一次)% U. o6 z( j. @, ]
mysql> select length('text');  2 S2 {2 A" h3 I% B
  -> 4  
  W" m& p6 i, }$ T8 ^) fmysql> select octet_length('text');  ' G# i/ `# i- v0 Q, \7 k
  -> 4  
' E( {8 ~& o+ e3 z) l$ E
# O5 o' u  N+ I# w$ hlocate(substr,str)   
# G" \  i8 I* p/ @8 G5 cposition(substr in str)   
" ?& g9 j1 q# V+ @返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  " T" w- V( U$ x) h# i
mysql> select locate('bar', 'foobarbar');  , W+ N0 ?) p/ j8 y- P
  -> 4  
1 T! `* R- _6 D) e# imysql> select locate('xbar', 'foobar');  $ M" w+ i. L$ B4 M( f
  -> 0  
; d" u) \& X7 l: U; j0 b    " g1 j/ E0 v$ }/ e: A* [5 a
locate(substr,str,pos) & D9 {" t" }( }; y
返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
2 E& t% x9 B, C; s# O1 ?mysql> select locate('bar', 'foobarbar',5);  1 D( i7 N* D5 y9 O& U0 F/ M
  -> 7  
+ d6 J' \8 G. K8 W
, I; w2 w9 {8 x4 B  n7 K3 l7 ^instr(str,substr)   " F2 }4 \* D  G7 ]8 C
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  # p5 \+ c" ]5 f( _, X, |
mysql> select instr('foobarbar', 'bar');  ; m! ]: l! z3 T* R9 q
  -> 4  
7 `' g: s+ r& P. ]; P7 C% V! \mysql> select instr('xbar', 'foobar');  % ^* V1 q! p& [1 M0 z
  -> 0   
9 A. C) U) U7 c; _; l3 L% W. u9 L3 E + p  D/ k. Z! W' q) ]; F6 |! a
lpad(str,len,padstr)   
/ C7 {6 e: T( Q3 o: v用字符串padstr填补str左端直到字串长度为len并返回  4 _5 y9 {  i+ e( p6 A; b
mysql> select lpad('hi',4,'??');  ( U! K1 T$ Q: D3 R5 J( J
  -> '??hi'
) L' P0 f( O. F1 ]7 c   
7 V1 y1 a. K* M9 Jrpad(str,len,padstr)   
* t8 L1 e9 j" x- U用字符串padstr填补str右端直到字串长度为len并返回  & |! S4 J: \2 r) p6 {
mysql> select rpad('hi',5,'?');  9 M" x  v7 k& v4 P4 \
  -> 'hi???' 3 d% f6 {- ~  v5 ^' b

! @/ ^: e+ ~6 \  v6 v, w8 Gleft(str,len)   9 J$ h1 v. c" M/ Y; {5 E, }; S
返回字符串str的左端len个字符  
! r1 s- ?8 B6 m6 ?; y1 ~4 m6 kmysql> select left('foobarbar', 5);  
' q; X% x  M; C4 B  -> 'fooba' 0 w' ?. m8 O9 N( K, \
+ j, i2 K! O1 s$ C
right(str,len)   1 s% W' P/ Z0 i" p+ C
返回字符串str的右端len个字符   
: Y- z( d6 o  Cmysql> select right('foobarbar', 4);  - s  B$ B6 `) `/ V- M, _2 D: j
  -> 'rbar'
" u* d7 ~. C/ \ 9 K) S3 D2 n9 H% ]1 G: y+ a
substring(str,pos,len)   
; ~% v* H6 u- f8 psubstring(str from pos for len)   / u, M( a: L- D  a0 p% y% D- ^
mid(str,pos,len)   - l- j* V. {! |
返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  7 \7 W4 \/ X" j$ P, ]
  -> 'ratica'
6 [8 M: p) L2 ^. {% ~) z7 i  z
* e4 ^3 Z, `7 r. j) Wsubstring(str,pos)   2 M5 E1 H! z! C" r& ]& G
substring(str from pos)   
4 {5 {% O! G1 W' J1 R返回字符串str的位置pos起的一个子串  
, d& v. K6 K8 o# K5 l1 t$ amysql> select substring('quadratically',5);  6 O. j1 o3 R. V! ~
  -> 'ratically'
6 T5 `' _; a8 b* ^6 amysql> select substring('foobarbar' from 4);  0 Z! O, b3 R5 ?, E
  -> 'barbar' + o# U, M. H0 K' K+ A* E

, E: _6 O5 B! M- Esubstring_index(str,delim,count)   5 Y* z% ?; @4 [3 ^* e. V9 s/ d
返回从字符串str的第count个出现的分隔符delim之后的子串, d% d6 i  G; g% @! k
(count为正数时返回左端,否则返回右端子串)  
' ?2 W6 \- r; U) S- F, Xmysql> select substring_index('www.mysql.com', '.', 2);  2 |6 A$ ~; V6 Q8 w# Y
  -> 'www.mysql' / F. {: Y; G9 [; u% t, f. O5 w. \
mysql> select substring_index('www.mysql.com', '.', -2);  
+ H2 r: u% u! l$ k  -> 'mysql.com'
6 T# h) T- K2 k/ G) N$ c . ~7 F8 A8 D4 n8 ?- I. \, N
ltrim(str)   / g, Y$ m6 q& u( G7 Y1 P& g
返回删除了左空格的字符串str  % Q6 j% s# [1 r" S9 o
mysql> select ltrim('  barbar');  ! h7 J- N( P) r, q
  -> 'barbar'
' Z5 T0 `1 H* Z; W$ m * _  V7 n1 ^4 h
rtrim(str)   
$ L3 b. J& B1 I( g1 J返回删除了右空格的字符串str  9 o8 l' r7 Y3 @- z
mysql> select rtrim('barbar   ');  ' q3 w: x# g# {% M# }$ i
  -> 'barbar'
9 V4 O# R2 M) k& @. v! ~3 l 0 a5 j. Z# I* Z0 V+ r
trim([[both | leading | trailing] [remstr] from] str)   " P- y5 I+ G/ M* J% J' i
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  9 n0 R# G) Z7 H  r
mysql> select trim('  bar   ');  
" l# {& v& c: e: t& x  -> 'bar'
' G- y8 [) q* Hmysql> select trim(leading 'x' from 'xxxbarxxx');  8 J9 W! I& \* z/ c! u2 R" V% K
  -> 'barxxx'
% l# r% y) H. b7 n' E/ Pmysql> select trim(both 'x' from 'xxxbarxxx');  
0 Z9 ~6 L# d  E  -> 'bar' % S3 r; X, b1 p4 m" Y5 w( e3 t
mysql> select trim(trailing 'xyz' from 'barxxyz');  , {- h  D$ c  O
  -> 'barx'
0 Q) z$ B: c6 w& Y2 U; y + V& ^' I7 }# l7 E$ }$ y
soundex(str)   
6 `. l8 O' e! l1 O9 U返回str的一个同音字符串(听起来“大致相同”字符串有相同的
" r4 s8 f0 z3 n/ ^# g1 H: E2 j同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  0 J2 m+ ^) V4 Y0 u
mysql> select soundex('hello');  
2 k0 m1 S* t) S, j  -> 'h400' " {$ E4 ^0 v# X. E
mysql> select soundex('quadratically');  
' D5 r, K) x- Q7 k( k1 @  -> 'q36324' , h0 ]5 Z& z" n
   : O( j; w3 C0 J, L1 I
space(n)   
( l6 T$ L5 g4 J返回由n个空格字符组成的一个字符串  0 Y; g& B& Z6 d* C; t% n
mysql> select space(6);  & [; l+ [- w& _; Q
  -> '      ' ' R/ t5 F- R9 k4 x3 V0 s
   
* r9 J, T' K2 c+ r0 c/ @' C- F( `replace(str,from_str,to_str)   
8 z; U5 C" g+ ~( }: P$ J用字符串to_str替换字符串str中的子串from_str并返回  
& q" @  w4 m! Y" d3 V7 \  j6 w, \mysql> select replace('www.mysql.com', 'w', 'ww');  
# b5 s' B2 Q9 |  -> 'wwwwww.mysql.com' ) J8 e$ G0 t& D' s; k
* G4 B6 Q9 n) s0 t% i9 Q
repeat(str,count)  
! z7 m0 N8 I1 k" L0 S9 Z返回由count个字符串str连成的一个字符串(任何参数为null时
# K+ U/ @1 x& w% ^" G' ?" i% W返回null,count<=0时返回一个空字符串)  
* J. n9 U3 W2 F% X% ^4 `6 Kmysql> select repeat('mysql', 3);  ; L/ h& @2 R. E9 [. O& F. D! S
  -> 'mysqlmysqlmysql'
& |1 n1 j; G: }1 r" Y   ! V+ w- v4 [* h6 |6 F: K4 g3 V1 N
reverse(str)   
" h) q* ~! M) l颠倒字符串str的字符顺序并返回  
  i9 p3 W, j- D# imysql> select reverse('abc');  
! k0 {2 Z; ]# J+ z# z/ D8 b  -> 'cba' % n  S- i- k# z  o
& r  A  A2 C1 Q! W- i
insert(str,pos,len,newstr)   
" [! w8 x0 _. ]: E2 I把字符串str由位置pos起len个字符长的子串替换为字符串
6 ?0 W$ E" K& H  {- D& ]newstr并返回  2 N, x5 U+ |# k* ~. H/ t# K( L
mysql> select insert('quadratic', 3, 4, 'what');  
6 o, p: e5 ]* H% \4 A5 t9 D  C2 k5 g  -> 'quwhattic'
! C6 J9 q- N2 P& J, J+ N$ U( e
9 {0 Z$ s* g. }elt(n,str1,str2,str3,...)   " a. g4 }; m5 j5 R6 ]# V7 E$ Z" Z
返回第n个字符串(n小于1或大于参数个数返回null)  1 T& F9 [8 r& H) |
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  
4 z4 v" G7 ^& ^; f1 \; p  -> 'ej' 8 \' I  S4 M1 [. Q! T" I) c0 m
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  
% v3 E7 D& p2 G  -> 'foo' * |# i$ M& V+ I

: `  R7 I+ Y9 j( @3 ~3 Bfield(str,str1,str2,str3,...)  
; L  Z9 P% r: G2 J5 }* ]返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
3 {" p+ K( w! t& e" Cmysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
1 j3 ~! U$ f, n& J0 ^& i* n% q'foo');  
2 G1 o7 _* m4 s; B8 O' Z  -> 2  
) e! k8 O5 r2 i, imysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
- V# C! y$ X$ F. E'foo');  
+ |3 v. L2 r. Z% [9 T5 D  -> 0  " R) B" D* J5 e& Z; X3 p+ a5 d: i
+ W( r+ {# {+ a: }+ s' O6 [
find_in_set(str,strlist)   . A2 W; p6 F2 \
返回str在字符串集strlist中的序号(任何参数是null则返回
1 K8 b3 g7 A+ t+ H2 Rnull,如果str没找到返回0,参数1包含","时工作异常)  
& z5 L3 s. \' y( y" S- Kmysql> select find_in_set('b','a,b,c,d');  
. R, D7 c# T! D2 [  -> 2  
6 p7 m' c$ H# t* @8 A0 [, i" I: Z   % \$ q7 j4 o# T3 f
make_set(bits,str1,str2,...)  
/ e  _( B5 P2 f把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应9 Q4 U2 B, S7 T% L) E: I
位置的字串选入字串集并返回(null串不添加到结果中)  + m; B, u: s: |. M( {9 s
mysql> select make_set(1,'a','b','c');  0 x$ ~$ }/ ~: }
  -> 'a' * r/ o9 h+ d) W+ P* M, ]
mysql> select make_set(1 | 4,'hello','nice','world');  $ m. a; r  z: @, f4 q' L  q% t
  -> 'hello,world'
1 P3 t+ d# L) o& Z/ e5 @  |mysql> select make_set(0,'a','b','c');  
2 x3 A3 o" {+ n) _- K$ u1 w% P8 Z+ t) u  -> '' * e1 S. @: \; q( ~! z4 x
- l7 d+ G6 }/ v+ s" F; c+ [# F6 L* ^
export_set(bits,on,off,[separator,[number_of_bits]])   4 d9 i  ?1 S5 H
按bits排列字符串集,只有当位等于1时插入字串on,否则插入
* S" u: _" M- p* Woff(separator默认值",",number_of_bits参数使用时长度不足补04 \6 D& K$ k2 t+ W
而过长截断)   
; {" G- e+ i' fmysql> select export_set(5,'y','n',',',4)  ( k' V3 ?8 y3 A" w4 f
  -> y,n,y,n   0 _; M2 z% z9 x; g

+ o0 I) R! l3 P; a( V# o5 clcase(str)  & O- F0 t  O8 ?& K) j& X" g) B4 L1 f
lower(str)   9 v- b, G4 @2 P
返回小写的字符串str  
& H) c! L3 M! ?$ }, `2 Q; gmysql> select lcase('quadratically');  
# k! o5 g: _. [3 E8 R" l  -> 'quadratically'
, B9 ~1 }. `8 K: h   " `$ d4 A' R6 t# I; B
ucase(str)   
% k% e7 P+ }  x9 fupper(str)  
" F8 R# Z9 t8 U1 J% w+ m返回大写的字符串str  ; S. b' k4 z+ j/ L
mysql> select ucase('quadratically');  - _; V; g- d( z+ ]5 J1 f4 T
  -> 'quadratically'
: A7 s) a- Q( k$ q: j  B: l. r 7 d# g6 s: Z$ m& Z  S
load_file(file_name)   
, O' W$ c' M1 D2 E' M读入文件并且作为一个字符串返回文件内容(文件无法找到,路径
5 \: G& I" n4 ?% [0 L不完整,没有权限,长度大于max_allowed_packet会返回null)  ; g" q: Y2 M. G4 n( Q
mysql> update table_name set blob_column=load_file
& Y2 Y7 R1 |( F7 ~4 _("/tmp/picture") where id=1;  
8 Z& N6 J- S# C) K4 z; Q ( n0 L/ q( u( f* v
2、数学函数* M  x9 y- B- H9 ^, Q1 `
abs(n) " I( K/ V, }. K+ m" V
返回n的绝对值  
/ w) g3 ?8 Y$ {& [) Kmysql> select abs(2);    , k3 Y6 l3 |9 y$ Q6 }1 ?
  -> 2   
1 m4 W( \# W' o. tmysql> select abs(-32);   
  P* w5 l# s1 P6 s3 e  -> 32   
* A( j. R8 c6 L* }) G" E3 i6 s/ W$ I   
' l) O4 J% l. S2 _sign(n)  % V1 u4 o+ h' t, k; _
返回参数的符号(为-1、0或1)  * F' y% `( k  f+ N1 u: v1 c
mysql> select sign(-32);    ; @. {# u( h; x& M3 `
  -> -1      [0 h2 Q  R2 d3 m! }8 e9 D8 R
mysql> select sign(0);   
5 M* f: f+ L/ }' `- G$ _4 _  -> 0    ( d; l. Z1 b6 B( `2 l* n4 M; c
mysql> select sign(234);   
9 h% l" d% S) c% i. E# b& b  -> 1    ) b: l: v7 D& m
- B' R/ m$ c! u; ]' @/ a7 ?% F% q, J
mod(n,m)   
2 I6 |1 u+ G+ f3 j取模运算,返回n被m除的余数(同%操作符)   
0 g. M& x1 m3 A0 I0 K- R1 _mysql> select mod(234, 10);    / {+ \& L) i& v* }' }
  -> 4   
% y! O: g: M. v" U7 E2 Imysql> select 234 % 10;    + S& [( N3 Y$ `; N+ G& I5 p
  -> 4   
- g+ x5 X% D* c3 [mysql> select mod(29,9);   
6 k7 i9 z8 a. k# p" B/ K! W0 e  -> 2   
: Q8 E; _% J8 a) r5 V
: b6 Y$ ^; t! n4 z+ K( Kfloor(n)  
# A. ~9 G4 l. m0 I5 {/ r" i返回不大于n的最大整数值  
4 |7 ]1 Z! n9 ~( g7 M2 gmysql> select floor(1.23);    0 [- f9 J* J3 h  i1 t% a' |
  -> 1    4 y" s& o& d3 L9 a  y' D
mysql> select floor(-1.23);   
; t8 I, C+ \2 W, R$ r2 f$ j  -> -2    * D1 p& }7 u& c& K% [5 C- E$ E

* f& f' i1 E: i1 X) e/ Sceiling(n)  
- _" C* {4 \# T3 k; V9 r  d返回不小于n的最小整数值  
0 \- l3 K0 e! P) H# R: Vmysql> select ceiling(1.23);   
0 X( {( l- c4 k4 [  -> 2    0 ]& X, t% a& P! l
mysql> select ceiling(-1.23);   
! h- Y( R9 x7 `  -> -1   
( K& k; ]9 t& \4 F" k" @ 5 q! H9 b2 G  b: o# b% f3 M4 m$ A0 v
round(n,d)  5 c1 f& o) d/ ?$ \+ X% e/ w
返回n的四舍五入值,保留d位小数(d的默认值为0)  , J, C7 h  ^: ]5 A
mysql> select round(-1.23);    ) T/ Y" h9 Z' j5 n! b/ |5 U2 }
  -> -1   
3 h* [% ]: U) q9 [) y3 B8 Dmysql> select round(-1.58);   
: d) c) n4 i$ ?% i+ a  -> -2    : \0 G( B* M6 P' c# @$ [2 }
mysql> select round(1.58);    - V2 s0 |# d) Y, |
  -> 2    1 L$ k8 f# H; y0 I
mysql> select round(1.298, 1);    : T2 s2 O/ ^( U0 _& ~, i
  -> 1.3    + k1 G3 g$ J* q' _7 A
mysql> select round(1.298, 0);    0 D. i4 m8 X$ K0 s! L
  -> 1   
  S; d( t) B- p; I9 h3 j7 b
5 d( c4 C, J2 n5 jexp(n)  ; Z( l6 l# C: n
返回值e的n次方(自然对数的底)  
( G% B% U2 I/ \+ smysql> select exp(2);   
/ K8 q) a" B* n5 W4 ~1 L2 b  -> 7.389056   
' w8 E* k. q5 T# vmysql> select exp(-2);   
$ X/ Y% z' h; H' ^1 B# |7 O  -> 0.135335    : S) Q0 b) @) P! T

1 Q, M, h/ V1 ?6 Q5 O$ F; Slog(n)  ( ~4 }2 c! {* D
返回n的自然对数  1 G& |& O: r% G4 z8 F* l9 N5 l
mysql> select log(2);   
5 j# S$ K3 |5 n6 \8 _" }* a" _  -> 0.693147    ' ~/ H0 B' b+ e6 W, {. v
mysql> select log(-2);   
2 ?( |# h, u+ r2 h: H  -> null    - Q) M: O0 l0 `/ s% k
& W4 o. I+ R1 H- f# U! T6 O- e: M
log10(n)  * i# P( d/ _9 T0 m; K
返回n以10为底的对数  5 Y3 G7 v% ?2 n. B' F  i
mysql> select log10(2);   
! |) `& p3 d, k& k  -> 0.301030    . j7 o7 o: g) L- k8 a! E* R
mysql> select log10(100);    7 u/ o% ^7 R- U6 m+ }" c3 R
  -> 2.000000   
  Q5 f( S( B* Q# p) wmysql> select log10(-100);   
8 @$ ]' V" U1 Z9 d  -> null    7 m1 ~( J. j8 w0 ]; f5 P- K
  I7 V" S" @- V- i- M
pow(x,y)    : e! N) R. |, q6 h  y% l9 A
power(x,y)    . J9 G. y! G; v0 I9 K+ b% B
 返回值x的y次幂  
7 [& ]3 ~* p' f5 Ymysql> select pow(2,2);    : e) k9 x: s' |& _. W. H! o3 z
  -> 4.000000   
+ h3 b7 w5 l0 z: _* H+ xmysql> select pow(2,-2);   
- L% B" R& p& j9 z& L( U  -> 0.250000  
4 Q, p7 I' ?9 g) p/ L/ ]* G$ M$ H# c, {! k$ X
sqrt(n)  
3 d) N1 N, s$ {5 r5 j2 Q 返回非负数n的平方根  ) M. E5 e) y6 M% O- [
mysql> select sqrt(4);    # C! E7 o8 r8 U( j7 w
  -> 2.000000   
3 [8 t: T6 J2 u+ N5 hmysql> select sqrt(20);   
! A. J4 l# {4 |( V% k* V  -> 4.472136    ! @' l4 f. D# A% I! l9 c9 ~' ?$ j7 V4 j, {
2 Q8 H! Z" I+ [- k& {
pi()    5 L' _2 z0 ?" {. I" G2 `& ]# x, [
 返回圆周率   
  l% o1 V  _0 m7 h9 F5 J5 W8 Kmysql> select pi();    5 n2 K" F. ]& A- W+ z" G+ p
  -> 3.141593    , U' c) ^/ l0 R  G# `

5 h4 z1 T8 a$ Y8 [$ ?0 H' H; X6 A) pcos(n)  
! u2 {5 C. y8 h- t0 | 返回n的余弦值  
4 F! I: N1 c; c+ U8 umysql> select cos(pi());  
  z" }/ r2 K) G+ [7 m# [  -> -1.000000    % w( o9 J; R' w( q" r
" F' N$ l6 ]7 J
sin(n)  
2 ^5 J3 z: b3 n; b- v5 h" \ 返回n的正弦值   
) H- a# G: P# B: m" n9 ~: E! pmysql> select sin(pi());    ; _9 T/ V- U: l2 t) o
  -> 0.000000   
& W- ~% Y8 Y8 c6 J$ {
4 {  \. o3 O- `  n# O  m+ u- ftan(n)  , x7 h  B% s+ e, S) f6 o
返回n的正切值    A' X3 D0 T: X7 |5 N2 d! m( r' P5 A
mysql> select tan(pi()+1);    + N  F9 D9 h, X; n# h
  -> 1.557408    5 \% \) t5 c9 A) u) n. k7 `% T6 S) b
# B2 G2 O8 o9 z% H6 s
acos(n)  : ?  ^: N$ M  [4 p1 R
 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  
* Z/ u( T3 B" k; i3 \# Jmysql> select acos(1);    - s; r$ M( _6 T7 `. A
  -> 0.000000   
; |6 I/ [6 g* cmysql> select acos(1.0001);   
% z7 s* X. p/ P/ n  -> null   
' |. V/ x, D2 u) Z3 W' tmysql> select acos(0);    - h9 M! q- z+ H) L7 J6 C
  -> 1.570796   
1 q4 ?3 q1 L4 x3 X1 M 4 _  g: @! j! P/ b, d) S
asin(n)  
( D* d# P, I4 X0 {3 H返回n反正弦值  9 R. u/ b6 _9 n4 {
mysql> select asin(0.2);   
0 N9 e$ |; l) _& H  I. k# i7 \; O% M, N  -> 0.201358    2 d( E4 P) s+ O  r! n: a4 m) J
mysql> select asin('foo');   
/ P  C- S2 H5 ?$ I3 w  -> 0.000000    ; W! e1 i  b* u3 U0 j$ a
2 X0 C, P1 C, x+ I
atan(n)  
5 b1 p8 ]5 E# \" O/ e0 f返回n的反正切值    k2 _: b: a3 D- H! c$ S) Y' s3 E
mysql> select atan(2);   
/ x! }+ @9 \# q! J0 K  H9 h% s  -> 1.107149    + ~- C7 A4 |5 h+ @/ z8 c: C
mysql> select atan(-2);   
% ~5 H, J+ ]" w0 ~* @6 J* _  -> -1.107149   
8 o8 W  T( p0 ^( e( [atan2(x,y)    . R% ~) X5 V# R$ T2 {5 P
 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  ' V1 k6 ]6 W+ W0 V- m7 p
mysql> select atan(-2,2);    ) f- ~( p4 \' v9 l! n
  -> -0.785398   
0 \$ Z! z; Y4 ~8 D7 Amysql> select atan(pi(),0);    % |# R+ T, o7 u0 o: Z
  -> 1.570796    7 m6 P" |. ]% i& l1 q0 q+ G
& y( |, R- F* B; Z
cot(n)  / z1 S/ ?, I' N
返回x的余切  
$ c% d$ E2 @! z( V: d: `mysql> select cot(12);    % ], Z1 Y; n6 B% P
  -> -1.57267341    . {+ X2 X$ @" M4 U% b2 [" o1 l
mysql> select cot(0);    5 K1 P& W2 a8 d
  -> null   
3 L' a0 n6 ]- d5 A 7 D6 _  Z; A: W! j/ m( I. k6 k
rand()  
4 {0 C& c$ C( T2 h8 [* erand(n)    
. l/ Y% X) H4 [( p+ T. ]2 a! U返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值) ! g# k5 k/ Q6 B% \: H- K# Y
0 o! m  Y6 X- ?0 L
mysql> select rand();    / ^; u. c7 A+ W" Z0 k' p
  -> 0.5925   
- u& p! J/ W6 F' `mysql> select rand(20);   
% {7 ?- y4 S% a, u/ u  -> 0.1811   
# @% j/ @( |- z9 _mysql> select rand(20);   
/ |- r# ]% ]* r' x, I4 E' \7 R  -> 0.1811    9 U8 z, G7 W. ?7 F) y8 w" r6 O
mysql> select rand();   
  b. t: Y4 X6 O6 t/ a  -> 0.2079    % c' ?( l) S) J, f8 Y
mysql> select rand();   
% i3 I% [. Q; X# k" f, v. N  Z: q  -> 0.7888      Q: Z* K: m% K4 A- E

. @$ ?! p2 q+ }3 kdegrees(n)  - ?8 z7 y0 H5 s/ F1 t9 R
把n从弧度变换为角度并返回  
  |' `* ^4 r/ X0 b- Umysql> select degrees(pi());    ; n$ m6 v. v3 V' J% T9 G) j9 V
  -> 180.000000    2 @- W: P4 ~* W8 h# w1 L

7 C* m- r$ v2 q  z8 F' Aradians(n)
2 p6 G3 D6 S: g" M把n从角度变换为弧度并返回   : q( o: f  e3 W% H0 M
mysql> select radians(90);    + o: g/ U$ w' e' ~' }( K/ p
  -> 1.570796   
) z; C! ?0 _9 ]8 u7 W8 b
& x0 \/ I4 o+ |, J: y9 j4 G3 Struncate(n,d)    * n0 t% h; s3 S5 D& K
保留数字n的d位小数并返回  
& s3 M/ H# r0 j% Fmysql> select truncate(1.223,1);   
' t5 c! l6 `& O! u  -> 1.2   
% \/ ?- V/ @3 I+ k. Z( G! umysql> select truncate(1.999,1);   
9 |* X4 Z/ F* _3 _6 t, _0 R  -> 1.9    $ X8 P  `$ O9 f( {
mysql> select truncate(1.999,0);   
4 ~& s! Z$ ]1 J* m  -> 1    # C7 T" V+ H: k/ x

5 o1 B% h9 n1 R0 f4 gleast(x,y,...)   
/ Z2 A/ L3 v! Z7 E/ C. O$ R1 q/ h返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  , k5 ?1 \8 L6 B2 F
mysql> select least(2,0);    - c8 h" j1 x: _
  -> 0   
7 d+ W1 O& P6 q9 G& U1 }$ A, F& fmysql> select least(34.0,3.0,5.0,767.0);    - i: F7 G0 t) P3 y8 O0 w
  -> 3.0    ' c8 Y- [+ j3 w
mysql> select least("b","a","c");    8 l$ q, q( [5 ?+ r
  -> "a"   
/ S" V; I7 L2 a4 E
  U$ T9 D! }4 o9 C1 E$ fgreatest(x,y,...)    ( n9 m! \4 V2 a4 @& l! a4 o
返回最大值(其余同least())  ; j5 y5 C' i: |9 l! v
mysql> select greatest(2,0);    8 w; [4 J" n& I* _' e$ K
  -> 2    / K( m% j% T7 d
mysql> select greatest(34.0,3.0,5.0,767.0);   
$ |  Q3 o3 u9 P( e4 b: [- Y: C  -> 767.0    3 r) U) M* U# i/ G5 |0 O" q
mysql> select greatest("b","a","c");    0 M2 [% P- o; l( M4 ]" O+ n4 ~* I
  -> "c"     % O6 N/ ]& Q% c* Q# d; F
0 i$ l1 i1 ]" ~/ v0 v- p% h: |
3、时期时间函数 8 F& s& ^7 N: {, Q1 n, A
dayofweek(date)   
! D& c( j2 V. o8 C* L7 h返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
: h/ e! z4 I, `1 p/ W4 N$ {mysql> select dayofweek('1998-02-03');   
- ]9 z9 w1 @% I' k  }2 x8 T/ W& N' T  -> 3    2 U# U# O' E0 y9 x* E. c1 [0 n9 P" r

9 i% X. c) ]9 z# y, kweekday(date)   
) Y- r& H3 y% q$ [返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 + G- {3 A  d* i# J/ T2 k
  ( O! T6 J& U9 n2 W& `/ u
mysql> select weekday('1997-10-04 22:23:00');   
9 c" ~* A! t" t  -> 5    8 L7 p/ M2 o+ @
mysql> select weekday('1997-11-05');   
6 p2 ^9 i. Y, n' j3 f  -> 2    1 w# P0 E7 t5 Z: C0 ^; [
) _1 {  J, u5 L9 Q
dayofmonth(date)      r* |# g, u5 @  H
返回date是一月中的第几日(在1到31范围内)    / N2 I2 @: [3 ?+ `) b
mysql> select dayofmonth('1998-02-03');    5 L6 q. J$ l/ Q6 F, z* t" J' [: j8 G
  -> 3   
0 Z8 A* l; H/ i' q7 @& R* P2 S
4 F7 `) q. N# v  F# y5 X3 Wdayofyear(date)    ! B* Q- M6 b2 L6 r+ o& A$ z& C
返回date是一年中的第几日(在1到366范围内)    - w! s7 j0 w9 K9 i
mysql> select dayofyear('1998-02-03');    # X: N# L0 a1 P( b  E7 g/ l5 ^5 M
  -> 34   
4 s" L7 ?% s4 c& v4 S. O% R ) w1 J. t5 h' L) N! {! W1 d
month(date)    + E) `( x# p! q6 G) r1 N! J
返回date中的月份数值    0 g' }, |# u1 ^5 j
mysql> select month('1998-02-03');   
+ o; e" a/ `2 r' T0 e6 W: b  -> 2   
% B6 ~4 v0 W: e, w+ }) b 9 j) a* Q7 f6 v* h7 G( d
dayname(date)   
5 `' {1 M2 A( |" A- D返回date是星期几(按英文名返回)  
2 W* z8 E5 T& I2 Xmysql> select dayname("1998-02-05");    ) ]9 P: ]' t1 F, g
  -> 'thursday'    3 S/ i7 m9 I7 O1 f" Z
  @- }" ?7 ~+ g2 }, \7 y
monthname(date)    
; J; {2 K" u" k返回date是几月(按英文名返回)  , {* C. L, B& A0 e1 a4 {
mysql> select monthname("1998-02-05");    * K+ z: g' M9 B  G
  -> 'february'    + V$ A9 Z4 {$ V' x6 R
3 A% n$ [+ W, e$ O8 [
quarter(date)   
  F4 @; E  _9 l) F+ T返回date是一年的第几个季度    - R, [; N3 F- m% O1 U) Y" }3 _& |( _
mysql> select quarter('98-04-01');   
* P. R. R4 w  m( e) \  -> 2      J  P5 g% R6 }* Z8 N
* z$ g& o' p5 x! g
week(date,first)   
6 S& z& n( u  Q! Z) N/ t返回date是一年的第几周(first默认值0,first取值1表示周一是+ I% \! g1 `2 i* t
周的开始,0从周日开始)  . k$ ^4 ~% O/ f) U6 p
mysql> select week('1998-02-20');    ! J. l' P% g& l1 K
  -> 7   
1 v* F7 |& k6 i7 l- dmysql> select week('1998-02-20',0);    . Y4 u3 W* k4 c4 b% m( m
  -> 7    # e7 t' b3 Q$ K. K- q6 m0 ]
mysql> select week('1998-02-20',1);      _- Z* j; u5 D4 g; N
  -> 8    - B1 b+ C, P. r" w( F/ k

" U# h/ D' \( I" Tyear(date)   
7 U: m( o9 y# f返回date的年份(范围在1000到9999)    / }  [, b: N& a* v6 k
mysql> select year('98-02-03');   
. g3 u0 V3 h2 h9 S  -> 1998    2 y3 s- s6 q% H, @
, _. }( @+ o5 d) f4 [7 T; L
hour(time)    . C3 C/ v( X4 i8 J4 w* R; e
返回time的小时数(范围是0到23)   
& }0 g/ k+ d% E& Bmysql> select hour('10:05:03');   
; T- x" ~% B4 e" D  -> 10   
" l0 X$ g8 p% r* c/ V# J 1 e  [. K7 [& ^# q
minute(time)   
$ _6 R* F! F0 q- @: B2 `1 i7 g返回time的分钟数(范围是0到59)    8 o/ a; |5 c$ Q7 P+ J$ L. z
mysql> select minute('98-02-03 10:05:03');    * ?- g4 w8 C. [: ?1 |: y
  -> 5    4 _( c/ U% ~2 p& u# e

# n& O/ [% W8 n" e+ Ksecond(time)    
9 i1 c% z0 `6 z4 D. w返回time的秒数(范围是0到59)   ! v- W. p6 E+ B8 x3 b" Q
mysql> select second('10:05:03');    0 Z: g$ b( {) t% _. Z
  -> 3   
* n1 r5 G3 o! S, G# t8 F* `
: a; [4 f) y, P2 f9 q: q5 a$ ?( dperiod_add(p,n)    $ O1 p; E, ~* j$ r! h6 j3 c: S# p
增加n个月到时期p并返回(p的格式yymm或yyyymm)   
/ p. u/ Y& n/ J; z: A+ R0 Jmysql> select period_add(9801,2);   
; q# @2 U$ _3 V9 k: K% _  -> 199803   
. `3 y: z8 a: @   l1 y( }7 o* o' A% a4 P
period_diff(p1,p2)   
- J* y* A$ k' U( R% Z! H( b: i返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  2 V: q2 G0 o/ k
mysql> select period_diff(9802,199703);    ) a5 S& E9 S& b% N8 t9 T8 d
  -> 11    ; i* F0 }+ ?: Y  o5 `9 {

' [- V$ T% W/ i" A  ?; K/ p- Adate_add(date,interval expr type)  
0 R! [. y: g6 q5 H, n) h0 J; Bdate_sub(date,interval expr type)    7 b+ v0 B  ~1 z' \$ Y7 W
adddate(date,interval expr type)    # D' q1 j4 d- Q" k
subdate(date,interval expr type)  
4 d. D4 p4 i- x3 e对日期时间进行加减法运算  . c, p9 N! k; q8 I! ]- a+ V5 ^( _
(adddate()和subdate()是date_add()和date_sub()的同义词,也
/ d' a, R0 E" t1 }可以用运算符+和-而不是函数  
& ?: z% B0 X9 z8 g+ {7 Zdate是一个datetime或date值,expr对date进行加减法的一个表" V% k# H1 y& J' q& u
达式字符串type指明表达式expr应该如何被解释  4 n6 }0 ^- Q8 N' T
 [type值 含义 期望的expr格式]:  0 B/ e2 \& O$ F8 Y# F
 second 秒 seconds    7 `* [4 |" u: J" g7 h( K% g; Q
 minute 分钟 minutes    & q. y/ s  D4 P
 hour 时间 hours    $ V6 q- b& F: X5 d
 day 天 days   
$ ^9 d4 O2 s+ z7 \- H$ V" ^ month 月 months    1 J# T0 w! w0 @
 year 年 years   
- g5 {9 W/ i, R4 }$ m6 Q. y minute_second 分钟和秒 "minutes:seconds"   
7 w" m! H! A: Q, Q( T hour_minute 小时和分钟 "hours:minutes"      D% q6 p) h, I
 day_hour 天和小时 "days hours"    & j, x9 R  a4 i: K! y: v  z5 d
 year_month 年和月 "years-months"   
7 ]* Y2 O/ t* n7 z3 `' d  O' _ hour_second 小时, 分钟, "hours:minutes:seconds"   
; q$ b0 [, R- t1 _, z, d) |5 H5 O day_minute 天, 小时, 分钟 "days hours:minutes"    . c/ v0 ]; J5 B/ i: `# S/ ~/ ]
 day_second 天, 小时, 分钟, 秒 "days6 u6 Z4 l, d. D" d
hours:minutes:seconds"
% L& M2 m% v8 {  a+ i expr中允许任何标点做分隔符,如果所有是date值时结果是一个
' [2 I( A3 Q" r7 q9 W4 Sdate值,否则结果是一个datetime值)  ! t8 m( f2 P- m0 E( b
 如果type关键词不完整,则mysql从右端取值,day_second因为缺. F0 R, X2 m3 A0 g6 }6 z
少小时分钟等于minute_second)  
; y8 z6 Y" A! @6 B5 e( P6 i 如果增加month、year_month或year,天数大于结果月份的最大天
, C& @8 W$ O4 J' s数则使用最大天数)   
- e  |* k$ V1 M  G2 Z; A# Jmysql> select "1997-12-31 23:59:59" + interval 1 second;  7 y7 s% H9 ~+ d% e; V
7 l& m5 x: J# D1 H6 k$ `* R( g) u
  -> 1998-01-01 00:00:00   
7 L* o7 _% R" e4 w/ @3 Lmysql> select interval 1 day + "1997-12-31";   
& T; N0 a5 t# P  -> 1998-01-01   
2 u3 d& i' B8 j" l( g9 n6 amysql> select "1998-01-01" - interval 1 second;   
- i/ S+ s8 K! Z( s5 R* D- _  -> 1997-12-31 23:59:59    5 b. w+ C& O8 o% a1 f
mysql> select date_add("1997-12-31 23:59:59",interval 1- ?- D) @9 E$ P0 W  _' z
second);    ' [6 B' p3 \; d# g
  -> 1998-01-01 00:00:00    " X0 p3 {  c) O9 P, ]. |
mysql> select date_add("1997-12-31 23:59:59",interval 1' H3 A, Q* N' N2 d. y
day);    + j/ [  u% j8 k. \
  -> 1998-01-01 23:59:59   
; n7 b# L, s9 m+ h1 h: nmysql> select date_add("1997-12-31 23:59:59",interval* _) {3 G# w9 t) B
"1:1" minute_second);   
8 @. A, P/ [0 }  -> 1998-01-01 00:01:00    7 z% E2 O% I, h6 p4 l7 i7 v  J
mysql> select date_sub("1998-01-01 00:00:00",interval "1; Y5 F) w8 _) d5 x9 H2 D
1:1:1" day_second);    5 l. @. T& G; I# ~4 N: v
  -> 1997-12-30 22:58:59    2 o& K' s  D. d8 A. w% u3 p
mysql> select date_add("1998-01-01 00:00:00", interval "-1
; h/ F% ?2 [1 N6 B( ?3 z8 _( S  k* A10" day_hour);  6 y. z0 y9 U6 \; c' b
  -> 1997-12-30 14:00:00    / G1 w# e3 @; }% s$ W: Z( T( Y
mysql> select date_sub("1998-01-02", interval 31 day);   
8 ^9 `, [2 g( Q  -> 1997-12-02    2 o, x' l+ f# t3 M" Y
mysql> select extract(year from "1999-07-02");    , _* O  M: w% I, w0 ~; {
  -> 1999   
9 v" x* R( \  q3 F' imysql> select extract(year_month from "1999-07-027 j( p+ _$ g8 M
01:02:03");    ' b( n6 @7 ^. n5 w
  -> 199907    6 n+ D% C$ X- R' e: S
mysql> select extract(day_minute from "1999-07-02
* `  F, n3 |; D) h, P3 m6 R01:02:03");   
9 M" l( P% w# i  ?: |! `  -> 20102   
7 H+ i4 h% c& a1 X6 x  m8 c% M# o
2 r2 r: d1 z9 D# oto_days(date)    ( x# W4 ^( |2 M1 M! r) B  I  L
返回日期date是西元0年至今多少天(不计算1582年以前)  1 p, e- }# w" J
mysql> select to_days(950501);    3 s7 J( f" K: l* p* P$ P9 E
  -> 728779   
7 c, a7 _+ Z" |; y, Imysql> select to_days('1997-10-07');    ' `8 F9 I/ b1 X5 @# s
  -> 729669   
% e, r3 i7 g4 h2 q/ x1 _% w 2 p( G& q" [1 \1 A3 f
from_days(n)   
& r7 I. D1 q  K! S3 a6 i 给出西元0年至今多少天返回date值(不计算1582年以前)   % z7 l3 H0 l6 b1 ~
mysql> select from_days(729669);   
# E! l* [. {) L0 D0 H  [) Y  -> '1997-10-07'   
  a  b% ^0 `0 g3 B6 y
  x1 {  ]' g4 w) V, Edate_format(date,format)   
! D" a7 h( v$ ?% u3 I8 ?0 i 根据format字符串格式化date值  
0 N" R7 h; ^9 Z9 A- n+ F* f  n (在format字符串中可用标志符:  8 _0 Y9 T5 {& _( i
 %m 月名字(january……december)    9 d* C/ Z8 @3 m2 r5 E4 W
 %w 星期名字(sunday……saturday)   
0 g' @' Y; W- {/ P) _; f* H %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    ; t% U7 w! G5 k1 t- ?/ n
 %y 年, 数字, 4 位    9 {4 z; J$ l+ z: U/ ^5 B7 n
 %y 年, 数字, 2 位   
& z7 Q% l4 H; J* @( W* N %a 缩写的星期名字(sun……sat)    ' d( B  Z( [( B- ]" e1 n
 %d 月份中的天数, 数字(00……31)    5 K* A2 Y5 r, ?! f
 %e 月份中的天数, 数字(0……31)    - |( _: _, l" ]
 %m 月, 数字(01……12)    2 U8 r% E9 C# b- f# U. o6 h
 %c 月, 数字(1……12)    $ n1 F. z' b- K6 q
 %b 缩写的月份名字(jan……dec)   
! k8 `8 N$ m1 _. } %j 一年中的天数(001……366)   
: k8 x! Q# i7 k. m8 v( w+ X2 h% ? %h 小时(00……23)    2 O' S  n4 ^# h% y. f" X
 %k 小时(0……23)   
8 T( f3 W+ O8 B' v0 Z %h 小时(01……12)    ) `  \. y$ F) u" H9 [0 Y7 f
 %i 小时(01……12)    ' Q+ Y0 P0 n* w( X5 @
 %l 小时(1……12)   
) p2 B( k4 t. w %i 分钟, 数字(00……59)    ) p, M" t# [- T( r2 h+ h4 L$ A
 %r 时间,12 小时(hh:mm:ss [ap]m)    * J  [& }8 G4 E
 %t 时间,24 小时(hh:mm:ss)   
) H- j! _# a7 f7 R %s 秒(00……59)    : o2 Z" `  Y+ Z: f6 E- q5 y
 %s 秒(00……59)    5 r# o# B3 A" ?" a/ G
 %p am或pm    . [5 S: v5 Q" v' H
 %w 一个星期中的天数(0=sunday ……6=saturday )    + Z" m0 D) C% h0 G0 l
 %u 星期(0……52), 这里星期天是星期的第一天    * a) \: z! ]3 z' h
 %u 星期(0……52), 这里星期一是星期的第一天   
6 ^! d7 O0 `8 g %% 字符% )  : ?% ~' ?7 j0 A  G0 D
mysql> select date_format('1997-10-04 22:23:00','%w %m %
6 e+ }2 B  {1 S" M# qy');    / s9 A4 [1 B8 j* H! r4 M% ~
  -> 'saturday october 1997'    + |  N& b8 z6 q# [; L5 f
mysql> select date_format('1997-10-04 22:23:00','%h:%i:%0 T' Y: M+ f+ W# w" g# G
s');    & k2 D. ]+ A, w; m  @
  -> '22:23:00'    % G8 Z+ G7 g& A6 e: a8 T
mysql> select date_format('1997-10-04 22:23:00','%d %y %a
, {) B' q. O/ `4 h7 t" V$ R- @%d %m %b %j');    8 q7 J6 K. w" i6 G" f/ {$ \" N  Z
  -> '4th 97 sat 04 10 oct 277'    ! b  \& U+ b! a: y
mysql> select date_format('1997-10-04 22:23:00','%h %k %i% O! q. p$ w8 _, T8 g/ h# `
%r %t %s %w');   
2 u" M7 g( D# v3 K. Z  -> '22 22 10 10:23:00 pm 22:23:00 00 6'   
! c8 }4 a' H. h, D
0 Z4 c7 Q' r1 E/ X+ ~time_format(time,format)  - ^% M$ D* s$ g: q% a5 r
 和date_format()类似,但time_format只处理小时、分钟和秒(其
, ]  R! K; ]6 S6 G/ f1 p0 X余符号产生一个null值或0)  7 o8 B6 l) H: S: b3 X& I. L3 t
9 _7 w% @, T: W0 s# a+ |. K
curdate()     
2 n1 B. h8 p* _5 b/ Ycurrent_date()  
' X- y6 ]! ?! ?/ x6 L" G6 p) r$ i 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
& f! Y& P5 M8 c6 E1 y处上下文是字符串或数字)    & X$ a" ?( v; H+ [# ?% _" Y
mysql> select curdate();   
9 w( V9 ?8 ?  _( E2 {  -> '1997-12-15'    2 S1 y  Q0 ~) U' C4 t, P- I
mysql> select curdate() + 0;    , j9 R# l1 ]" o
  -> 19971215   
% }* n% Z9 D( c: r ; Z$ ~6 y  M9 i# Z/ X
curtime()    * U1 P5 a$ x+ k5 E- q/ h
current_time()  , ^- z. x0 h" K$ a  W% n) D! ]8 U
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
7 Z8 ~( o2 {$ X: Y3 }下文是字符串或数字)      , X+ f7 x% ^- s5 S* [& \
mysql> select curtime();   
& d4 z) }) @( \  -> '23:50:26'    4 U2 q/ b$ [# n. Y) h7 o
mysql> select curtime() + 0;    + ?3 E% x7 e1 E3 N
  -> 235026   
4 j% H8 n+ [. f( B # z2 O  }4 m" g. w
now()      z+ X9 s7 X  ]6 S
sysdate()    
6 M; j4 x) g4 d5 A7 J" t& g( mcurrent_timestamp()  " o) k9 w4 z, O9 L+ O: g, ~
 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期- l* x3 o( w; M" s) y- h
时间(根据返回值所处上下文是字符串或数字)     ( Z& R; s/ T. z+ q, Q7 Z
mysql> select now();      T0 g  O0 P8 |" X# f8 o& p
  -> '1997-12-15 23:50:26'   
9 L& f9 {& y; H1 j3 a# d+ W8 `- c9 Vmysql> select now() + 0;    0 l7 X0 e8 S0 L# `) F  o
  -> 19971215235026    ) q0 {9 b4 L2 ^4 ]

7 E/ n, l* U9 A! V4 l0 i- r  Qunix_timestamp()   
/ b3 G  ^8 G' o6 ~8 lunix_timestamp(date)    : A5 v4 l# [$ P5 L; a8 l
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒; B- q# @, b) q" l7 v; Y
数,date默认值为当前时间)  & l+ j& B8 N; b7 n! T3 a
mysql> select unix_timestamp();   
  Z" _: F- s! p0 ]2 A1 }% a# b$ p  -> 882226357    8 ?! D3 v6 c. N: D2 Z( O
mysql> select unix_timestamp('1997-10-04 22:23:00');   
( p* ]1 p1 K( {  -> 875996580    3 g( g! ?2 p" }4 n( P# G

! n- Q1 v% x5 W5 l  z$ v0 }from_unixtime(unix_timestamp)    - p; @2 a/ c& A8 e7 [
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的" D  |* o6 X* B: T
值(根据返回值所处上下文是字符串或数字)     
( M+ s  o) S/ Xmysql> select from_unixtime(875996580);      ~% ~" l& V- ^/ g! t! T. b1 J+ B
  -> '1997-10-04 22:23:00'   
  |0 V2 b# y5 Vmysql> select from_unixtime(875996580) + 0;   
$ l% ?8 q5 D- ^7 |  -> 19971004222300    ; _& \# n! M& [( q

5 \* n, m( ]* U% [' ?from_unixtime(unix_timestamp,format)    % O! h. c  [8 g0 K) v9 u
以format字符串格式返回时间戳的值  : w9 w; K2 U5 O2 {: O. J
mysql> select from_unixtime(unix_timestamp(),'%y %d %m %
4 {- L& U1 n/ h- I) q3 mh:%i:%s %x');    - q+ u0 z0 P/ ?# f. V' P2 E% E
  -> '1997 23rd december 03:43:30 x'    7 h, P( n" |. @  K

  g  u' b2 e1 N) X, usec_to_time(seconds)   
5 `7 L0 U$ N+ H以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
# ?5 R4 C7 C. v4 S; x* {# v- ?mysql> select sec_to_time(2378);    / d" P, u2 w1 H9 c3 z$ u* A
  -> '00:39:38'    ; y2 ], A4 h, f( o- U
mysql> select sec_to_time(2378) + 0;   
8 A8 h& `+ g6 H1 b9 H% @3 @( I: |  -> 3938   
, u9 {& K! L1 L, I; C, R# T
, I" j# e% l5 gtime_to_sec(time)    ; G: E9 G/ W/ J4 q
返回time值有多少秒    3 J+ b0 x2 b0 M$ N
mysql> select time_to_sec('22:23:00');    0 x6 e4 r% r' B$ W, v& R
  -> 80580    $ n2 M& @4 y9 ?8 O0 ^
mysql> select time_to_sec('00:39:38');    ' b- Z2 \! b, k# c4 h, S& B; O
  -> 2378
4 o- l3 y+ [! w8 O4 e4 Z5 C ) q8 h9 c5 L8 H
转换函数0 \6 v& ~; P3 N
cast4 o9 P  j4 ^4 U
用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]0 h9 x4 K* ]/ \2 x" d, d- A/ O
实例:select cast(a as unsigned) as b from cardserver where order by b desc;; _1 D; f( z  J% ~; T. {
convert:4 |3 N/ C7 _! T+ l3 {' W% g# l
用法:convert(字段,数据类型)# V# I/ K8 ?! e* A
实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

6 f- S9 H# u2 V, H. G( {
回复

使用道具 举报

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

本版积分规则

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