中国网络渗透测试联盟

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

作者: admin    时间: 2018-3-21 16:07
标题: mysql常用函数大全
1、字符串函数! s( `& G8 e# p+ R, C% q2 w( l- T
ascii(str)   7 h. @) x+ e' A; m! T% P
返回字符串str的第一个字符的ascii值(str是空串时返回0)    a6 ]: B7 V, L2 R
mysql> select ascii('2');  
, [3 z! Y" C3 V2 g- e3 K  -> 50  , C2 W" z8 h, T5 Z! h* |8 H
mysql> select ascii(2);  
9 g6 j: j# n( G  W/ x' p( i  -> 50  6 N  ]& ]# |) \3 M. ~
mysql> select ascii('dete');  5 ]0 P. _2 H/ z6 `
  -> 100
! H! n" @* l; b8 n
ord(str)   
1 r' F: Z! L9 F4 d! ]如果字符串str句首是单字节返回与ascii()函数返回的相同值。
% m9 p& _: {" j  }& Z $ g% Q) \; L5 U+ s9 r( @
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  
# I$ D+ ^( Z% Zmysql> select ord('2');  $ Q, U5 N; A* i
  -> 50  4 x5 w5 o5 Y+ Z, D7 O; A4 t! Y
   . p; r5 |# k: t3 b) x
conv(n,from_base,to_base)   
( t5 T% i; e5 m6 H对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  " K% n+ `7 Z5 m
mysql> select conv("a",16,2);  - `9 n% f5 o5 X5 R% \* d
  -> '1010' : o4 q9 Y' Z9 x* @  f7 Z- `
mysql> select conv("6e",18,8);  " \# F; y9 q. M8 ~* {
  -> '172'
' W& W5 t' ^6 m1 t1 p3 Mmysql> select conv(-17,10,-18);  2 l0 C; i) j# i( R! l! ?1 z; y4 W2 {
  -> '-h' ( ~  e! h0 r* }1 J# Q
mysql> select conv(10+"10"+'10'+0xa,10,10);  
5 Q* y8 s4 {, b* S0 S7 b' L- |  -> '40'
6 }5 Y: P; n. L8 P+ h( U7 U& d- Z6 J   ' D1 S3 q9 V, T8 j& {
bin(n)   6 i& |! B# X- M  D& g" i, C3 Q% I, m6 V
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  2 h: |/ Q- q, c% C9 m/ X/ N/ R
mysql> select bin(12);  
  B4 t- B; v" q  -> '1100' ; Y9 g3 \' W- U! o1 }1 k

  |* D' h$ j6 V, _! _8 Ioct(n)   ; ?/ ^3 Y' H3 @5 l* V; a* z5 N
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
' x1 @% B  v; \7 i* G- h2 Bmysql> select oct(12);  ' Q: Y7 X7 S" M! A1 M
  -> '14' # X( C/ I5 v+ X& m4 c( a
   
9 e: F4 D: t& ~hex(n)   
( l* Q5 u8 K, u' {. a把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  8 ^" W  X7 K3 T$ n& G
mysql> select hex(255);  
' l3 m- v3 }! h% @  -> 'ff'
$ ]2 d% G7 n) T) F, l   
* t  |1 z! |) q+ ychar(n,...)   
1 ~% H( E6 W( y& ]: g  j返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   
- K  L4 C- F  R% y$ nmysql> select char(77,121,83,81,'76');  & S: W5 q+ W$ _, A
  -> 'mysql'
$ @  I4 V9 \( y% \) u) rmysql> select char(77,77.3,'77.3');  
! M# q- ~( K- c3 A3 a  -> 'mmm'
. ~/ }0 |, A0 ^8 E. l# p  I$ l/ B   2 p9 K" _; h7 m  }
concat(str1,str2,...)  
* W. {$ D: f6 T, `8 E; M! C6 L把参数连成一个长字符串并返回(任何参数是null时返回null)  
8 A* X0 K) ~+ \# p( cmysql> select concat('my', 's', 'ql');  
; h1 Z: @9 q9 Z/ \% `  -> 'mysql'
/ H  y# M  s3 Z1 o0 Wmysql> select concat('my', null, 'ql');  
1 T  o7 p! Z; K% E: ]. w  -> null
8 s- L4 c  j% p8 smysql> select concat(14.3);  2 p8 a1 p; G" T5 k; b9 T% k
  -> '14.3' + M1 f5 H4 e' p# V/ K3 `

4 R7 |1 `( J, _1 E0 D' {; Hlength(str)   ; T- V$ y' h; i% W, g, p$ b( s( {
octet_length(str)  * a" c( H# ]. N0 S6 F/ X8 E
char_length(str)  
' X* y$ ]. k; Y) X+ l0 Dcharacter_length(str)  ; O$ p& L0 G7 T# V7 J& D' Q
返回字符串str的长度(对于多字节字符char_length仅计算一次)* B  T" A: Q4 f$ W1 q
mysql> select length('text');  & h- Y+ _, h: s" `+ v
  -> 4  
