中国网络渗透测试联盟

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

作者: admin    时间: 2018-3-21 16:07
标题: mysql常用函数大全
1、字符串函数
" r1 X; B. W/ e* L( I; d. G- dascii(str)   
1 n8 L! j0 |! a( W! f, j; ]3 m7 F  z$ O返回字符串str的第一个字符的ascii值(str是空串时返回0)  9 B9 r! M6 {8 z7 j+ y  C: F
mysql> select ascii('2');  ( Z, Z  L) @3 @) h! @
  -> 50  
! w) C5 b, _  _! A) u& Pmysql> select ascii(2);  
) w+ p/ q5 T  V  -> 50  
9 }5 a: J& c. l; \% Mmysql> select ascii('dete');  
8 [& G( a# q3 s0 G- ^6 R8 G  -> 100

% j) z# O) p* D0 a# ^3 y" _6 iord(str)   
& c* v* C1 |+ u如果字符串str句首是单字节返回与ascii()函数返回的相同值。
0 ?) n* Y% q1 |( r+ Z4 f7 I. T. Q 4 ~3 e! Q$ Q! R6 f; ]$ c
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  
6 o6 ^+ B: t% F- N2 `mysql> select ord('2');  
% N2 ~0 [$ k; k) A7 t4 M, o0 h  -> 50  , i0 O1 }  ]" l" N0 _
   9 z$ Q7 E( ]! {
conv(n,from_base,to_base)   
: {: Y$ Q0 U% q9 _$ e对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  1 [' E- \& d! [/ g2 Z/ N: R, j
mysql> select conv("a",16,2);  
; ~" z; Q$ |* b/ l$ S: ^6 G8 H  -> '1010'
5 o4 e3 r+ g% a0 b8 Imysql> select conv("6e",18,8);  
( H$ o" l. P0 C8 p6 W) P  -> '172' ) J: q) `. \* B: z/ S
mysql> select conv(-17,10,-18);  
% K' B" K0 E* f9 U9 ~/ ^% s/ u  -> '-h'
3 r1 c9 s& R) d+ `. a- b" @mysql> select conv(10+"10"+'10'+0xa,10,10);  
- z0 W1 m6 z3 N  -> '40'
- a) C( `. k" @( W5 ^3 _  P, N   
  v) w2 w" W$ p2 c9 C$ k+ Ebin(n)   * z3 V6 F3 y1 Y5 P
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  . N9 W0 W0 Y6 y, U
mysql> select bin(12);  
+ r3 y( |$ ?8 S  b. V6 M, Y  -> '1100'
9 B& X$ d' K8 v& W; E  q& @0 @) h
" R  Q6 C3 f2 {) Q9 q) J6 x; coct(n)   
# P+ J: _% @6 @4 a: d/ t( O& H8 z把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
: l5 m' E5 R( ?0 gmysql> select oct(12);  
# P1 r  x2 {& }# `  -> '14'
+ n+ a3 z) q: K- E9 u  ]$ L   / Z8 s1 q1 P- C2 @4 c
hex(n)   + N3 E  v( E+ F& G+ T  C/ \
把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  
* Z4 ]! |/ c  z" b4 ^mysql> select hex(255);  - o7 v4 s( ~$ z' Y4 i& Y; [
  -> 'ff' 1 G( X9 s% ~: |& `8 Z( `. ^2 ^# _
   , }+ K1 M9 T8 N8 i) B' l
char(n,...)   
9 e" I# Z6 y2 ^% r+ ^% u  c! p: b返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   / o% j' C- y2 T/ Z6 t$ n/ r
mysql> select char(77,121,83,81,'76');  , m0 m  a3 ^2 n! N4 }
  -> 'mysql' 9 a- N7 M0 Q' L9 l
mysql> select char(77,77.3,'77.3');  ; q1 m- T4 M" q: U% e! `
  -> 'mmm' - S! x9 X& u- F! j
   0 V* g5 g8 T) X. b& y
concat(str1,str2,...)  
6 G" c0 S3 m6 M& R  k' m/ d. V把参数连成一个长字符串并返回(任何参数是null时返回null)  ) A  R  n+ l- u. A) H4 i1 f
mysql> select concat('my', 's', 'ql');  
. g; b8 W+ t( e  -> 'mysql'
) [/ o2 A& G% N7 e8 Gmysql> select concat('my', null, 'ql');  5 H* m/ j- C3 z2 I' P' V
  -> null
: i, K" E. ]5 r8 S' r; Nmysql> select concat(14.3);  5 S" \/ g( D4 C3 Y4 i
  -> '14.3' % `% C% v) g' B9 |2 E9 X& L

' M! f8 f+ G2 a. i( g7 llength(str)   
* y- e) P* i, I) k5 h" @( u8 r8 Boctet_length(str)  4 C2 a2 _3 B3 d2 H
char_length(str)  
- E( Z, ?6 ~6 w9 R8 c) Wcharacter_length(str)  ( b' P$ q& [6 \7 S8 z1 N3 m* T
返回字符串str的长度(对于多字节字符char_length仅计算一次)- I* |8 |9 y  F" n5 G3 _; k+ t2 {
mysql> select length('text');  
/ A* {, t! d2 x, N  -> 4  
' H% d: E" _) }% xmysql> select octet_length('text');  
9 F0 K; u* L/ ]9 i+ X  -> 4  ) E/ C# h6 e% t4 }) u+ y

" K$ E4 j4 {8 l& b2 ]8 C' hlocate(substr,str)   ) ~! c, b4 {  G$ G! A( E1 ~* R) U4 w
position(substr in str)   1 b0 p( n# a0 ~% r, |: }
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
" o5 P/ Y% Z3 o) x3 d7 L5 nmysql> select locate('bar', 'foobarbar');  % s7 N' m/ T) u* y9 T' U" Q
  -> 4  
" n* v' i5 ~* \& O: i$ E2 dmysql> select locate('xbar', 'foobar');  
! F$ q" \/ N7 v. r# a( W( _  -> 0  
0 w$ H3 H9 k' K( T, y" U   
+ Z% @: d" D. `. D5 L9 ?" ?1 G) ?locate(substr,str,pos) 8 J% r& u- k$ Z/ E) w6 f( h
返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  . B8 P: z; i2 X2 M0 u5 \" F2 K
mysql> select locate('bar', 'foobarbar',5);  " D# t$ ]" V3 z! x( q
  -> 7  5 c/ r/ N/ }. d7 H
; B0 ]! H0 G# G& v8 k
instr(str,substr)   2 ^5 Z* z4 O" O* v/ a# }
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
8 {! s7 B0 u6 h  \- x2 w' s7 Y& Bmysql> select instr('foobarbar', 'bar');  
7 T0 z. K" u6 p! o2 N+ o  -> 4  8 M) D' c8 B3 f5 _% `! k. l1 a
mysql> select instr('xbar', 'foobar');  
5 V* }9 E: i0 N  [3 S! V  -> 0   4 R) i* k% s; D% e

* x: W, l7 }2 F, Dlpad(str,len,padstr)   
& I' P# A* A& d( F  z* a3 I/ W4 S用字符串padstr填补str左端直到字串长度为len并返回  
1 N; W# `( X% {0 K6 r1 o4 n% _mysql> select lpad('hi',4,'??');  
9 r7 j( Q: ]/ I9 w9 g4 l  -> '??hi' ! H: B. |- V; f
   
