中国网络渗透测试联盟

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

作者: admin    时间: 2018-3-21 16:07
标题: mysql常用函数大全
1、字符串函数
, ~$ {" Z4 {/ N- I- dascii(str)   
- C! a3 X$ Q0 R. d8 U. N0 W! m( R返回字符串str的第一个字符的ascii值(str是空串时返回0)  & s5 L) W$ S  s
mysql> select ascii('2');  5 u3 Q* k& S# \, o
  -> 50  6 R& h  Q3 G6 o: S# _0 t( `* ?( g
mysql> select ascii(2);  
% D2 i5 i- y8 D* @  -> 50  ' S# m- u2 R" P3 W5 w
mysql> select ascii('dete');  : A4 w) Z5 u  s; r
  -> 100
$ |6 X- T( {5 r" u
ord(str)   $ |+ @: s7 {# E: V4 \
如果字符串str句首是单字节返回与ascii()函数返回的相同值。8 L0 h( [( {3 ?) ^2 e: i$ `2 [& Z" _
9 P* r: A/ y( x& R% y4 F* X
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  
8 [. G- A" m5 V5 ]" b6 k' x* ]mysql> select ord('2');  
: ~# d, _9 s+ `: y  -> 50    U' H$ B  Z1 x
   : {# X" n5 R! j1 u, s5 N
conv(n,from_base,to_base)   
8 Q9 U$ }- V3 I8 a: O对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
% j% W  r. \) ~# \) e4 kmysql> select conv("a",16,2);  + ~, M1 O! j% E7 J
  -> '1010'
: @  ^1 S+ e( l7 q4 Hmysql> select conv("6e",18,8);  
# b( p, F/ t: E5 p9 ~4 |$ A4 b  -> '172'
. f: H* W* s5 }# qmysql> select conv(-17,10,-18);  
) W: L0 L& F; q# C; e+ N1 r1 U* B  -> '-h'
- Y! g$ t. t* |5 w0 nmysql> select conv(10+"10"+'10'+0xa,10,10);  
2 P+ Y7 Z1 H* h& g) N" R2 L  -> '40'
) W- J; P0 o( p   
$ S+ O- K+ J9 Y+ }/ Kbin(n)   
% C& }7 |/ m" r! v" C+ P把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
( c8 o/ ^* j+ b; E8 x: Umysql> select bin(12);  
9 ?& {- E- @9 i8 O: [. o" `  -> '1100'
' q, c- `. ~5 ?' A" y / b5 z7 }. C" ^% \: C
oct(n)   & V) S5 g2 ^% D2 \* l
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  4 ^1 q9 K# L8 N6 x
mysql> select oct(12);  
# B! \9 T  O$ V  \9 r  -> '14'
* V! p5 A3 L! n# q6 J. }; w8 e- h   
0 L# O/ r3 k% X2 S, [( X7 Thex(n)   
$ R% Y6 ^# `* C# ]) x8 y7 U& }. F把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  
4 R1 a; r$ e4 A" {( _- {! N8 xmysql> select hex(255);  % X: U4 U% o$ r/ i7 x8 x1 R
  -> 'ff' ) [6 b( a3 d% r
   
9 U7 a! p  E3 N/ O; k* xchar(n,...)   $ T! g5 D' k; l7 Y
返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   $ a% [) `3 q/ O9 K0 C
mysql> select char(77,121,83,81,'76');  % P. g8 }7 T$ Z) m
  -> 'mysql' 4 V% Y4 W5 G9 ?8 ^  Q' F3 i+ _
mysql> select char(77,77.3,'77.3');  8 j$ ^+ G* f. J
  -> 'mmm' . e" F! B  f4 y2 V) Z+ x, D
   
: j, H) M3 b& C* S# j/ {. G0 [# mconcat(str1,str2,...)  
. h7 @% n8 ]+ y: |- ?" K  N3 }把参数连成一个长字符串并返回(任何参数是null时返回null)  
' u% A  j5 Z( Z6 A* g/ gmysql> select concat('my', 's', 'ql');  ) h/ {. Q3 x  Y! d' P
  -> 'mysql'
# B1 g/ L5 ~& i6 Y  x; c' cmysql> select concat('my', null, 'ql');  
0 H. F$ H+ |/ ?5 x  -> null
# s7 G; T- a( i7 j# U( Imysql> select concat(14.3);  
# ~) _$ m* s( O6 p% t# u  -> '14.3'
9 j' L) r3 M: Y   f4 a* g$ E' S7 D# M8 t
length(str)   ) e4 W  l# m* U1 R7 }
octet_length(str)  
* Y! a( F. p: {" h( p' h. Echar_length(str)  
0 X( Z; y6 P2 G6 ~1 F2 Ucharacter_length(str)  
% |/ Q! C' ^9 l* H0 Z返回字符串str的长度(对于多字节字符char_length仅计算一次): U; ]& F* c' R/ C& T
mysql> select length('text');  $ U6 f. B2 S, D  z
  -> 4  # x5 i/ x5 ~, i) t
mysql> select octet_length('text');  # _3 j, W7 f5 n0 i( g% o+ H+ v
  -> 4  # K2 b- a$ d6 n8 R
3 z+ |6 \, i( Q. d8 i
locate(substr,str)   
- l! t! e+ r8 D! p5 x  q% `0 Cposition(substr in str)   
4 C& `) d; t7 u  d. g. `. ?0 G+ s返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
: V/ s) C( g( G1 emysql> select locate('bar', 'foobarbar');  
- ]  W3 j1 b+ z% A$ Z! u& B/ I$ k1 z  -> 4  
8 B2 |- D- B8 ]) F: y5 imysql> select locate('xbar', 'foobar');  9 o- r1 {3 D/ m3 }+ K6 w( b; h. B% E
  -> 0  
: s- |/ x1 z( [+ Y: v$ F( _   
- N: ?' W8 @. h( O8 ?locate(substr,str,pos)
- G9 V/ g/ D& b0 b4 P% `+ s返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
4 O4 N+ S+ q& S& u. M0 Kmysql> select locate('bar', 'foobarbar',5);  
6 [/ \3 d5 C) }: h5 q6 t  -> 7  
$ c) u; B: [4 n0 u. V- I/ i0 U4 `
' z, f! V2 {" vinstr(str,substr)  
* H) R% _: v& T' a1 N$ Z返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
  M4 m: B: x: C8 Ymysql> select instr('foobarbar', 'bar');  ) N" m3 V4 A2 j$ r$ }
  -> 4  
5 @4 ^4 o) n: A# o% z  s7 O* n+ M- cmysql> select instr('xbar', 'foobar');  
1 m3 [9 D9 d3 c  -> 0   ; c: C9 v$ t- S* J" n  z1 |

# W+ E/ X$ d3 {+ m. Dlpad(str,len,padstr)     V" N$ }/ P' v0 u
用字符串padstr填补str左端直到字串长度为len并返回  - Y3 Z; f# W2 P5 X
mysql> select lpad('hi',4,'??');  7 K/ }* c! Z; Y, U2 `" y" p
  -> '??hi'
1 p4 M4 f0 i, }4 f6 ^$ u   
8 i" Q; I9 k1 Y( F) q: Brpad(str,len,padstr)   
( r$ n; [5 C9 Q  q' I用字符串padstr填补str右端直到字串长度为len并返回  
2 ^3 g& I/ s, V# ]8 J0 i+ D; smysql> select rpad('hi',5,'?');  
& C' M  X1 H1 i/ |/ o  -> 'hi???'
; Y; k/ w' m2 j2 e" m5 [ 4 ?5 X: w2 |, w9 q
left(str,len)   
! C' E+ O! Z- @, Z返回字符串str的左端len个字符  6 j; ^: a# W4 @7 s+ @# |3 ^* \
mysql> select left('foobarbar', 5);  
4 I1 r1 i8 \" q$ q( r, U  -> 'fooba'
/ K4 q' [3 F: i; W( |" L  K- s
5 J6 p9 i, Q+ J, K! e1 {right(str,len)   
' w2 o# F0 i; g* {( w4 A7 C  Q返回字符串str的右端len个字符   
  [. @+ M. [# o( L) j* u1 l) gmysql> select right('foobarbar', 4);  " n5 f8 v( L8 x- q" U
  -> 'rbar'
+ y5 O6 O+ `/ X
3 k0 k2 j! a# R! {7 S, `substring(str,pos,len)   
( i: n3 s2 f* Y$ psubstring(str from pos for len)   
7 h" m3 S- s% ~" Nmid(str,pos,len)   
: c$ C# J: p) F6 g# [5 n$ e. g3 Q返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
& G  _6 ]0 e+ L4 y  t  -> 'ratica'
2 o7 V. ]* J% T 3 w5 g- q; y# J9 L% J; Z
substring(str,pos)   % \8 C" l$ h4 F! ^8 [8 n* C
substring(str from pos)   
/ R; L# {1 K% Y% t0 s5 q返回字符串str的位置pos起的一个子串  / a/ _* O. p8 Y$ S5 G( J! B, }; x
mysql> select substring('quadratically',5);  
+ b' ?/ w7 b4 M" E5 V- A0 b# L  -> 'ratically'
- a6 l8 I: ]1 A7 @/ r. Qmysql> select substring('foobarbar' from 4);  9 T9 s+ Q# K2 R* ?% {
  -> 'barbar' # t6 B; J9 A8 l/ k6 C0 f& i

/ b  I0 w: o$ P2 q( C) m$ N: ~substring_index(str,delim,count)   
, e+ Z7 y; t, g! w! ?5 [返回从字符串str的第count个出现的分隔符delim之后的子串
; Q% M  R% J- y$ c8 c; ](count为正数时返回左端,否则返回右端子串)  
: ~( q  \* Z  S7 n. {  ymysql> select substring_index('www.mysql.com', '.', 2);  
6 E4 q3 A& Y* \9 r  -> 'www.mysql'
/ Z0 a/ o$ o6 ?! J6 emysql> select substring_index('www.mysql.com', '.', -2);  7 n: X9 ]/ W7 x! [5 ?! D
  -> 'mysql.com' 6 ?  j) R& q! N. A+ Y% y
+ H8 f' b0 Y% ^
ltrim(str)   
7 C- {$ G  M  y6 t& @返回删除了左空格的字符串str  
$ P. H( I( z3 `mysql> select ltrim('  barbar');  " Y2 v3 Q( W- v( q0 u
  -> 'barbar' 3 k5 Z1 {- }( B9 x( z/ Q; U6 l

# a* H; Z# w  i0 Y, [! l% F3 d0 Frtrim(str)   / @) l  L) e. W, A
返回删除了右空格的字符串str  $ M% |' ?! z  F2 O; ?! c! j3 F
mysql> select rtrim('barbar   ');    Q4 b/ i- J8 r* e
  -> 'barbar' ' J* u' l0 J8 I0 [( j: f

6 g' @# P5 ]3 l! w/ w  vtrim([[both | leading | trailing] [remstr] from] str)  
( S) B: g( m9 J8 K6 @2 O! m/ E返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)    n, N9 g( b' }3 v2 V7 j4 F
mysql> select trim('  bar   ');  
/ r' [& b* V* E1 p" k8 P  -> 'bar' $ f. U( H5 J! V/ @; @
mysql> select trim(leading 'x' from 'xxxbarxxx');  : ]2 B& E7 f  ~5 k9 I) n
  -> 'barxxx'
; n' t1 B& ~" F8 H+ ~# {mysql> select trim(both 'x' from 'xxxbarxxx');  
# }2 N# h" y5 D2 [9 ^8 |# o4 z  -> 'bar'
3 h; h9 ]0 i- Fmysql> select trim(trailing 'xyz' from 'barxxyz');  
, }! [8 V- i" C( S/ z, }  -> 'barx' 0 p; ~% o2 t5 c; C
0 k9 h7 s1 D/ t" r
soundex(str)   / z7 @+ z$ I0 g" N4 [
返回str的一个同音字符串(听起来“大致相同”字符串有相同的
" k4 Y$ J7 K- j同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  
/ \/ [' r7 L) F) |6 mmysql> select soundex('hello');  0 d( @! V$ O# Z! e6 `
  -> 'h400' 8 l4 U6 o4 F5 A( @, `3 c
mysql> select soundex('quadratically');  * u( z5 H; _6 M
  -> 'q36324'
( D7 d( O$ w' A  w& l: X1 u   
" t* ]  I" z2 X5 i) k; E7 Ospace(n)   
3 d" E( l' f; l2 p+ T: N返回由n个空格字符组成的一个字符串  4 Z. Q  M& ], T6 x: H" F) T
mysql> select space(6);  
8 H1 Y: D5 ]5 i; M. o! Y  -> '      ' 7 K: R  B: q/ z! Q$ z5 j# [% ]1 d
   6 g! ~3 J: j5 U/ f* k0 s
replace(str,from_str,to_str)   
# Q8 W! R. p2 h' A! e% N! b( }用字符串to_str替换字符串str中的子串from_str并返回  
7 C: c0 ^; a9 q, z6 Y- Y8 ]mysql> select replace('www.mysql.com', 'w', 'ww');  
0 @! E% o4 s6 r  f( P: f, k  -> 'wwwwww.mysql.com' : X7 v3 f, `' d0 _% k( ~8 s

2 r! d5 q/ j; l. ]repeat(str,count)   - H) O! g4 Y3 }* K
返回由count个字符串str连成的一个字符串(任何参数为null时
1 i" W- r7 |0 z& ]返回null,count<=0时返回一个空字符串)  
8 \. P7 _- m  F3 s: C3 Tmysql> select repeat('mysql', 3);  
1 ?  B, `+ {0 q( n- U1 E# Q  -> 'mysqlmysqlmysql'
1 `9 l6 ?' ]5 D, M: A: ~3 G  ~   : T2 P. y/ B& P1 a0 Z
reverse(str)   * h; A  |) N. c0 E2 v  X7 i2 I
颠倒字符串str的字符顺序并返回  4 G# a2 t  t  J" c5 G3 T/ f* @0 f
mysql> select reverse('abc');  8 p: ?- w* N4 s( ?
  -> 'cba'
( ]& p/ @2 m- J3 z1 G# a2 X* o
; s# b6 [5 L% q" d: _% ~insert(str,pos,len,newstr)   
8 Y2 F: Q( \- y/ s把字符串str由位置pos起len个字符长的子串替换为字符串
8 A- L/ {7 ?' P- p* f% enewstr并返回  
( f8 `* e7 s. _$ u; r' Amysql> select insert('quadratic', 3, 4, 'what');  
! k# P" C% c0 R  -> 'quwhattic' 4 ?3 I" x* l' \5 e! d( l

8 O& O# q3 E% e3 |1 M+ Melt(n,str1,str2,str3,...)   
7 u8 s/ o6 a# k2 `, ^% F返回第n个字符串(n小于1或大于参数个数返回null)  
5 F5 {4 D% l# @mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  
/ Y# L, {# p9 s0 l/ F  -> 'ej'
: X; q) \, @  |% c2 @mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  ; e4 K9 ?# W; t3 f+ [3 b
  -> 'foo'
1 |1 A# D, a5 Y, | 0 J4 {3 C1 X& T8 v2 L( k
field(str,str1,str2,str3,...)   7 @6 k1 \( v  m  m3 l
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
4 L# w* I6 C" K& pmysql> select field('ej', 'hej', 'ej', 'heja', 'hej',: H$ r5 z( C. M! B! r
'foo');  
* u" s" J8 ~7 B! Y3 h  -> 2  3 ]- ~. `( l) Z: O5 ~6 O
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',9 H6 ^6 ]* K7 }# U) R  p
'foo');  5 M; m# c# T8 C9 y( D7 A8 w
  -> 0  ( _1 @. k' L# a

9 [; |# i- a" D9 ?( Lfind_in_set(str,strlist)   
$ K) U8 K1 ?  X2 \: f- y返回str在字符串集strlist中的序号(任何参数是null则返回
9 N7 t7 u) _$ ^# ]null,如果str没找到返回0,参数1包含","时工作异常)  1 X6 k; Q+ X) o' y" Q& F& {# f
mysql> select find_in_set('b','a,b,c,d');  
' ~! c! P) O3 ~- m  -> 2  
( C$ c8 a1 @. u   
8 }4 D- Y! H& ?9 K) {  emake_set(bits,str1,str2,...)  
6 \) ]% Q0 U% A把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应$ O+ E, ~7 \5 q/ x1 i, X
位置的字串选入字串集并返回(null串不添加到结果中)  
2 ~" B* z5 q: C' o# X' t" J9 Pmysql> select make_set(1,'a','b','c');  % J, r7 `: \  ^, q4 k4 W
  -> 'a'
1 a* O0 n5 @* \3 R8 V2 ymysql> select make_set(1 | 4,'hello','nice','world');  . ~; w2 Z) G% p6 e
  -> 'hello,world'
" F0 W6 R; E+ v) I9 c( ~mysql> select make_set(0,'a','b','c');  5 D# j- E6 v& e, S, W) S0 B0 l1 p) p
  -> ''
. Q# Q1 p. ?" [) a4 y% E. R ' s  W1 ]  M) h; C" }. P: O  i
export_set(bits,on,off,[separator,[number_of_bits]])   
* n, W5 A' d/ b& Y5 P按bits排列字符串集,只有当位等于1时插入字串on,否则插入
$ o7 w. X. ^  u4 c' k  q  \. woff(separator默认值",",number_of_bits参数使用时长度不足补0
0 q$ J# t+ O* ], D8 N而过长截断)   
# a% w3 E' f+ R7 ~( Kmysql> select export_set(5,'y','n',',',4)  
7 v1 J5 U' V' m/ Q# P% D2 f9 p  -> y,n,y,n   
, w! ^; `: P4 T( a; P" }, D* j/ x ) L! i- i) g3 y$ g0 c
lcase(str)  
8 s1 l% M" Q' k. m* c$ vlower(str)   
0 [$ X& L, A& t& {# ~2 T* @0 D返回小写的字符串str  
$ Q5 K8 g" f8 B+ K; hmysql> select lcase('quadratically');  ( {! z0 u6 U, j7 v- v
  -> 'quadratically'
: Z' p( ?! G/ J4 Y. ]2 A$ O. t   
; V  F' [3 B4 X% c4 ?ucase(str)   
8 u: C+ p& m0 ^- C4 Tupper(str)   # y  K! M5 Q, y
返回大写的字符串str  
8 p* b1 z7 A1 [" ^mysql> select ucase('quadratically');  
* d# q5 k" _$ V3 O" F" I, e  -> 'quadratically'
  T4 q1 ~. C9 w5 Q5 I 6 `& o2 U1 z8 t/ M$ D1 w
load_file(file_name)   
! X: O' B6 E3 B9 `% r/ a读入文件并且作为一个字符串返回文件内容(文件无法找到,路径- |* r4 _0 D% u  ^% a/ I$ R+ G
不完整,没有权限,长度大于max_allowed_packet会返回null)  
) t" E. W$ H8 y7 fmysql> update table_name set blob_column=load_file3 E& ]) L! m7 G" e* M* I0 b
("/tmp/picture") where id=1;  , _% B6 f/ D+ t8 J. q- J

) {; l  k9 J0 t* [& d2、数学函数/ Q( j' M% J. Q2 i5 e  E
abs(n) . C" ]1 U* j: [
返回n的绝对值  
% I$ \" Z3 s" X# D- z7 {mysql> select abs(2);   
' I$ j! N: C6 [3 N5 B  -> 2   
8 V$ M! y. k. N4 }; rmysql> select abs(-32);    3 G  _. u# R1 T8 w* o; ]
  -> 32    ( R2 f( u6 V" w4 p3 J# Z: i
   
& x8 g; k) Z  T. esign(n)  2 e/ \3 d1 x: D5 p: y; Z" E
返回参数的符号(为-1、0或1)  
$ f) s( F8 b3 n  T2 j$ j" xmysql> select sign(-32);   
3 ?, _9 u7 T( w5 ^6 j# w5 m3 I  -> -1   
8 T/ A, ?& O5 S9 zmysql> select sign(0);    ( @/ t9 q: R% @5 l
  -> 0   
$ e6 G! I+ D# R& q6 G, e: c6 Kmysql> select sign(234);   
6 j9 e' o5 m- v  -> 1   
9 u  |/ ]5 L3 O" ^5 m
8 Y) l, y+ [* H( Z/ y& s4 D+ p0 h2 ~mod(n,m)   
/ p6 V& l( ]7 j; S2 f* d1 V取模运算,返回n被m除的余数(同%操作符)   
5 W: o/ v2 z( }- m; M4 pmysql> select mod(234, 10);    ! h1 I/ {+ t0 S& D1 n8 E& j7 z( i
  -> 4   
9 ?+ t% r' q. _! D: ~) X; p4 amysql> select 234 % 10;    ! f: Z) J" i: A
  -> 4    1 K8 ~8 s; {( n/ s
mysql> select mod(29,9);    " B9 ~1 m  S. J. m: K
  -> 2   
1 m% \5 C0 R. B4 G / {* b* T* a2 r( {6 K$ R7 [
floor(n)  $ A( g2 q/ T5 A1 o" O' \- z: K
返回不大于n的最大整数值  * f, ~3 d4 H7 e0 |) i7 J* \
mysql> select floor(1.23);    & W* p2 R8 d. U8 l
  -> 1   
' ]+ ~9 y  O6 {  O( amysql> select floor(-1.23);    3 h! y8 X" [; J
  -> -2   
: d* v; g& K3 L! c0 y % \; i/ u1 C# T, y0 j( y
ceiling(n)  9 Z/ ^) u$ b! n' P
返回不小于n的最小整数值  ! c! Z2 z7 o5 x" ]
mysql> select ceiling(1.23);    1 q) x% t+ G& `, S7 w
  -> 2   
. T- X" I" s4 {$ Smysql> select ceiling(-1.23);   
4 N6 D" |" J( u7 m* ^+ t# S  -> -1   
; S2 t, A3 ^8 X* T" u  @$ J 0 i4 y& W* t. J
round(n,d)  , n, u' r/ T$ }% q
返回n的四舍五入值,保留d位小数(d的默认值为0)  
/ E8 t; Q) q8 _, `& R" X, jmysql> select round(-1.23);   
/ r/ U2 J' w9 c; _' J  -> -1   
' `. y% C. L5 L* fmysql> select round(-1.58);    . ]& ^' m; L9 N( d4 ?* U4 ^& g
  -> -2   
3 l+ Q. T1 Y7 A- Vmysql> select round(1.58);   
( {; {% h3 T6 F: J- k  -> 2   
; Q( n- L" Y0 P( S) _* _mysql> select round(1.298, 1);   
3 I5 |) l; s7 D3 e# O# j- [  -> 1.3    + I! D! [5 z: p; P8 t
mysql> select round(1.298, 0);    / U: @( Y$ M* k: b
  -> 1   
" ]3 _/ O; p* R5 _
9 `9 P5 a' c2 V4 r% [8 E: \exp(n)  ) z9 ^' z* a8 U* d1 l$ w
返回值e的n次方(自然对数的底)  5 A+ A: g& Q& W+ l4 \0 P
mysql> select exp(2);    ' e' M( T' Z7 q$ R& ]3 n
  -> 7.389056   
+ v5 A' D6 ]) ^' l* P: _9 [2 k6 Vmysql> select exp(-2);    3 `% R8 C% W) O5 l+ l; K# d8 ]. H
  -> 0.135335   
1 k0 n& b! M7 X5 p
  c! J2 s* p1 g8 q# Klog(n)  
' f5 n$ G9 H7 E, }: U返回n的自然对数  
9 B1 G3 D3 H/ ~7 amysql> select log(2);   
4 f; O1 I8 n9 n! V" B7 Q& F1 b; o  -> 0.693147    1 u0 ?8 [; f; j
mysql> select log(-2);    , p4 u' @% ?2 B$ I$ A
  -> null    7 ?/ D9 `: G1 x7 i( s1 p# D
0 X1 E5 i6 F7 I
log10(n)  6 D- r% D& `) ~$ J( t
返回n以10为底的对数  
. u7 f$ U3 j8 A6 V9 V* c; G' J7 Smysql> select log10(2);    2 w& G! W( C% M7 n
  -> 0.301030    2 [# V4 f* {/ }
mysql> select log10(100);    & R3 I5 H* J8 ?- q: m4 h
  -> 2.000000    ) F% h2 F' Z: J' u. B9 b5 D3 L% c
mysql> select log10(-100);   
2 s1 C. W# o: y) C  -> null    ) }) k; i, ~+ z$ F; u

4 x* {: v7 _* d$ ypow(x,y)    ! D1 S" w" c& Y1 Z
power(x,y)   
* O' |& R9 v! N 返回值x的y次幂  / m- ~% x8 E2 i8 S3 e
mysql> select pow(2,2);    1 s/ j; O+ G9 R6 J3 m+ c
  -> 4.000000   
  |* B" Q! q# }6 qmysql> select pow(2,-2);    7 t) s' g% ^" a3 D) ?
  -> 0.250000  
- v9 }" C/ Y$ V7 V9 ?0 U- ^  ]1 T. E, [8 T
sqrt(n)  + }/ K1 K2 L8 l* R7 _
 返回非负数n的平方根  2 P. L8 ]" ]( `7 I4 Z& S
mysql> select sqrt(4);   
9 g/ K! X# v9 s1 }  -> 2.000000    % ^$ q' E4 d2 H, \2 o% I
mysql> select sqrt(20);   
4 C, ?* _3 |2 }  -> 4.472136    4 }9 t; |* }  c

. N5 ]+ `! w3 xpi()    $ j1 w3 g8 |* w. T. t2 ?/ r; |( N/ V
 返回圆周率   
1 D! s7 I. e/ T  e8 J6 Q" [7 P/ Hmysql> select pi();    2 z" r' A: ]8 T; D  V" d/ H
  -> 3.141593    # Z* ]2 @6 |+ S3 R- q! o
9 K3 M3 X% y  S: T
cos(n)  
( V/ H$ }; p5 L) h) n 返回n的余弦值  ' B; {/ \* c& s/ n0 H$ w( `
mysql> select cos(pi());  ( j4 \) ^$ ]- J8 R
  -> -1.000000    * g3 o/ O2 O& Y& @. Q( l- M

2 u- G3 F6 \8 w  |$ E) ~2 u$ P) xsin(n)  
: s7 k$ B) s5 s9 Q 返回n的正弦值   
- d% c6 \/ a, d, B. u7 Nmysql> select sin(pi());   
9 [7 ~% E8 \6 ?  -> 0.000000    # u! Y4 T1 v" N! {

- ^6 \, L- c5 z8 C, ?5 utan(n)  ( B1 L- X: ?1 x1 W" A% G
返回n的正切值  - s3 Q) T2 U3 F; ~) i
mysql> select tan(pi()+1);   
4 b- ?+ G3 K$ m. R  -> 1.557408   
) J$ s7 \0 T( [& x6 x1 ^ . m  t$ ^: |% `+ H1 t# `. j
acos(n)  , C: ], M9 l; F) x3 k
 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  
( j+ E+ Q  a0 ]6 l( wmysql> select acos(1);    4 C+ n7 k3 ?7 f1 y; r5 |. ?
  -> 0.000000   
9 R& l2 f/ j( M, K! @& B" Jmysql> select acos(1.0001);   
# b9 [: s% Q& I! d' j/ Z* T+ Y1 c  -> null   
2 Z$ h( j- f+ q7 N$ }" fmysql> select acos(0);    * @: _" r1 P6 {# r7 |
  -> 1.570796    $ k9 ^9 b- y+ C! ]- h

, _: {3 h0 w1 ?6 Jasin(n)  ( Z- B2 }- ]. X
返回n反正弦值  " w( s: m( {* v3 n$ z
mysql> select asin(0.2);    * E# E" W% E9 y. B
  -> 0.201358   
! I0 B  V" W$ i; r% qmysql> select asin('foo');    # E+ I+ i5 }6 l+ m/ q  i/ i
  -> 0.000000    # t# w6 P3 |# A7 r# B

( N2 H! w) |; \. b% Latan(n)  
/ s; t. H  v5 p, b返回n的反正切值  8 ^5 [3 P7 @$ b
mysql> select atan(2);    / r( f- u5 K( w( e  @
  -> 1.107149   
9 {1 O. r( L3 h5 Tmysql> select atan(-2);   
" _2 I9 Z3 [, o. V( t; X1 _  -> -1.107149    5 U2 C8 s: A; q9 \
atan2(x,y)   
" v7 U9 y3 h3 B) ]3 l1 U 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  
4 z! Q6 k9 L6 U+ Imysql> select atan(-2,2);   
6 ~, e7 U; T: C9 m& E( B9 y3 v- @; N  -> -0.785398    + w4 S; s7 g* f7 S: b# L
mysql> select atan(pi(),0);   
3 M3 A  m# f( l" x5 u% q  -> 1.570796    + X; t7 g7 c, e' k) W

2 e# L* U! T, k/ O" Dcot(n)  - O! {! g" N: a/ O- b6 N+ o
返回x的余切  
2 x+ X$ Z! H( ]4 o; Z& M& qmysql> select cot(12);    # Q# t. D; x" Q4 _8 |
  -> -1.57267341    : A, g- Z$ o5 ^( S4 Y' g: F
mysql> select cot(0);   
0 j+ _! K/ e% E  -> null    7 x( d( b1 e1 Z4 ~

' L8 u$ D2 a9 ^% L6 v$ M! Irand()  $ D2 S: |9 V) ~- H1 _2 R
rand(n)    
2 N0 }7 X5 n' {4 t$ m6 `  w( u返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
2 `9 }& y3 I, ]$ [  N- t 4 M6 q8 N8 E) m1 a1 V
mysql> select rand();   
1 t  t- {+ R" u$ ?  -> 0.5925    " ^8 q) j* g1 d
mysql> select rand(20);   
" F4 O" r. e) ?7 j  -> 0.1811   
$ Z! b+ S3 b0 K- Bmysql> select rand(20);   
  B0 H/ `. |8 E; v  -> 0.1811   
$ @* Q$ V  K; [mysql> select rand();   
( b/ H& x$ z8 _  N+ ^  -> 0.2079    - l" M1 c1 d9 j5 J: ~0 G2 V" ~* j2 @
mysql> select rand();    . V: [& T& Q; v0 R( \
  -> 0.7888   
4 O$ m1 v* y5 ]+ g) U& k! B , b; t1 K  ~$ O2 U
degrees(n)  
& s' u  B$ q% D. c3 i* @$ q把n从弧度变换为角度并返回  
$ o: e+ m: m% L9 umysql> select degrees(pi());   
# S* a- X5 s% n( H. n  -> 180.000000    $ f' r* p. o' g: w

9 w" @9 s0 w4 i8 J5 b' U+ Xradians(n)
& K. a7 j: V6 o6 }' w7 F3 {- Y把n从角度变换为弧度并返回   
7 T9 V$ J/ e; l- ^( v/ {) hmysql> select radians(90);   
  _) q* V% g/ `5 V# U7 N0 d3 Q& e  -> 1.570796   
# P2 ~2 c+ v8 o' z3 k3 V  f- I, ]  j# h4 g5 X0 R. i5 b, j
truncate(n,d)    + Y1 y, b7 l; B% X! T9 M4 p5 E- O
保留数字n的d位小数并返回  
5 \+ o  |, ~& s! x1 ?; X: nmysql> select truncate(1.223,1);    - A  N: u( w1 M% L2 u( j
  -> 1.2   
6 l% t- l- ?/ b1 v4 [0 E0 gmysql> select truncate(1.999,1);   
' g/ o4 o* n, B  w  [7 a  -> 1.9    9 @( X+ ~+ s* v- N
mysql> select truncate(1.999,0);   
' ~2 a: _, g) w4 _) N9 B  -> 1    ( n- I$ I' L) V; D. n& {
7 O- V$ q+ E# y$ D6 ?
least(x,y,...)    9 K0 q* m" x* c# t$ M" p) P
返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  ! [, B7 u" [! Q5 V3 e3 I* p
mysql> select least(2,0);   
8 `- r: \( Y3 Q/ V7 r+ F9 L  -> 0    ) o, d* |' R* V- ]
mysql> select least(34.0,3.0,5.0,767.0);   
2 H- v7 U3 c5 N0 ?  -> 3.0    & M. M! ^2 T  i$ J  Q7 Z
mysql> select least("b","a","c");   
9 P1 X# b4 |" _$ j+ u# ~9 c' i  -> "a"    & N  k( R7 v5 L6 c" `* N6 c

) |  p% X' _5 M4 H) W' Xgreatest(x,y,...)   
% h2 T9 H& W. `3 f, m返回最大值(其余同least())  3 b/ j! V- G* A8 e
mysql> select greatest(2,0);    , Z; S3 t2 \+ o1 s8 b
  -> 2    ; e. g- a) F# q0 N* c# F
mysql> select greatest(34.0,3.0,5.0,767.0);    - a' b3 x0 t. M) p- M9 `
  -> 767.0   
) r7 J2 U7 D# v0 u, xmysql> select greatest("b","a","c");    ; r: X4 `& N! U9 d6 `: ?
  -> "c"     8 w& b0 e, L+ Q: @# ~
' A7 |. L- Y% A3 w+ V+ h
3、时期时间函数 ; R) B! O3 N& @! ]7 ]
dayofweek(date)    5 B+ H- u) l2 e, e, s3 ?/ h, }1 c
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
0 q3 Y1 _9 `, b0 `4 y/ ^mysql> select dayofweek('1998-02-03');    3 R4 X( L0 j" @- U' D1 h
  -> 3   
7 m5 ]! r* u. e, ]& [8 X, \
' H& X7 I% G8 N; J. g  [weekday(date)   
+ V$ G6 f- O8 _6 ~/ d* w3 c+ J返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
8 f! {+ {" g( N- p/ @' w  : x1 l( \1 g  S/ H! z) V7 Q1 N
mysql> select weekday('1997-10-04 22:23:00');    6 f/ b0 f. A  K+ J  O' @0 G
  -> 5   
- y6 U1 }' z$ Imysql> select weekday('1997-11-05');   
9 q3 e6 W$ S8 A& O' z$ e" j  -> 2    . h% o5 G7 ~" Y( z  C; b
: J; I7 `( A! {/ [6 u& W
dayofmonth(date)    
# y1 K% s0 c6 Z返回date是一月中的第几日(在1到31范围内)   
* i1 b  z& J- X) n2 }% H/ nmysql> select dayofmonth('1998-02-03');    3 R" G- p7 o& o- Q6 _$ D
  -> 3   
# ^, n- B, d* y& o- a+ b
% i4 V: V: o: L/ o+ s$ y  ~dayofyear(date)   
- h. k' g: L4 J! v6 p; D7 b  g返回date是一年中的第几日(在1到366范围内)    ! K6 }# j: ]* d9 b  x/ |' W
mysql> select dayofyear('1998-02-03');   
7 N! {  `* _( p5 z" O: ~  -> 34   
2 ?9 ^" B; j) Q; m7 k ; ]& s  T# g2 Y/ f5 {
month(date)    % g; q8 z7 G: X& a, L
返回date中的月份数值   
7 G; H- N) n: j" V9 Kmysql> select month('1998-02-03');    : F6 O( }" d8 w  I) {. M3 C9 m
  -> 2   
5 p4 m  E& C$ R; |1 F1 ^1 @5 _
6 y* p" f  e1 f' e* Zdayname(date)   
8 |$ P2 W9 o8 {返回date是星期几(按英文名返回)  
+ U( _$ P& t: t& l) Q, Qmysql> select dayname("1998-02-05");   
/ L8 R0 E- U: y& u. r. I  -> 'thursday'    . A  }& `! t! p7 b2 G
% Y7 ^" g3 P+ n9 X9 q9 l5 A+ t
monthname(date)    
* \+ W$ v, M- u$ D) ]/ B$ a返回date是几月(按英文名返回)  
; X* E6 V- P# J) K$ S9 D4 Wmysql> select monthname("1998-02-05");    3 }7 G6 f& X4 {7 m* _5 f5 [8 O3 v
  -> 'february'    1 m0 W, i. q: T4 x3 U% r
" ~( y) e% C* W" i5 e5 K/ y' S
quarter(date)   
1 y7 M& U$ O$ N0 N0 X返回date是一年的第几个季度    7 a1 f6 y# f2 E
mysql> select quarter('98-04-01');   
+ T' H% q; n4 N7 ]) u: @  -> 2   
1 l+ i6 Z" N6 A! G2 [% ^ + X  x7 U& y2 ?$ i) g# o" p* {
week(date,first)   ( z7 N; J: @/ t
返回date是一年的第几周(first默认值0,first取值1表示周一是
# C5 L# L, ?0 L周的开始,0从周日开始)  9 b) B: E1 V, W/ P
mysql> select week('1998-02-20');    # `6 [* k4 W# d7 l' X0 ~
  -> 7   
+ M. C! z: a" N6 h# u2 X8 w8 q* Rmysql> select week('1998-02-20',0);   
) k, L4 H( o/ w8 k7 l  -> 7   
1 S1 W* }3 Q0 A; h% t1 L1 omysql> select week('1998-02-20',1);   
. }  T: i% w( H3 g  -> 8    ( s; l- L9 [6 a2 K: h
6 F7 f1 [  p+ T
year(date)   
' P# F8 A' Z# T. {# e7 t返回date的年份(范围在1000到9999)   
" D& W' C0 X6 ^2 Emysql> select year('98-02-03');    5 V1 E5 @! v) a
  -> 1998   
: Y" e$ K/ x$ y! B
5 Y6 S6 p! [* B# X4 h2 b$ [5 r7 i5 Ihour(time)    
4 t) _  L! L) b8 p4 O. P' G! x返回time的小时数(范围是0到23)   8 |$ S' A: l7 z# a6 G" Q
mysql> select hour('10:05:03');   
8 E0 T: q' I& V5 A+ [  -> 10    & G. K) G- t0 M" m' S- y* h4 Z
7 S  H' T4 c: |9 [$ Q5 ^1 K
minute(time)   
5 F( Q: I0 g* _3 O% z返回time的分钟数(范围是0到59)   
* s; e9 [8 ^, T& ^# b- r9 A' Hmysql> select minute('98-02-03 10:05:03');   
2 `+ r/ x; B1 b' ~  -> 5    4 `7 D2 Q8 S* X% M. k

, C0 L, S8 d+ J+ [6 M0 jsecond(time)      M$ [% U  X5 f# V" J& P  s
返回time的秒数(范围是0到59)   / q0 m% f6 S- C* ]
mysql> select second('10:05:03');   
7 {* {+ `, g+ \! n- }3 r/ [/ ^6 p  -> 3    ! l% m9 m) K) c% @+ m- m8 K  J. n
: L3 P; i/ L+ L( h
period_add(p,n)    & ]) V1 t8 S' K2 t
增加n个月到时期p并返回(p的格式yymm或yyyymm)   
0 y9 c0 d- Y$ t1 C7 z) I4 dmysql> select period_add(9801,2);   
% q9 E8 Q2 {# h; |  -> 199803   
! i& K8 u% ]4 U
7 G$ Y+ m7 q2 F/ X+ M9 R# Vperiod_diff(p1,p2)   
- F3 t: L8 {8 B4 A6 e4 l1 l$ M/ M返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  
7 L0 n4 Q! w" W# c7 C# Qmysql> select period_diff(9802,199703);    : y7 u! o2 Z' y! [; t" E5 R
  -> 11   
. c+ U* F7 `3 i( r$ M+ ~ ) P4 `& d$ R: y6 }+ q6 r0 ]7 ?' [6 h' V
date_add(date,interval expr type)  1 m- S- A9 A9 h% D
date_sub(date,interval expr type)   
- H4 x4 V" [7 z9 L- R$ m" cadddate(date,interval expr type)    : H; m% O4 V% W% W: ~( _, G
subdate(date,interval expr type)  
8 x( J& S$ P+ |$ s对日期时间进行加减法运算  
- o# f5 _5 P* G8 T. L# D(adddate()和subdate()是date_add()和date_sub()的同义词,也
5 k0 b9 g3 k. u9 r2 q' U可以用运算符+和-而不是函数  & U+ L6 y1 Y6 }6 N7 J. N
date是一个datetime或date值,expr对date进行加减法的一个表! F7 `7 D7 a6 s$ G( _  m: d: N6 u( Q- Y+ s
达式字符串type指明表达式expr应该如何被解释  
7 U/ N- A" X% U) A2 Y$ j) r [type值 含义 期望的expr格式]:  + S2 f; I* ^8 O. R0 d7 v8 y9 I
 second 秒 seconds   
) [2 j% A7 n+ @, D9 q minute 分钟 minutes   
9 U/ {: D# q2 F1 |5 G# Z hour 时间 hours   
2 B+ `% m9 H# ~3 }. M. ?% d day 天 days   
; i: {6 X$ [9 _) Q1 v& { month 月 months    $ i6 k/ W) d) d7 H3 M' }
 year 年 years   
, D" k/ ]0 G: L5 d; }2 _ minute_second 分钟和秒 "minutes:seconds"    / q& c. Y7 p$ _) i* P' ?  i% k
 hour_minute 小时和分钟 "hours:minutes"   
2 B. M5 \! V" E  M5 r day_hour 天和小时 "days hours"    , A& |6 t, L0 D) \
 year_month 年和月 "years-months"      Y: q5 \, v9 [. |
 hour_second 小时, 分钟, "hours:minutes:seconds"   
$ p5 h& Y  `$ X% l- F+ k; o) T5 l day_minute 天, 小时, 分钟 "days hours:minutes"    & y1 e9 |8 G9 S: y% p! K
 day_second 天, 小时, 分钟, 秒 "days$ A( X( n. Z9 P3 v2 f+ A1 v
hours:minutes:seconds" : i; Q& H3 }" h! u' @
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个/ L# x: y5 k7 u5 Y8 i) N6 l# m
date值,否则结果是一个datetime值)  
- L/ W* y3 S, B* Q8 O) P$ a 如果type关键词不完整,则mysql从右端取值,day_second因为缺
) d4 V: x$ n: s少小时分钟等于minute_second)  ; a  [" M* q. @1 a* }( {0 B
 如果增加month、year_month或year,天数大于结果月份的最大天
2 s9 \' G; [* a( E8 S$ O: }数则使用最大天数)    : W' {% S( o1 H/ O
mysql> select "1997-12-31 23:59:59" + interval 1 second;  
4 y  S) w, i7 {% P+ _ 2 j6 v; g2 ?+ ~5 ~* P- S0 [8 l
  -> 1998-01-01 00:00:00    5 h& M5 Q& T: m& D+ [
mysql> select interval 1 day + "1997-12-31";   
* ^' B3 c8 d9 {4 j  -> 1998-01-01   
3 ^; l% ?0 E: N4 Vmysql> select "1998-01-01" - interval 1 second;   
) O/ A: A# v9 t$ |" l+ F  -> 1997-12-31 23:59:59   
4 d5 i$ l1 T9 X7 S" A$ R" K$ N, ^mysql> select date_add("1997-12-31 23:59:59",interval 1
, R& A$ x  Z9 Ysecond);   
5 ~9 D/ S  B, B" r' C% B! J  [% l# |( U  -> 1998-01-01 00:00:00    8 R7 j) j6 R# [" q  F3 H
mysql> select date_add("1997-12-31 23:59:59",interval 1) N4 P9 q1 L5 B* t, o) T
day);    ' h; I9 s* ]/ J1 z
  -> 1998-01-01 23:59:59    - g, H7 d; d0 W( G
mysql> select date_add("1997-12-31 23:59:59",interval
% _, f- r; S& o7 F# Y' M4 f) g1 i+ k0 L"1:1" minute_second);   
- ]- k1 R) {3 [- c& W& }- U& h+ }  -> 1998-01-01 00:01:00    % u0 C9 x& h5 S6 h4 v. ?/ A0 }$ X4 t
mysql> select date_sub("1998-01-01 00:00:00",interval "1
! D. }( ~& J2 X. C- `1:1:1" day_second);   
9 x4 R7 h# W- R& G, u  -> 1997-12-30 22:58:59    $ d- t8 q# v2 f! {
mysql> select date_add("1998-01-01 00:00:00", interval "-18 z& C3 |* d* H6 g! Z' `6 {4 A
10" day_hour);  
, i% p& O, k: w! J  -> 1997-12-30 14:00:00    9 G4 F. f) o& n( m
mysql> select date_sub("1998-01-02", interval 31 day);    0 \$ B9 y* {: ~* S/ k: v
  -> 1997-12-02   
; W1 S+ {. f4 ?0 E% S1 M! xmysql> select extract(year from "1999-07-02");    " `  ~+ f! a+ z2 a
  -> 1999    0 C7 v" `( {$ z: n8 m" ]+ ^; }" o
mysql> select extract(year_month from "1999-07-02
* u! ^2 m: o( l, R0 W01:02:03");    ; q% [9 d6 T6 g& A+ b
  -> 199907    4 O8 B' ^) x( z' _; G
mysql> select extract(day_minute from "1999-07-02
( m- e0 m3 e7 R  v$ M& W01:02:03");    0 H2 Q' A" u7 n; B/ c7 c
  -> 20102   
. r. l6 u% M( M9 T& M
+ Y& Y" @) V3 s9 O4 Jto_days(date)   
) ]# D% U6 {' b1 V' a5 ^返回日期date是西元0年至今多少天(不计算1582年以前)  , J, }* g# [; [5 n1 x4 x
mysql> select to_days(950501);    1 M* F: M1 q: R  t! y
  -> 728779    " ~) O1 d. i& |! k  K- M4 d" s
mysql> select to_days('1997-10-07');   
7 @8 n8 E! c' j" [  -> 729669   
) `, |8 i+ g' g- D$ h1 Y4 p! c 8 j  m; B9 o2 G3 ~# ~- M+ m- ~
from_days(n)   
8 ~5 E: g1 n' |, ^ 给出西元0年至今多少天返回date值(不计算1582年以前)   
% n  S5 T0 h8 E: Z) Gmysql> select from_days(729669);    " J4 o1 x+ h# U% p$ m
  -> '1997-10-07'   
2 D8 X0 p! X! B3 c 4 D, k8 @0 k) g9 A+ T0 L
date_format(date,format)   
. U3 U. V+ B2 v5 \4 r 根据format字符串格式化date值  
. X. M/ Q" c' H, P. q0 G+ k (在format字符串中可用标志符:  
# O5 z. |) H  N- S %m 月名字(january……december)   
% N) B* U. F9 H# e %w 星期名字(sunday……saturday)    & i' M' _' R4 m- M* i; E
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)   
! a% p+ ?/ @4 }& h8 k %y 年, 数字, 4 位    ; g+ l' s9 n7 ]
 %y 年, 数字, 2 位   
, b- r# W8 s  r9 g: o& N0 Z %a 缩写的星期名字(sun……sat)   
4 c  @; j' d5 P+ n7 b% d9 K %d 月份中的天数, 数字(00……31)   
, z+ \3 p( {! ] %e 月份中的天数, 数字(0……31)   
% M: _/ }  |2 k' v3 ?7 X %m 月, 数字(01……12)    - u9 b! `8 I" B5 k7 S3 }, H
 %c 月, 数字(1……12)    ) {9 K& C, D) z$ @2 q' u
 %b 缩写的月份名字(jan……dec)    8 ]; \) [. g  q7 U+ F1 u# K
 %j 一年中的天数(001……366)    0 Z) x' @$ Q( ]! |' c4 @
 %h 小时(00……23)    ) R. }/ ?9 s9 ]$ e( n- ]* i
 %k 小时(0……23)    . q% \6 d& r7 X; ^
 %h 小时(01……12)    " }9 j" e# ^/ S) `" b
 %i 小时(01……12)   
7 @# `# |0 G' e# W3 U( j( l& M %l 小时(1……12)      g" v9 @6 O% G# C4 ]
 %i 分钟, 数字(00……59)   
1 \* w4 o4 G* J4 {) z: j %r 时间,12 小时(hh:mm:ss [ap]m)   
/ V3 ~0 S+ J3 R$ {* R9 t %t 时间,24 小时(hh:mm:ss)   
4 u7 N# y9 d: _3 q, m" x- J) \ %s 秒(00……59)   
/ r7 V1 S, V3 H1 b4 r  e %s 秒(00……59)    7 M6 p. ^0 M2 ], y: P" R8 a
 %p am或pm   
& d. L" t7 L4 c! K) |3 O %w 一个星期中的天数(0=sunday ……6=saturday )    ! V7 L' \( S! ^" A& ?5 @
 %u 星期(0……52), 这里星期天是星期的第一天    + R0 P' N; ]% x4 w! ^% r
 %u 星期(0……52), 这里星期一是星期的第一天   
/ ^1 L& W5 X5 V/ c( _; b+ S) Q %% 字符% )  / J6 Q" m" F% N6 q
mysql> select date_format('1997-10-04 22:23:00','%w %m %
* [% T# X8 s' P$ e" r# vy');   
& I& @& r" D8 D$ A- \* @- c* ]  -> 'saturday october 1997'      c8 A/ S% B% n
mysql> select date_format('1997-10-04 22:23:00','%h:%i:%
% A- m" K7 J" A3 h" [$ j5 H, Hs');    $ `6 P3 u1 b( n, y/ L
  -> '22:23:00'   
7 P: P8 [( T/ S2 q2 w- |% dmysql> select date_format('1997-10-04 22:23:00','%d %y %a) `2 K& N; }9 H# Z" t. g
%d %m %b %j');    2 Q& B2 ~/ c0 F6 j  t; d
  -> '4th 97 sat 04 10 oct 277'    8 ?' L8 e+ f( K. r6 h. I) {
mysql> select date_format('1997-10-04 22:23:00','%h %k %i
; s+ ~; d: b1 j! e%r %t %s %w');    $ \" A! G! W+ {: }
  -> '22 22 10 10:23:00 pm 22:23:00 00 6'    4 g: r# z) g; M$ w6 m- x

7 p$ i4 L6 Z& c3 T% Ytime_format(time,format)  / w9 t) S1 ?* {+ R+ L7 z9 c
 和date_format()类似,但time_format只处理小时、分钟和秒(其
% h8 X5 L  e4 a7 E' J  P余符号产生一个null值或0)  ( j- g6 Q* i% V% x, t" N3 y2 o6 W
% W  C; d1 E) t; `* T6 j6 @
curdate()     
( S/ r0 r  h* s1 C* Tcurrent_date()  
& g; M3 p  I) Y" J8 a( `( O0 r 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所" M. x; E* \8 d  v: O
处上下文是字符串或数字)    1 A9 z( S. A2 ^# ]# o
mysql> select curdate();   
& Z3 j0 v# B% c, i# r3 U3 H# R7 y* o9 d  -> '1997-12-15'   
$ i# \4 d6 c1 Smysql> select curdate() + 0;    9 _3 Z' f# r' R  @2 c# P
  -> 19971215   
3 O" M4 |* a# f- o
) O7 Y# v$ x3 a* ecurtime()    - a8 e" U1 g! t! [8 G  i
current_time()  / N8 X1 E2 A9 P- _# K3 u5 o' G
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上- W8 P! e8 E. I1 _
下文是字符串或数字)      # e! H1 d5 K' I  A0 _% m
mysql> select curtime();    , Q7 y( ?) F. p6 u
  -> '23:50:26'    ! _# J, U+ H- i& S# Q" q
mysql> select curtime() + 0;    2 T, a3 k5 j: ~6 p  Y
  -> 235026    6 {& r/ g- o, ]
, F& a7 m& a4 m( H0 t' ?- [/ Z- ]( e
now()    
" x4 v, L, |0 A# }sysdate()    ; Z( U+ Z3 y" E
current_timestamp()  
) Q' L' K& T/ ^3 l6 x 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期4 Y/ O& z  N$ N3 |
时间(根据返回值所处上下文是字符串或数字)     ( c; l& `8 t& ~: h
mysql> select now();   
9 p% v# [1 e& G2 d# R  -> '1997-12-15 23:50:26'    " a" {3 ^# G! H! c) [
mysql> select now() + 0;    0 S1 O1 f( `' W% v
  -> 19971215235026   
2 U% {" d' @3 J# o( j % w% K: O9 h8 ]  Q2 Q
unix_timestamp()    / p% C: ~1 j9 V7 I" A$ ^
unix_timestamp(date)   
  s: [- s9 r4 r( x, N9 Q2 V7 p, p返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
8 G+ ^: f4 N3 d/ e. \9 B8 i0 X: b数,date默认值为当前时间)  
; ]( y0 v: q* W8 r2 a9 }& n( ]: `mysql> select unix_timestamp();   
; k. Y  k' Q9 I$ R1 p3 ]+ N7 u4 a  -> 882226357   
  Z5 Z5 x; P7 Y6 d0 f- dmysql> select unix_timestamp('1997-10-04 22:23:00');    4 a" E: t  D6 y. K. R' T+ S
  -> 875996580   
: `( O7 s. z: O* }5 h; A3 H4 e
) t$ j" D/ ?0 ifrom_unixtime(unix_timestamp)    ' N  N1 w( ?, x" S; W: p8 ?
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的0 M; z+ I. O4 R" g
值(根据返回值所处上下文是字符串或数字)     & q$ k/ t# f  [: h( G, f" S
mysql> select from_unixtime(875996580);    5 ?  u+ d1 w* j. s$ ~
  -> '1997-10-04 22:23:00'    / Q/ Q* V; j2 q9 z- |0 }& f
mysql> select from_unixtime(875996580) + 0;   
" p! \5 d) V+ G( Y  -> 19971004222300    & c  o3 O+ x2 e5 E6 k
6 a7 l* R# V! N' K9 e
from_unixtime(unix_timestamp,format)    4 b. t! Y" Q9 `2 l6 {
以format字符串格式返回时间戳的值  
- E' m! e8 R- B0 R" Nmysql> select from_unixtime(unix_timestamp(),'%y %d %m %
* s9 K5 o, s# e- `h:%i:%s %x');   
- u& e4 c9 s! F  -> '1997 23rd december 03:43:30 x'    - d, z$ e' x6 g0 R" L8 K7 b4 Q
& ?' T+ _. m2 ^
sec_to_time(seconds)    0 K# o) b) M9 z
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
* [, l. k0 \, u" imysql> select sec_to_time(2378);   
, v% f0 ?0 |% E+ `; C5 ~  -> '00:39:38'    9 t- k0 _" ]. I! f0 s: B
mysql> select sec_to_time(2378) + 0;    ; c. q* Q; t# \, D. z
  -> 3938   
" r  a2 @8 |& d" D; r: |& h; l
8 T* }3 v! }8 [# M# atime_to_sec(time)   
# l# ]8 m1 O- Y返回time值有多少秒    5 [0 w3 k3 M. T$ i  |" s
mysql> select time_to_sec('22:23:00');   
: h8 v( ^6 ]3 P8 s; I1 D, L1 V  -> 80580      N- a' ~4 E+ j: k5 p0 g
mysql> select time_to_sec('00:39:38');   
9 z- t* E5 ^! l4 i3 N  -> 2378
& k/ d" }7 H& _, e' I* M4 \' t 1 B+ D7 Q  b$ n
转换函数" l  H  N) A* _) d; C6 l2 X
cast7 w4 J  k- f  J7 F( V
用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]. D1 H! U' X* T2 e
实例:select cast(a as unsigned) as b from cardserver where order by b desc;
( Z* z8 J' z7 V/ |convert:8 p/ c. c$ K. X: g& ?" j# d: u
用法:convert(字段,数据类型)* z" O* G! z( p: e1 q
实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
  q- ], Y( `7 h9 N& Y





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