中国网络渗透测试联盟

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

作者: admin    时间: 2018-3-21 16:07
标题: mysql常用函数大全
1、字符串函数
/ W! w  }5 ]8 O5 i, I9 p  iascii(str)   
  Z7 L2 o- W. d1 [- G& X- L2 t. _返回字符串str的第一个字符的ascii值(str是空串时返回0)  + T, G$ b* F* \) P8 [  c* ~
mysql> select ascii('2');  # }- |5 D: L6 H& z/ Q
  -> 50  
  z0 ~8 C6 l! B2 p& mmysql> select ascii(2);  
, F6 N5 N; e& Y( a) T# V  -> 50  6 Q$ O8 O- l; B4 j* w4 o. U
mysql> select ascii('dete');  
2 F- O/ ?: \+ M4 f  -> 100
  R; F' E  I& E( `! O* p0 J
ord(str)   7 I) i+ q, s' Z+ s; m7 Y
如果字符串str句首是单字节返回与ascii()函数返回的相同值。& k& _- Z) n& \" |2 ~1 J8 K6 d# ^

/ m; H) H5 x0 c+ W) g8 s* d如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  / S0 i" t( M+ K- B! }$ E$ j
mysql> select ord('2');  
) I0 t$ x0 E! V( \6 O" T# V2 E6 ~  -> 50  
5 S/ Y3 E; i; }! T   ) d# E1 l- J  z  x+ L" A4 L
conv(n,from_base,to_base)   7 r6 q6 A8 }6 V# u& O, ~6 V2 y
对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  - C. b! `! B* X; N
mysql> select conv("a",16,2);  , R4 |! @+ V" @9 F: h
  -> '1010' 5 W/ B2 r1 q! j% H9 [
mysql> select conv("6e",18,8);  
) p  l* v# ?2 ?2 q8 f  -> '172'
$ r2 H( j4 v5 Amysql> select conv(-17,10,-18);  ) K" _" A- W: J. C: {: U; U
  -> '-h' " U1 v; e* V% r
mysql> select conv(10+"10"+'10'+0xa,10,10);  
0 l) M& d+ J5 I2 Y' m: @' T! h  -> '40'
2 Q+ Q/ j4 O* Y" w   8 h( q/ z; U$ m4 X
bin(n)   & a! Z/ Y2 p9 }2 h& D+ c/ k
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
9 [( H4 f  _; Q: ]2 a- h, W5 Hmysql> select bin(12);  ! s: O+ R3 W: A6 ^8 A% Y9 P8 Y
  -> '1100' - f' L1 G" H  ]1 H' X, S4 y
" `; e0 G# L5 n/ c" ~7 P& [; x
oct(n)   
! O& f5 N! j9 h$ y把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  : s# n4 p2 N1 [  |
mysql> select oct(12);  
0 G) G) v& ?. H! W8 A  -> '14'
$ t% ~5 E$ K" O/ n5 w& m   
2 ]$ y- S3 ?0 ^, N8 T0 F& Z, ~hex(n)   
/ q! J; c5 Y4 O" M把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  
- m& p- w7 u# V1 r% O  Q( P- qmysql> select hex(255);  
" l* t; K& `2 t0 l1 U# Z9 E* Q3 k  -> 'ff'
6 X) u: w5 Z; D- B   - C6 N) N# }3 ~
char(n,...)   
  w* q- K' z1 d( L返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   