5 s5 g8 z: K* H1 p! s/ J3 s+ {rpad(str,len,padstr)   , Q1 r8 O' I2 W* ~& {" O
用字符串padstr填补str右端直到字串长度为len并返回  
$ z: x* \* g. i7 v8 G- Gmysql> select rpad('hi',5,'?');  6 S9 c! G) G+ U0 M, }
  -> 'hi???'
7 r) y& f  d" J% l2 v5 P9 g + O3 d; n; ~. r: Z3 ?9 U1 D
left(str,len)   
% u' v! F7 |4 W" R* C  t返回字符串str的左端len个字符  ) s3 P2 _4 ?' j& [/ K% b
mysql> select left('foobarbar', 5);  
0 a# s6 L+ r  G) G0 R* b  -> 'fooba'
( R* k) F7 ~9 x) H, O% v( h
! \* p. i4 }! v& D7 R' R5 l& cright(str,len)   
9 V$ K0 Z! F4 w' `3 x7 E- F1 l! l返回字符串str的右端len个字符   
6 \" m3 X! ]) fmysql> select right('foobarbar', 4);  7 f3 _& z: O. _2 C* J
  -> 'rbar' ' n* [" v  {; ?- _. v/ y, `& `

) ?9 a- L  z! B& s9 l- T% `substring(str,pos,len)     H2 p6 E* ], l* l1 u( N
substring(str from pos for len)   
9 h+ V8 i' M# I0 L) U3 |: `mid(str,pos,len)   + c& ]6 U$ h+ e! i
返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
& ?6 a) o3 ]8 v8 @$ {2 M( E+ K  -> 'ratica' 8 V; z; i% t0 E1 i
/ |% c$ v4 u; ^6 H4 E) z
substring(str,pos)   
: W4 E7 t; @: g4 M" D$ ~substring(str from pos)   " ]" m8 Q$ S9 @* q3 c4 ]) r
返回字符串str的位置pos起的一个子串  
* V7 ?3 O# O' I& q# Mmysql> select substring('quadratically',5);  
& p) Y" s% t% \  -> 'ratically' 5 @9 D7 j# K$ n+ t6 k1 ~8 j
mysql> select substring('foobarbar' from 4);  
6 n$ ~9 G( h2 A/ r* _% C( Z  -> 'barbar' ; k6 D* j$ [7 ]8 q4 _
( o& i, u; k& O. p+ n. L
substring_index(str,delim,count)   
! b& k2 G- E& Y3 h5 i  q返回从字符串str的第count个出现的分隔符delim之后的子串1 ?  g& J- b3 ~$ b% k
(count为正数时返回左端,否则返回右端子串)  
5 m% d# `; P% T! v' ?) F( |: nmysql> select substring_index('www.mysql.com', '.', 2);  4 V" Z9 \; _0 g, J# l9 a6 D5 q* h
  -> 'www.mysql'
- c. d4 o( m" Zmysql> select substring_index('www.mysql.com', '.', -2);  3 v  j" j) }  g/ Q- g! ^# f0 i
  -> 'mysql.com'
& v  B5 c8 T9 P  Z' M: N* H( t+ ] 8 W+ W. H/ T/ F
ltrim(str)   
* L/ q+ [/ q+ J& H7 @: G返回删除了左空格的字符串str  4 _+ v) V* ^$ ?, Z
mysql> select ltrim('  barbar');  
, F, r8 K/ m- {& q  -> 'barbar'
0 I) f8 _8 |: r  X2 n' C/ R4 f
% R+ [% ]3 ^1 w. b/ c2 xrtrim(str)   
4 I! g( A1 b" ]: m9 p! k返回删除了右空格的字符串str  
& C0 M' w" B( _8 V& p. ^( Amysql> select rtrim('barbar   ');  " E8 I9 o( d0 @6 V7 n
  -> 'barbar' 8 D3 }8 ~% \- y5 c8 P  S9 Y
5 J4 ]6 N+ f( Z' p0 [
trim([[both | leading | trailing] [remstr] from] str)  
" g7 S: t7 B1 o' ?% b: T* _返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
9 W; ~7 ^% k$ Smysql> select trim('  bar   ');  . S) b5 r4 o. Z8 [" H* [& E
  -> 'bar'
3 q# D) r- a) z  o" z! Y  h8 Amysql> select trim(leading 'x' from 'xxxbarxxx');  
! B' P" y& U9 F& a: i8 ?  -> 'barxxx' 4 x. b! D, o& a7 ~
mysql> select trim(both 'x' from 'xxxbarxxx');  ' N. n1 W2 v$ V! [+ F
  -> 'bar' 4 `4 D4 F$ Y) R" Z  F
mysql> select trim(trailing 'xyz' from 'barxxyz');  ( G/ h. J7 ~2 ~5 W4 b8 W5 ^7 B" s+ D" U
  -> 'barx' , Q! D- X& f, N( y: H6 {

: i: W/ E" l1 ^* }1 c$ Z+ Z( V7 esoundex(str)   ) l' p1 y) [$ Y. i
返回str的一个同音字符串(听起来“大致相同”字符串有相同的, E9 f% ?) y  p# h- R% b
同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  1 C' p% w* ]9 A
mysql> select soundex('hello');  ) G! p$ I- [8 K
  -> 'h400' ' _- ~5 b3 h  V% d7 C
mysql> select soundex('quadratically');  - Y# |% x0 R4 \! {( l
  -> 'q36324'
1 D( r# J& I7 t6 m2 l( i$ F& G   ; d$ O+ s) ?9 I7 M; G5 m9 V
space(n)   . R" v4 ^- r( [+ L* i( I5 f2 C
返回由n个空格字符组成的一个字符串  . R% k7 f; X' z4 ?) D' W
mysql> select space(6);  
% {: l  I9 C2 t  Z7 l- G! k1 s  -> '      ' 1 U8 Y) ]" I5 z% a8 N% W' \& ^
   . E9 b  O% q' Y7 E) ^8 P' J
replace(str,from_str,to_str)   
  ?6 o3 }9 M! O( l( C用字符串to_str替换字符串str中的子串from_str并返回  ) _, |) n0 l  J3 o. G; h2 Y
mysql> select replace('www.mysql.com', 'w', 'ww');  
& h- S* j9 ^6 w% N1 g  -> 'wwwwww.mysql.com'
( P5 D* ?: c/ }% Z+ R , J' i  P+ M# `7 i* |$ ?$ {
repeat(str,count)   , E3 ^; G9 x. t5 a- G( b/ _6 \
返回由count个字符串str连成的一个字符串(任何参数为null时' ]% o& w# t8 f
返回null,count<=0时返回一个空字符串)  
7 ^6 e4 w- `7 r/ f. N; Zmysql> select repeat('mysql', 3);  0 O; @; L; D% |7 G4 t. D
  -> 'mysqlmysqlmysql' 7 ^9 A1 q1 t0 U5 j
   # c& ^& l( }5 I; n. W
reverse(str)   / P4 g' p  Y; ^! Y
颠倒字符串str的字符顺序并返回  ) k3 X5 Z7 m( ~: P) `
mysql> select reverse('abc');  & ?) g+ G: c& s: C2 i. ?" h
  -> 'cba'
2 M4 ?$ G+ l' E0 c6 N# z+ |
5 C8 h4 X* Z$ q* ~7 \. Minsert(str,pos,len,newstr)   3 R5 [$ S' u7 a( Y
把字符串str由位置pos起len个字符长的子串替换为字符串$ \3 x) ^! O( F' @1 j
newstr并返回  
; i: S3 `$ t* L$ ]7 D3 omysql> select insert('quadratic', 3, 4, 'what');  8 ?! ?7 ?& }6 z# m4 b8 w
  -> 'quwhattic' - O( _5 g  S7 j1 ]
  e' [0 a7 f% @
elt(n,str1,str2,str3,...)   - l! E/ K5 s5 U( X7 ~$ ~0 M
返回第n个字符串(n小于1或大于参数个数返回null)  
+ P! q. p& |3 J; w) |+ Y$ K! Tmysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  
! x  d9 Q1 x1 f9 @, E) A9 o' O  -> 'ej'
( C* s: I1 \0 J4 z/ smysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  
, }6 {. Z$ n+ q; c  -> 'foo' 7 ]9 ]9 X0 Z5 y  L

0 |8 `* V3 z' T6 h4 kfield(str,str1,str2,str3,...)  
; ]; g; M+ L0 t3 r返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
( C% g( I7 d( h0 _. W* P' ]mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
% u- B/ z! d: G3 H" s'foo');  + x; h: w2 e2 {5 e. o0 s
  -> 2  " _" g: y$ s# e$ f0 ~8 @9 j2 {( B
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',+ U5 U# \9 P' \- c
'foo');  
; h8 m0 q$ h7 [6 p: ~  -> 0  
/ J6 Q0 |$ c: s+ @. C- n
6 c  d# C4 P& m* r/ [find_in_set(str,strlist)   
! S5 L# h; {2 r( B返回str在字符串集strlist中的序号(任何参数是null则返回
5 n. _0 I. R2 I6 h+ G8 c# G9 J7 {8 unull,如果str没找到返回0,参数1包含","时工作异常)  
4 X7 D/ H+ n; o" f' p& {  kmysql> select find_in_set('b','a,b,c,d');  $ Z; y3 w6 W7 o8 b1 n
  -> 2  % H4 |7 D; k; o" b
   0 Q6 a$ m3 i: J9 m5 N
make_set(bits,str1,str2,...)  1 B3 `( C) K2 P8 X2 `) t/ X
把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
- Y( U+ }& ]3 E, Q$ X! F位置的字串选入字串集并返回(null串不添加到结果中)  
4 t9 q# z1 {- e4 a0 i0 `* hmysql> select make_set(1,'a','b','c');  
' l, ~0 _% q8 n3 ~/ W9 ^9 ?0 w* c  -> 'a' % D# @! {% q$ r# A  ^& L7 O  b
mysql> select make_set(1 | 4,'hello','nice','world');  
7 M. k5 |" e7 K- _; F1 I  -> 'hello,world'
- ~+ `% \3 Y" J, K% u# u, amysql> select make_set(0,'a','b','c');  
, w; E. y6 z( }! C0 o  -> '' 4 A+ u8 I5 A, k/ g
$ p. p* j: i9 `; @% f) x1 F% }2 x
export_set(bits,on,off,[separator,[number_of_bits]])   ) \1 s. D2 o5 @( L( D
按bits排列字符串集,只有当位等于1时插入字串on,否则插入
" U* H  R# |- }off(separator默认值",",number_of_bits参数使用时长度不足补0- i, q2 k: o3 N* }6 T5 v
而过长截断)   ! L+ g) n8 l& Y, r7 w8 v
mysql> select export_set(5,'y','n',',',4)  
- G! ]% B$ r( h' _7 H# K' ]  -> y,n,y,n   
# t/ F; f, i. t; A9 R! I4 T
, C6 M) I7 j$ N( Blcase(str)  
* c' T' x5 A6 M+ s7 Y/ I: llower(str)   1 _( d% y: O6 X/ J& C3 d2 M7 [
返回小写的字符串str  # ~. T$ z  I. F' F9 l, w! {: l
mysql> select lcase('quadratically');  + W2 j0 C) l5 E, x+ q
  -> 'quadratically'
9 @& V( h: L' J% f( B   
/ H: j% C# N) ^& F, [ucase(str)   
% g  R3 W7 T; y$ V3 j8 ~" o+ I/ m( Nupper(str)  
3 S$ r) ?' X/ ?) s返回大写的字符串str  
# x0 R8 _: u- m* jmysql> select ucase('quadratically');  & B* T9 X* ^( W$ X! E
  -> 'quadratically' 5 F, H! S, r: }5 f( X
, T5 g9 L! b8 ~5 ]5 d$ H( \
load_file(file_name)   
' S. E7 m5 g1 `# ]' ?2 J读入文件并且作为一个字符串返回文件内容(文件无法找到,路径
* e: `- u* W  r' F3 |; t不完整,没有权限,长度大于max_allowed_packet会返回null)  , s+ w* Q  @+ D  E
mysql> update table_name set blob_column=load_file# m* B* [  Z/ _; p
("/tmp/picture") where id=1;    Q2 u# T6 \9 K6 }# f) r& `* P. R4 @" E

; U) F, k6 x0 P7 ^2 |) R* E2、数学函数+ n0 l* Z) D3 `7 u3 S+ l# t& c
abs(n)   n; ?% {. F4 L: X2 N! Z
返回n的绝对值  8 _0 }4 a$ o5 B, D. H! y
mysql> select abs(2);   
' N" l9 O1 d( u3 l: J  O  -> 2    0 t6 v8 U$ [7 i& ?' n  u
mysql> select abs(-32);    4 G( `3 e/ j7 g# R
  -> 32    * R$ S" G) m: V( \6 |) h
   
