中国网络渗透测试联盟

标题: mysql常用函数大全 [打印本页]

作者: admin    时间: 2018-3-21 16:07
标题: mysql常用函数大全
1、字符串函数# F5 k, S" t5 e* D0 E: V
ascii(str)   
' I5 u& u6 k0 }0 y返回字符串str的第一个字符的ascii值(str是空串时返回0)  
2 Z: t$ F8 Y5 x& ^  Gmysql> select ascii('2');  ! a4 s" R5 d9 N  U3 Q" r
  -> 50  8 W4 U  m0 U  L8 Q9 ?9 L  N
mysql> select ascii(2);  
) A; ^( Z8 O6 `4 \7 \0 W0 x- J  -> 50  $ Y- u$ _3 t7 x+ C! t( T
mysql> select ascii('dete');  6 s! L. ?" j  E: S0 ?' T
  -> 100

) p; ?8 K) m# C5 a( _' uord(str)   
  S2 l- d& ~4 Y8 U/ B如果字符串str句首是单字节返回与ascii()函数返回的相同值。
8 P% V. K" I; F  V ; V1 E3 i7 w, u
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  ! F6 k# ^) c; ^5 y, z! C! p
mysql> select ord('2');  % ^( h2 S. ^. ]9 v% g9 \, ~
  -> 50  ) R3 n6 Q% E8 a( u
   
1 W0 Y. y. U' M8 x2 E, t/ p  _conv(n,from_base,to_base)   
6 I; v! O1 t) h, Z7 Q3 I对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
% F& Y7 X+ i% D6 Mmysql> select conv("a",16,2);  0 R! Q5 H8 F; C. {6 m4 Y- `
  -> '1010'
: m- }$ f, ]+ ~6 ]# ^8 Gmysql> select conv("6e",18,8);  
% ~4 _: A- z$ X# Z! S  -> '172' * ^3 b) ?( s0 O; r, e* N% ~
mysql> select conv(-17,10,-18);  / E1 j/ t( P+ C" F! }7 n9 r* F. D
  -> '-h'
6 c2 w% {3 k4 b1 ]. z& Emysql> select conv(10+"10"+'10'+0xa,10,10);  & ^1 N$ \# W6 \; U9 w
  -> '40' # P% c( R, v! y6 ?
   , w: S. _9 F& L; N) e  I4 l5 \
bin(n)   - F7 h5 P' r* F' B
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
7 ~% m' V( S; Y- j: f, ymysql> select bin(12);  
6 q% p' K4 y2 ?" ]3 N/ [  -> '1100' " W/ t  V) `8 V5 y- Y3 }# F

/ Y1 W! H( m  K. V8 q# J) ~5 A" foct(n)   
( i4 K, B2 ]" T" u6 d+ _3 s9 L把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  1 a7 [" p& Q4 w, ^9 A$ u6 Z+ i4 l+ |
mysql> select oct(12);  
" ~% J$ i: z# L4 U+ U  -> '14' 3 E4 T( t: V2 k4 p8 ~
   
$ c' p1 p" ]% R+ [7 r" ^hex(n)   
) t+ X8 s* m0 T. P+ o把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  / e# P* o9 x( T% w% Z
mysql> select hex(255);  + Y0 u' v  r! K: l* K
  -> 'ff' 1 Y+ B, q0 _+ n9 w
   8 c" v2 R. R7 x5 B/ k2 D6 a
char(n,...)   
* Z$ p3 J! C; [( k8 N3 _8 X返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   
. L% B9 _8 d; l1 P$ ~% v6 Lmysql> select char(77,121,83,81,'76');  * q6 ^  G$ k# @! C2 N2 s
  -> 'mysql' * K9 @. W3 u2 k( j
mysql> select char(77,77.3,'77.3');  1 Y& l5 ~2 c7 ]* M
  -> 'mmm'
6 U: b  q1 v( M. ~; J# c   
: ]6 s, f- J) ^! n) Z8 {, }% X+ {concat(str1,str2,...)   / I4 Z! j. z2 S0 e# d
把参数连成一个长字符串并返回(任何参数是null时返回null)  
8 u( A2 _0 a. [! _3 Q, mmysql> select concat('my', 's', 'ql');  / d8 j5 Y" z1 ^" `1 N. v
  -> 'mysql' + X4 k" Z- G. ?6 O2 ^
mysql> select concat('my', null, 'ql');  / L' I/ p; Y/ f7 V6 p8 A
  -> null - w  w2 Q) @  a5 r; Y- V6 x
mysql> select concat(14.3);  
$ o8 L+ Z& a* l* K6 p5 y  -> '14.3'
7 w+ ?: w1 D$ j) ?2 w
& P  {+ a2 M; G. glength(str)   3 B0 e& o: @6 ?+ F+ l: P. ]
octet_length(str)  
4 l5 K5 Y% O# N8 j+ z& {, Mchar_length(str)  9 [5 w6 r* b9 o' T
character_length(str)  # A9 w5 Y7 O8 Z
返回字符串str的长度(对于多字节字符char_length仅计算一次)1 D- f; p  |1 K8 q/ ^
mysql> select length('text');  
5 @5 Q( }4 i. C1 F# E" E  -> 4  # N9 R5 X4 s9 {9 @
mysql> select octet_length('text');  
+ P5 K% y8 |6 T) F6 C7 O( ~9 b  -> 4  0 w9 ?" L+ @8 x% Q: h4 b$ J" M) p$ Y

# r5 Z. e0 e  x( J3 m( ilocate(substr,str)   ' _0 o5 c5 Q! K
position(substr in str)   
0 Q& i, n! h' A0 ^; @返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
. k1 Y- }) x4 i  _8 H- amysql> select locate('bar', 'foobarbar');  0 T" U1 T7 w% n) O
  -> 4  : s) ~  Z7 C; q$ f% b0 }. K
mysql> select locate('xbar', 'foobar');  
- k- E9 y/ l" P  A  -> 0  ( x  I" ^7 L* y
   
1 ~% n" w) ~/ U7 m& Y4 j1 hlocate(substr,str,pos) ) K( a$ g+ n- r2 `
返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  : a5 r# a; \( ~; f
mysql> select locate('bar', 'foobarbar',5);  
9 x6 \0 L- ?- d) ~6 }  -> 7  4 k+ J4 H$ R, A+ D/ ?4 J
- p, M# `! T  I0 X3 V+ T
instr(str,substr)  
/ W' V. {% c. W% ?2 Y返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
+ [# T2 n0 u' p8 _  a3 ^mysql> select instr('foobarbar', 'bar');  
$ D$ ~$ a' q' [! r  -> 4  
4 V- C. ~1 N3 Z; [6 O& T5 F2 Cmysql> select instr('xbar', 'foobar');  
# J$ C2 F; m& v3 B7 p) c  -> 0   
7 j9 z+ x  Q9 J
, W: A5 U0 |# T# }% ]% [: Qlpad(str,len,padstr)   " e* Z  U* c8 @. J$ A
用字符串padstr填补str左端直到字串长度为len并返回  
" d, y' ^7 ]7 q& P0 [" o4 O0 d* ~, _mysql> select lpad('hi',4,'??');  
0 t$ v+ `  {; ^$ v# h5 Q3 r* B) |  -> '??hi' ' d# X! m; [3 ^- u6 D  G4 \
   8 P1 U" Y# y, _& A
rpad(str,len,padstr)   
% H6 F1 p! G. s7 ?0 P用字符串padstr填补str右端直到字串长度为len并返回  , h. Y- j& o5 V9 |1 Z
mysql> select rpad('hi',5,'?');    z3 d% ~3 _2 I" N5 X3 t6 J$ {
  -> 'hi???' 1 q/ n' z2 `( B( ^% l

4 h; q7 g2 R0 U' [; n  Lleft(str,len)   9 s  [8 H+ m8 E$ G9 b+ I
返回字符串str的左端len个字符  ' s4 V0 v$ D+ T* M4 w5 a' |8 X) O
mysql> select left('foobarbar', 5);    E0 e, `6 k5 _2 N
  -> 'fooba'
! s& Y- Q; @8 A0 Y! i- o$ y! l  T
% N+ Z% `  ^% n2 w+ nright(str,len)   
. }9 G( t/ m* i) Y返回字符串str的右端len个字符   
' a1 N- U& t/ |- d4 S; Y* R0 ~1 Omysql> select right('foobarbar', 4);  
+ f- m* D* N- m4 N  -> 'rbar'
+ C! {7 }$ l+ Y3 r. s - t) M! W: [/ v8 Z* b
substring(str,pos,len)   
+ i- _- p' {- F! ?) {, o: G( Asubstring(str from pos for len)   
1 Y7 u, ?& t; o& o' \mid(str,pos,len)   
( s3 ]# w0 Y6 q' |* y& Q; a返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
. M# V# v: m* v8 d2 y  -> 'ratica'
5 U& Q6 f7 g5 r- C6 J 7 v) {- i9 X5 X, v( O- P
substring(str,pos)   
) o# ^% A; o, z- ~. t! Y  O: usubstring(str from pos)   
" ]# L5 z! _; d9 d返回字符串str的位置pos起的一个子串  
8 u7 P7 m7 c) H, A4 G; U, a- Lmysql> select substring('quadratically',5);  
3 K% l! \* O  W/ B- m" ^- K  -> 'ratically'
. q. s0 a5 E# x: Smysql> select substring('foobarbar' from 4);  
; B) ^4 N- _# d+ C5 b" n$ S3 x  -> 'barbar' - s/ D# z, F9 s3 k# ^/ Q3 A
2 r# A# b; J! e% i) s. k3 `; U
substring_index(str,delim,count)   ) _, [- g7 b4 ]7 R% P
返回从字符串str的第count个出现的分隔符delim之后的子串. K9 N' B' a8 O# D  z' D
(count为正数时返回左端,否则返回右端子串)  ' E1 L' E! a: k: m. a
mysql> select substring_index('www.mysql.com', '.', 2);  
0 `! o: e9 b8 T  -> 'www.mysql' 9 g8 O9 k$ R7 d9 Y* `: U: ]
mysql> select substring_index('www.mysql.com', '.', -2);  
% _# {9 X% D' H/ ~  -> 'mysql.com'
) k# {/ M8 B9 {4 Z" R 1 c6 U5 N( g4 }  G, `0 B6 q
ltrim(str)   
0 p- i( [6 w1 W  a0 G+ h: S" ^3 h返回删除了左空格的字符串str  ) Q3 r( ~8 ~$ n! M+ ?- D/ \
mysql> select ltrim('  barbar');  
7 L) ^% O& e+ {; d. X  -> 'barbar' 6 }6 n0 G4 t2 V2 U; _9 }  e
5 ^8 J. |* O% T* z$ Z
rtrim(str)   
$ r+ @& V. B+ l返回删除了右空格的字符串str  
- G: @7 K# @& L8 B& T1 Z) m8 fmysql> select rtrim('barbar   ');  * a! a1 B" w. q7 \, x
  -> 'barbar' + h# ]) [& l, I$ \  v4 D% F" d