9 H3 {& n7 F' y/ wmysql> select octet_length('text');  
; d8 J( X- g7 @  -> 4  2 U" t% d: n4 w8 U, ]* X6 `
& f+ L6 A$ d2 y1 W* M
locate(substr,str)   
- N. l& }- ~+ p" j( bposition(substr in str)   
, g# N" g: P6 N) l返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  ; W" n, L1 J, d" z
mysql> select locate('bar', 'foobarbar');  ; z. M+ Y# [, ]( A: d/ \, T
  -> 4  ( u" J( {1 E# h  b; `) I; I8 v& C
mysql> select locate('xbar', 'foobar');  
) v5 G0 k6 j$ V: U  -> 0  
( [$ A4 O# P  @6 G* R    5 Z. d* q! T3 ?
locate(substr,str,pos)
/ w7 ?; s' J+ ]; C返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  2 n# n5 {- ^. v6 i! c" M& X
mysql> select locate('bar', 'foobarbar',5);  * [' m: F5 a& U
  -> 7  
/ Z* Y8 K' _5 x! X  B" `& G$ {2 s 3 P# a2 N. c8 }9 F
instr(str,substr)   4 I' J" C: V* p& q/ L5 g6 K
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
% I' {4 G5 Z4 A- O% m6 nmysql> select instr('foobarbar', 'bar');  2 y1 G2 W7 ]5 b" M  U
  -> 4  . H( g; L9 O. B1 ]
mysql> select instr('xbar', 'foobar');  / N; Q) X- Q, [. x  g  g% P
  -> 0   # q8 H  X6 z9 X7 l: G5 A

& M* t( D+ f6 j( j" ?lpad(str,len,padstr)   
* d3 o- t1 j3 [% U用字符串padstr填补str左端直到字串长度为len并返回  , _& l! l. H/ q8 F; |% z- K6 [, {
mysql> select lpad('hi',4,'??');  + [; _3 M% N7 n: G7 ]( b* d, E) s7 m
  -> '??hi'
4 ]. W, y- E  G: `$ S9 E   
$ O4 N2 _7 K; @0 I* B9 W; w6 nrpad(str,len,padstr)   
7 ^! v8 ?2 T7 q3 r; t0 g% n8 [7 g' x* t用字符串padstr填补str右端直到字串长度为len并返回  
% |: }# h/ ^2 r% U  R) K4 a3 w4 nmysql> select rpad('hi',5,'?');  
: \: d4 o  r" P- r% L  -> 'hi???'
7 S) Q, W0 b, u. V2 U4 u& K' O
4 ]4 }  F* T, R4 T( C$ \left(str,len)     ?3 j, g4 x0 y( n  o
返回字符串str的左端len个字符  
+ J9 j0 H) Q2 h7 Kmysql> select left('foobarbar', 5);  $ f9 n; e; r5 O3 s5 |; v+ @; y( _
  -> 'fooba'
) v5 Q0 O% }* n1 x; m5 x) b
/ ?! _. _5 Y3 A. v) q1 [right(str,len)   " k2 S. `% r, @
返回字符串str的右端len个字符   
$ J8 d# v9 a: T6 N$ pmysql> select right('foobarbar', 4);  ) r# \8 R7 J( R& v/ Z  A! B, Q% @
  -> 'rbar' ; A8 [3 A3 L2 p: ?" ?6 e! v
% j. S# y+ J7 ^
substring(str,pos,len)   
; S+ G* I; p$ _) x+ G' tsubstring(str from pos for len)   
1 u2 r; n3 q9 ]2 Y% vmid(str,pos,len)   
8 N% {! b( D6 E3 s$ Z4 i  Z返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
& v- V9 G0 U" w. b9 U% F  -> 'ratica'
& p( \, x- u' s) {
( ?9 A; C  R2 D6 a6 @+ esubstring(str,pos)   " h% U( [" S0 d7 f3 W# U- Z
substring(str from pos)   9 [; E3 b3 @* ~) f+ @5 G1 D. k+ d7 K
返回字符串str的位置pos起的一个子串  
! E+ a" V! a( h) O" q1 @" {; }mysql> select substring('quadratically',5);  0 E. `9 H3 T, r( }, {
  -> 'ratically'
; J2 V7 `1 l3 t0 {mysql> select substring('foobarbar' from 4);  7 A1 M1 p( h5 r6 I
  -> 'barbar'
) i. n' |' k7 C0 x3 _9 m ! T$ i9 L! @* a
substring_index(str,delim,count)   
3 J! ?) H* r$ r  K7 V1 ?- [1 k返回从字符串str的第count个出现的分隔符delim之后的子串
7 U, ~- O' P, a, ^! }& H(count为正数时返回左端,否则返回右端子串)  6 V, X* I! i1 k3 ~
mysql> select substring_index('www.mysql.com', '.', 2);  9 `2 h9 }, A4 `' i+ x) H
  -> 'www.mysql' + v+ g- D+ C$ E! q! f; g
mysql> select substring_index('www.mysql.com', '.', -2);  4 M4 m+ b4 a- [
  -> 'mysql.com'
* T" ^1 f" t' \
. S" \/ i7 a5 V# P9 i0 b. J/ qltrim(str)   + B8 M' l4 ?( S5 ]- ^
返回删除了左空格的字符串str  1 b1 o* J5 s7 |
mysql> select ltrim('  barbar');  : l" I2 Z/ E( {) a8 `* y
  -> 'barbar'
+ W7 \& T, l2 v/ E4 Q( g / q+ Y6 a5 O' l/ k! O
rtrim(str)   ; L7 S* q! ~6 @; r
返回删除了右空格的字符串str  2 ?  L) U  l  |/ \( D- M' I8 B+ }' O- a
mysql> select rtrim('barbar   ');  & @" o, @, I$ n; u' @' U
  -> 'barbar'
( A+ D$ q0 T$ `4 ~ 0 b" {6 [9 C: P8 C. ~' t' u
trim([[both | leading | trailing] [remstr] from] str)  
4 ?$ _  G1 Z; g  H3 e. v; Z返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
( \/ ]5 E* B' pmysql> select trim('  bar   ');  
, j9 z2 a/ S3 n  -> 'bar' $ }- d7 l( K9 c3 k) g
mysql> select trim(leading 'x' from 'xxxbarxxx');  ) j2 j7 Q% r3 h2 ^) \4 \
  -> 'barxxx'
! {& F8 o5 V- |4 k' dmysql> select trim(both 'x' from 'xxxbarxxx');  
* T9 n9 a  w0 v, b  -> 'bar' , [9 N& P. m, Y+ g- ^' M
mysql> select trim(trailing 'xyz' from 'barxxyz');  
& n: F/ L- I2 S  T& D  -> 'barx' 3 l  b, I8 H" b1 ]# N

: l! k" d4 E" |6 F" j. K% P: l; Ysoundex(str)   
- e; D+ E. g9 l. U返回str的一个同音字符串(听起来“大致相同”字符串有相同的
: D2 L7 F' Q! ?; _3 i, C$ L/ L同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  
# `) d" w- Z, t: p3 C: E  i. Qmysql> select soundex('hello');  % R/ }- {" j. H8 [% z' _$ g
  -> 'h400'
' c5 y+ [1 R# o' ?- |6 M5 smysql> select soundex('quadratically');  3 S4 v) h+ Z7 b! }; F- _$ A4 m7 P
  -> 'q36324' * R6 i! ]3 Q* c5 V2 `7 [: V
   1 s6 C# l  ^# D# `! D4 i
space(n)   
2 l0 h8 N2 G. `6 H% m7 y. \返回由n个空格字符组成的一个字符串  , ~6 [8 l! l% W1 k% P2 J( ?; K
mysql> select space(6);  ; c/ y9 A0 p! W+ d3 v6 e* @
  -> '      ' # S6 n5 g, h6 M2 i, O
   $ r# _4 r. b3 z8 [! ?
replace(str,from_str,to_str)   6 Z) Q3 o( F# u5 @
用字符串to_str替换字符串str中的子串from_str并返回  
! D; ?" X6 W9 c* Xmysql> select replace('www.mysql.com', 'w', 'ww');  - Y+ P1 C& W$ ^( K- \
  -> 'wwwwww.mysql.com' ' }$ _) h8 H! ~% n  a# I) v

: ~4 l- d+ n6 X3 s( ^; irepeat(str,count)   ( ^4 A2 \3 G5 t# A" R% N5 P/ h
返回由count个字符串str连成的一个字符串(任何参数为null时
/ G# g$ P& E6 a返回null,count<=0时返回一个空字符串)  ; U( D. S; s$ h# y
mysql> select repeat('mysql', 3);  
5 v- ~+ {# {4 S" j. L( v# ~  -> 'mysqlmysqlmysql' ) v4 z1 d- w! b0 x) x  Q$ r9 p/ ]
   ) j& ^6 h5 i, q4 j3 y6 \4 T
reverse(str)   5 d% G# [9 @9 O, s# c8 a
颠倒字符串str的字符顺序并返回  
5 g0 G- E) |% l8 Y# U: a, ymysql> select reverse('abc');  
4 ]: q. O$ o; N5 c2 E, v$ b1 G  -> 'cba' * d% z. Q7 _1 D" ^" D
$ Z* R- o# z  u9 ~( E" I
insert(str,pos,len,newstr)   
- r/ v  }1 c# t) ?& R4 _+ h) r把字符串str由位置pos起len个字符长的子串替换为字符串6 g7 E. k* _2 q9 y0 K: G/ m0 p
newstr并返回  
/ }/ r$ ?8 m1 I+ ^mysql> select insert('quadratic', 3, 4, 'what');  
5 a# \) n  d9 r9 T- N5 U& |) b  -> 'quwhattic' 4 H" c7 c" F- Q# m* X
  [8 B, ~5 g; V1 U4 l9 x+ _9 k2 t, C
elt(n,str1,str2,str3,...)   
" A* l( `1 n2 N返回第n个字符串(n小于1或大于参数个数返回null)  
: A3 a, \1 F8 |) Imysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  
) _- f0 E; u% O. M. a6 x3 U  -> 'ej' $ E+ m3 H: A2 q9 B# M1 F( M
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');    C- z; P, H9 x5 Y) Z/ }5 u/ B
  -> 'foo' 5 v6 M, t# C" o. b6 A% O5 I. P' J

+ @: f2 S) H! V8 J: Q% G$ N; f: ufield(str,str1,str2,str3,...)  
; h9 ]2 v0 ^1 ^: l$ ?" X返回str等于其后的第n个字符串的序号(如果str没找到返回0)  3 j  i+ k% x0 ?
mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
+ u, u5 X  |! B  U& g& P9 V' M'foo');  
" F  h$ _+ p/ Y5 p0 ~  -> 2  8 g" t( ^: j5 w9 o1 l
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',2 F2 t7 ]5 T, b/ n
'foo');  6 |$ m5 Q+ ~. U) U, I) q
  -> 0  
& C9 s& n) @! a$ R
4 v; n/ ?' V2 T. j1 q  dfind_in_set(str,strlist)   
# I- [5 P7 E& t返回str在字符串集strlist中的序号(任何参数是null则返回. ^5 M: h. u; c# E5 c
null,如果str没找到返回0,参数1包含","时工作异常)  % y& _( d' m" \3 q
mysql> select find_in_set('b','a,b,c,d');  
* M1 [" C8 m+ g  -> 2    \, Y  ^8 H/ V0 k
   
- l8 s) k( c6 }% D# A9 O+ P6 Nmake_set(bits,str1,str2,...)  + o; J% Z1 @% @1 c
把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
% Q3 e/ D, S2 [5 d+ _# j. k' T9 _位置的字串选入字串集并返回(null串不添加到结果中)  - @; \- x6 u: ?: O
mysql> select make_set(1,'a','b','c');  ! Y" d" t; c: A( H& M# g, Z
  -> 'a' ' @5 J- c4 a! A6 ?0 y0 G/ o1 a
mysql> select make_set(1 | 4,'hello','nice','world');  * L" P& x* H$ x+ G9 l* `% \! R
  -> 'hello,world' 1 d2 n9 p- @9 `3 u% N
mysql> select make_set(0,'a','b','c');  
. b0 u" l! g3 W# E$ ~; O1 d# f  -> '' ! g" G% l4 G( b! q/ s
. [4 x2 L, B! |
export_set(bits,on,off,[separator,[number_of_bits]])   8 U  h0 S5 W, ]
按bits排列字符串集,只有当位等于1时插入字串on,否则插入, M( A3 ~; e4 [8 g8 `
off(separator默认值",",number_of_bits参数使用时长度不足补0. @( y8 K9 Y  H; N. w+ V; x
而过长截断)   5 }4 |# g" Z, K4 n# G9 Q
mysql> select export_set(5,'y','n',',',4)  
) N$ A- q. C- t, H# u- q: J  -> y,n,y,n   ; p0 U) c' G' \
5 y/ {% B% Z8 t: n& P# L
lcase(str)  
; ^" D' t/ G  ?- V' D& Mlower(str)   * [, u; b4 c7 }7 n* i' e* @$ x" o
返回小写的字符串str  
1 o8 k; w& ~/ K8 ?/ Zmysql> select lcase('quadratically');  . G6 c$ J0 J+ ]& o) i/ T% `
  -> 'quadratically'
- f2 c  t  d9 M% W$ Z' [& V   
, D+ X8 p' X6 x; v) qucase(str)   
+ l* o4 l1 B1 Z; ?upper(str)  
! u, b) v6 j! t# l4 B返回大写的字符串str  - S- ~# y0 b. T
mysql> select ucase('quadratically');  $ @, I# A: k! M0 K: {$ @% E9 [
  -> 'quadratically'
9 @' B- p+ y7 ^+ Y: x8 ?  T! O
8 `7 }. i( Q: O9 hload_file(file_name)   . E7 ~# I3 |4 ^8 P  F& a$ o5 A
读入文件并且作为一个字符串返回文件内容(文件无法找到,路径1 q' ^5 w$ {+ E4 B' }
不完整,没有权限,长度大于max_allowed_packet会返回null)  ! p$ g4 v+ X$ `' J5 E$ g
mysql> update table_name set blob_column=load_file: t3 R. I- [6 [
("/tmp/picture") where id=1;  
3 c3 H# X2 |* E  @) H1 ^8 W 7 v! O$ {/ G. d' K6 [. [4 }
2、数学函数
* T  F. [1 g8 d9 w! f% vabs(n)
7 o8 G% l) i$ i) l返回n的绝对值  " `' `- ]! z! L( w0 S( j+ I8 O
mysql> select abs(2);   
# C) X3 n* r" |3 J( B9 {5 r/ ]+ O0 r  -> 2   
' Q5 Z. O$ P1 W5 dmysql> select abs(-32);   
, H. P5 Q# y9 g  -> 32   
, r' `1 V+ Z0 I# H+ e   - Z, P4 U1 ^3 [2 U6 ?
sign(n)  
! M2 i7 j' [" C' @) f返回参数的符号(为-1、0或1)  3 \( F, X$ h# t
mysql> select sign(-32);   
" ^( l$ g1 _5 ~8 d8 i( g/ B  -> -1    3 b2 T( ^& j. X" h( n- v
mysql> select sign(0);    2 L% K6 s5 W0 P0 a
  -> 0   
7 A# T2 U# J. n, Imysql> select sign(234);    + E; K0 U/ h+ T
  -> 1    . ^) ^9 B9 I* A/ I

. K6 k1 X' _. `mod(n,m)    . p6 T! i' c6 w9 Z; @* H$ [, R" m
取模运算,返回n被m除的余数(同%操作符)   
7 `" D' a" i% J, l. W" Nmysql> select mod(234, 10);    3 W8 r0 |1 K. V2 Z4 _
  -> 4      }) @4 N1 x6 W9 Z
mysql> select 234 % 10;    5 y) ]1 B9 n$ b: z
  -> 4   
5 b* B  |, X4 I$ c% O5 G1 ~# Q; ymysql> select mod(29,9);    - a7 X7 i8 W& c1 w0 o
  -> 2    / z; ^  I% B, \" x, E% h6 B' q
2 A2 ]3 h# v& A% E) m& m
floor(n)  
, B- ?9 h6 ?- E8 U5 ~* C返回不大于n的最大整数值  5 s- `3 A3 J# B- c% R$ N
mysql> select floor(1.23);   
* d! ]2 F* J& d9 D/ ~, j- p( I% |( \  -> 1   
$ N& k& c; p  D- D2 c7 [' u2 i0 Nmysql> select floor(-1.23);   
4 P7 ~/ V9 ~* \, X& J, p% ]! M  -> -2    * ?% I# u- {3 [7 O7 s& M% T
' k$ c3 u! D6 k; i( }
ceiling(n)  8 p8 ?- {* X1 O/ R' d9 q
返回不小于n的最小整数值  . {; c" `0 q  W# o- X
mysql> select ceiling(1.23);   
8 o9 P! U: j" p+ p2 V. c  -> 2   
& U/ R" H1 d+ S; r2 G3 s! D6 omysql> select ceiling(-1.23);    8 B7 t- a9 w5 a8 T+ f; ^6 ^
  -> -1   
9 F. ~7 [, u. X/ T
, T, ?5 Z+ M9 yround(n,d)  
# V! N! `3 \3 U: ~) p返回n的四舍五入值,保留d位小数(d的默认值为0)  7 m! e, g% n5 Y& ?1 t* e
mysql> select round(-1.23);    & F4 F) P1 A1 m- J. N
  -> -1   
) s& I2 a# x4 xmysql> select round(-1.58);   
' p) y" \, `- P9 ]* Q  -> -2    % g( ]  |8 s( j* j4 d
mysql> select round(1.58);    6 I2 J' K: _4 `7 ^6 `* n9 V
  -> 2   
4 M3 m7 t: y0 m) ?, }4 Q& T& |mysql> select round(1.298, 1);   
3 o; }& b, ^9 L9 e2 N8 O3 e. L3 e, ~, w  -> 1.3   
! r9 |# j* x: T* }% m; a+ Lmysql> select round(1.298, 0);   
, I3 @; W4 w/ e7 Z/ ^; Y4 X7 ]  -> 1   
6 D1 U3 V7 g( w6 D8 @
! [& y- s0 F+ j. ?exp(n)  
. G# l' @7 H( j) V: h/ T返回值e的n次方(自然对数的底)  0 v! A5 D2 `% F' Y+ I2 Y
mysql> select exp(2);   
+ G' O% n& e( X4 @/ D9 Q& z3 S; J  -> 7.389056    8 G% ~2 v! I; K1 R: I# W
mysql> select exp(-2);    1 \( t% {; i7 h5 r1 F
  -> 0.135335    4 ?3 N' X5 b0 O0 b* u+ O" H
3 H. z# M; t. b) M, |; q
log(n)  & \  O+ v9 R' L2 T
返回n的自然对数  
! ?8 V  I1 y  s; W2 f) Fmysql> select log(2);   
5 e" _) N! n4 l- h# \: {  -> 0.693147      C8 j& _5 {* [- b
mysql> select log(-2);    , s, k: ?: ?7 f6 ^
  -> null    $ b: F4 g! [3 K% M2 n
/ S% s5 z* d- H. U+ u  t$ z
log10(n)  
9 N  [' Q. F+ _& t0 X- ~; Q  c返回n以10为底的对数  
4 [, v8 A: l9 R1 W) vmysql> select log10(2);    . T/ }3 j6 W1 P, S( b& y9 |
  -> 0.301030      C9 `3 l5 H, ]/ o$ u
mysql> select log10(100);    # Z& w+ K. i( M+ p& E/ w! s
  -> 2.000000    9 N+ O' s) e  P6 Q$ j3 G3 S
mysql> select log10(-100);   
4 }! _  w5 e( U, T5 @' G" W  -> null   
& t- F- [* z$ t# H4 A& L3 A% T ! c# ]$ i0 J* L, n5 Y" q4 s
pow(x,y)   
/ V3 |) c" ?) ?0 K% D8 |/ Mpower(x,y)      R6 [. |0 x" T- L
 返回值x的y次幂  . ^( W; L) [% v4 i
mysql> select pow(2,2);   
2 x, ~9 R3 P% Y) `  -> 4.000000    ' _: A( _' h+ l& a7 \5 g
mysql> select pow(2,-2);    ! o- F; G/ ]9 m3 U
  -> 0.250000  
6 N. c! V1 B  I8 a9 {- p$ ~1 m! J$ X/ c) i6 i: w6 E7 O
sqrt(n)  + W* X5 ]1 j6 P  X+ c
 返回非负数n的平方根  
, k2 U  v9 x& o9 jmysql> select sqrt(4);   
% I& x+ K# z) ]; H' L  -> 2.000000    ; Z: V, {  o' G& M. h
mysql> select sqrt(20);   
3 }- m7 q/ b8 Z3 _& ^4 s  -> 4.472136    5 L+ _0 o5 L# w4 d1 N6 Y3 M

# i  O) z# S: l% B4 |& @pi()   
/ u5 K: y, L- z3 J0 F9 I8 ` 返回圆周率   
5 T0 r$ g7 `4 p% F5 `7 emysql> select pi();   
* z: r" J( [3 s2 q: [# k7 K( n  -> 3.141593   
( ]) |" p& z! v$ e1 z- N( {# ]
1 g' y+ G5 e2 K8 C+ O% X* Y) Hcos(n)  
+ t4 H' G% W8 [( \ 返回n的余弦值  
8 E0 w" |7 K# D: w0 ymysql> select cos(pi());  
. e1 k+ x' H9 H) ]% o( _  -> -1.000000      P- k; r( N1 g% {9 A) K
& o  Z2 \. H6 Q5 \
sin(n)  
+ P+ ~6 R; b/ Q' n 返回n的正弦值   
' f! Z0 W% A# \- V: k! ^mysql> select sin(pi());    3 j  @" K: ~, B! z2 C5 C- D
  -> 0.000000    + k, d3 p) m3 J& z
( z/ a/ _+ F  |* c+ h" |4 n6 N: f
tan(n)  / h* [. t  J& ]& M
返回n的正切值  
  i* O: k7 k1 i2 O8 R# `mysql> select tan(pi()+1);    " {+ |8 c. b! |0 w' E5 F0 N, E  e
  -> 1.557408   
9 ?3 \" l# k* e- S, ]! j' ] + O0 K# H7 B; N7 V
acos(n)  ' P/ P% |. B0 H1 S8 j
 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  # r$ _: M$ o2 K- D" s" y7 B
mysql> select acos(1);   
9 u* t# d% u7 s1 L$ x4 Z5 r9 H  -> 0.000000    ! H& b# Z7 @7 c& c. J+ g' A) f  {5 l
mysql> select acos(1.0001);   
6 t# r! r( v) B' _: X5 M* W% k8 e  -> null   
4 U% g5 A6 g* a& {9 K" wmysql> select acos(0);    4 e. }$ Z1 ]6 e! \" ^. L
  -> 1.570796    - W$ b6 _! d  C- Z8 _$ V4 R
, o6 o% F$ x2 C' M# H
asin(n)  
" S7 W8 ~; S: j# l) K  Y+ s3 j, G返回n反正弦值  
0 q! n; j- i' K  rmysql> select asin(0.2);    # c0 O, J: m1 l; _
  -> 0.201358   
" s+ z+ x* w1 U1 W1 omysql> select asin('foo');    / R% a8 y% x: t4 o5 P0 g7 }. ^- k
  -> 0.000000    , \& G) Q" l' J4 b$ P" q7 M

# X) T% k7 R$ Iatan(n)  ' B1 x# a9 B2 U8 g; C
返回n的反正切值  
5 f0 J3 \0 X8 q8 z# R, _2 t# x" dmysql> select atan(2);   
1 o# G# L+ ~# ~5 l5 H: r  -> 1.107149   
6 a8 L* G, Q0 f- L+ ~& qmysql> select atan(-2);    ( W" h% x4 n  Y& z5 k; _5 ^! b
  -> -1.107149    & z! Z9 b2 U1 j
atan2(x,y)   
4 s; F, @2 s, Z+ U 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  
. Q. C& |& U* {' y$ O+ vmysql> select atan(-2,2);   
' J: B4 D4 N8 e+ e7 S! f3 |  -> -0.785398   
+ H+ D9 H9 R9 ]  O. dmysql> select atan(pi(),0);   
: k2 V9 b  @* O8 y" Z  -> 1.570796   
1 f+ U+ B- Y1 _: M  t 2 |( V  B- t  s
cot(n)  
0 n+ S. T% C* z1 s- l9 o9 V返回x的余切  , Q- w8 F( j6 w: _* L* B- Z
mysql> select cot(12);   
% R1 L- D) E$ m" X! d  -> -1.57267341    ! I# J! s# o* H& y7 t
mysql> select cot(0);    6 ~2 K3 `5 w& M0 B* v8 E2 A+ S
  -> null    1 X2 [$ H+ h9 q' j( R. n

- s! B: D, v. |7 yrand()  
0 P1 j! |9 Z, w  A1 h5 Prand(n)    4 G7 p8 _4 ]1 I8 R
返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值) . q7 g7 G9 I7 y' Z/ F; _
! o# K$ Q$ a8 m
mysql> select rand();    8 R5 ?5 x+ W! o
  -> 0.5925   
* E6 D; x+ H; n# ]0 Omysql> select rand(20);    9 y6 K3 Z7 r+ i2 j' S* }
  -> 0.1811    1 n4 f  w2 Q  ~+ K
mysql> select rand(20);   
3 M9 m+ A1 B& B; f  -> 0.1811    1 X4 o0 @6 q3 {0 g/ ]+ V
mysql> select rand();   
6 ^+ P  N5 ]0 L2 e  -> 0.2079   
$ J, @0 j- s* ~- imysql> select rand();    $ }! E& V1 d, _" W2 [, v
  -> 0.7888   
0 a" f# s% _$ z3 z
$ X: }* z  r0 J' ~degrees(n)  
; r- D) _2 y) |把n从弧度变换为角度并返回  
3 |& l8 f0 ]! c, I8 b& X$ Vmysql> select degrees(pi());   
: F; p* n2 z- u/ k& i  -> 180.000000   
( N; a8 H) c& Y- ^ , T8 P; q5 p! a6 S$ x  O% `/ `
radians(n) 9 J2 y: O4 }# {" h1 M/ P% l
把n从角度变换为弧度并返回   ! j1 G# ?: t  W# j' c
mysql> select radians(90);    ; ~, o8 X0 u1 B& ^) S
  -> 1.570796    : z/ r0 E8 [. b& |/ N5 t
  z! A8 [8 R0 |  `
truncate(n,d)   
0 ^. V. y8 L" t9 J. A4 T保留数字n的d位小数并返回  
; J% ^# Y: J9 pmysql> select truncate(1.223,1);   
6 E( C* N2 }8 O( Q$ k5 H  -> 1.2   
5 I1 H4 q0 n( H8 T0 Amysql> select truncate(1.999,1);    3 k- p; i7 H* Y
  -> 1.9   
  r* v0 s# w5 J  u6 B! G2 L& v% y) Pmysql> select truncate(1.999,0);   
& D% L$ [4 U; S* V, }& M0 l  -> 1    ' Q& W4 @+ \, F  H

% Z/ K1 o5 K; W  _/ h$ qleast(x,y,...)   
2 C: V& a1 y9 t6 E5 P返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
' u* u; Z4 w3 f+ smysql> select least(2,0);   
: O0 R; |$ x0 R- J  -> 0   
8 W% |* |$ X! N' V+ }, K4 k9 Imysql> select least(34.0,3.0,5.0,767.0);   
+ j2 e* [7 Y* {3 K* P6 L  -> 3.0    & ~- j( y" ^* f4 G9 ?$ H' }& Z. O
mysql> select least("b","a","c");   
0 L2 ]& ]7 V- l" K  -> "a"    ( d4 ~# e% y' i0 n- y7 d! {) q
+ U9 P3 w- Y$ I& z
greatest(x,y,...)    / n/ ^3 |) W0 c2 @/ G: ?4 l
返回最大值(其余同least())  . \+ `' k4 b) I5 l9 G5 H
mysql> select greatest(2,0);   
, W$ x  T6 X5 j  -> 2   
- @- J4 U8 G0 B6 Amysql> select greatest(34.0,3.0,5.0,767.0);   
  W( Y; d) p5 v/ Y" P$ `4 t0 s  -> 767.0    # t' E9 V  p$ L: s
mysql> select greatest("b","a","c");   
  A9 `- U8 r/ U3 U/ G9 @$ k$ Z  -> "c"     
3 r# a% H3 u  g1 v# d+ C/ }, \, E0 h3 @
3、时期时间函数
" y+ @$ i2 M  u4 Jdayofweek(date)    8 b" p, k+ U9 m! b, ^
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
7 ?# M. G* l: F( N+ Y5 h% n- dmysql> select dayofweek('1998-02-03');    9 h# b% f- M5 h7 R0 Z8 \
  -> 3    9 C: |- F7 D; g3 J

. J7 u# c5 C- q- Y0 fweekday(date)      k) v$ O( N2 e4 q0 v- z  R# T
返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
; S' e2 r8 p5 r7 ]  
; i- G) t4 T4 a" v6 _+ \' A) F% ]mysql> select weekday('1997-10-04 22:23:00');   
. G  n* V$ e& ~1 C2 H1 Y2 @; L0 B) c4 ^4 v  -> 5    / \* V- t! V& {+ c$ ^
mysql> select weekday('1997-11-05');    * j) u+ T9 S4 A+ B3 |0 q" ]
  -> 2    , |8 C. s- t8 D1 b" A! O

& w2 H, w9 [1 |: ydayofmonth(date)    
; l# d: h4 {1 N1 J" n返回date是一月中的第几日(在1到31范围内)    9 Z" k  _& I2 x$ a3 D
mysql> select dayofmonth('1998-02-03');    3 S; b2 T8 ]+ {- h& `7 g8 Y
  -> 3    8 d; q) T3 q" S/ l6 b8 X) B3 Q

1 X: S+ U2 U$ T, r3 Pdayofyear(date)   
" V; G' t3 U# o; l0 m" V返回date是一年中的第几日(在1到366范围内)   
$ j" L) w' g0 P5 o( wmysql> select dayofyear('1998-02-03');   
( a- H* r( x: u( o. T6 j+ O  -> 34   
* s% i2 _  p% |( k) C % z# |2 C5 Q- M+ y
month(date)    : k( z: [8 t3 h  L9 G  K
返回date中的月份数值   
$ T* G+ H4 ^6 |) n7 G# V. T6 `9 Lmysql> select month('1998-02-03');   
( b' k4 q* F8 t- I# R( z  K( `  -> 2   
( k& m- b* F2 [/ t3 ]
* ~; r) O5 k3 Edayname(date)    2 E3 m# C3 f& D! U- E) w
返回date是星期几(按英文名返回)  
4 T# _( k( `, o7 b8 t1 Cmysql> select dayname("1998-02-05");   
9 B3 L$ t  n. w; ?1 H, W  -> 'thursday'    * q# g* g% e& f, Q
% \3 z( d8 g4 i( v' d4 ^, X
monthname(date)    0 ?2 \/ i0 b1 H3 F
返回date是几月(按英文名返回)  / a& Z9 b( y* Y8 T+ I% d
mysql> select monthname("1998-02-05");    # Y: `; I* Z+ L* t
  -> 'february'   
% k3 f- w1 }9 W! o, J0 n2 g2 V
# A! {: H. ]* D4 W" e. dquarter(date)   
% I- m8 ~5 X$ Y2 a8 F/ `  s6 h返回date是一年的第几个季度   
6 `3 U$ _# C3 r7 N1 i& e( [6 Zmysql> select quarter('98-04-01');    # i( P* g) E9 Y0 C" E
  -> 2   
- p' d' p+ i$ f$ M ' Q, U: \2 D1 o
week(date,first)   3 v! P3 }& B% M% n! q+ h
返回date是一年的第几周(first默认值0,first取值1表示周一是
6 |/ Y& Z# I$ P) n7 S周的开始,0从周日开始)  
  m% u2 N" y0 _7 bmysql> select week('1998-02-20');   
  V9 N; _1 g; D" |  -> 7    ' o) {5 `( l. c! Y$ R$ O
mysql> select week('1998-02-20',0);    ( ~) o# a- n6 l9 T
  -> 7    ! f9 L+ |  _7 o
mysql> select week('1998-02-20',1);   
( u$ Q8 b. B! M8 V* i. a' n  -> 8   
. d4 k( N+ T9 Z) g1 W9 ?
# _2 k, c# q3 U0 yyear(date)    8 s4 p9 e2 Q( ?4 z; C2 ]
返回date的年份(范围在1000到9999)   
6 L7 W0 g2 B4 W: |8 M, ~mysql> select year('98-02-03');    , g7 e+ D, Q" E0 n! Q0 U4 K+ y
  -> 1998   
: ~. v* j8 o; R9 b7 _4 p
. f+ G1 N/ T( B1 O. ^hour(time)    , [3 k' w. P! W6 a4 E
返回time的小时数(范围是0到23)   1 Z$ C; y$ C* z( v6 q0 P6 `
mysql> select hour('10:05:03');   
3 Z0 Z7 g! j6 Z9 [  -> 10    . M+ Y5 H; m( x) N, t! S6 N

7 K9 M) Q! d+ [7 J  pminute(time)   
2 G0 E& x7 j$ C9 r' G% J8 S1 o& x返回time的分钟数(范围是0到59)    + D. C" c! g( q" {; X7 ?, I6 e
mysql> select minute('98-02-03 10:05:03');    - F) W% z9 c6 X' P' y0 a
  -> 5      i/ ~0 q0 G. G

' \+ B1 U" s# b1 u. K4 @/ ?second(time)      H2 Y1 f  L1 `; C  D7 N
返回time的秒数(范围是0到59)   
# A! ?" K4 P8 L# D" r# T. Z" ymysql> select second('10:05:03');    3 q+ S+ d; u! d3 Q! U0 }7 m8 V# }
  -> 3    ' R  N* q2 X. j/ A- x

% [3 n8 Y5 K" ~! T$ ^) a& eperiod_add(p,n)   
% C. `) K# K0 o# B增加n个月到时期p并返回(p的格式yymm或yyyymm)    ! a0 J+ q/ r+ V* E& t/ D6 @
mysql> select period_add(9801,2);    6 P7 N  l6 B! r9 g$ @9 R2 u
  -> 199803    8 ]7 a2 R6 Y: _- e  ~: F2 a! J

  g7 e+ Y8 O1 b  v) F+ }) mperiod_diff(p1,p2)    * ^* s+ s9 ~0 n
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  
+ l& P# H& Y/ ?: B3 Z: S! o  dmysql> select period_diff(9802,199703);    ; X, k* [, G, l1 l3 ~- N
  -> 11   
+ r5 t+ ~5 {/ S' T, M
5 t" Y6 F! K" t* ^/ u2 ?5 q6 G2 Qdate_add(date,interval expr type)  . h' O& L9 p, m
date_sub(date,interval expr type)    ) Y4 O( }( |+ I& r1 {5 h* O
adddate(date,interval expr type)    , ~7 @* {" O' z8 K2 D* k4 t: H' i
subdate(date,interval expr type)  
8 \2 \8 {: a: R2 i' c6 a8 z对日期时间进行加减法运算  
4 c6 D- F! S6 [' ]6 E( U(adddate()和subdate()是date_add()和date_sub()的同义词,也- W: q0 b: k2 l+ Z! Q% o
可以用运算符+和-而不是函数  
' r& c$ E, M# @9 S0 edate是一个datetime或date值,expr对date进行加减法的一个表
2 D3 x! y! G. B, V& M达式字符串type指明表达式expr应该如何被解释  3 {6 x/ h5 M; H# z! T0 {; t/ c
 [type值 含义 期望的expr格式]:  ( v- v2 r) R/ q& J# G3 ~
 second 秒 seconds   
- P1 E  t4 |; t$ |0 S! z  j minute 分钟 minutes    4 F" Z; T6 G- F
 hour 时间 hours    8 p  |' V! a* e7 L
 day 天 days   
/ V/ g% s" u4 _" G3 x month 月 months   
$ W7 A9 K/ {4 T' E& C% `" z- P/ Z year 年 years   
; b! z  R4 X0 p' w- N5 T minute_second 分钟和秒 "minutes:seconds"    . X9 u# Z3 `  m  P
 hour_minute 小时和分钟 "hours:minutes"   
% G; C/ U- G9 H% h- l) a- U day_hour 天和小时 "days hours"   
6 X! x4 ?, {, w year_month 年和月 "years-months"   
, b; D' a. }, V  _  E hour_second 小时, 分钟, "hours:minutes:seconds"   
0 j# x8 K( }- r$ d4 e3 R day_minute 天, 小时, 分钟 "days hours:minutes"    - u9 \2 O5 [  P2 m: o
 day_second 天, 小时, 分钟, 秒 "days
' t' p3 w* ]: f1 yhours:minutes:seconds" % B  |* \5 u# n0 D
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个$ G$ V0 h9 G* ~. y- L
date值,否则结果是一个datetime值)  
7 b6 \! _& Q$ `( W: L4 J 如果type关键词不完整,则mysql从右端取值,day_second因为缺
; l& |6 w! z/ K% L& H1 D少小时分钟等于minute_second)  * a0 }! U" Q( S" k& g0 Y) \; c
 如果增加month、year_month或year,天数大于结果月份的最大天
5 u& m5 Y% u. P/ P. R数则使用最大天数)    0 O3 b: s( P" a2 |- _' z
mysql> select "1997-12-31 23:59:59" + interval 1 second;  
+ P: Y+ K& I1 d! u" \) Q 7 k- a3 ?/ B7 M: a0 H- T& x
  -> 1998-01-01 00:00:00   
: y) r' M+ E0 N) M& umysql> select interval 1 day + "1997-12-31";   
! _4 ^5 g/ j0 l6 y2 W  -> 1998-01-01   
6 m8 L4 G- O) Zmysql> select "1998-01-01" - interval 1 second;   
1 X' ?$ u( s3 ?5 B- e; L  -> 1997-12-31 23:59:59    ( M* t* _8 r) h$ }0 f
mysql> select date_add("1997-12-31 23:59:59",interval 1
1 }2 Q  X8 c: M4 hsecond);   
, O/ {' e' r. P& s2 P' n) @5 l* Z  -> 1998-01-01 00:00:00   
5 Q) y$ H" [1 p0 n- o. Xmysql> select date_add("1997-12-31 23:59:59",interval 1: E2 d! ]; I$ N% n# ~  e
day);    1 Z9 \, T- j- G
  -> 1998-01-01 23:59:59   
8 F& l, H- n' A! v: ~! {  `1 jmysql> select date_add("1997-12-31 23:59:59",interval0 o% Q* ^3 x6 k8 l' h& s
"1:1" minute_second);    - ^  C6 E8 L" T  [: M3 n2 `
  -> 1998-01-01 00:01:00    % P! r, q+ T- ]3 A2 t. F
mysql> select date_sub("1998-01-01 00:00:00",interval "1$ Z/ s9 y% P$ I* G- y) a
1:1:1" day_second);    ' @+ w% s$ L. g
  -> 1997-12-30 22:58:59    5 ^8 w& B: U: P! e
mysql> select date_add("1998-01-01 00:00:00", interval "-1
' l9 t" C! v' q1 p; x9 s10" day_hour);  
* a4 ]* u: o9 [" G4 D& J! Q. Z  -> 1997-12-30 14:00:00   
* h6 e! Q6 n! B2 ~1 {  tmysql> select date_sub("1998-01-02", interval 31 day);   
) F6 o) K2 u+ N) R* r3 A0 R  -> 1997-12-02   
% k, H8 ^+ U9 c4 g% D% t/ A9 }7 vmysql> select extract(year from "1999-07-02");   
, j5 `# ~5 s4 R6 d+ f  -> 1999   
7 U% }1 L& H$ n* y: F: `# ]) _mysql> select extract(year_month from "1999-07-02
) l- |" z: h5 t1 H01:02:03");   
- N% o0 E' c" W" _" F7 M6 L1 E) n  -> 199907    8 `3 G) Q4 C. D/ _7 [2 k4 }
mysql> select extract(day_minute from "1999-07-02
. l0 |9 ]  R2 [0 `& S01:02:03");    " d2 {4 g. A/ D6 ]$ w
  -> 20102   
8 N+ a( E& A' s8 J- u* v0 |; D, D 5 u4 ~( e0 Z$ C7 P- R" I
to_days(date)   
# d9 _4 f6 e6 J& A0 O返回日期date是西元0年至今多少天(不计算1582年以前)  
* l# z. {! [" f. o+ _mysql> select to_days(950501);   
& G1 T) D) {" q- E; a2 l  -> 728779   
# j& u: u8 x  ?% v/ Tmysql> select to_days('1997-10-07');    : L! T+ y, _& I7 e+ y; K4 Y; ]. |& }
  -> 729669   
' D6 F+ v7 x% h, e' k
- v) M" b6 a0 Z$ |% W/ Dfrom_days(n)    8 B1 z" r- E, S3 j$ a' v/ Q; O, }8 @
 给出西元0年至今多少天返回date值(不计算1582年以前)   6 f( x" C/ L: B2 U- h
mysql> select from_days(729669);   
2 O* L& Q, H# n  -> '1997-10-07'   
3 o3 j1 e8 x! Y- t# m' w! w" c2 V
' T5 x$ n3 c0 F. n% P# y( Ldate_format(date,format)   
9 W1 D! N5 n" R7 k 根据format字符串格式化date值  6 x0 Y7 L6 Q8 c5 B& D; Q7 \- V
 (在format字符串中可用标志符:  5 r3 L" D  f. o
 %m 月名字(january……december)   
! Z1 a+ F/ |' Q0 m %w 星期名字(sunday……saturday)   
  A5 X" f" h2 X' e %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    / p3 Z1 S( E, [7 U1 U$ i
 %y 年, 数字, 4 位    ) b4 H: Q4 d% V* Y2 V' ]' J7 g/ B
 %y 年, 数字, 2 位    6 t$ @& P% g/ W6 X
 %a 缩写的星期名字(sun……sat)   
' }" C- i6 k  W( t- `& s3 x9 o %d 月份中的天数, 数字(00……31)   
3 K4 A, x/ P' _/ t; F %e 月份中的天数, 数字(0……31)   
/ w- h. \5 b. L. d %m 月, 数字(01……12)   
+ e/ q$ U. p- d$ @7 p8 G %c 月, 数字(1……12)    : h6 C& X1 G5 ~3 n6 d0 H0 b8 N
 %b 缩写的月份名字(jan……dec)    . k- Y8 C3 w8 ~8 ]* s7 i, {
 %j 一年中的天数(001……366)   
2 S: n, z0 G! X7 q7 `+ Z %h 小时(00……23)      ~# s& i2 w$ q
 %k 小时(0……23)    6 H9 {+ Q. w' d
 %h 小时(01……12)    % b& ^& f- S! C: |5 b6 ]
 %i 小时(01……12)   
1 |8 I. p. g: _ %l 小时(1……12)    3 h) j; N. `  s$ M0 f
 %i 分钟, 数字(00……59)    6 u5 U6 j' A; o/ L5 C
 %r 时间,12 小时(hh:mm:ss [ap]m)   
/ O2 G/ D* D% T  n6 h3 B %t 时间,24 小时(hh:mm:ss)   
8 G% o7 a' b: ~9 L2 z/ h* a1 U: m %s 秒(00……59)    ; W! z* X/ [, r3 {# p( z
 %s 秒(00……59)    1 }/ p; V; x- b
 %p am或pm   
  Y! X% D- \' M- t' h1 {2 T %w 一个星期中的天数(0=sunday ……6=saturday )    - r* B# u! |9 c3 p; D7 p. N& H) _& p5 `
 %u 星期(0……52), 这里星期天是星期的第一天    6 q" Z; i" A3 {' ^# ~9 |' J9 V0 ]
 %u 星期(0……52), 这里星期一是星期的第一天   
( j# h, y5 h! N+ |0 n) m1 g %% 字符% )  
/ l2 o4 M; |' b+ o, q+ cmysql> select date_format('1997-10-04 22:23:00','%w %m %
- Q' p9 }: B) C9 R8 X: V) sy');   
4 K& F  |+ X, Q, ?  -> 'saturday october 1997'    ; {$ U5 B. v; U9 D
mysql> select date_format('1997-10-04 22:23:00','%h:%i:%
1 e6 Y' _+ b( `+ A. us');    1 v: z4 g! ~  G
  -> '22:23:00'    # ?- d! y6 I; l3 s+ _) ^9 r+ u4 l
mysql> select date_format('1997-10-04 22:23:00','%d %y %a
" U' Z% K% \; L- Y' z( V$ u%d %m %b %j');   
% U. O- T3 @) l8 |. {) D1 P0 \3 Y  -> '4th 97 sat 04 10 oct 277'   
7 A" a" O; v  q5 w  b5 I# t+ qmysql> select date_format('1997-10-04 22:23:00','%h %k %i
% I5 w; T) Y$ P%r %t %s %w');    * M3 T5 A2 K- l; M3 p8 U' g
  -> '22 22 10 10:23:00 pm 22:23:00 00 6'   
1 C) l; P6 j& D2 v 4 W* O. j+ Y! A% E( a9 N" y( D
time_format(time,format)  
: z- X" \3 e' m# f! [ 和date_format()类似,但time_format只处理小时、分钟和秒(其- a0 n% Y7 y$ s, p$ X
余符号产生一个null值或0)  & e( ]9 a% P2 E8 k( w9 U5 l

: c7 s1 N  L- m5 p  [* X* ?curdate()     
3 j3 t6 r( W+ v- X# h" _2 t- f% V4 t9 tcurrent_date()  
7 t/ \6 b2 ?: U6 O4 R5 m6 p 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所2 a$ \3 E, ^2 g; ~( E! J
处上下文是字符串或数字)    ! k) E& d- T( a# }0 ]4 B: d% J
mysql> select curdate();   
1 \8 z: W1 K4 ^  -> '1997-12-15'    ) D6 Z% X& Z8 o0 O( o# S/ r0 ^
mysql> select curdate() + 0;   
( K9 T6 t" X0 j: ~! W6 X, o9 t  -> 19971215    ! ]" O6 T0 O7 l6 d0 ^- W
: U. s0 h* o+ P1 e; H9 x! N
curtime()    + {6 N4 A3 e4 Q6 K  n/ j
current_time()  ! y& v& |; ]" {! `) }9 }8 u% f( ~
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
6 B! ?7 ]6 O( V. X9 S% p下文是字符串或数字)      
4 b; a: @# N& f: ^mysql> select curtime();    ! j# O2 F. Q0 a/ @+ P/ I; Q
  -> '23:50:26'    ' r- T+ K( g' R% b
mysql> select curtime() + 0;    % \+ R! A+ y( }, Z
  -> 235026    / E; f- s1 R9 ~, |5 G

, R! ~  Y0 ~) n# j4 Know()    
' r5 @% d5 ?* p, l, J. {9 m& [sysdate()    
. ]3 \# a8 Z: R- J% V0 I; ucurrent_timestamp()  ; [9 Y( {  H* S: E! a4 X9 A
 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
$ e' f0 D7 J; @# S2 R$ ?; h时间(根据返回值所处上下文是字符串或数字)     
: `6 L& i# r& P- kmysql> select now();   
. h6 q. K0 d3 k" w' h. s1 [) R  -> '1997-12-15 23:50:26'    ; Z6 V; E  ?! j% b1 _+ a7 X& |5 d
mysql> select now() + 0;   
, l3 s3 u2 X- @, I8 I% q  -> 19971215235026   
) u. N6 G7 o3 A1 w9 q1 D # ^  U  F: T, y0 }: G" S4 Q; j
unix_timestamp()    # K) ?: V) ~8 _/ i; s( q
unix_timestamp(date)   
6 m8 E4 g6 l' X返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
& i6 d  U2 p+ [9 p  M- Z# L数,date默认值为当前时间)  6 L0 {0 d: W# f5 X
mysql> select unix_timestamp();    7 T2 v7 \# z3 M/ K) j( z6 N# |
  -> 882226357    4 y5 w! D5 @; s3 o: A& H
mysql> select unix_timestamp('1997-10-04 22:23:00');   
% F; X& C% h, I; ]  -> 875996580    ! _' Y$ v$ Q( X1 I

5 v) Z; h* i$ o% e6 xfrom_unixtime(unix_timestamp)    ! _. l: e% v6 Q3 _* ^
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的
  b; N9 _9 ^7 b* r1 y4 ?' T* ~值(根据返回值所处上下文是字符串或数字)     9 O" k! ]+ m: c
mysql> select from_unixtime(875996580);   
% A7 j% x( G( N$ A/ Z  -> '1997-10-04 22:23:00'   
6 A& [( _. F! }5 w0 B9 S) wmysql> select from_unixtime(875996580) + 0;    * p$ g0 E% @: p* a! t
  -> 19971004222300   
# f' U5 k4 j$ r0 i  @& ~* s
, }; v4 \: W1 U( p' G8 A# Ifrom_unixtime(unix_timestamp,format)    # l6 {/ @" Q& @; w5 |  G
以format字符串格式返回时间戳的值  
9 O  W; j7 F4 q# Bmysql> select from_unixtime(unix_timestamp(),'%y %d %m %
1 i+ o* k( r7 n9 @- K. zh:%i:%s %x');   
! ~0 K' J, W5 L6 R  f  -> '1997 23rd december 03:43:30 x'   
8 E/ g/ ?- g& j  k$ s! c ( }) ?; W+ [. B- r9 m' z) S
sec_to_time(seconds)   
; o3 v7 V$ }( O' L以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
/ C% s# K6 w/ E( I' W: h' `mysql> select sec_to_time(2378);   
' }$ N) C9 i! c1 @( P* q  -> '00:39:38'   
& ?) z: d8 p6 n) m; d$ bmysql> select sec_to_time(2378) + 0;   
- N" i0 a- `" A9 {6 x* F  -> 3938   
0 f. G; \% S6 g( F4 W- p3 P
- C3 L, f1 e0 W* `* ~time_to_sec(time)    $ h$ c) U! I: G* U$ u0 j8 C
返回time值有多少秒   
; A* n  T7 F1 J3 {3 nmysql> select time_to_sec('22:23:00');   
! Z$ {; }% x2 c+ f- B4 _8 ?, ]  -> 80580   
, N' I) Q+ p% Lmysql> select time_to_sec('00:39:38');   
6 A" l7 ]) D2 _0 H1 V* p  -> 2378 " Y& t+ V; ?9 A0 t- ?% O6 d3 t

0 |9 V4 p! ]7 T! n2 i$ }, e$ q/ q转换函数- y# X: ~" L4 ~- a/ ^+ k% N
cast
1 C: |4 E& a5 f: Y用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]
8 E' F' r) R4 O% \2 b: G- u实例:select cast(a as unsigned) as b from cardserver where order by b desc;
9 j, y: v' ~' D( E: g8 e5 n( Pconvert:
! X6 m, w2 ^7 [. n用法:convert(字段,数据类型)( P, s$ X5 _/ i# \. q6 U/ v
实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
+ Z6 {1 ~; H* {0 k





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