3 ], p( B% ~& m$ ^8 }7 ?- v. w, J1 hsign(n)  * y5 g& w, l$ N! @/ }* b
返回参数的符号(为-1、0或1)  
* N# a4 @5 g& n9 Mmysql> select sign(-32);    - o& ?- a% Q+ G$ T0 J5 ~
  -> -1    * _9 n3 Q6 |5 D( d, F+ l* k$ w# W
mysql> select sign(0);   
& i$ b2 B: X9 i" H/ \$ j  -> 0    9 C" ?6 s: j6 Y) T# ]: R4 Q
mysql> select sign(234);   
+ t! U- c+ x" e7 u$ {3 F7 Q  -> 1   
8 a7 N7 F4 y4 e% Y  p( y. W
4 n4 o& }4 }1 M7 Gmod(n,m)   
( u9 b" I  w8 Y取模运算,返回n被m除的余数(同%操作符)   
5 U# f" v* `; X, f! zmysql> select mod(234, 10);    ( Q( ~4 ^4 p" o$ i/ p* {
  -> 4    0 F1 V: ~4 n+ J& O% i, @4 I
mysql> select 234 % 10;      r* C, d2 w7 q9 S
  -> 4   
- |0 D1 q+ b& V" Hmysql> select mod(29,9);    ( ?9 E3 \. n, A" z6 C+ d
  -> 2    * N$ H8 f& b1 l! T& t1 W% a

# v- Y9 p9 L' ]1 Tfloor(n)  
) q: @' I( I+ Z返回不大于n的最大整数值  
: m  k( H7 n0 z! w* q  Omysql> select floor(1.23);   
# H* J$ a$ e& K$ u  n5 L- y1 H  -> 1    1 C" q2 z% r9 J
mysql> select floor(-1.23);   
" v4 a7 A! g# z- j# t# ?! H  -> -2   
; L7 p1 ^* G- f5 X: ~& W ! M  W2 F& t0 n) O7 u4 G5 I
ceiling(n)  
8 n( e! w/ s2 W. G+ c返回不小于n的最小整数值  : i1 W* g) c" d1 Y- i% t4 a
mysql> select ceiling(1.23);   
- \* u( k) f. c  -> 2    5 a: A  M1 m# U6 U, P
mysql> select ceiling(-1.23);   
2 @2 ]8 m% j# ^9 b2 }. S  -> -1    / s  s! s3 `: N* U, H/ U. y