' r, d' ~: M+ ^& z1 Otrim([[both | leading | trailing] [remstr] from] str)   9 q$ L: \1 Q" u9 \" [; I  r; E0 M
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)    }1 Z3 n  i, c4 `. }& i7 V
mysql> select trim('  bar   ');  
3 N( p4 P- L- H! h& J# Y& V( n  -> 'bar'
) F3 K2 B) a4 U0 \+ `! [mysql> select trim(leading 'x' from 'xxxbarxxx');  , k) c# B, F: ]; [) f1 g
  -> 'barxxx' 3 c- x: _5 B2 I, ^" _6 d
mysql> select trim(both 'x' from 'xxxbarxxx');  ' U- Y) ^" K) Q+ j" q
  -> 'bar' . l+ a% j5 z; y+ U1 A
mysql> select trim(trailing 'xyz' from 'barxxyz');  ) O) a3 V6 n  U5 a2 T9 L
  -> 'barx'
% R3 F" K3 L, r
+ U, w) k/ I9 n4 }7 J6 |$ Fsoundex(str)   
+ [" `5 i* N( i: m& t/ s# K返回str的一个同音字符串(听起来“大致相同”字符串有相同的
4 K) m9 m( ~$ r# u同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  8 Z  z% L0 `( y1 r( r, |& Y
mysql> select soundex('hello');  9 p$ m  O* ~, C4 G* @
  -> 'h400'
4 @4 j1 [3 Q! z2 s6 Cmysql> select soundex('quadratically');  
" Z7 ?& y: f9 o; e( W  -> 'q36324'
9 R1 P2 M2 D" p5 n. D   , b* O/ o$ {. z
space(n)   
$ ]9 p" {# o# `返回由n个空格字符组成的一个字符串    k" q3 i: D& J. l3 U
mysql> select space(6);  4 |0 N/ G1 W3 s2 C% D) h1 D
  -> '      ' " H6 U* G  ^" \
   " s1 g4 ^2 v4 b( W: M9 v3 X: d/ N
replace(str,from_str,to_str)   
# V2 u! h1 L' u用字符串to_str替换字符串str中的子串from_str并返回  
7 s( K+ b) q5 V2 b# f6 ~' Lmysql> select replace('www.mysql.com', 'w', 'ww');  ' w, j' E7 t1 P- Y9 v8 M
  -> 'wwwwww.mysql.com' & U1 f, J# r; i9 L  m