' B, V2 S2 o* ~. K' n' L' d1 i4 [mysql> select char(77,121,83,81,'76');  $ x  Y! B- l( K8 E5 Z
  -> 'mysql'
& s: L* |4 e1 b" m& L) Hmysql> select char(77,77.3,'77.3');  4 g/ n) R5 {& O! D4 Z
  -> 'mmm'
( {! G- V1 m4 `! d   
& B  ~5 _9 V( _% e9 M) L& `$ I" Tconcat(str1,str2,...)  
! i; H. [4 p0 n- H9 {& _把参数连成一个长字符串并返回(任何参数是null时返回null)  
; |  U3 P: c( z0 n5 rmysql> select concat('my', 's', 'ql');  / {. ^: Q" Y0 a
  -> 'mysql' ( b) C! }5 j* ~2 a( F4 Y' x; b% N
mysql> select concat('my', null, 'ql');  # h& u$ N1 J+ h* X4 q" k
  -> null
0 q. ]- L3 f' k$ [5 U$ ^mysql> select concat(14.3);  + W, \& t( W# M" A6 C* F
  -> '14.3'
; J6 T. t5 P5 N. S4 b- L. z: F . W8 X3 f+ B! k7 q6 r
length(str)   + I2 A3 `! M/ l) n* R1 F4 n
octet_length(str)  ( ^+ \$ {9 w* r5 k% v# i( ^
char_length(str)  
! D8 h4 O: z9 j" P" M6 h$ {5 `5 Fcharacter_length(str)  + I. s5 I$ g3 W  _  Y
返回字符串str的长度(对于多字节字符char_length仅计算一次)" k0 q& J, w# T, l* _! t2 p! U
mysql> select length('text');  4 c: C8 r2 N6 L
  -> 4  
& _$ H7 U/ m' c5 ~; T4 Rmysql> select octet_length('text');  
- e" e- g; J+ D5 D  -> 4  
0 C3 e& U5 q9 Q. R2 A) E
7 L& ]& z" I7 R: ?locate(substr,str)   
; K" H; O- g  V8 ~4 qposition(substr in str)   
! o' {+ t$ S+ x' i9 F, V2 P, H返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
% f3 h; }' ?1 x; Dmysql> select locate('bar', 'foobarbar');  1 M5 Q0 v) ~, ]3 r$ X4 N" C4 I
  -> 4  
" Y3 M5 P: ]" _" gmysql> select locate('xbar', 'foobar');  * t4 t/ T- S& o6 x
  -> 0  5 ~1 o) g$ ~4 d
   
8 L8 o2 Z6 _# `6 z; d. olocate(substr,str,pos)
; d7 F* q5 ^& ?! y返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
( a- O) F( I* T. t7 o! b+ {& r3 kmysql> select locate('bar', 'foobarbar',5);  & c& x) S6 @  g0 \/ V/ x
  -> 7  
6 A( C' `- l* @1 ?0 c
4 y% ]* E0 l8 Q" P+ h6 V# T9 Ainstr(str,substr)  
: i( `3 x3 E$ I$ t: K返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
+ T9 W: G7 N, L3 }, f* hmysql> select instr('foobarbar', 'bar');  
) x  o$ r3 ?$ Q7 y  -> 4  # t  U2 b1 E* g6 R! ^
mysql> select instr('xbar', 'foobar');  
+ U2 G" A3 J* r7 b0 u6 m  -> 0   ; G9 G8 }( k5 G3 E3 C5 K
! l0 M- F' m* p
lpad(str,len,padstr)   
+ t5 j+ D% m# C& I0 D7 Y用字符串padstr填补str左端直到字串长度为len并返回  
: y- e: i2 f5 O5 ~2 rmysql> select lpad('hi',4,'??');  : R+ |* K. {8 J7 H: s
  -> '??hi'
7 k( q' _# p7 X8 `/ ^" w6 x6 p6 e   : ]  t! e0 A; q0 r) ]1 x- T
rpad(str,len,padstr)   
+ q! M7 i# S6 o+ y2 v; k! `/ h用字符串padstr填补str右端直到字串长度为len并返回  - T2 q% g3 I# l  v1 O
mysql> select rpad('hi',5,'?');  , i$ n+ O3 P3 k; F$ w7 P5 h0 a6 f
  -> 'hi???'
. E" m, V7 w3 }: E . J3 m3 S9 ?' X
left(str,len)   
4 V- D9 P  _# Z1 F5 C4 r9 W: a, }返回字符串str的左端len个字符  $ \4 Y' q' w& J7 Q
mysql> select left('foobarbar', 5);  
* J& X0 O' P1 S$ R5 r  -> 'fooba' 2 v+ A+ @* h, i  ?# H( W

. B4 F1 L: N, ?- N+ [! ^right(str,len)     D. V2 r8 s6 p, {
返回字符串str的右端len个字符   
0 O- b) p( t/ R! ~' E' kmysql> select right('foobarbar', 4);  
. Z! ~) [7 `, i  -> 'rbar'
) U6 i& }3 s" a; A$ y6 Q0 \. H, T# e% f
- T4 R% l- J$ ?# vsubstring(str,pos,len)   1 u! }2 ^8 G* P9 C9 T+ H
substring(str from pos for len)   , A2 ^/ s; n- F0 H$ R4 c6 s
mid(str,pos,len)   
, C* z& h  ]. y$ L9 ]8 U1 T% H返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  5 z$ T  g  y' e2 V4 V0 y# @
  -> 'ratica'
% g# @; w; G: W4 W- f
9 \# m, E; W6 D, j- G0 m' hsubstring(str,pos)   
( i5 C/ {8 J4 j. B6 T# }2 N; osubstring(str from pos)   
8 T) y$ B+ ]; Z( a/ |7 O返回字符串str的位置pos起的一个子串  
" u4 t+ {2 Z4 g. Omysql> select substring('quadratically',5);  1 h+ P% c- L0 }4 K! m) z( i6 S; A
  -> 'ratically'
! P( l+ Q1 r; m/ {& Q/ [mysql> select substring('foobarbar' from 4);  3 x( Z+ j, K; ^$ Y& b. |; t
  -> 'barbar'
5 L6 I. c  i. ]/ c8 x6 ^
- N" X: F/ n* A! Q& rsubstring_index(str,delim,count)   
: Y9 e6 p( q: s  s( ]1 Z) A8 K返回从字符串str的第count个出现的分隔符delim之后的子串
' B& E: k5 \0 o9 s, p/ f6 A) f(count为正数时返回左端,否则返回右端子串)  ( v8 @# l  E/ s+ b5 |( V! S$ R% ~: i
mysql> select substring_index('www.mysql.com', '.', 2);  
$ D3 G, V# c  v1 {+ o/ T' e  -> 'www.mysql'
: s0 W- [) Q$ ?- ~: g9 B# umysql> select substring_index('www.mysql.com', '.', -2);  
( u( `4 Z; w% P! L  -> 'mysql.com'
3 }* R8 e$ P" `5 r) r4 X" a$ w
: z1 q; \5 |( u* Q2 n+ Sltrim(str)   4 J+ g1 X4 h( o& A
返回删除了左空格的字符串str  
5 c" j+ t: k; a% Nmysql> select ltrim('  barbar');  , v$ {4 P! S' \6 C1 p6 j, n) p
  -> 'barbar' 3 s1 G# N2 O: f6 }
1 @8 L, J3 g9 ~
rtrim(str)   7 c" i- h# H- Z
返回删除了右空格的字符串str  
/ Q; u2 i3 A6 f" ]" _1 Z2 Kmysql> select rtrim('barbar   ');  
% v% }/ G3 w' ^& @8 \/ h9 p  -> 'barbar'
6 f# ~. J9 A# B 7 N5 \5 b% ]" F* ?
trim([[both | leading | trailing] [remstr] from] str)     }" u5 P, K2 f4 v- R1 r6 U
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
' L! V2 H3 z3 W1 G1 [6 hmysql> select trim('  bar   ');  
5 F( x( u9 Q1 v3 ]) F- P1 ?" k  -> 'bar'   l" H" p5 N+ {; U5 A/ {& S- l8 f+ V
mysql> select trim(leading 'x' from 'xxxbarxxx');  / i) b$ I( \3 ^( }6 j5 O7 ~2 w
  -> 'barxxx' 6 u+ I" {/ B5 z) h
mysql> select trim(both 'x' from 'xxxbarxxx');  
: t, k3 S/ Z$ z8 M$ Z* H% G  -> 'bar'
( J* ~; Z- T6 P3 P" j# a5 F# V8 Zmysql> select trim(trailing 'xyz' from 'barxxyz');  
# m- f# h4 M4 L; H8 [# X! }% E  -> 'barx'
8 t  A7 A$ {% u6 h 6 f" @5 y. I0 Q0 t; n% S: S" W& {
soundex(str)   
1 s: k: v8 @# N+ q( i/ y, p0 }返回str的一个同音字符串(听起来“大致相同”字符串有相同的
. Y7 d( R+ }3 d% d# K' H同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  ' I3 R$ e9 X7 g3 O. y3 Q6 W7 ~8 x
mysql> select soundex('hello');  
6 r" B: s% r9 ]* N6 Z  -> 'h400' " y2 ^9 F" n0 Z! K4 M( n4 x
mysql> select soundex('quadratically');  
$ [& O# G$ U- H" a7 n$ j  -> 'q36324' , X! Q! L- U. R# _7 v
   $ H! d8 l& M0 ?; n2 X8 u* l4 _9 R5 m
space(n)   
1 h( W" E9 w; T  p! z& Y返回由n个空格字符组成的一个字符串  
' {% G9 M# T% @. {& H' smysql> select space(6);  
" z7 v  Y: a; Q2 e  -> '      ' & l! c  y+ |$ k: t, \& ]
   + X* f  f! ~. ]0 U0 B
replace(str,from_str,to_str)   
2 |4 k# q2 e7 {, ?, K用字符串to_str替换字符串str中的子串from_str并返回  ; n0 z8 b, Y. J  X2 c
mysql> select replace('www.mysql.com', 'w', 'ww');  
) R/ z" ]. @4 l" t7 M$ t1 o, I. N  -> 'wwwwww.mysql.com'
- r0 ^& W1 y  P( m) G8 X
+ Y" S1 m  Y1 Jrepeat(str,count)   8 ?) H) v* I) j9 ]6 s
返回由count个字符串str连成的一个字符串(任何参数为null时- T, {* Z( U( }( @
返回null,count<=0时返回一个空字符串)  - p' @3 p# z/ f/ |  T8 D
mysql> select repeat('mysql', 3);  
/ t9 w5 V5 G& o" _9 L  -> 'mysqlmysqlmysql' ' G" l0 o3 {; `
   
: s# Z3 j: @* m* ^- R$ Hreverse(str)   
4 ?1 \0 j% o! ^' K6 W8 t颠倒字符串str的字符顺序并返回  
8 {% \8 P9 s3 d2 i2 }+ w7 Fmysql> select reverse('abc');  " P; g& i9 u, |2 Z
  -> 'cba' , Z/ L2 s1 |) N- a/ x

3 b, n3 B  N& Q1 U3 Jinsert(str,pos,len,newstr)   ; Z4 x5 e/ y: I, r' g
把字符串str由位置pos起len个字符长的子串替换为字符串& C) `  v2 {) v3 D6 `7 y1 [/ D9 F
newstr并返回  3 I7 N' A1 J: w9 q$ h1 E
mysql> select insert('quadratic', 3, 4, 'what');  
, u5 j* U, y7 O( c* M9 d  -> 'quwhattic' " D- |4 o. p9 G

6 G6 \  \9 Z; n* P6 Eelt(n,str1,str2,str3,...)   7 M+ e6 C- X0 F5 N
返回第n个字符串(n小于1或大于参数个数返回null)  
/ G4 b/ d, {) E. r3 W% a' Kmysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  & \/ Y4 [: S; `: A( l
  -> 'ej' ' `* K+ }" S+ D) L+ V
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  
! I4 N% a1 @  V( O$ Q9 ^7 O  -> 'foo'
; \$ l4 [# r- V" Y 4 x9 w; }. \7 r6 U0 l
field(str,str1,str2,str3,...)  
$ s2 X# ~- Y9 @$ o; z2 G返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
- m: d1 E7 C5 emysql> select field('ej', 'hej', 'ej', 'heja', 'hej',* e+ B# M" H" O8 W; D$ I' r- j
'foo');  . S  F7 M9 u1 H' T+ W# g) E
  -> 2  3 P# o! s' b! `0 L! I8 f
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
1 \; _# x; J3 p. d8 f$ P'foo');  
  u7 y6 G% z/ K, D" t' O# a# Q  -> 0  
( P; Z* K( V; D
! q8 j  a, y. w! e1 D' S$ {find_in_set(str,strlist)   
7 P& N3 g! ?2 h0 `返回str在字符串集strlist中的序号(任何参数是null则返回. ?% L! x4 D7 h$ B# H* y
null,如果str没找到返回0,参数1包含","时工作异常)  
8 d2 A. W1 P# Z0 u5 H9 Rmysql> select find_in_set('b','a,b,c,d');  
/ x" `9 Y% q+ \. U# l) j  -> 2  
2 z+ `8 _+ l3 @$ Z4 G+ n   ; e) r! X5 t, _
make_set(bits,str1,str2,...)  
. O% M6 b% {- V1 x$ S把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应" Y" N" l) v: M1 W
位置的字串选入字串集并返回(null串不添加到结果中)  9 @- `6 x0 c  {: H, }7 O
mysql> select make_set(1,'a','b','c');  
2 u' r( s/ B8 f. e( w  -> 'a' 1 K" i4 s# ~9 Y5 z
mysql> select make_set(1 | 4,'hello','nice','world');  6 W2 c$ a( I8 l6 J6 D! M
  -> 'hello,world' 8 s2 @  w( I/ P6 o& J0 u2 e
mysql> select make_set(0,'a','b','c');  
& {6 i' R" _1 S# f% d  -> ''   u- T( y1 J7 I- v' \

' b6 |* o  B$ ^export_set(bits,on,off,[separator,[number_of_bits]])   
% u, A, S! G3 a9 \& E: ?+ H按bits排列字符串集,只有当位等于1时插入字串on,否则插入
0 w) f6 ?, F0 Qoff(separator默认值",",number_of_bits参数使用时长度不足补05 s( d7 J. d, K7 H
而过长截断)   3 A$ K8 m( A+ _3 l# r
mysql> select export_set(5,'y','n',',',4)  % v: n: d+ N$ d" `; t9 B. U
  -> y,n,y,n   
3 Z0 i% m: p- A7 H* z / n& z2 C9 ~, z0 V3 l/ z) h% j5 h
lcase(str)  - [* s. S: J" z: M  L
lower(str)   
! R+ K9 _( i: T  c* O返回小写的字符串str  
5 @' x- F0 w, Z" }. Mmysql> select lcase('quadratically');  
2 h! v3 i$ T7 r" A0 z/ m6 E  -> 'quadratically' / Q1 T; c$ T4 A
   
; b$ F/ Q8 ^: x4 L. gucase(str)   
0 K6 A# B+ D0 W7 a2 H7 i; vupper(str)  
& a% x! w- q" l0 e返回大写的字符串str  
2 D3 f& K4 X8 l. g$ J! Q5 w0 Nmysql> select ucase('quadratically');  
; t9 D2 A) C3 e. R  -> 'quadratically'
5 A/ F7 k' i: Q6 n  `
& n% `7 i9 h( z! W* kload_file(file_name)   
4 a3 W- Q: M# \" F" ~读入文件并且作为一个字符串返回文件内容(文件无法找到,路径: p% I- E' }! O4 k& ~
不完整,没有权限,长度大于max_allowed_packet会返回null)  . d. F1 c% D! A5 X! @
mysql> update table_name set blob_column=load_file
" F  r- P. J0 O0 d7 g* h("/tmp/picture") where id=1;  
4 `8 u5 Z9 C$ y; O3 q5 a
' k* _  c7 A6 P4 {; ~# e! [7 T2、数学函数' _; d( D, }7 I% z) O2 G# C7 c- V
abs(n)
& u; S; R( u( _" a* {1 t返回n的绝对值  
( Z1 k% d0 |! D9 umysql> select abs(2);   
5 ^% }& K/ X+ {  -> 2    8 @$ r0 V  v7 W, B3 E/ o3 G/ H
mysql> select abs(-32);   
# y4 u# X- j  L1 b9 E5 @  -> 32    & y; V) q) |+ a1 u$ v
   5 |# y# \) _4 E: _9 R- J
sign(n)  # [% ~( ^8 p1 r1 V. }8 d9 e6 _
返回参数的符号(为-1、0或1)    `1 d& [! e1 ]; J5 a
mysql> select sign(-32);   
7 p& c. Q9 B6 `0 d  H6 H  -> -1   
: {! O; y+ l8 b2 v1 X  B' Nmysql> select sign(0);   
5 M  T& |1 b0 @" Y1 K  -> 0   
! N; o  B$ i+ J* x- q" G0 b$ pmysql> select sign(234);    8 P2 m3 R4 J4 d3 d5 ~7 `
  -> 1   
. s1 C7 |' [% {% I/ a 3 S  o  H4 L3 s, s, i% _
mod(n,m)   
" i' B/ p9 {. L1 l$ K取模运算,返回n被m除的余数(同%操作符)    + J8 o2 |9 S/ r8 U
mysql> select mod(234, 10);   
, B7 z- e) b4 p' ~/ \- r3 ]  -> 4   
4 o! x# x9 h; N: ?' ?mysql> select 234 % 10;    8 P- M/ r/ x/ I9 o
  -> 4    5 B8 _* \' S5 h7 G$ }
mysql> select mod(29,9);   
! q( _0 d* a$ Z. D4 B3 ?7 `  -> 2    9 g6 j# c; ]* {& h& d

+ f: B  Q) e. t: P# v9 Ffloor(n)  
9 s, _. R, `9 S8 V) l返回不大于n的最大整数值  $ b1 ^  j! t5 p
mysql> select floor(1.23);   
3 o7 e' x5 e- Z% S1 X3 N/ o" j3 ^; \  -> 1    ! n+ t9 `# o- x. d
mysql> select floor(-1.23);   
8 V' s" b& t0 u7 \6 A( c) C' V  -> -2   
* c# a" R5 F3 E) H 7 `9 b' X+ G4 e, }/ C
ceiling(n)  - a! W/ B! M- `. M1 A; g& V9 Z( I
返回不小于n的最小整数值  
: F3 q- E% q, @3 f, u' f1 mmysql> select ceiling(1.23);      m# S( R8 w. T+ a
  -> 2   
; f4 c  U: C- C  D! fmysql> select ceiling(-1.23);   
7 J. ?( b# k7 w' p  -> -1   
) ?- @5 r$ F; N' f
# ~3 c( V5 N6 u( W4 E: ^( G) Dround(n,d)  5 G# Q7 P+ M. J( i& ~  I; I
返回n的四舍五入值,保留d位小数(d的默认值为0)  6 j, F- z7 S$ O* ~: l9 G
mysql> select round(-1.23);    ( A; p6 ?+ S, P+ e  K  i# n4 J. u  S
  -> -1    0 S& n7 j; g1 V3 Q
mysql> select round(-1.58);    ; V- Y  E- g: ?+ h/ T  a; O
  -> -2    " r9 r$ M  `- [
mysql> select round(1.58);    ! n. U6 {5 I9 G7 |
  -> 2    / I, ~0 b( `  b6 j. v$ k) ?6 f
mysql> select round(1.298, 1);   
- i. O# }0 P  c) m3 y  -> 1.3    ( E0 o4 N3 W- i, i- F) U  Y
mysql> select round(1.298, 0);    3 L( a/ n; h- s' w
  -> 1   
* n4 W8 V' t, O/ C, o2 @ ! H5 t$ r6 x9 p0 v$ b5 A# N' M
exp(n)  
# t( u$ E9 R0 M& H( A/ P2 [返回值e的n次方(自然对数的底)  % O% J( r0 {1 f( e' C7 k% U0 a" z
mysql> select exp(2);   
3 K/ z# |( ?- }) E8 k( k" a  S* m' A1 S  -> 7.389056    , h$ g6 I/ y! ~+ }& B. e
mysql> select exp(-2);    ! R6 ^  N& S. }1 a4 B! E
  -> 0.135335   
; a# f4 B9 h% w0 f
+ Z7 o* i7 N0 w$ Q3 G; v- Ulog(n)  
% A4 i5 [) |0 B* O' j2 ^4 n返回n的自然对数  
% d3 k& e* ~1 y; e. R6 Jmysql> select log(2);   
' P2 p! n" y) n0 V4 Y& m  -> 0.693147   
/ U9 K7 v) ~: Y9 Hmysql> select log(-2);    6 A3 C1 R! ^$ L4 i/ S+ E  h
  -> null    1 o- H) o. a4 o; d" [
( q% p3 Q) s5 B6 J: I4 z" P4 V
log10(n)  
/ b! @( f6 k3 H1 u* r6 n返回n以10为底的对数  
  _+ n# l( `" c- y5 e9 K- gmysql> select log10(2);   
% V$ m* ]. D: y  -> 0.301030   
" Z4 a3 s: p% N% c. V5 k3 p, ?0 cmysql> select log10(100);    4 q+ E7 C- [& U* \2 e
  -> 2.000000   
+ L) O  G( Z+ |. w1 D# \* i/ Zmysql> select log10(-100);   
, l# I& C2 i! d( l. e  -> null    & Z% @* a& C/ q

6 D" k3 ~1 w2 V& mpow(x,y)   
$ t4 y3 i3 u7 A  l# }power(x,y)    , I3 K7 f# f9 P) O' g
 返回值x的y次幂  1 e. @5 u" X6 \' C4 v7 V, J& ~* |
mysql> select pow(2,2);   
$ D3 k; e. o; ~  h: g  -> 4.000000    - a6 E; I# q: g5 b
mysql> select pow(2,-2);    9 N& k' O  l8 T0 j
  -> 0.250000  
) D, `& i& ~+ @5 ?& ?# Z: h( a$ @& y% e! x) u0 }
sqrt(n)  
5 L/ x- F2 p. p- p 返回非负数n的平方根  1 `/ t+ d5 b. M: r
mysql> select sqrt(4);    ' `% z" T! a) R* p" d! s
  -> 2.000000    0 m6 x( h. B: X3 T- T  H1 J: d0 e+ O
mysql> select sqrt(20);   
( u/ ]9 q' u$ g8 l1 `, O" s* Z  -> 4.472136    ( r+ c( K2 Z. f* h
; n  w1 B) t: S9 d' B! l
pi()    % |7 G5 \# |6 O7 D/ ]. g3 t# t0 Q
 返回圆周率   % Q& I7 F& b0 G. L
mysql> select pi();   
2 @0 Z0 c& N. M2 r7 y, _# F  -> 3.141593   
! ^1 U* x9 h+ X& t) T9 C& F0 w5 T8 Z % s7 C+ F: U/ B  {& p% A' Y
cos(n)  ' g1 R! O% o4 ]* {/ {
 返回n的余弦值  
/ G; `' w) u* V: w- s4 v* b2 E! [mysql> select cos(pi());  9 g( _" j. E7 W! C& F
  -> -1.000000    2 |, r7 V0 R& {+ R' r
; s4 Y" t' s) Y2 m9 L8 f, ?
sin(n)  7 r6 G( U& c7 f; B# o- f9 y
 返回n的正弦值   
* ~% z/ r# J. i8 B5 wmysql> select sin(pi());    , ?4 q: F. j; V, a. A4 a
  -> 0.000000      g, y% k9 c% w4 L) `' E/ P9 _6 l1 y

$ y5 z5 V! K3 U) R2 {  Atan(n)  
7 N6 @5 B7 @- ^+ @3 g0 O返回n的正切值  
; U  G" |. p! o) W" m! G5 `" Nmysql> select tan(pi()+1);   
& u( ^/ \% f5 O8 B* z. z4 u* L  -> 1.557408    : z6 V" I0 ]1 u3 I" G: }; K- S

' I# K! H4 O: F7 N, G% Eacos(n)  7 {9 K  h& E- S+ Z7 K7 C, ^0 C, P' r
 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  
7 k9 }. Q3 {" t! p+ m) Jmysql> select acos(1);   
2 [3 n# e2 ~0 j6 F( _  -> 0.000000    ! A# d( D) U' o+ y( N: ^8 v
mysql> select acos(1.0001);   
7 w! Z3 z) X" k& c: v  -> null   
  I7 V" q- Y. E* y5 o/ mmysql> select acos(0);    : z. a2 J8 g# E" I: d
  -> 1.570796   
4 s/ [9 b  H& H$ A
3 a3 v% m4 }1 b6 tasin(n)  
0 C7 c0 M# O: e/ d% G  E! X+ v$ X返回n反正弦值  * r  t& F. A8 Y. h, B, t9 ]
mysql> select asin(0.2);    & z/ Y4 `( x( q" z
  -> 0.201358    # l* A9 f; P+ v# D1 H! c8 t) p
mysql> select asin('foo');   
  `* K6 P2 |) m& t  _  -> 0.000000   
( S% ]4 Z1 o2 a( @0 p, S. v ! y/ W' L7 A/ H
atan(n)  3 j& X" u# e$ l6 t
返回n的反正切值  # Y* s% s& y9 l0 ~; O$ m! p
mysql> select atan(2);   
& p) Z3 `: h/ x$ F  -> 1.107149   
, C9 |6 A' y$ \, S1 x; ~mysql> select atan(-2);   
8 T' Z3 M1 H6 S9 N, Y/ @  -> -1.107149    5 S* x0 O* ]' j5 T; M, k' i
atan2(x,y)   
8 ]; u0 g0 O" i5 l1 v! W! [8 e, ] 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  
) e! o) ~5 ]# x2 v! Bmysql> select atan(-2,2);    8 v; `3 C, [7 j
  -> -0.785398   
% g! B( O: i; f# m( k; Imysql> select atan(pi(),0);    " v) F: M- x" \$ ?* w
  -> 1.570796    1 U, H# J& U7 `6 M0 k

' X4 v& z0 ?- H+ M6 s4 ?. zcot(n)  
# Y; q8 a/ ~2 q返回x的余切  * U2 U* r3 n  D4 }- A8 m" }6 r5 e
mysql> select cot(12);   
0 b* @4 _" A' `  M0 R! i4 m  J  -> -1.57267341    . M' S* T$ B# v$ N# T4 j7 M( t: c% M
mysql> select cot(0);   
. W7 a% H7 D- K% q3 r$ D  -> null    / j2 b/ \. T" _9 J* s
6 v7 ?- @* H5 }. w5 }$ n
rand()  + g9 S4 o5 \: O" F+ i" _" y$ Z
rand(n)    ; h/ Y2 A4 W' v% Q7 U$ @  e
返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值) 7 Z1 i2 Y  `5 G5 R0 h+ u

" Y; p* I$ j2 _5 q# tmysql> select rand();   
0 v; l0 e& Z8 J2 d  -> 0.5925    1 W/ f) @1 |6 b" Q" s' i: L
mysql> select rand(20);   
* i6 O1 r* C. m) o. R3 [3 F& D3 q  -> 0.1811   
; _3 d+ j* n( W/ e; ]6 [mysql> select rand(20);    8 A) s& E) K5 |  f& }9 ]
  -> 0.1811    9 C  K$ x0 O$ `7 n9 L
mysql> select rand();   
2 ~+ X  Q) B7 P& i" w9 ]+ K  -> 0.2079   
& ?, p" N+ D8 n" N' Y0 }1 \mysql> select rand();   
9 w5 L7 j. \) |" l2 F, V7 S* W  -> 0.7888    " r+ l$ q) r$ Z" }

, f  d5 D$ D& e5 s4 ?( edegrees(n)  % d1 ?/ [. \0 @7 O& J0 C
把n从弧度变换为角度并返回  4 N! T( V: Z9 `/ J
mysql> select degrees(pi());   
1 }* e2 t; z0 a7 ]1 e6 R' n* Z  -> 180.000000    5 t$ `' }% v' E

+ N' E1 |0 M# X( |/ Fradians(n)
/ q# i8 j8 e- ^' }+ y4 h$ y: m把n从角度变换为弧度并返回   / R/ o; X9 ]3 H7 w; `5 ^1 m
mysql> select radians(90);    5 z6 t+ G8 o# _# t: ?4 i$ \) a
  -> 1.570796   
5 o" H6 q" T$ K) }. M, R0 p; f6 M% o: l5 t9 t/ x+ ?* j
truncate(n,d)   
0 U& {( q6 e8 Y7 _3 l8 T保留数字n的d位小数并返回  
( h7 |6 p0 o2 Emysql> select truncate(1.223,1);   
1 J5 k  ~7 M9 n$ B3 ?( `1 y6 K1 u  -> 1.2    ' ^0 _1 Q% ?* G6 T
mysql> select truncate(1.999,1);   
! ^& _7 i) }4 f0 c- D, x0 `  -> 1.9   
7 ]$ Q1 n! y' G, t. rmysql> select truncate(1.999,0);   
4 O1 S4 Q& G. O% F! e  -> 1   
2 `. p5 T4 @8 v  Y3 u' u( T
# w9 P$ @' W; Hleast(x,y,...)   
2 f5 D  z9 Z# s3 o2 w* n7 y返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  2 y. j4 w5 ]0 E* m" N( b
mysql> select least(2,0);    1 F9 |6 E7 ?, o1 _0 A; i5 D
  -> 0    ! N6 R8 d  X' W, j* m( E+ Y7 D
mysql> select least(34.0,3.0,5.0,767.0);    4 ~7 P  X+ |8 x" \6 H
  -> 3.0   
' U5 z) [- y+ j+ E5 Omysql> select least("b","a","c");   
5 J) i, o( [9 x! b0 R' d; G  -> "a"   
' V, p& Z! g8 o% Z5 _1 e   _, A0 e, t3 b
greatest(x,y,...)   
+ P1 ~: y6 z3 p3 O& s  F返回最大值(其余同least())  0 \' K- K  ]0 z0 ^1 h. o
mysql> select greatest(2,0);    - x% n$ C6 R6 t
  -> 2    1 W5 F1 a/ h6 D9 m( O
mysql> select greatest(34.0,3.0,5.0,767.0);    ' u6 h8 a4 l# W( B: p' E
  -> 767.0   
/ r4 k5 w: W/ m9 v9 d3 W8 Ymysql> select greatest("b","a","c");    - o+ ]. W- O0 f- e7 T) n
  -> "c"     $ q. r4 m0 \. i7 ^

% F( C0 w2 F7 S) z) @3、时期时间函数
2 r; D) z7 {% l$ ]* a) \3 udayofweek(date)    % d- ?1 X1 @# x8 g
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
* M- o6 `8 X; Y( T& d8 J! ^mysql> select dayofweek('1998-02-03');   
) k; R3 _; w) a" J% L* a  -> 3   
5 d8 Z8 ~7 E' @  M) B 5 p, U1 M! Q6 a- ]+ R4 j
weekday(date)   
& U7 j3 X$ V; C: e# T' l$ E, m- ]0 i# B% _返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
; s' H% z  b6 B    g% R" c  @& I5 N0 D$ Y7 `0 B
mysql> select weekday('1997-10-04 22:23:00');    % p# o) d. w, ?# b/ _
  -> 5    ( O0 N' V2 D& @* Y, B3 M; l: t5 Z
mysql> select weekday('1997-11-05');    0 ^7 S. b* I/ A* h
  -> 2    % U$ x% [- F7 @' I9 n! l
  m2 U: m# T4 P( w% K0 J# z) D
dayofmonth(date)    
: [4 g2 m1 S/ w9 T. y返回date是一月中的第几日(在1到31范围内)    : J$ z. A$ y4 |8 u% F4 R
mysql> select dayofmonth('1998-02-03');    5 Y- e+ p" i) b& ]/ Y% y9 I! J
  -> 3    * @* S8 i2 J# P9 L& r( u! v
) g5 G9 Z9 N' u; D
dayofyear(date)      b7 e3 ]4 _. _6 q% X8 B
返回date是一年中的第几日(在1到366范围内)    2 u. w- l6 |: s+ i
mysql> select dayofyear('1998-02-03');   
8 z/ s6 v% k- w& I" y2 f3 w  -> 34   
2 X; |6 P2 D( x& \* @/ g3 |* l: T
! ]- Q; y* P8 n: t* o0 ?, Dmonth(date)   
5 ?" P3 D2 n) ^4 ?3 k返回date中的月份数值   
( ~. R5 T+ @" x" W, ^4 |6 m+ d' I7 r" Tmysql> select month('1998-02-03');   
$ _/ i6 i9 ?7 p1 ?# F4 e: P6 E) B7 [- H  -> 2    ) m3 m: g' N2 v' c( \

& p" K7 W; P3 y) [% R5 h3 V% c' Pdayname(date)   
3 m$ a$ E, j, [: O$ @3 c( P. L8 t, G返回date是星期几(按英文名返回)  ' R  M! D$ V( w( n2 r
mysql> select dayname("1998-02-05");    % z% Q3 G# b3 m- M% @- ^6 W
  -> 'thursday'    . Q' o  ^. V6 H, \6 C$ M

  F0 T& ?; R$ w- ]: h! Tmonthname(date)    - U0 O2 \& W( P% @; d7 D
返回date是几月(按英文名返回)  
4 f9 U4 Y; @* ^: D1 _2 ^; dmysql> select monthname("1998-02-05");    ( r/ p9 Q. w9 h4 ?1 ]0 B  r
  -> 'february'   
2 o4 I% Y, S* A& v9 L
  a5 [) L" j1 \- pquarter(date)    / ?  {( u9 y! C4 W: ], t
返回date是一年的第几个季度   
5 x  K" l$ j$ F1 J- k+ emysql> select quarter('98-04-01');   
) U8 x- \" ~! B/ M6 i/ L/ P  -> 2    % G/ q8 W+ U( p8 R
7 {, T7 K0 }2 j8 k! H; r, S
week(date,first)   
' V( r% K& Q; V2 p返回date是一年的第几周(first默认值0,first取值1表示周一是8 V( J, E+ a9 b& p$ Z; N
周的开始,0从周日开始)  # [' R# p9 Z6 _# P  E/ j# R! p) d& {
mysql> select week('1998-02-20');   
- G2 J2 T  Q. A6 v8 @2 ^# n2 V  -> 7    " `; s: h- Q  a) u" I
mysql> select week('1998-02-20',0);    / v6 F- a/ Z$ d. |  N% {( Z
  -> 7    5 _. L4 L1 [: Q' X
mysql> select week('1998-02-20',1);    5 g, C8 B6 a! Z" c2 [! v
  -> 8   
" u# [* K* Y$ P$ p + i9 ~$ K% J' |# [" n: b
year(date)    * V3 Z. D9 w7 f
返回date的年份(范围在1000到9999)   
$ N9 G& q6 A% m) s5 \, ~' Nmysql> select year('98-02-03');    1 L7 Q) |0 t  j  p7 }4 |
  -> 1998   
3 Y5 ?; z, Z$ i' j/ ^% M ' w! ?5 @" _' K# ~5 L5 ~
hour(time)    0 i) [. L) Y2 Q2 E
返回time的小时数(范围是0到23)   8 ^$ v! O4 y7 U) w% h. a/ z
mysql> select hour('10:05:03');   
; u! ^9 _- k4 w4 `  -> 10    : X3 [7 O' N. u8 m9 i+ a2 L
( @7 g0 X/ L& v" q; a
minute(time)   
% Y5 u( ~" ~. F  ]- f6 o* i' S返回time的分钟数(范围是0到59)    * [. `) ~3 q0 m0 X  p" n/ O
mysql> select minute('98-02-03 10:05:03');   
+ m  b0 x4 v( {: u( {, f  -> 5    ; W( x- u/ M% Q' f  h3 ?8 y
6 E* o  l1 {2 g0 ~  o! t$ |( a
second(time)    * w1 _4 Z7 x% v  H& S, g, S! j
返回time的秒数(范围是0到59)   # g. S1 m, [: c$ q7 ?2 j
mysql> select second('10:05:03');    2 g' O* q+ I  c
  -> 3    6 ?/ q0 ?. D* ^

- b# G8 t. z# w/ [period_add(p,n)   
4 ^% Y7 b6 P  N2 d增加n个月到时期p并返回(p的格式yymm或yyyymm)   
! W; v, Z3 _3 b' e6 N8 ^0 [mysql> select period_add(9801,2);    # H: y$ I' n- S, M, h0 p
  -> 199803   
4 n, t( }' C% {1 k0 F+ j6 c 2 m: b$ ~" a  A! h8 a7 \* Q
period_diff(p1,p2)    0 f9 T6 V& |( X  ]6 E
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  
$ H+ K! L/ ^/ w2 r0 ?' D: o( R6 ymysql> select period_diff(9802,199703);   
. H( T& J- [( N( d; J  -> 11    / \* F8 U% F9 b% l

, X5 v) t2 Z0 K& t: N% t7 C* rdate_add(date,interval expr type)  5 {5 O2 ]  R, R5 G" g
date_sub(date,interval expr type)   
1 k  y2 T; I9 ]" k% B1 _adddate(date,interval expr type)   
4 `& v0 }3 [6 ~* l% a- @subdate(date,interval expr type)  
# ~5 D4 ^" f) w3 ~对日期时间进行加减法运算  
! E) w2 Z% i! |) i3 r( m4 @(adddate()和subdate()是date_add()和date_sub()的同义词,也
. d) R% ~4 ]& ?' o- F- D' [可以用运算符+和-而不是函数  & X7 a+ X- O! V* V& G* t4 N' U
date是一个datetime或date值,expr对date进行加减法的一个表
  R, L0 i. N  q' X) c8 {( S' x8 w达式字符串type指明表达式expr应该如何被解释  
, I; D3 U" ~6 e. i7 {( M8 Z3 t [type值 含义 期望的expr格式]:  
* k8 T) a8 a$ _; _ second 秒 seconds    + B) K9 w# b: O* w
 minute 分钟 minutes      f1 @3 f8 a% ]* {+ ?" C6 f7 m
 hour 时间 hours    ; T1 X0 F2 v+ y
 day 天 days    . W3 k+ v7 V# m5 Y. B
 month 月 months   
# r3 d' B! G9 l2 U. T! w0 L1 q* h year 年 years   
5 S6 f: Q3 z9 t% U: F4 v$ f7 e5 P; [' c minute_second 分钟和秒 "minutes:seconds"   
4 V, F, P3 A6 u% M hour_minute 小时和分钟 "hours:minutes"      C/ Y3 U: ?: d5 u% c& {/ T: B+ S
 day_hour 天和小时 "days hours"   
7 j5 m' X- ~: b" y year_month 年和月 "years-months"    + a; W1 y' ^% D8 _
 hour_second 小时, 分钟, "hours:minutes:seconds"   
4 X  G( M% U  C. ?- l* [ day_minute 天, 小时, 分钟 "days hours:minutes"   
+ p& V- G+ M1 R* j day_second 天, 小时, 分钟, 秒 "days( I/ k! h, ?% P2 a, G! M; d( I+ d
hours:minutes:seconds" ; M2 B# O5 ~1 R2 V9 e
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个( c* p* X5 q6 Q! x8 m7 p7 x6 z
date值,否则结果是一个datetime值)  
2 P4 y6 i& {- x9 |# Y 如果type关键词不完整,则mysql从右端取值,day_second因为缺
: P: {$ Q5 G/ E  t少小时分钟等于minute_second)  
! F5 _( Y! B9 V! q( E* x, p 如果增加month、year_month或year,天数大于结果月份的最大天/ k) {% H6 C7 N
数则使用最大天数)   
/ k2 P( N5 D# ^mysql> select "1997-12-31 23:59:59" + interval 1 second;  
( y8 r) i" z+ U3 @: c" v3 h ' r4 O2 f1 @7 C6 j
  -> 1998-01-01 00:00:00    7 I. X5 T/ D6 N
mysql> select interval 1 day + "1997-12-31";   
" C5 N/ R- @. t2 Z# D  -> 1998-01-01    - i' K1 D/ n+ \8 E* X5 |$ C$ A
mysql> select "1998-01-01" - interval 1 second;    2 Z! o' ~" Q# L3 J
  -> 1997-12-31 23:59:59    : e# J0 c) m3 y  E: K4 k/ `
mysql> select date_add("1997-12-31 23:59:59",interval 1" }0 D: z' Y  |8 O
second);   
+ A/ o2 d8 Y1 j8 o6 q0 U6 i8 c  -> 1998-01-01 00:00:00    # ^9 T0 [0 i+ R) b0 k* X: ~! K
mysql> select date_add("1997-12-31 23:59:59",interval 17 C5 N* Z4 w2 a* p' c
day);   
' W! }# n5 `  k- ]& L7 k  -> 1998-01-01 23:59:59    2 c, I8 L+ z$ g# V7 s
mysql> select date_add("1997-12-31 23:59:59",interval' X. L3 h1 s4 p4 T# m
"1:1" minute_second);   
# b& u6 W& ?/ _, c  -> 1998-01-01 00:01:00    5 d$ z0 F  |: U+ g
mysql> select date_sub("1998-01-01 00:00:00",interval "1! N, k$ ]1 h/ I9 F; V( [
1:1:1" day_second);    ' g3 p1 l5 N* a4 H4 c4 a
  -> 1997-12-30 22:58:59    * a! L' n% s: Z% \9 i
mysql> select date_add("1998-01-01 00:00:00", interval "-1
( d/ ?6 a  w7 ^' M/ z10" day_hour);  
% S' n3 j0 m$ k8 O5 j' d; e  -> 1997-12-30 14:00:00    4 H  p8 k8 [/ R' F: P/ ?8 }! s
mysql> select date_sub("1998-01-02", interval 31 day);      e. A2 D9 [) @0 X" v7 T/ _
  -> 1997-12-02    ; A/ B. n( [' e0 c7 E
mysql> select extract(year from "1999-07-02");   
3 S, {0 y0 U9 t# h* G5 a4 d  -> 1999   
9 }- V( d- P9 [# U' v6 g9 p9 ~' T( c3 fmysql> select extract(year_month from "1999-07-02
5 t$ Z  t8 y' {4 J- g01:02:03");    , d+ v+ O9 N! V- |
  -> 199907    : F+ N2 W3 F2 s
mysql> select extract(day_minute from "1999-07-02
, h) @5 U$ c- c7 ^/ Y01:02:03");    8 V6 Q2 U- C& Q- m% r' G
  -> 20102    * ^/ f8 [5 ?$ x, c

4 x+ M& o; o: P. C4 A/ Gto_days(date)   
8 i2 u6 G1 h7 A- @- Y  N' u5 v返回日期date是西元0年至今多少天(不计算1582年以前)  
; P0 Y, U5 t8 ]6 A3 |1 d0 Xmysql> select to_days(950501);   
# K. J* e7 a" h6 l4 G  -> 728779   
, Z3 E; c6 n" E* e6 kmysql> select to_days('1997-10-07');    9 t, s7 J# v1 G: `/ `
  -> 729669   
4 m. O6 r* f! W  _( l0 w2 }
& b2 Y  L; Z  o3 S, u7 W" E0 X. rfrom_days(n)   
  b; N$ A( i5 M* r& \ 给出西元0年至今多少天返回date值(不计算1582年以前)   # D$ }$ ?+ Z: d$ Y: ~5 H
mysql> select from_days(729669);    & ?- E4 z9 ^: e. W' f* B# c6 z
  -> '1997-10-07'   
, r0 u! V: ^* ]* s9 d8 R
' r7 {6 y/ T  y: ]0 u3 v# P  Fdate_format(date,format)    1 }0 R1 e8 f5 w
 根据format字符串格式化date值  # H' i! Z  Z* ^, i
 (在format字符串中可用标志符:  7 N' O9 Q- W) B, T
 %m 月名字(january……december)   
/ F+ J) p7 h; h( }$ J" F9 k) K %w 星期名字(sunday……saturday)    8 g4 s  q$ ^; Z
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    1 x  z, n! o( w4 Z$ R! R
 %y 年, 数字, 4 位    % a" [: B/ e3 W2 @
 %y 年, 数字, 2 位   
* E# {; K9 e8 C- W4 p %a 缩写的星期名字(sun……sat)   
* s4 E8 C8 t5 R( E6 H0 ~% U %d 月份中的天数, 数字(00……31)   
5 m* S. K, h: s3 s! Y3 w5 b! v" l0 d/ n& Z %e 月份中的天数, 数字(0……31)    4 p+ R  {0 E# w& l1 }* Y4 D4 R5 r
 %m 月, 数字(01……12)   
3 u1 Y( S) ]+ z" n5 a- e %c 月, 数字(1……12)   
  h0 T4 k' @2 r5 E  T" {# [& i %b 缩写的月份名字(jan……dec)   
! ^$ [6 K* z& L( [1 U) h %j 一年中的天数(001……366)   
6 o$ k# @, G/ r" }3 j8 | %h 小时(00……23)   
4 F: M7 z+ P! s, y- e/ C %k 小时(0……23)    % G" P0 v4 ?* k" m% U
 %h 小时(01……12)   
( }' c  n4 \3 e* u %i 小时(01……12)    6 _) K! d9 k7 z* Y1 R3 y$ @7 g! A4 m
 %l 小时(1……12)   
' t. W6 A( F+ ?' t %i 分钟, 数字(00……59)    , c" v- `) v5 X  n  u. t% p
 %r 时间,12 小时(hh:mm:ss [ap]m)    4 r' g0 f8 U) Z, T
 %t 时间,24 小时(hh:mm:ss)    / S  \: A: [! c$ @" P
 %s 秒(00……59)    6 }1 k: M3 S& a6 p+ o  m, z0 y
 %s 秒(00……59)   
$ e0 R3 P1 h+ O; ] %p am或pm    3 U0 f& C" R& T. S9 ?& j- s5 f: O
 %w 一个星期中的天数(0=sunday ……6=saturday )    ( v8 S& k8 J& s. p
 %u 星期(0……52), 这里星期天是星期的第一天   
: `* m( v. v  T %u 星期(0……52), 这里星期一是星期的第一天   
5 A. z/ q+ B2 b( v7 w) [ %% 字符% )  : f, M; L# t* A7 {* G) ?3 {
mysql> select date_format('1997-10-04 22:23:00','%w %m %( p3 q/ Y/ J- D, l8 J* k% C
y');   
! d7 W; }% I8 w% p6 q  -> 'saturday october 1997'    7 ^' U! V6 @+ w; n0 N: t
mysql> select date_format('1997-10-04 22:23:00','%h:%i:%
3 \3 I) [2 J8 o3 J+ s9 f, S3 C0 ns');    + v( G5 k) _  D! W- O; x
  -> '22:23:00'    5 b+ _6 V1 U/ V  n- L9 w
mysql> select date_format('1997-10-04 22:23:00','%d %y %a
6 e2 q0 I+ o0 X2 n: r7 o$ h8 a/ P- Z%d %m %b %j');   
" X  p# G# ?- X6 f" @  -> '4th 97 sat 04 10 oct 277'    ' H- ?( M* w6 c; x% O. O# R
mysql> select date_format('1997-10-04 22:23:00','%h %k %i: a  V# a" o2 o) M5 L
%r %t %s %w');   
5 x/ h$ c2 @; t) x5 r  -> '22 22 10 10:23:00 pm 22:23:00 00 6'    ! q# a8 g4 I0 B% h9 x( V$ h

8 Y* [+ k+ R9 ?/ l0 o$ utime_format(time,format)  6 e% F, N2 t: u0 T
 和date_format()类似,但time_format只处理小时、分钟和秒(其5 Z" X4 P6 _5 t9 w: j
余符号产生一个null值或0)  
2 _8 F+ ~% O+ X' C- _  U! P+ _
  q* Y5 S2 x- _4 C1 Lcurdate()     & Q/ l( W" o. A$ g5 O
current_date()  
1 H# T1 |9 \( D! r: \  z. |* q 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
- A# @$ B* D7 L) r9 L处上下文是字符串或数字)   
4 R- e! S" V7 d: G# V8 q2 {, k0 fmysql> select curdate();   
" I, ], s5 h* y; \3 u  -> '1997-12-15'    . t; r) T, K+ z5 z: b) S
mysql> select curdate() + 0;    9 a7 [& _1 U( n- l9 `( d8 q( ?
  -> 19971215   
, E# r* W5 `( ]6 h 8 u8 S4 Y1 g, ^/ L2 R* l
curtime()    / t# C/ c- c0 r
current_time()  
4 _( v/ c0 S9 y' X1 A& o. H 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上$ M# d# x* ]0 ]0 I# g0 U
下文是字符串或数字)      
% t: d- p# L" @mysql> select curtime();    6 |1 o9 S! N+ I6 O6 V% D/ ~
  -> '23:50:26'    # U6 V3 ~& O, j/ {9 K
mysql> select curtime() + 0;    $ Y: l7 I" Q+ w3 P
  -> 235026   
$ \5 j, x3 l3 A( g$ N2 `+ B- N
8 M. B0 T. L+ M$ X# ^+ m' o1 U6 X. tnow()    
& z+ u. I) ]4 G$ Y& @sysdate()    : g+ x, N  a/ J) ^+ O% b& L# P
current_timestamp()    r' u/ B- q' `) l! Y/ i  {
 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期. x, B( ], G6 I) c8 _) x
时间(根据返回值所处上下文是字符串或数字)     
, e. m9 p2 E5 @: S3 l0 Umysql> select now();    & e% k$ i6 j" B
  -> '1997-12-15 23:50:26'    : [, l) i  e+ y
mysql> select now() + 0;   
7 t. r4 `+ |  Y  -> 19971215235026    ; E0 _; \" n; l3 a$ v

* N5 ~3 E; I( i$ sunix_timestamp()    3 p, D" P# C( q6 l* U- C( X
unix_timestamp(date)   
) u4 s/ d! r% ?! j' x返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒& D( _2 k% z) Z% [- D9 X
数,date默认值为当前时间)  9 s5 Q! ?0 \; c% i: p
mysql> select unix_timestamp();   
( g' Z1 G( D# X' g  -> 882226357   
* R  B' ^  `# d" Q$ ?mysql> select unix_timestamp('1997-10-04 22:23:00');    % ~, }3 M. d1 G! G% {* E1 f
  -> 875996580   
1 @, Z4 K' M8 h: o
$ o1 U9 b' w' Efrom_unixtime(unix_timestamp)   
) ]* G; Q& i7 ^; [' L& v以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的( C# D) J4 i( r2 y
值(根据返回值所处上下文是字符串或数字)     ; y. t8 t* `/ ?9 q% H6 n! m: `( e. }
mysql> select from_unixtime(875996580);   
7 k, `* @  X7 r* h" v+ _+ ^  -> '1997-10-04 22:23:00'   
) Q+ M, l& l3 }mysql> select from_unixtime(875996580) + 0;    8 ~' G: J, E, Y3 S
  -> 19971004222300    + x6 h7 b% Q/ g1 o: J

+ Q  ~( L0 B6 B' ~( o. ~% c2 Bfrom_unixtime(unix_timestamp,format)    
! F  L- E1 H0 {7 h2 e7 U8 ]/ Y0 W9 d4 g以format字符串格式返回时间戳的值  / k& ]3 h  h, U8 v3 t3 S% Q
mysql> select from_unixtime(unix_timestamp(),'%y %d %m %, R& ]( ?: f$ V. I% o
h:%i:%s %x');    ! p' Q) N: `$ `: {- J4 N
  -> '1997 23rd december 03:43:30 x'    * E+ ~2 [% Q2 S7 F% O0 \

2 `4 f" ~* @' ?6 p6 jsec_to_time(seconds)    - }( `9 O; D: S' S3 i
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     * p. c1 K) P% @' @# R3 @9 |) ^* I
mysql> select sec_to_time(2378);   
8 W4 }4 M8 ~9 V; j" `: {  -> '00:39:38'    7 n7 ?/ c  f# e% u  U' Z& W* V
mysql> select sec_to_time(2378) + 0;   
& c% P5 t/ Q2 V. a. r" e. ^5 O  -> 3938    & V( E( q, t+ B& r5 z- x
: b; H6 n+ T1 T* R5 Q  y8 o0 d" X
time_to_sec(time)   
; v9 R0 c6 S* F' M8 ^6 H返回time值有多少秒   
7 `0 \0 y: g6 Y  ]8 z$ e: ]2 Dmysql> select time_to_sec('22:23:00');    $ @* Y6 X1 c3 h( J
  -> 80580   
2 ]9 Z, A$ t* Amysql> select time_to_sec('00:39:38');    ( g. q1 T6 e: u" r5 o/ L4 x* Q
  -> 2378
+ D4 x; h; }5 H( s
; K/ Z& }: H8 C* g转换函数; B, u9 F' ~# U# g
cast
5 p; V* g0 v2 X) X+ r  i. }" h( z用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]
; x- r& O5 f( t2 V4 v, L# W实例:select cast(a as unsigned) as b from cardserver where order by b desc;
/ o" [7 P3 a6 r' u7 Vconvert:, g( g' S+ j% D  I) w0 V9 ~
用法:convert(字段,数据类型)' K- d8 E5 @  t1 r" ~0 p1 X) t( ]% {
实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
, e2 M1 [# r5 C" H1 ^; i





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