( x* M7 A! |7 V" s: |0 l8 j1 R) p  Iround(n,d)  
9 ], m6 ~3 k! K" T% ~$ F. k) T返回n的四舍五入值,保留d位小数(d的默认值为0)  - s6 }2 c4 V8 B
mysql> select round(-1.23);   
% ?: }3 Q3 d" E8 v8 w  S/ w  -> -1    & n! @: r- \1 ]7 J3 n! ?' q
mysql> select round(-1.58);   
, f( ~5 Y0 I& t& p1 U/ q  -> -2    / N' N8 T$ s3 o
mysql> select round(1.58);    ! P9 W) o* g( u
  -> 2    % S. X. r' e# W9 O( g% o
mysql> select round(1.298, 1);   
4 N! J$ `8 K& ?/ G9 g* H  -> 1.3    5 b) `, i# ^. d; y6 S
mysql> select round(1.298, 0);    , \4 O; ~) J  x
  -> 1   
1 b( H# e7 d. g4 a2 s) y) b3 A6 a 0 N8 G$ G+ c0 f1 v3 ?! e
exp(n)  : U7 \+ M' {6 Y8 u$ d
返回值e的n次方(自然对数的底)  3 G% B, q6 @  f& E4 i7 t* _# n
mysql> select exp(2);    8 v/ _: @. |/ x
  -> 7.389056    + g2 X" {9 Z" ]) d
mysql> select exp(-2);   
( h% D4 d8 u7 j4 B& E  @) p  -> 0.135335   
9 ?7 P9 ^7 ^9 k# d& I# m4 A 9 g; }0 m  g: l3 ]! T' Y
log(n)  & g) T8 r9 O$ G# z. K& F) F
返回n的自然对数  
5 z, I5 h' [( @mysql> select log(2);    5 v- t: x( F. i4 E: ~4 D* Q2 ?
  -> 0.693147   