9 I, }2 X. Q' K. W% d
repeat(str,count)   7 ~- J$ `7 V  c# N% l9 @/ }2 r
返回由count个字符串str连成的一个字符串(任何参数为null时+ u% r8 U$ Y: Q2 Y
返回null,count<=0时返回一个空字符串)  
% a. c5 @: i* \& }3 r5 Nmysql> select repeat('mysql', 3);  
# U5 w' k' B) b1 E* j! W( Q7 K( o  g  -> 'mysqlmysqlmysql'
" S0 h* G% B/ j2 }! t0 Z   
4 H7 ?, g5 ?0 s9 hreverse(str)   . a- d, v, x3 K* A9 G2 K4 d
颠倒字符串str的字符顺序并返回  - x! T' i* u1 ^9 J7 y/ s' f
mysql> select reverse('abc');  0 i( l# R9 }# o1 C
  -> 'cba'
  l+ g7 _0 Q. g: Z4 m5 W
$ o" _$ ?, T3 Z. c( ninsert(str,pos,len,newstr)   
9 E  [; {$ P( r9 z$ e. A把字符串str由位置pos起len个字符长的子串替换为字符串
3 n' l# x9 E- W2 ?newstr并返回  
! I/ U& p% p; v; tmysql> select insert('quadratic', 3, 4, 'what');  
! Y6 R* h6 d' q/ P3 s# g& d4 k5 ~  -> 'quwhattic'
' e# a- f! I2 n2 K! \; Q2 A% M
/ [0 m$ o6 J: \+ A) y" k- Jelt(n,str1,str2,str3,...)   
9 R, z8 K6 g& y: q$ \返回第n个字符串(n小于1或大于参数个数返回null)  
7 C2 E% ?0 Z* M) I2 u. Tmysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  % H# _3 ^" q. O" h, o
  -> 'ej' : f+ @; d  p4 }4 t, I& s7 d
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  
/ q3 i' f' s+ b, z7 G1 T  -> 'foo' % P7 ]; I3 L9 {

: g& q: s1 b; l6 f. qfield(str,str1,str2,str3,...)  
) R( g( T  z& y返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
+ m$ g4 P/ T* p* F3 k$ C4 _( emysql> select field('ej', 'hej', 'ej', 'heja', 'hej',9 i1 J5 P5 E3 p1 f# M% q
'foo');  
7 u  [! d" M! w% A  -> 2  
9 d9 t  [( i* ~( d7 i0 r! ]mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
6 {- H: }3 `9 R'foo');  
- Y0 O9 `- g' L  -> 0  % U1 k& |& J- o# ^  [
: m# F, D( v. B
find_in_set(str,strlist)   
# L- M. p0 o$ i" M  T* v+ w* M返回str在字符串集strlist中的序号(任何参数是null则返回3 @+ U+ A' @- R
null,如果str没找到返回0,参数1包含","时工作异常)  ! \6 ?( ~& E6 _- Q% l) ?
mysql> select find_in_set('b','a,b,c,d');  ' R& M6 B- i* a  k
  -> 2  + b" C( u% q* N! p  {
   5 F& o8 f( W4 _& x! S
make_set(bits,str1,str2,...)  
2 x  F6 R) q& N把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
+ M' j6 d" j4 L' X1 r7 t5 B位置的字串选入字串集并返回(null串不添加到结果中)  ' W4 E, L, Z+ F$ L, j5 }1 h. o
mysql> select make_set(1,'a','b','c');  
; u; ]9 s) z% R1 x2 M' Y  -> 'a'
4 ]$ M2 `0 n0 L# O8 l  ]mysql> select make_set(1 | 4,'hello','nice','world');  / _/ z2 G5 h) G6 a1 g8 r
  -> 'hello,world' * d: U% x5 v* a4 B+ ~+ `
mysql> select make_set(0,'a','b','c');  2 Q: N' Q* y# Y. f, n% Q
  -> '' 9 s  N  w% y9 B9 m& u8 Z' b+ h( k1 D
% V0 {, n" q% y8 I. k* ~; F
export_set(bits,on,off,[separator,[number_of_bits]])   
& P+ ^0 i- o5 \$ ]按bits排列字符串集,只有当位等于1时插入字串on,否则插入
+ c) c. K* @  V$ ^! T+ Coff(separator默认值",",number_of_bits参数使用时长度不足补06 r% T9 u( t# [$ F
而过长截断)   
3 T1 a3 i% j9 f4 o5 Pmysql> select export_set(5,'y','n',',',4)  ; k* H9 i0 t4 j- R  Z* |
  -> y,n,y,n   
  I0 K' y* R$ l: r9 z + G$ t+ r- Q7 X
lcase(str)  
9 t2 Z: O- z0 Slower(str)   
$ Y. Y( y1 H6 b+ d* V. H6 r4 ^返回小写的字符串str  
( G4 F8 Y( h: D! K: [mysql> select lcase('quadratically');  % R. Z4 x" x9 S& [% ^2 c& g
  -> 'quadratically'
! a' y- P3 {8 c5 @( t& m* @   
" A+ @8 _/ r0 cucase(str)   
2 B5 M6 C3 K, D  R8 D6 q. |upper(str)   ! |+ T( M$ y5 }* i
返回大写的字符串str  
8 N$ o7 w. v0 l$ ^( gmysql> select ucase('quadratically');  * i8 [; i+ G- N. p6 n9 P
  -> 'quadratically' " R! a5 g, O% f4 y: f

- h2 z+ H5 l( U  p& Lload_file(file_name)   % l* Z6 p2 E' w" d9 [, R/ G: Q7 z
读入文件并且作为一个字符串返回文件内容(文件无法找到,路径
# a3 U- G4 E' A, M3 N7 S不完整,没有权限,长度大于max_allowed_packet会返回null)  
/ R7 ^# K" H/ v; u# Gmysql> update table_name set blob_column=load_file
0 n& K- W- ?- V4 n3 j) H("/tmp/picture") where id=1;  - `) p6 A* N/ V- i# [  N