8 {7 E6 q8 B; e$ ~+ H$ emysql> select log(-2);    5 Q8 V' D9 b' i2 c2 L! N
  -> null    + x6 e" _$ Z0 v* g% n

5 m1 J6 F1 V/ b) Xlog10(n)  
# t$ _% _$ k+ ?( b( {* b$ r返回n以10为底的对数  8 |$ w8 l2 E* v1 M. z$ B3 R# c
mysql> select log10(2);   
, W% v& a/ [: W& }* {  -> 0.301030   
0 m2 X6 t3 [+ E. D7 P) umysql> select log10(100);      P& l4 @9 j8 w# c! Y/ [& F
  -> 2.000000    0 m; T! ^5 Q& M5 ~0 g' \! W
mysql> select log10(-100);    3 l: g) u/ C( ^5 z& ?. r8 y
  -> null    0 X& I5 V2 ?4 l5 s& a1 r

" V' E# M4 z( q8 d  ~: h" H! bpow(x,y)    & Y; k/ d( I% |, n% |$ ^
power(x,y)    * o! O+ m/ J- f- T6 k& S6 ]
 返回值x的y次幂  
6 W8 [# M3 h1 y6 }, r" o$ Lmysql> select pow(2,2);   
# v; e# P# h* S  -> 4.000000   
2 E; {; C4 V9 B* B' @) l( ^mysql> select pow(2,-2);   
: k7 g1 y/ l; l6 x. Q  -> 0.250000  
/ n8 z/ y0 n' H* y4 Z% }
* Z1 K. S, j5 J0 k9 R- [$ y: Asqrt(n)  
; T& v" s) b* @+ t. D 返回非负数n的平方根  + n# n* x. ?6 k5 F4 M' }
mysql> select sqrt(4);    1 X& K3 L: l7 x4 S
  -> 2.000000   
: q  p- ^; W1 P. }6 Y. Qmysql> select sqrt(20);   
: s4 S$ _, s# x) E& ~  -> 4.472136   
# ?# L8 G  ]* @/ Z/ e; e* O / Z6 A2 V" H# b) |2 H
pi()   
5 @( q) g. p# i6 q. a 返回圆周率   
2 @& ?& b+ l& N9 ymysql> select pi();    " ~$ k" u) i# Q% I
  -> 3.141593    : s2 _2 x# O6 r6 K5 U. t

  T) W6 B/ b4 Y1 k; e' C3 scos(n)  ; {% g5 C! N8 Z" ~7 P. f2 o
 返回n的余弦值  
; W2 {% W% f1 O* h+ _. [mysql> select cos(pi());  
/ S! r# }1 ]7 Q3 E  -> -1.000000    - J4 [3 v, g  b7 M  r; Z
* t% w4 _. E; n/ W
sin(n)  
( O' |6 m2 R  S9 C. x; `( J$ u/ n 返回n的正弦值   
$ @' D/ z% V+ F$ C. tmysql> select sin(pi());    ! C9 Y6 s+ y* d9 B7 S/ r; v
  -> 0.000000    / @0 ^1 n5 m  x# k1 H

; C+ q% z6 @: c0 ctan(n)  
% T# e6 b1 f7 l8 I返回n的正切值  
+ v# g& b7 g9 ^mysql> select tan(pi()+1);   
! l- t' n! A) ~% i, Q+ ?" r/ e  -> 1.557408   
3 \0 c# Y1 G* C% _ 2 i0 j( [2 `- F% F7 X: |
acos(n)  , L; L* b1 l+ n  _6 x7 c
 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  + ~  d: a5 I  O% ?- ]  y
mysql> select acos(1);   
/ ^% v' w5 J6 H" ^2 {& S- ~1 Y' _5 k  -> 0.000000    + I! \6 t5 z6 ^/ O
mysql> select acos(1.0001);    / @1 K+ l9 O7 z4 g. S5 N1 ?$ D
  -> null    3 |/ E+ o9 D" j; L: {
mysql> select acos(0);   
, u' c6 l9 s3 k3 Q  -> 1.570796   
$ U8 r+ C4 j; j# l% \$ s  U5 q; r) u
7 c- ?: g+ h0 S7 H. ^- H& n/ Casin(n)  
  ~7 W1 L9 ~0 y( k9 [4 F返回n反正弦值  % J. _. F7 f9 N& s
mysql> select asin(0.2);    : a# d) G0 @" p) v0 r/ }) P. C
  -> 0.201358    & h# R/ B, t  K) T
mysql> select asin('foo');   
1 w1 _' Q5 V- p4 o* `  -> 0.000000    5 K# K1 ?& u% T) M3 j& W  B! O7 }

4 P- V7 H7 b: H- k* e, x! m$ Matan(n)  & |' T- n; {) o
返回n的反正切值  
  \8 a& w% ?. e9 `/ omysql> select atan(2);    - i6 W  ^  N* g5 E0 H
  -> 1.107149   
5 K  @1 I% a9 ]mysql> select atan(-2);   
6 k. x* C! I4 n$ S  -> -1.107149   
5 N+ t3 o3 I5 E% T! }atan2(x,y)   
9 F# y% _1 k/ j& q" \+ h 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  
: A; U( e2 C1 B2 h. amysql> select atan(-2,2);    " T/ `$ J, h" X. ?( y
  -> -0.785398    & Y" h" g: u, q+ y
mysql> select atan(pi(),0);    + m1 {4 l6 r1 {, _4 D
  -> 1.570796    0 O/ ^2 E5 y" s

$ A8 F) `* G6 f! V5 o2 zcot(n)  0 O1 U7 e  H, M$ R
返回x的余切  
3 x4 s# k) k  @/ b" ~mysql> select cot(12);    " e& U8 r* x) g% o
  -> -1.57267341   
2 v$ u1 C! D* J' P; f% n0 cmysql> select cot(0);   
9 _; X& o1 y/ v" L) e& R( d; n, z  -> null   
. u+ m* t. H( d& d, d) _
9 p% P+ T+ u0 q' Xrand()  
, m+ t- U0 O1 }! K2 arand(n)    / m* w# \' e7 c" x+ R( ]7 M
返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
; m1 ?4 Z( E2 d: d ' @# l1 m, f* U* N
mysql> select rand();   
( ]0 u" {9 T4 K& k2 w1 Q0 v4 g  -> 0.5925   
- U" C8 n* S% E) m: nmysql> select rand(20);    0 H" Y2 e  r# p6 ?$ p
  -> 0.1811   
( w/ G7 s) U2 f- ^( Z  _& X, Gmysql> select rand(20);   
8 s; y5 x+ o/ b% t; \( O; i$ O" w2 q  -> 0.1811   
) O; K' _5 x+ Z+ V" g, X$ s+ amysql> select rand();    + H3 N$ `' }2 v& D; }. R% S
  -> 0.2079    8 @2 J% u$ _" S; k
mysql> select rand();   
- \1 v8 Y, C2 J1 T4 n  r2 }% J4 w  -> 0.7888    0 j1 x; l; A% k' A

6 C! N2 E: G  fdegrees(n)  
! Y4 l* [/ |  n1 }! r把n从弧度变换为角度并返回  + J, z! ^. a* f9 N. w$ k2 c/ Z8 x
mysql> select degrees(pi());    1 M) ^1 S! z8 q; b+ ^$ V+ i" H( q
  -> 180.000000    " J" p6 p+ V, r' U/ [

! j- \" G0 e/ T5 c2 s- ]% hradians(n) 0 S7 P: @$ w, x; e/ i
把n从角度变换为弧度并返回   " I: N) V/ ?7 o, M* F7 G
mysql> select radians(90);    1 q5 L' K. v' I& n5 p$ Z* r, T
  -> 1.570796    2 m7 ~& u$ Q; k- N$ O' q

5 ^2 l" z4 c* M4 y* p! m6 ~6 ^( v$ Ptruncate(n,d)    4 v  ^/ }4 P8 E4 z8 L, i  |
保留数字n的d位小数并返回  3 C# z5 E& {, R1 n6 w: i$ d
mysql> select truncate(1.223,1);   
! n) K5 j: D! n* }( ~/ }  c  -> 1.2    & D$ O: f2 w& ]1 h5 P# W1 t
mysql> select truncate(1.999,1);   
' z( K+ D; k7 b- k# X  -> 1.9   
2 X* V* o: E2 K6 z; Wmysql> select truncate(1.999,0);    ! H& `/ R4 [1 a, L6 S# G
  -> 1   
2 M: G; k% S# M) F5 A( D
9 M: r/ G" j/ b9 n8 cleast(x,y,...)   
$ Q: V2 i& f7 I1 ^' w返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
" r, K. |  t: bmysql> select least(2,0);   
& z; y* A' t& q) l  -> 0   
& G$ Z( C8 Y' Q6 |- C, tmysql> select least(34.0,3.0,5.0,767.0);    % V: m% t* \( a- b
  -> 3.0   
' e1 }1 \1 C; D4 ~- }mysql> select least("b","a","c");    7 y2 A; q. u* W3 w7 V# N/ s9 z
  -> "a"   
/ g' K+ V  S# B8 S7 @
; v' A6 B# O; D/ ugreatest(x,y,...)    5 O) }+ V/ J" L' l
返回最大值(其余同least())  
/ g, J& P/ }$ S" Dmysql> select greatest(2,0);   
6 e0 x5 k- {3 R7 P4 L" R  -> 2   
& w. j/ B  y% |# Amysql> select greatest(34.0,3.0,5.0,767.0);   
/ T' |' z4 a1 o+ ~: `. Z4 |3 J  -> 767.0    1 Z4 Y% j5 t  |3 L# a$ t4 Z" F0 q
mysql> select greatest("b","a","c");    5 {2 }2 D1 ~( z! [$ L
  -> "c"     
: s' @/ v( T) d: D  O: |+ I1 B( R  r. C" u# u& A9 o
3、时期时间函数
: V# N$ b' Q& ?dayofweek(date)    6 [& F; [" ^0 Z- i4 g$ F& D+ q
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
, T/ s4 C  V+ x  m* C6 r( z" |6 `mysql> select dayofweek('1998-02-03');   
& R) d, _+ T' \/ L# n  -> 3   
# l$ h' b, {8 d' w+ T % w6 x, k2 }  \# }! s2 H
weekday(date)    8 R2 C/ [/ |& e+ F" t6 W& q' L
返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 " P3 ~+ f. D4 {- L
  
, ~0 Y/ }1 B8 j8 l8 emysql> select weekday('1997-10-04 22:23:00');    9 D8 W4 `# z9 ~7 L) Q, R/ N% E
  -> 5   
* g8 w& {5 w, ~. u+ imysql> select weekday('1997-11-05');   
  o! ]5 [& z; ]+ M& u: v  -> 2    * a+ Q+ ^3 S( {( ]& A1 m0 d* ]
9 d6 t# j* [5 V, l
dayofmonth(date)    . c" @7 F' }/ ~$ s8 m
返回date是一月中的第几日(在1到31范围内)   
1 n2 T6 L2 |4 gmysql> select dayofmonth('1998-02-03');    , M/ `3 v/ l/ O" }# C3 T/ _% D
  -> 3    9 k) `, @$ y- k2 B  e

1 ?- R# O, q* ]: pdayofyear(date)    ; x2 d! y8 i0 M- u  @" m( B3 T9 u
返回date是一年中的第几日(在1到366范围内)    6 |4 l+ I* d( ~0 {" ]$ c
mysql> select dayofyear('1998-02-03');    1 e% v' U; K" e: l
  -> 34   
2 N' J6 w* b6 T2 H+ w9 j7 ~
2 Z) A1 \9 @# [, }1 |: u- Gmonth(date)   
( R0 N% t% `/ @  h) m2 l返回date中的月份数值    6 f1 U3 b/ B- r2 L3 ?- H+ ~
mysql> select month('1998-02-03');   
, U4 \0 J) t2 n! Z2 u& P1 e/ B  -> 2   
' j" ~% n& ~9 f3 M* [2 O ' }7 L, r& _2 I1 k/ I' |/ n
dayname(date)   
1 c" d4 }8 |7 p2 H3 B4 e" o返回date是星期几(按英文名返回)  
1 m! Z7 ^* h! U. P  qmysql> select dayname("1998-02-05");    , W' j; N8 L$ l# @4 j) H
  -> 'thursday'   
3 J2 n( J! _/ z& j  j
+ R2 f+ R: g4 \% u' o! L4 umonthname(date)    
2 g+ v2 x, @; S$ `& r) z, W% m0 L返回date是几月(按英文名返回)  0 H6 Y+ l6 L* K8 N
mysql> select monthname("1998-02-05");    ) C1 t6 ~$ C4 @, A- w/ d
  -> 'february'    - T. ^5 ]/ A4 K6 q' e4 y
. i) B# N) Q  [  m. W3 Z  o7 X
quarter(date)   
- Z# s, {& y! n" ^+ S/ i0 E返回date是一年的第几个季度   
9 m4 n, J" S8 F1 t* c2 u: \mysql> select quarter('98-04-01');   
( m6 q  n& @2 x  -> 2   
7 T/ L  l% n8 D; }3 [# \% ]
/ Z4 r# P* }  E  U) K+ J! vweek(date,first)   
" U% P; T. @/ c* G; V& _返回date是一年的第几周(first默认值0,first取值1表示周一是( [3 D2 C6 ?) f$ A
周的开始,0从周日开始)  
% f: ?) w- O: Qmysql> select week('1998-02-20');    " ~1 j# Q. ^$ X' D% `- Q
  -> 7   
" P* w: ^9 C6 {7 c; r2 n3 Xmysql> select week('1998-02-20',0);   
8 {6 l7 M% O9 M* i1 u* Y  -> 7    4 N! K8 e) N  Y% R
mysql> select week('1998-02-20',1);   
+ o, \  s  G! e* P* u  m  -> 8   
6 R& O5 l) j$ g+ r2 ~, |3 f, A
, ]' A0 d- }9 Gyear(date)   
  b" Y2 n5 P4 g0 s8 T% ~返回date的年份(范围在1000到9999)   
* c! y3 a& i, ^8 U8 v3 S8 tmysql> select year('98-02-03');    # L  Z# j( V  L* `  r
  -> 1998   
. i5 X% q- l5 W, m + p  W3 q4 O4 u$ y; k4 U2 i$ M
hour(time)      v$ j& Z% ~& q
返回time的小时数(范围是0到23)   
6 i" T/ E8 l* w6 `8 Y# @mysql> select hour('10:05:03');   
  |/ c2 t0 W! d4 I0 ^9 n) n' }  -> 10   
# A" k. o! s. N6 R' y. h 7 y' `! N! V3 t$ P
minute(time)   
+ k2 `, X& R. a& b$ I返回time的分钟数(范围是0到59)   
* m2 b8 g+ j1 Z0 rmysql> select minute('98-02-03 10:05:03');   
6 @7 ^  J1 u0 p. [1 C  -> 5   
1 C: |  z1 c/ K# g
4 Z9 W, V; k  t) c  V3 msecond(time)    
" v* W0 O* e2 l3 N, [返回time的秒数(范围是0到59)   4 y5 m2 z: K$ b  G/ R
mysql> select second('10:05:03');   
( m3 o4 ]7 R# K( G9 x% v4 S  -> 3    / v5 L  k: q! Q+ T: L/ V: o
8 \6 X2 M* G* h) r! V, ^
period_add(p,n)   
9 e; W7 r9 C  ~, _( j' `8 Y增加n个月到时期p并返回(p的格式yymm或yyyymm)   
9 s! H( a' X* V. r9 t: [; d) ~mysql> select period_add(9801,2);   
! B: M! A4 O3 \& W$ j  -> 199803   
! q" Z2 _0 \: s; X& W
, f" h: i9 z: iperiod_diff(p1,p2)    ! K" y9 z- u' _0 [# G
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  % O3 ~) ]" O9 s; P1 a& O* T% }
mysql> select period_diff(9802,199703);    ; ~/ U( `9 o8 P' _, [3 ~
  -> 11    # W) h. ~5 D' _2 @

+ @# ^5 F, r9 Tdate_add(date,interval expr type)  . H! g5 ^% `+ s: Z0 T. }2 e
date_sub(date,interval expr type)    6 B  G6 h+ J* E3 @- t1 J# b! ^2 W, Z
adddate(date,interval expr type)   
" y. F8 u" u" O1 C0 c5 xsubdate(date,interval expr type)  
) [! X" c" |: P% u对日期时间进行加减法运算  6 h- A! `- V1 X5 c( T. q, f
(adddate()和subdate()是date_add()和date_sub()的同义词,也1 X2 R) ~& e# E9 u! h% C
可以用运算符+和-而不是函数  
6 Y' I9 u: T1 s% s* P! W* J8 ?. K7 qdate是一个datetime或date值,expr对date进行加减法的一个表! f# }8 D& g2 ~6 Q: i" l; G8 T
达式字符串type指明表达式expr应该如何被解释  
/ Y6 H5 |% C5 X$ ? [type值 含义 期望的expr格式]:  
) n5 [3 u) ]8 |$ d" b# |; b second 秒 seconds    1 n( I  Z9 J7 `/ a0 ~+ K
 minute 分钟 minutes    8 h" u, t2 q3 `5 O
 hour 时间 hours   
0 [9 A' u4 ~7 \* X* H day 天 days    ' F* z3 I! @) D
 month 月 months    % p% S( w# \1 T# p. Y; n- `! b
 year 年 years   
- v% x- {8 n2 j; ~. u minute_second 分钟和秒 "minutes:seconds"   
) b3 {8 B+ T& K1 C3 m hour_minute 小时和分钟 "hours:minutes"   
0 k' g) P+ ^1 @ day_hour 天和小时 "days hours"    8 I& |' \0 x% b% V* D+ D1 I8 ~
 year_month 年和月 "years-months"   
) h! x1 z* E/ z& p: w" I- p hour_second 小时, 分钟, "hours:minutes:seconds"    2 {$ J* T5 r# Z: _9 f& c2 v# m
 day_minute 天, 小时, 分钟 "days hours:minutes"    . Q9 c: X# T) n0 q8 M
 day_second 天, 小时, 分钟, 秒 "days  J% j; {$ R- P0 H! G
hours:minutes:seconds"
, l3 Z- K; T8 j: A expr中允许任何标点做分隔符,如果所有是date值时结果是一个  Y* z& Z; _" _% E: S
date值,否则结果是一个datetime值)  1 ]! s# [3 f# M9 E" g
 如果type关键词不完整,则mysql从右端取值,day_second因为缺) H: X' [$ V; P4 s