4 d* r2 w" [' }# w0 Y$ a2、数学函数& P( M6 s2 E9 H/ `0 v, ^& y
abs(n)
, E5 E& d1 E+ {6 `6 `$ C6 s! D/ q返回n的绝对值  
( Q! R' |; \+ l0 |/ {. \mysql> select abs(2);    3 Q/ Z/ L6 I1 h% }8 z
  -> 2    : b# S. M1 y/ f
mysql> select abs(-32);   
  w- _, [1 e0 |4 F+ \' L  -> 32    + N0 P7 Z9 C  A2 X: C
   , X/ i" R4 X. U9 Q: `
sign(n)  
9 r) ]1 _  L+ K" B7 C返回参数的符号(为-1、0或1)  
  P  K0 J! I1 l0 r# Nmysql> select sign(-32);    7 ^! B, _; Z! F* {
  -> -1   
% a; B$ @1 b4 x( n  b6 D' k- x5 L+ Gmysql> select sign(0);    8 E0 y; C) r3 {4 `) D9 d
  -> 0    , n5 L- z$ B3 T2 W- q
mysql> select sign(234);    % _# t" o0 m$ ?+ [# l; {
  -> 1   
. W6 W. T( a7 ~, L, U; z5 f   f: O  Y+ M% ~7 Y, j
mod(n,m)    - L- I# B$ a/ K8 |
取模运算,返回n被m除的余数(同%操作符)   
1 U+ i2 O. Y4 \3 ^" O9 vmysql> select mod(234, 10);   
4 M! x4 C  G" _8 [# q8 p  -> 4   
# c6 B* c$ [" G) k& b8 p- {3 E3 pmysql> select 234 % 10;   
& l, d8 p/ ^3 `8 R. u6 {& h  -> 4   
3 Z/ P4 c: N4 K5 X! W2 Vmysql> select mod(29,9);   
8 v% p3 P6 V4 k  c% J/ j+ p0 ]  -> 2    . ^, W+ m7 e/ J4 P- J  g' ~

0 z, Q4 B8 e( u5 ?* mfloor(n)  
1 [$ r) {# c9 n1 y. {% H- }返回不大于n的最大整数值  / S( U/ s6 K+ v* P9 ?+ {: e4 }" l: O" ^
mysql> select floor(1.23);    8 N0 X( F, x0 O' p/ R8 g5 ]
  -> 1   
5 |  Q7 k1 W& [' \" D4 X: w% M! jmysql> select floor(-1.23);    6 j; D) H3 Z5 t$ u" ^
  -> -2    - Z5 e( b6 J1 \$ Y* m6 C+ w! R, ^1 Z& W
& [, X! f; z8 j. ^1 A
ceiling(n)  
7 T, \# f# z& x返回不小于n的最小整数值  
  u; a- _) @8 ~* Umysql> select ceiling(1.23);    % {2 S5 |' h0 a" U; }  Y
  -> 2   
# K& `. v- w1 _7 _. h" x$ M0 x) smysql> select ceiling(-1.23);    ) D2 C, E- H/ h  {
  -> -1   
$ L% r0 b  J' E- V7 r ) x) r3 |* {7 _0 v
round(n,d)  4 r+ r, l; ]' }8 A3 S
返回n的四舍五入值,保留d位小数(d的默认值为0)  ' s  l5 b3 s7 L) v& [
mysql> select round(-1.23);   
% n* E4 Q  R' y( E  -> -1    3 \0 F2 Q( n  t/ N  p1 b
mysql> select round(-1.58);    7 f0 `6 F5 w( b5 A: Z
  -> -2   
/ a( u% w! F% V4 {5 u" mmysql> select round(1.58);   
8 @% n) s9 }; m/ i  -> 2   
- X1 Z) T2 V) l9 Xmysql> select round(1.298, 1);   
2 k/ ]6 \1 s% k; j2 d  -> 1.3   
# N+ b2 U5 v" m3 Y! cmysql> select round(1.298, 0);    7 w" T# r9 ?4 l" z& O' {
  -> 1   
9 B) r: Z2 P% w. W7 ?. L   x- V3 E6 U; d4 T- k/ y+ n# o+ l
exp(n)  ! p3 I; T, A# W( _# b+ j4 V/ w, d
返回值e的n次方(自然对数的底)  & x( X# M: [( n0 N0 B  L5 O% i- R
mysql> select exp(2);   
1 L7 o2 S2 w' x3 h- T  -> 7.389056   
* S' J0 y9 z  f+ U) i' T) imysql> select exp(-2);   
! r, c- T: i' k0 {8 V9 y" d  -> 0.135335    ' N. E- A/ |+ ]4 {3 j

9 X- {; H. ]4 p) D$ v2 \6 n- vlog(n)  
% a1 s% M2 ~" Y/ j) e# X, e返回n的自然对数  
& c: m- _7 ^# A+ ~4 t" R( Smysql> select log(2);    * `$ @5 u6 ~( W+ U. \/ e8 P8 E
  -> 0.693147   
$ W: w$ I! F. |4 c  V- j, k* Cmysql> select log(-2);    ! b& X; k8 i9 f) |% Y
  -> null    . P8 y% T; {, G8 j9 r& v% K+ O
/ C# m# {, b9 c! z* o
log10(n)  2 g2 T9 a& d  o. ^# w! U+ w
返回n以10为底的对数  
- Z) c, M& c3 x( f8 C# X( cmysql> select log10(2);    : b* y! s% f; q" j& O& [" k1 z$ r7 [
  -> 0.301030    3 k0 N8 L# z! |/ a) ?7 {
mysql> select log10(100);    0 Y  Z+ d# z0 t9 d5 k9 {5 o
  -> 2.000000    ( k4 o3 c2 F/ B/ I
mysql> select log10(-100);   
% @0 T" s  I- L; w- H  -> null   
- Y1 q& i0 e4 i2 }: r" d7 n
/ R  F# Y  P: A* ~pow(x,y)   
/ V) `2 c2 r7 U$ k* d' v6 K( U. npower(x,y)   
( |: H! z) T0 U/ f 返回值x的y次幂  # ?# J9 s! Q, {$ n! ^
mysql> select pow(2,2);   
, `9 {$ t- |  W1 a: R+ c  -> 4.000000    3 ?9 D3 x$ g1 q2 O" b4 c. {
mysql> select pow(2,-2);   
5 }( e  [, f; u  -> 0.250000  . N# s7 @$ m7 L' ?( B: O3 b; S
  ]5 _: N0 P( O
sqrt(n)  
, z, q6 P* {6 U6 r) _1 _0 o, ]. Q 返回非负数n的平方根  : I# z! U, z9 Z$ U& F6 v0 _9 c: v
mysql> select sqrt(4);   
6 [, i/ a( Z$ `+ X  -> 2.000000    6 m8 Q$ g! \0 L  N. N$ s
mysql> select sqrt(20);    $ c- [: C  @% e. h: B( i% p2 D
  -> 4.472136    ) p& b1 _) D: i' M" M: Y
# x9 V; s1 ]$ u2 V% D4 N+ G
pi()    $ U5 o' {+ S6 w2 j. c
 返回圆周率   1 G  v5 \% `+ P- A; L
mysql> select pi();    ; j1 e- N2 u! |, N
  -> 3.141593   
( H' j- X2 A* I! }: z
$ x3 p/ }! e3 K  Z, j/ w6 ~6 dcos(n)  5 [$ k* {0 I" |2 C# }
 返回n的余弦值  , k/ V1 P" }. ]/ K4 x1 `
mysql> select cos(pi());  # {, K- p7 N0 s- v) F) L6 g8 S
  -> -1.000000   
( |% U) I, I, V5 t" ^4 q% | - m" ^- f; V( e* B4 m( `+ L# K
sin(n)  
7 }* I  H, O% O4 ]& C 返回n的正弦值   0 T( d) ^2 r- u9 n
mysql> select sin(pi());   
/ O" C% Y. m  T6 E$ T( k  -> 0.000000    ( |, m. t" O& h( `* c# p

& i, N0 z& V8 R+ ?2 M) e0 T& o5 Otan(n)  / }2 D8 \$ p. l1 Q! I5 m* e. x
返回n的正切值  
! T) @" C! g0 Q' lmysql> select tan(pi()+1);    8 n# ]+ K( ^6 _5 K6 t5 T3 N
  -> 1.557408   
. D1 Y9 ^' S/ t5 P
! J: E8 e8 _2 tacos(n)  
% y6 q5 R- O2 j5 I6 v1 R 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  / z$ h- ~  D4 ~, D
mysql> select acos(1);    0 @" t8 s7 s" q- s& x
  -> 0.000000    : `$ j* v; O( a
mysql> select acos(1.0001);    % J# d2 k" C- }/ n3 j. s
  -> null   
2 _" n% X; t# _) l" E  S5 U) hmysql> select acos(0);    ) b- q) E" t3 Y+ o( y  ^4 `7 {9 C) @
  -> 1.570796    * }0 F. U5 j) B0 d

. B; |7 D. W; iasin(n)  
4 u; H- }1 X2 g- Q7 i6 V! D+ T) v& Y返回n反正弦值  
0 x  L6 M6 T1 m5 I3 H- i; a  mmysql> select asin(0.2);    , Q# {% [+ _9 B: b* j4 @  v
  -> 0.201358   
( g7 x; r6 p& G# I. Wmysql> select asin('foo');    3 m) p* n$ z, R3 h) I
  -> 0.000000    ' z9 M% ]. p: ^2 X8 r% q
! J* ?: R+ n& i5 P. B0 k3 p: ]3 |" S1 {2 M
atan(n)  6 t  ~- I. I. E
返回n的反正切值  
+ |! ?* {& w6 _6 [mysql> select atan(2);   
1 s/ {. d: l7 s6 T6 W7 H  -> 1.107149   
; |* n/ R: e7 D! \# x; Nmysql> select atan(-2);   
3 ?* S6 b+ T9 m8 z: a  -> -1.107149    ' i! V1 n- R  k# h! h! `+ {
atan2(x,y)    4 t5 b4 ~* Y  Y3 I: ~1 Z$ u* A& c" Z
 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  ; Y" N% u. [  r. Y
mysql> select atan(-2,2);   
& {, ^9 O4 |$ G  -> -0.785398    + @+ [9 a- ]5 `" [, P4 H! q
mysql> select atan(pi(),0);   
# _. f0 B3 Z) _8 V  -> 1.570796      {9 V6 w% q7 q2 S
( @- }) R6 A: v8 t% s) n# f
cot(n)  
" q# b1 q' d0 I% `9 J返回x的余切  
8 K& P7 z0 ]+ y( T2 P- f# hmysql> select cot(12);   
* u, x5 f7 v: e2 o. O% x  -> -1.57267341    . f4 _9 g" s, A2 d
mysql> select cot(0);    5 c" g* h5 s0 _' \! l* g7 Q
  -> null    3 s; o7 T  L: p

. W# c( r  K' }" u3 K1 t. Grand()  + i& U0 J% ^) t' J& o
rand(n)    
/ ^3 c$ w1 m9 f' d* U. r* ]返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值) $ x: C7 M' U# t. J% n/ a
" \, W! {% h! w
mysql> select rand();   
- Z1 H4 ]; V+ H0 G  -> 0.5925    0 a* ?1 f8 c& _6 a+ p9 J/ D, j
mysql> select rand(20);   
$ s1 a# H& R0 U9 {3 |  -> 0.1811   
5 Y  ^1 O) U3 r9 n, T) Omysql> select rand(20);    0 {+ z9 M% q1 m0 H- h- p
  -> 0.1811    . [/ U7 h6 q' @9 l  X& j0 q
mysql> select rand();   
# E/ O5 [5 C( v+ |8 c1 X3 `* C  -> 0.2079   
# p: s: T7 n% o( @3 ~. a" {mysql> select rand();   
4 A# _/ v! \  B. p' c* w, E' e9 D  -> 0.7888    , v3 _# E) z' ]3 L4 {
0 O2 V8 x4 T$ J$ K, ?/ |$ N9 c
degrees(n)  
0 B9 q$ ~; r. f把n从弧度变换为角度并返回  " v2 v# Q2 d% g/ E& b$ N
mysql> select degrees(pi());   
- O: k7 Y) O7 y) i  -> 180.000000    $ T! A6 V+ t. e8 Q% `8 |6 z

4 ^- i7 t1 m( z  }$ H  m( U+ a' |radians(n)
3 @7 m% G7 r6 @2 Q  E. k把n从角度变换为弧度并返回   1 b, B5 ^5 F6 f: h
mysql> select radians(90);    ) G! r4 ]  i7 e# K# ~3 g5 `. z
  -> 1.570796   
! G4 f+ T# l$ p2 ?9 D6 R; G/ h7 h' ^
: i4 U# o* {- u5 E7 D( r7 utruncate(n,d)   
: [) b: b4 z' S3 i1 l: R) c. s% j3 Z保留数字n的d位小数并返回  
8 R* {/ G& ^5 B( P1 u2 ]: x) Pmysql> select truncate(1.223,1);    : J8 b( T& v; o
  -> 1.2    * X. X$ e1 p' V3 l5 \8 M
mysql> select truncate(1.999,1);   
2 o3 d! H; Y- }; C: P  -> 1.9   
8 }; y7 q: w+ ^+ Xmysql> select truncate(1.999,0);   
( D1 J3 [" K+ q5 a8 v- P. q1 ?  -> 1   
9 p- ~+ K- z0 Z4 L4 S/ [3 G - G  Z2 Q- K% O
least(x,y,...)   
% `1 A4 ?) B: @返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  4 X5 k) u1 q- C* ]; H
mysql> select least(2,0);    / M9 [2 P: w% \% _8 |  L* _# F& {
  -> 0    6 J7 d' A! Z: f, J* _+ z& Y2 u- X
mysql> select least(34.0,3.0,5.0,767.0);   
# h2 ?+ Q: K: Z* ?, p8 `4 Z  -> 3.0    & Y- [+ D) O, f) ]0 g5 Y. d" C
mysql> select least("b","a","c");   
9 h6 z# @$ k) J+ \  -> "a"   
% }4 N! t& e8 ~* s  ?
& [1 i* h+ Z$ w6 Agreatest(x,y,...)   
# b. N& J& `( Q7 Z7 ~返回最大值(其余同least())  
! t2 I; }% `7 U2 d8 T% _- v/ lmysql> select greatest(2,0);   
, O8 `5 R: P1 \  -> 2   
1 b" N" X8 O) w5 U" h5 u5 amysql> select greatest(34.0,3.0,5.0,767.0);   
2 X8 O5 `3 i; f7 o( [( p  -> 767.0    ' l" r1 ?: ^; a
mysql> select greatest("b","a","c");    : e# m; J. H) }; ^
  -> "c"     
: l) x% b$ w4 \4 u+ W# R8 R% \) A! ^. q) j
3、时期时间函数 1 P( c6 ]( u( n! T# D$ f2 c
dayofweek(date)    : ~2 _9 _- y: i& _  q& k
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
5 ~  s: j) k) W+ Umysql> select dayofweek('1998-02-03');   
  H/ G4 B! Z1 _  -> 3    $ l4 z) u% R  t7 O# z9 L' N
& v- w  w/ a$ R1 ]. R' O( m
weekday(date)   
& i) ?5 I% k! o' X: x返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
$ y6 g4 x/ g3 E. N  / d! U6 {) L: Z4 X1 F
mysql> select weekday('1997-10-04 22:23:00');    / u; g0 A9 P/ K5 W$ B3 n
  -> 5    1 V  e+ o) P0 U& ?# X9 o
mysql> select weekday('1997-11-05');   
) _6 z( d' e7 d. e6 F' v  -> 2   
4 E0 J5 C( q: J+ e4 P4 Q; Y
! G' @6 J7 u; f; f1 F- Y8 W- Z: Ndayofmonth(date)    7 U4 l5 ^  V' W/ r4 p' ]
返回date是一月中的第几日(在1到31范围内)   
8 |* n; y9 ~+ K5 _+ O1 u) b' omysql> select dayofmonth('1998-02-03');   
2 \' |, `8 R" C0 x( }$ {6 r  -> 3   
+ N# Q; B  L5 H/ c5 Q) L
  \  t8 Q" X" q" Ydayofyear(date)   
! c- m  H0 u0 m返回date是一年中的第几日(在1到366范围内)    + k, W, m. K! q, Y- v9 J) {! r  ]
mysql> select dayofyear('1998-02-03');   
* l* b; z) U/ L, I# A# K  -> 34   
( C% Z$ T+ `9 U9 W9 }) D9 n
( [, Z8 s3 e* q# C4 Pmonth(date)   
2 e  ~% U( v, T8 L% L- Q" k返回date中的月份数值    8 D  D, W' F& ?! Q
mysql> select month('1998-02-03');   
& ^4 `5 I; O- a) I  C: C2 |  -> 2    - G4 i' \5 i" b; @+ R3 O9 c
- o9 e  \# t1 @- x+ ?6 j
dayname(date)    # g& t- q* Q! r: M4 b
返回date是星期几(按英文名返回)  
2 E0 ^( L# Q  imysql> select dayname("1998-02-05");   
+ q3 V4 o, `$ N6 [) D" q0 f  -> 'thursday'   
) a! @% f1 K* R
+ @& ]  h- ]; o; X) v# G- M8 J. nmonthname(date)    
( g5 I% B* }. C9 K返回date是几月(按英文名返回)  # Y7 E, l3 Z; S& S0 ~/ ?
mysql> select monthname("1998-02-05");   
- X' |* z. F" x  `" X+ M, r  -> 'february'   
! I% t+ [0 s0 f5 n2 f* o$ e! P/ @3 [
$ @" Y9 G0 f. l2 T4 Vquarter(date)   
, m" v0 x4 o5 v2 j8 k' ?返回date是一年的第几个季度   
1 X0 ~* V. V2 V& ?$ _8 X! fmysql> select quarter('98-04-01');    7 M" [( ]" s; k! u8 r1 R5 x5 G  k7 l7 ?
  -> 2   
; K2 ~# ]: A& v, j' A# t
) _9 r) y9 ]& H- t; C* b2 b; Fweek(date,first)   
) O6 w7 F+ u' v( \) V8 J返回date是一年的第几周(first默认值0,first取值1表示周一是; D  Y7 }; X9 ?# ^
周的开始,0从周日开始)  / C2 K% D, }8 ~
mysql> select week('1998-02-20');    ) ~2 g7 a+ l8 `* A9 T
  -> 7   
3 M( ?! E* Z% Q1 omysql> select week('1998-02-20',0);   
1 g  M. A1 M1 j  {; F9 @, X3 t9 x  -> 7    8 C$ z' y. j9 t
mysql> select week('1998-02-20',1);   
# z' k+ u4 v! x+ _6 b4 g  -> 8   
* G) m6 a1 W3 Z 0 K! R6 f3 b% p3 x! m
year(date)   
8 d/ N8 A7 u% r* u返回date的年份(范围在1000到9999)    # {8 Q1 J: Z/ q. h( p1 ~4 z* x
mysql> select year('98-02-03');    & X7 R! p- y2 O' s+ J% e6 v
  -> 1998    , ^1 z. y+ W* S5 Y

5 Q  D- H9 L+ F& F' Fhour(time)    " C: J; ~; o' B& i) r7 P* G5 b
返回time的小时数(范围是0到23)   
% o. c* [, o/ l5 ~mysql> select hour('10:05:03');    , a7 e& G; T; @1 b, |/ T* p
  -> 10   
2 @3 q) y' @3 o8 D* }% r* B8 R" y; W
! R8 ?2 {& |. l: f. U1 k+ e& t' ?minute(time)    1 T& `5 Z; H+ \  `: M8 ~$ S
返回time的分钟数(范围是0到59)      j! d$ @, A* C- A
mysql> select minute('98-02-03 10:05:03');   
; Y/ E9 {: E: d  -> 5    + `, O2 |( O+ X

8 C' P8 d+ K- r0 P! N4 ~second(time)    ; ?6 P+ J3 A7 s# J- I0 o
返回time的秒数(范围是0到59)   1 H% y5 @$ j+ [! _# R1 `
mysql> select second('10:05:03');   
- B) }7 z. K. S+ @! j5 {  -> 3   
6 n% _% K9 ]1 }5 @# C # E, I8 R9 j* w  q- @
period_add(p,n)   
7 E3 ~! b* s2 M* o( y增加n个月到时期p并返回(p的格式yymm或yyyymm)   
2 O" ]( I! g* }! H. U' nmysql> select period_add(9801,2);    4 h" t' l8 E3 t4 o# G) ]- H9 n5 d- i
  -> 199803    9 K/ k1 m% F0 x( w" Q

# X% \( o+ o5 h' u; _- D5 a( eperiod_diff(p1,p2)    7 u3 \6 C) L2 {7 b$ I0 o
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  " ^" V% Y3 ~" y$ W6 M# G7 H5 J
mysql> select period_diff(9802,199703);   
  t( q$ R  D5 _: Z) V- L  -> 11   
& p9 S! O( R2 f8 \
' A; l6 K2 {0 i- o, V7 [* n6 y/ V( ]date_add(date,interval expr type)  , S$ _0 K, j; s& z2 x
date_sub(date,interval expr type)    8 k) r1 z4 |5 R
adddate(date,interval expr type)      A/ U: i  P$ f- U2 j
subdate(date,interval expr type)  
% t' V* a+ u1 N3 V7 u1 R" Q2 b对日期时间进行加减法运算  
% j# M! }7 l8 @0 u# X5 n6 I(adddate()和subdate()是date_add()和date_sub()的同义词,也
8 {( T3 K( l8 e' S# f  \' ~4 w可以用运算符+和-而不是函数  8 _3 E4 a4 V6 p4 _7 c. f3 \: M
date是一个datetime或date值,expr对date进行加减法的一个表
) X/ z. ]* r  b' y) u# x) g4 P达式字符串type指明表达式expr应该如何被解释  ' R  p, @9 E4 e& G( \
 [type值 含义 期望的expr格式]:  
( ]) u$ G& t: J' s" w second 秒 seconds   
: `5 [7 d9 f8 x' |8 M; x! d, f minute 分钟 minutes   
+ }; q  E/ P& e, q+ ?, @4 O hour 时间 hours    6 ^; X1 R* j; ]& d3 S& Z. B9 r2 Z
 day 天 days    0 i& T1 A( R& @, L% l) P" e
 month 月 months   
( z# ?+ T+ u$ }' L9 t! _* Y year 年 years   
0 [  C' o  _9 z' y& ] minute_second 分钟和秒 "minutes:seconds"   
0 m- }% g5 x* `+ E; B; f/ I9 i% f% w hour_minute 小时和分钟 "hours:minutes"   
3 M) [9 e. h8 ], @- q; h5 n6 k. k. H day_hour 天和小时 "days hours"    7 E2 }( n1 v! k9 l9 ]
 year_month 年和月 "years-months"   
) ?' H! ]+ L$ Z) a! H  E hour_second 小时, 分钟, "hours:minutes:seconds"    ) N4 ?0 T2 e! A* j& U
 day_minute 天, 小时, 分钟 "days hours:minutes"    - A+ C$ A+ t' _- r3 s
 day_second 天, 小时, 分钟, 秒 "days