少小时分钟等于minute_second)  
: k" B) f$ a5 c" |; ^ 如果增加month、year_month或year,天数大于结果月份的最大天
) H- U1 a* j% b, z8 h5 T! ?数则使用最大天数)    * R1 o9 k" X9 _! q; m% o2 {7 Z1 I( x
mysql> select "1997-12-31 23:59:59" + interval 1 second;  
, R8 h7 _" g# ^: I
3 w; Q6 X  s! d+ U( A' K  -> 1998-01-01 00:00:00    ) x' C9 e/ q" }
mysql> select interval 1 day + "1997-12-31";   
1 [2 {( O4 a. c: f0 ]& y/ ]- O, o% h  -> 1998-01-01    4 P4 W6 s, x+ g. B# h4 t2 M2 e
mysql> select "1998-01-01" - interval 1 second;      _* c- `+ [. T  d* n( l
  -> 1997-12-31 23:59:59    8 k0 {, r* g# \- w8 P: B
mysql> select date_add("1997-12-31 23:59:59",interval 11 ^% H$ {$ }8 j$ b
second);   
6 _2 v' y6 ^6 t1 E- a. l  -> 1998-01-01 00:00:00    0 }* D7 C/ }; m7 Z
mysql> select date_add("1997-12-31 23:59:59",interval 1
0 \0 P+ u% P, t% oday);   
4 z1 e2 E  g: D0 h' j2 Z  -> 1998-01-01 23:59:59    4 b( i5 Z* \- z3 P2 V2 L1 ^8 z7 K3 h
mysql> select date_add("1997-12-31 23:59:59",interval
- z( h2 O; o9 o% \- m"1:1" minute_second);   
% C2 @8 Y4 h3 p2 B7 y) t  -> 1998-01-01 00:01:00   
! K# y; V5 R+ K3 n# x2 Ymysql> select date_sub("1998-01-01 00:00:00",interval "1& K+ }. t$ X& }$ b
1:1:1" day_second);    % H3 \- f$ \' X: c; j/ Q: b3 `/ Z9 O
  -> 1997-12-30 22:58:59   
" A1 d3 z8 t5 M+ `" W- ]: N8 cmysql> select date_add("1998-01-01 00:00:00", interval "-1
$ A7 P1 b  K' Q! C10" day_hour);  % a4 h" G" D: g# ?8 A
  -> 1997-12-30 14:00:00   
) X$ R, N8 Q* I5 P8 N1 Gmysql> select date_sub("1998-01-02", interval 31 day);    % h* Q& o8 s" V, N  t3 w& h
  -> 1997-12-02    1 A# q% i/ o& r, I; p6 Z
mysql> select extract(year from "1999-07-02");   
& M) m/ V$ }  ~2 B3 e4 a, ?$ b0 t# K5 ~  -> 1999    9 T2 O& M9 E' q
mysql> select extract(year_month from "1999-07-02
6 Q2 C4 I% G3 w% d+ ?1 }) N- \01:02:03");    : p, G2 ^+ c0 M% e
  -> 199907   
3 z- q. t) o' \0 T; K5 p5 C' Dmysql> select extract(day_minute from "1999-07-02. p+ _! J  n7 b1 K, p% F' p/ V
01:02:03");    ) y+ |$ E  m* _* ?- n' @2 V
  -> 20102   
  n+ G5 i# i* |
' Y. q- F( f( d* [: v6 xto_days(date)    ; H6 j( Q9 ^5 E5 K
返回日期date是西元0年至今多少天(不计算1582年以前)  5 s* m, v* Z6 @" _: r
mysql> select to_days(950501);    3 d7 |  a3 n- i( e+ y
  -> 728779   
7 i) L# u7 Q0 g- r. bmysql> select to_days('1997-10-07');   
2 r; h& k2 O' ]: \; r; Q  -> 729669   
5 ?/ r( Z3 b- v5 `# E# P$ w4 k   w8 a; b2 ?- x- D$ q! R. @2 \
from_days(n)   
' t1 [$ A! I: P 给出西元0年至今多少天返回date值(不计算1582年以前)   
( o8 b; p1 L: b' Y  d$ ~mysql> select from_days(729669);    8 i3 g( w0 k1 z8 k: B
  -> '1997-10-07'   
  M5 e9 O/ Y6 p $ C  ?* g8 p! f& K
date_format(date,format)   
1 V$ f5 Y6 R# G6 K. q) w8 C 根据format字符串格式化date值  
1 y( D2 \& R' a" s* f (在format字符串中可用标志符:  
5 F0 L1 A' o# g. o' F %m 月名字(january……december)   
7 R8 u( i5 Y4 y* P( L+ y %w 星期名字(sunday……saturday)    6 N7 O3 N4 S2 N- T8 d" h8 ^
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    . l7 R. c+ O" b9 M0 h+ J
 %y 年, 数字, 4 位    ) w5 V) {0 Y& Y
 %y 年, 数字, 2 位   
8 e/ N1 `8 Z, e, Y7 h3 n4 ^ %a 缩写的星期名字(sun……sat)    6 f1 `8 T# M9 C/ ~" `8 ?- z
 %d 月份中的天数, 数字(00……31)    / @3 J1 f4 v5 h2 L5 [% y2 i
 %e 月份中的天数, 数字(0……31)   
' I9 p# N, r' W* O3 t+ | %m 月, 数字(01……12)   
. j$ v6 ]7 q) [, f" a4 u/ ? %c 月, 数字(1……12)   
% W! r" D) A3 y8 `' `  u0 }2 X %b 缩写的月份名字(jan……dec)   
& o: l# _+ L8 i+ O8 X; u9 d4 U' y! ` %j 一年中的天数(001……366)    5 i. j! d% t  e9 ^& S  |
 %h 小时(00……23)   
, ^' L! C: R8 A) ^ %k 小时(0……23)   
% I8 p$ q9 ~4 K5 F' V %h 小时(01……12)    5 Z5 B$ W" N/ s$ V
 %i 小时(01……12)    9 k! u7 \+ a; d- D! s, X# M" i$ U2 m
 %l 小时(1……12)   
6 ~8 W6 Q0 \0 V; c1 f, O! Q %i 分钟, 数字(00……59)   
) H5 D/ E9 K# p: c( N: b  c8 i) ] %r 时间,12 小时(hh:mm:ss [ap]m)   
2 K5 C$ Y4 v+ [2 @5 I  p %t 时间,24 小时(hh:mm:ss)   
' z$ f9 z/ r9 e; Q. u %s 秒(00……59)    " s7 ~3 p* G! ]- \7 c6 v* ?6 y
 %s 秒(00……59)   
! b  O3 C* t. Q: ` %p am或pm   
) Z, s  |. k$ |) M; V %w 一个星期中的天数(0=sunday ……6=saturday )    % x" Y; {, Y3 r/ g3 B
 %u 星期(0……52), 这里星期天是星期的第一天    - ?6 X/ o/ l. E
 %u 星期(0……52), 这里星期一是星期的第一天    + j5 v( h, |# c2 j0 F/ m. B
 %% 字符% )  
2 b9 t. ?* @6 R  Smysql> select date_format('1997-10-04 22:23:00','%w %m %/ `6 G  [; U6 y) u
y');    . k/ |3 h6 U* F1 G
  -> 'saturday october 1997'   
) S# i5 E" w9 M+ F, Amysql> select date_format('1997-10-04 22:23:00','%h:%i:%1 }( q( u7 W. V# g
s');    2 i% ^1 p3 I" p7 \: r. g  g
  -> '22:23:00'    / ^6 v; \( `5 t  C4 b+ L
mysql> select date_format('1997-10-04 22:23:00','%d %y %a) j: `9 t- s8 T4 q+ j0 t# A
%d %m %b %j');    0 Z, R. W9 @% T& c" Q5 j
  -> '4th 97 sat 04 10 oct 277'    : K  `* [+ `0 z) _" s3 y$ J
mysql> select date_format('1997-10-04 22:23:00','%h %k %i, f3 o9 f/ T! O* l+ o( |1 O+ }
%r %t %s %w');   
# _& K2 d5 C9 T0 j# s5 f- a: w  -> '22 22 10 10:23:00 pm 22:23:00 00 6'    4 s$ H+ D- ^3 W- Y. Y

; L/ i9 i  o4 p+ M6 x" x/ T7 Y0 utime_format(time,format)  * P6 |0 M% [8 \" o" A  Y
 和date_format()类似,但time_format只处理小时、分钟和秒(其6 ^& ^  P8 g- t4 T
余符号产生一个null值或0)  0 D6 T% X4 {6 r$ j  S
; v# r9 v4 H2 c
curdate()       ~7 V$ {" O# }7 I9 o5 O0 r2 W7 }
current_date()  
' I" D6 b8 g' ]; m4 l 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
' N! g" W( m+ y0 W5 ^2 j处上下文是字符串或数字)    # |! a5 q) \8 |% M
mysql> select curdate();    8 M5 A! T8 V0 X& f9 X' q
  -> '1997-12-15'   
, G4 D3 G6 L% ^1 m9 _! @mysql> select curdate() + 0;   
) {$ a/ }1 G1 X) c1 T  -> 19971215    - c) j9 i' i$ N