$ l; J; i# {  Z+ [5 p9 {hours:minutes:seconds"
9 n  {0 N0 F* N* i; B2 O1 b: ] expr中允许任何标点做分隔符,如果所有是date值时结果是一个
1 P. h' z+ m. Pdate值,否则结果是一个datetime值)  # h9 U4 E6 g5 M$ C0 F8 }) R
 如果type关键词不完整,则mysql从右端取值,day_second因为缺
1 w5 k8 L, W7 }9 h0 Y0 T少小时分钟等于minute_second)  
  N# S/ a, i$ J4 x( M+ V 如果增加month、year_month或year,天数大于结果月份的最大天
7 N# y& e. }  F9 A; _( F8 H数则使用最大天数)   
8 v+ m# J: i9 Y" R9 ^! r; rmysql> select "1997-12-31 23:59:59" + interval 1 second;    R& ~+ e0 @3 M
" w* h& P# a" [! v3 Q
  -> 1998-01-01 00:00:00    $ E  M* ]5 S+ J) {; c8 x% L
mysql> select interval 1 day + "1997-12-31";   
" `& k$ m* n( P& {  -> 1998-01-01   
# k) h4 x/ i# Z  z' ]7 U! H9 }mysql> select "1998-01-01" - interval 1 second;    4 e6 O" y: q0 r# ^$ ?8 u* @
  -> 1997-12-31 23:59:59   
+ X7 M+ q' E8 J9 L1 \* |6 Wmysql> select date_add("1997-12-31 23:59:59",interval 1
+ p4 V& t+ U+ a" y/ Ssecond);   
! [$ c; G; ]* n% i  o- c  -> 1998-01-01 00:00:00    ! u: \& L6 `5 l! Q' @) q5 @
mysql> select date_add("1997-12-31 23:59:59",interval 1
* m8 I" E& R) F$ ?, d1 {day);    ' f, a& q% A8 c
  -> 1998-01-01 23:59:59   
9 {' X! T! X6 k; R$ R- ^mysql> select date_add("1997-12-31 23:59:59",interval
8 \. e4 F6 x' N' H6 v2 a"1:1" minute_second);   
- l0 ~' r9 R3 B4 c( l, R. h  -> 1998-01-01 00:01:00   
1 h2 e0 U3 w, r# Z/ v4 B8 wmysql> select date_sub("1998-01-01 00:00:00",interval "1
5 w* V& N# x( G% w( @. K1:1:1" day_second);    5 d) {, U8 L6 g3 Q8 X
  -> 1997-12-30 22:58:59    , M- S& v4 K/ p! [- P
mysql> select date_add("1998-01-01 00:00:00", interval "-1
! D# ?( S, }! |' V) D2 p( W- t10" day_hour);  
  p1 l8 q' i3 J9 T0 ?7 d/ Y5 b  -> 1997-12-30 14:00:00    & A9 @. t) j2 S5 R
mysql> select date_sub("1998-01-02", interval 31 day);   
) I' R0 A' S0 P6 |* M  -> 1997-12-02   
) H0 o7 w- P8 q& L" X. q' m4 \/ jmysql> select extract(year from "1999-07-02");   
9 b9 y+ u! V# S' j  -> 1999    ) K  `! w) r  K
mysql> select extract(year_month from "1999-07-02& j  k2 n3 Y$ A! _+ Y- B3 w
01:02:03");    2 o7 ^! {* l+ n6 L+ q
  -> 199907    , t! @( d! T7 R6 L$ Z
mysql> select extract(day_minute from "1999-07-02
$ ^# M+ u8 D7 ~0 T01:02:03");   
: J- ~* {6 e4 w( V7 g  -> 20102   
. i7 h2 L; R5 h4 C) u: V) W
" r# E/ p1 i& qto_days(date)   
# S7 q; G6 V7 `0 g% `) ^4 {* g返回日期date是西元0年至今多少天(不计算1582年以前)    C5 d" `% V. ]' R& ?
mysql> select to_days(950501);    , t9 J- |5 z4 v- q) H5 o# v
  -> 728779    3 [! |7 ]  o, ?. w
mysql> select to_days('1997-10-07');   
  l, v0 X- W- }; c9 @  -> 729669    " T6 Z# o7 `& S8 ~8 ~8 X& x

" L0 e9 D% f2 u0 A* kfrom_days(n)    # J6 n5 @% x# ?- s- I
 给出西元0年至今多少天返回date值(不计算1582年以前)   
0 P: O2 b, C9 x- D& s7 zmysql> select from_days(729669);   
7 L& Q9 i# d% @' G  -> '1997-10-07'      a5 X) S" z3 ~0 I( t% j

# y+ O6 D- z4 x, X% l/ Vdate_format(date,format)    ' H) w2 V, w4 l# L' E1 N8 w
 根据format字符串格式化date值  
3 j' F1 p) I( O6 E, B0 g (在format字符串中可用标志符:  
8 D* o9 }: G- J4 S5 H9 W& }9 G %m 月名字(january……december)   
9 v5 [9 I# z5 _2 H4 \/ [( V4 } %w 星期名字(sunday……saturday)   
* A; k; q4 N/ l  w %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)   
4 t) j% W5 A( E& X7 E& j% G5 T9 m %y 年, 数字, 4 位   
5 t* n5 v5 U: J$ [ %y 年, 数字, 2 位   
. b, c4 x5 z; ^$ r8 ? %a 缩写的星期名字(sun……sat)   
% b! `% x' o- n# N %d 月份中的天数, 数字(00……31)   
5 z4 o5 O$ E/ N" N %e 月份中的天数, 数字(0……31)    9 A! O8 F, k1 L4 T
 %m 月, 数字(01……12)   
8 @6 ^! z5 X2 ~# Q1 V/ g% j %c 月, 数字(1……12)    9 w+ Q2 B" L$ o8 i
 %b 缩写的月份名字(jan……dec)   
2 P8 ?9 e' M# Q; e %j 一年中的天数(001……366)   
  ^  h% C1 H: _9 p# |3 x7 i4 H %h 小时(00……23)   
& X: {% T2 \! ?) P* |9 T9 b %k 小时(0……23)   
1 A; y5 K* a0 Z %h 小时(01……12)    # U/ g; U! m( p- R2 h( h
 %i 小时(01……12)   
8 J. b' E0 M# S) t$ l2 S/ [ %l 小时(1……12)    # q$ }  u  ?/ j" F: B
 %i 分钟, 数字(00……59)   
/ R( u& Y- y+ @  T& ^2 P4 } %r 时间,12 小时(hh:mm:ss [ap]m)   
& a5 F+ t5 ^& W' z %t 时间,24 小时(hh:mm:ss)    * F1 n* x% X8 O9 p' X
 %s 秒(00……59)   
- c: V4 r( E1 ^4 E8 | %s 秒(00……59)   
: X. s% }) N" R! P/ L %p am或pm    0 U( S# R! p& M; ~, V" n
 %w 一个星期中的天数(0=sunday ……6=saturday )   
+ Y: ~5 V/ L) e) _+ B1 b7 ?3 L1 U %u 星期(0……52), 这里星期天是星期的第一天    " w7 w7 w- m0 u* V8 }1 o& J
 %u 星期(0……52), 这里星期一是星期的第一天    : [/ w- C2 r5 H
 %% 字符% )  ; E& {9 }/ `  _( M8 ]' y' M: y
mysql> select date_format('1997-10-04 22:23:00','%w %m %* o) ~. g2 I1 M& H4 f
y');   
7 X5 ]' M$ v2 w; B- j+ A7 W  -> 'saturday october 1997'   
2 A0 B, [/ i7 C5 d* g8 Rmysql> select date_format('1997-10-04 22:23:00','%h:%i:%6 [: A! c- m& l$ _& u) z+ x7 u
s');   
% D9 Q7 f! x; {  -> '22:23:00'   
% p! |$ E5 E$ w9 ]mysql> select date_format('1997-10-04 22:23:00','%d %y %a6 {% }! B2 w8 z5 ?7 w# f& ?
%d %m %b %j');   
& Y5 q, z4 P! l  -> '4th 97 sat 04 10 oct 277'    1 W6 S- i0 B( e1 l+ q1 W6 a! n4 r
mysql> select date_format('1997-10-04 22:23:00','%h %k %i( I& n- ]$ r( Z* E( Z
%r %t %s %w');    ( Q/ w$ [7 i4 h( k1 B$ L# z
  -> '22 22 10 10:23:00 pm 22:23:00 00 6'   
" i5 a! X- f- ~- U- x/ U
& u2 R$ ^3 v' w5 V- btime_format(time,format)  
6 m4 F! }% g6 }+ T1 f 和date_format()类似,但time_format只处理小时、分钟和秒(其9 @! o6 M4 g- K0 n+ y
余符号产生一个null值或0)  
8 P$ a8 z- o- Q' l% H: E
, m% D1 o' R3 zcurdate()     . O& K8 m; H( t' |6 f+ Y
current_date()  0 O( V( y5 `. s" X5 }$ g, Y# j
 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所8 E  O& N4 X4 M* d2 b5 F  T
处上下文是字符串或数字)   
- ]4 d' f; P9 V, F" N4 M* X0 P8 omysql> select curdate();   
+ b1 M( ~6 T9 A2 g8 C. n  -> '1997-12-15'   
" x. o' f9 B" s: ymysql> select curdate() + 0;   
, P, u1 a- B+ |0 K4 I: l  -> 19971215    / [$ F: b7 E* i, z/ c
* W! t6 l  S6 P! t* z) g* O
curtime()   
: G, N: P* {' t" Ncurrent_time()  
* {6 h' a# j" ~' W; u 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上2 N! v: |5 |" |: i- a7 T
下文是字符串或数字)      , k& n! F6 Z2 h. _6 b! C
mysql> select curtime();    # o1 j9 ^+ Y/ s' B, u* V" M* F
  -> '23:50:26'   
% m+ T- L' D% k4 @2 ~mysql> select curtime() + 0;   
6 ~/ s5 p" |) F, z* z  -> 235026    2 ^# F, p# E2 t* T

+ F, c0 K8 [' A# hnow()    
6 Y/ U- m+ E/ n9 K3 ksysdate()    1 O# ?! q- L* _( {, m4 v
current_timestamp()  
) b6 _6 Z. c$ B: b! \ 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
! y6 @5 o( u; @" n% z: P时间(根据返回值所处上下文是字符串或数字)     
' l, k+ T4 i7 _5 a& Nmysql> select now();    . k+ z; N# [+ [8 F4 @  {
  -> '1997-12-15 23:50:26'   
  L% `3 t! l9 T* J* X7 |mysql> select now() + 0;   
$ i2 {9 R9 _+ V& C$ p4 \3 M  -> 19971215235026    ( Y6 C( S9 B) I" Q

! p8 w" C! Y  M8 ]unix_timestamp()    3 M5 o- q7 [; D
unix_timestamp(date)   
$ k0 C1 w; P  B% [- k; N* O返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒( I8 V! K: J# ^
数,date默认值为当前时间)  3 g( ^/ }3 V& z. A3 ]  i
mysql> select unix_timestamp();   
! u, c! w' H% P* x! |2 M5 s  -> 882226357   
9 {3 r& @0 [1 d, q/ {3 Ymysql> select unix_timestamp('1997-10-04 22:23:00');   
* m6 A6 h( I: `5 g( J- m$ B  -> 875996580   
" |4 |& \; C. s4 E  j3 L' U+ m ! {9 ^1 w% W% C4 m( h
from_unixtime(unix_timestamp)    + s$ d4 G3 L* b6 Y- s$ B' ?7 E, ~8 y
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的3 A$ W7 l9 L! ^6 O0 B% U# ~
值(根据返回值所处上下文是字符串或数字)     " {% S+ c+ Z$ I, s
mysql> select from_unixtime(875996580);    ; F* u' n; T, q( s
  -> '1997-10-04 22:23:00'    1 ^2 g4 S7 G, ]# k# Y" r
mysql> select from_unixtime(875996580) + 0;    ( U8 ?2 n3 n  }5 ?+ y4 x6 I) U6 @
  -> 19971004222300    " @$ ?$ p4 [# j! K( H6 l: q
' \0 j" ~3 \) j5 L
from_unixtime(unix_timestamp,format)    + t* n* @- T& m  o6 s& c* m0 ?
以format字符串格式返回时间戳的值  1 R6 i+ m) H6 O
mysql> select from_unixtime(unix_timestamp(),'%y %d %m %
) q( B$ L$ _- ]' z( Jh:%i:%s %x');   
4 Q& S5 I, f3 m/ r4 C* z  -> '1997 23rd december 03:43:30 x'    ' o2 @/ I  n; V

/ R8 v  m3 V: T# W2 Wsec_to_time(seconds)   
  J# E+ F; O' [% R6 ~7 O# A/ z以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
4 v$ j4 M3 ?1 E' p# pmysql> select sec_to_time(2378);   
6 ~4 n; |5 c# J  -> '00:39:38'   
6 i  E. H, p' M8 s. `" ?$ R- Bmysql> select sec_to_time(2378) + 0;   
! {, T& ~- R! q  -> 3938   
  B; S( D) F7 q. A+ x( c) ]5 W
- u* L: y3 H! utime_to_sec(time)   
" p1 e6 U" z% X4 |返回time值有多少秒    4 k1 X/ h+ M. k6 Q0 v8 B
mysql> select time_to_sec('22:23:00');   
, l1 ]) Q0 Z6 B: E% ~4 a+ T2 _  -> 80580    : m8 K- Z+ o& f- ~& c
mysql> select time_to_sec('00:39:38');   
  S$ F, N) P/ V1 I2 [5 P4 q  -> 2378 " G. t7 x7 h' [( n' q3 ?' b

2 p$ r, u' f, h转换函数
2 w$ a: p0 w# \0 M) }) t$ T" @cast$ {! _- k8 i* |& t+ C' V: a
用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]
3 D+ O3 z1 m  O5 a$ ^实例:select cast(a as unsigned) as b from cardserver where order by b desc;5 D. W; H4 W0 T: a
convert:
8 Q: S$ j7 k( _用法:convert(字段,数据类型)
2 b; j0 g2 ?* B# w3 X5 Q实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

1 x( t! J7 f6 j, w. U4 c! `




欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/) Powered by Discuz! X3.2