; S3 c6 F. q5 r; L' B/ gcurtime()   
+ j* \. A% ^: w, o( e3 gcurrent_time()  8 N$ P8 Z* l9 r
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
8 }7 [6 o, |# b( C1 T9 e' q% y下文是字符串或数字)      3 k. t0 J& F+ X* f8 ?. a7 r
mysql> select curtime();    " M, E# S( q; Z4 F0 o6 `
  -> '23:50:26'   
: W+ E) w" O! U. X  ymysql> select curtime() + 0;      R3 _8 D( J6 g
  -> 235026   
- |9 u+ t+ v) t1 k$ P! C
- ~9 b* x; T# s1 Enow()    
5 S0 `  s# L! s1 ksysdate()    5 N3 b+ v. }9 _# W0 g# z! z
current_timestamp()  
. h% v* n2 F7 `1 E4 d" D 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期' x9 n- A4 e  t; F5 C) ~6 R
时间(根据返回值所处上下文是字符串或数字)     
. X. ?* {4 @2 |( f" U8 Y* f# vmysql> select now();    3 x# P. E, h0 |: l+ H+ `9 D0 e
  -> '1997-12-15 23:50:26'   
; v* }0 N: P: j9 Y  amysql> select now() + 0;   
0 I+ V  L6 @8 R# M8 ~2 N; @  -> 19971215235026   
5 b, u7 i% Y( |2 D * N8 l, i. V7 H# y
unix_timestamp()    6 e6 @: b( Z/ q4 z' H# j
unix_timestamp(date)    % s" G/ @& ?+ Y& y# l6 P
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
) j  Q+ X9 |2 [4 L# K/ X数,date默认值为当前时间)  
2 r  U% z% b1 _8 m" smysql> select unix_timestamp();   
, H; P1 S; ^% E; i; q( N' n* Q  -> 882226357    6 g/ }! J% l" ]& @. z
mysql> select unix_timestamp('1997-10-04 22:23:00');   
  W9 T0 l  O/ f: T5 n1 f  -> 875996580   
9 c7 _0 ^3 S: C) a
) E; {6 O+ Q4 u/ }from_unixtime(unix_timestamp)    ! g) R! v/ M" M' a& W8 E- i' ~  M
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的
+ D/ u/ g; E) n: F( c5 Y值(根据返回值所处上下文是字符串或数字)     
! t, V& b$ U( Y4 a& ~  b' gmysql> select from_unixtime(875996580);    ( j2 A; |; E6 O7 x; x  l' B# D; P
  -> '1997-10-04 22:23:00'   
  Q# t* n/ ?0 t  v% X! F1 i2 c1 J3 [" omysql> select from_unixtime(875996580) + 0;   
- v7 ]! Q6 Y" P( Y9 }# I  -> 19971004222300   
4 T2 c# K7 m$ @" Y: t 0 T& [: x7 [0 w4 M
from_unixtime(unix_timestamp,format)    
/ y' K+ i- k! o, Q以format字符串格式返回时间戳的值  
* u$ ?; F' I4 ?# C* Imysql> select from_unixtime(unix_timestamp(),'%y %d %m %
; p/ X) J  h4 I! Bh:%i:%s %x');    ) L) u6 `: c* c- Q( H$ L
  -> '1997 23rd december 03:43:30 x'   
" _1 A. O& ?7 L4 ?  L+ `+ C# Y 6 u: ?: {* z7 X9 k
sec_to_time(seconds)    ; S& ^% @; C# d/ H
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     ' J/ E7 T8 b* x# T# d
mysql> select sec_to_time(2378);   
8 i* H- T" V, J% v1 G3 R1 _3 {  -> '00:39:38'   
1 r3 g% R; ]& ]0 Nmysql> select sec_to_time(2378) + 0;   
5 r& _+ P# r& L  -> 3938   
" y6 O5 i0 x3 A$ Y5 y  ?; n : ]* {' M( o4 @: s3 g, n: z0 q
time_to_sec(time)   
- Z1 k# Y1 \- a3 x. S% W返回time值有多少秒    4 _7 N; F5 t6 W) y, k
mysql> select time_to_sec('22:23:00');    % k% V# s. o. c0 n5 A
  -> 80580    5 i1 j/ O: x! o7 i3 k, C
mysql> select time_to_sec('00:39:38');   
8 x" h& a0 F. S& x  -> 2378 ( i# F/ u9 s2 P4 B
1 e9 \# Y0 n7 W
转换函数; P' k1 s9 P4 I4 G& o. f
cast
! ~7 y& U( X' q( D0 A$ P) Q用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]( p7 e* b+ T$ v' v
实例:select cast(a as unsigned) as b from cardserver where order by b desc;
' f* `, K* Y2 b- N8 L1 D. J- \0 jconvert:+ g# V0 E5 z: d
用法:convert(字段,数据类型)
" t! L) Q7 @1 b实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

( z8 `  l' p9 i3 s9 X3 d+ J1 f




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