中国网络渗透测试联盟

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

作者: admin    时间: 2018-3-21 16:07
标题: mysql常用函数大全
1、字符串函数. J9 x+ W4 g' G5 p$ |/ w/ K
ascii(str)     Q5 n9 B/ S! Y3 a2 ^" S& U5 g; g
返回字符串str的第一个字符的ascii值(str是空串时返回0)  / T6 x, t" R; e1 o* q, j+ K
mysql> select ascii('2');  
  ?- E7 f! B4 _  -> 50  6 R( Q6 F6 V3 v+ g( D# e& u5 ~
mysql> select ascii(2);  5 N# G% {) b, ~( C" i7 o; L
  -> 50  4 s! L# Z8 w$ w2 S
mysql> select ascii('dete');  
7 ^9 }/ A) P# Y3 c  -> 100
1 B5 _3 w; t+ V4 K7 g6 B! R- w
ord(str)   4 r6 I$ x# Y0 l' T8 m# M% @
如果字符串str句首是单字节返回与ascii()函数返回的相同值。
6 K! @4 D7 N; H" z; Q# g4 k
) D' G. J+ i. P+ P7 `  c/ x" K: }如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  / G( S. \. j$ Q  x
mysql> select ord('2');  7 o- V: b' L/ M7 T( R# l
  -> 50  
: j9 l/ R. }' T" s0 ]# b- `  R   
" d* d% @$ d/ D. O$ oconv(n,from_base,to_base)   7 g0 q0 O& C1 G- U8 d$ [
对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
$ a( D" R( }5 O1 ?7 Amysql> select conv("a",16,2);  0 C$ b, ?0 n1 }* }$ }- `1 x1 A
  -> '1010'
/ A3 P5 a# V/ g- `mysql> select conv("6e",18,8);  
2 q' I9 g+ [! K  -> '172'
( j# c1 {! p7 Mmysql> select conv(-17,10,-18);  
0 \8 w9 ~0 Q' O, C  -> '-h'
: I5 ~; M8 t1 p- Bmysql> select conv(10+"10"+'10'+0xa,10,10);    Q$ u2 {/ p! a3 v
  -> '40'
6 `( d0 e0 b+ }# k   7 y- C* Q$ P0 h% I$ n
bin(n)   
) A$ M- }9 {9 o3 {把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  % s0 y* ]" z! _, ~" h
mysql> select bin(12);  
; q4 x0 _0 D! i4 E3 {) k  -> '1100'
4 a  Y5 v. @2 D- t# {" A8 }7 R! k
$ Z  z. w; j, M5 T, L0 moct(n)   
: J1 a# J  b; Y- @/ ^把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
  h- K+ t6 F0 ~6 v1 Tmysql> select oct(12);  
% |5 \+ Q( J& H, v; t# ]' O7 D  -> '14'
& B/ Q6 _0 |7 C: ]; P   
% z1 z( b' D& p9 g( V: k4 @hex(n)   
  X$ A2 o( g; c/ Z把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  
2 H; @' e0 k! L: P& P% S3 gmysql> select hex(255);  
, j' p: g# \# S7 k  -> 'ff' % L/ \0 Q8 m* ~
   , I- J) v5 B& d2 v4 o* w
char(n,...)   
# w: O" k5 t9 `1 Q3 g: I返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   * a8 F# {. a# D6 N9 f
mysql> select char(77,121,83,81,'76');  * ?4 u4 h* E* b0 [' @2 \" \
  -> 'mysql'
7 W4 y1 p9 }& ?) p; }mysql> select char(77,77.3,'77.3');  
# T7 d  a0 `6 m  -> 'mmm' 9 M% j8 {( g* z8 |: E
   3 ~( O3 Q) E9 E* A, M
concat(str1,str2,...)  
6 W+ |5 W: e- H3 E' q# y把参数连成一个长字符串并返回(任何参数是null时返回null)  
2 Q/ M# n0 K% p0 c( R$ f4 Qmysql> select concat('my', 's', 'ql');  
4 l5 v0 L6 |( b7 U! h# W  -> 'mysql'
) E- i: y$ E9 S! C" m0 {mysql> select concat('my', null, 'ql');  . F- z- [6 J* {
  -> null * }" ~' e3 ^& m
mysql> select concat(14.3);  
1 e/ n' [0 v' w- E) ]( B  -> '14.3'
# M2 g# y5 p5 |5 X 6 J, c' r4 g1 s
length(str)   
. C5 U- t) w7 p; G, Noctet_length(str)  ; q- h! I, f2 r  k
char_length(str)  3 i8 ]9 _# M6 G9 I; l9 M2 @2 @2 [
character_length(str)  , X, E9 w& t% F/ A6 S0 U. i
返回字符串str的长度(对于多字节字符char_length仅计算一次)! Y5 C' h4 x9 z3 d* K0 `
mysql> select length('text');  , Q0 x" F, `5 C( |0 z, {% w
  -> 4  
1 O! m* w3 I3 g" ?mysql> select octet_length('text');  
* c( S1 J( \7 D2 l: _/ C3 V  -> 4  . N4 t9 o  l( P% f- _2 t8 n( I
7 m! d/ ]) ^2 |- d5 R9 ~
locate(substr,str)   
9 s/ N  B7 S6 O7 q  Qposition(substr in str)   ( F- h4 f  k8 g' I9 J
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
) n* G) L& p. N7 ^5 H+ a1 J" Rmysql> select locate('bar', 'foobarbar');  ) O* x; U& t* l5 [
  -> 4  
; C$ h9 G- o) p& S  v; L) Tmysql> select locate('xbar', 'foobar');  
# ~: m7 W; M& D6 u1 n  -> 0  3 x+ l; W$ H/ S! u7 R1 W' C  C
    4 p% p' C$ h* @  S
locate(substr,str,pos)
* }! n4 c) Z$ p9 d# }返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  ! r/ ]! y! v# R0 o1 p3 g+ I1 U
mysql> select locate('bar', 'foobarbar',5);  
1 U* P, O5 [8 @9 \+ s  -> 7  % b8 B) T" E" F

7 E) O- M0 s* L% H# Ainstr(str,substr)   9 O6 M3 F0 ~0 o" e" p0 r$ {8 }, Z
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  ' Z' w6 M& E$ _
mysql> select instr('foobarbar', 'bar');  3 q! Q* {0 Z! b; a4 r6 [
  -> 4  / t2 _/ z- C. t1 l6 n- T
mysql> select instr('xbar', 'foobar');  
; ^( r6 i4 O7 G: a3 o8 D. x& @/ O  -> 0   " M. e3 d$ ~: L# h2 J

: z" \" O0 O4 elpad(str,len,padstr)   - `6 y8 I) K% Y) G& E4 E
用字符串padstr填补str左端直到字串长度为len并返回  + ~' V4 r5 F, M4 v2 A& l( i
mysql> select lpad('hi',4,'??');  
3 e) X2 g8 |6 ~* \2 B3 ?  -> '??hi'
6 E. u( H1 s6 }, k% |7 i   $ E2 m0 A- x  {4 \! W, V
rpad(str,len,padstr)   $ q) q7 D1 e! b2 _0 S/ C7 l! U
用字符串padstr填补str右端直到字串长度为len并返回  0 T+ q0 ?, f! r( k1 M( L
mysql> select rpad('hi',5,'?');  ) j8 z7 p  g5 H; c8 I# }# H+ V0 r' o
  -> 'hi???'
  y" K: O. F7 Z& B
( e) S2 l, u, m0 m$ I$ ~left(str,len)   6 W' p) N; D+ w. z& S
返回字符串str的左端len个字符  
' x. Q; x6 J6 \) {mysql> select left('foobarbar', 5);  
# x$ k% _8 B; j, U& k  -> 'fooba' - K( h" |' z" @3 I$ S) n- Z+ d
7 N+ V' J# I( ~5 g- ]
right(str,len)   
: U( q( S3 \" M4 E返回字符串str的右端len个字符   
1 y' R9 s' {8 ^7 {( ^3 omysql> select right('foobarbar', 4);  
0 e! ^6 ]5 W# @3 X3 ?/ \1 V3 y1 x  -> 'rbar' " r7 s' Y4 e& Z  m
2 O# r/ I" P0 V! Y
substring(str,pos,len)   
- U! {; B& d- c: A/ _substring(str from pos for len)   
* G8 u' Y( I9 _- s7 @mid(str,pos,len)   
# h+ I  ~5 @0 p0 h8 i2 S/ c+ y返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
$ a6 \% F* r+ f% F0 d$ ^  -> 'ratica' 6 f* A! k3 z5 ~
- q: }0 s/ ?% H# }
substring(str,pos)   5 s5 ?* ~1 X7 u( a) g. W8 M4 _
substring(str from pos)   
2 Z6 P" H5 D' A% O: J: [" R返回字符串str的位置pos起的一个子串  5 T# _* ~- p$ u3 X% i9 A7 M
mysql> select substring('quadratically',5);  
/ E7 P, |+ [0 H: j  -> 'ratically' 3 Y, U/ |7 M/ T8 l3 Z
mysql> select substring('foobarbar' from 4);  $ Q& w( X7 ^% z: S0 T8 g8 ^+ P/ `
  -> 'barbar' : ^% Z* u3 C' |1 Z6 a

4 J$ e& \" i& _4 Tsubstring_index(str,delim,count)   
/ b. l$ W) t1 ]8 U返回从字符串str的第count个出现的分隔符delim之后的子串# t' I4 @8 C; n; ^
(count为正数时返回左端,否则返回右端子串)  
3 Z$ ]) Q# A% d" P0 lmysql> select substring_index('www.mysql.com', '.', 2);  
$ w% T5 n" Z1 ?3 _) w  G  -> 'www.mysql'
( n, f) }7 N% y- O* rmysql> select substring_index('www.mysql.com', '.', -2);  
+ W. D& ^! v' Q. {  -> 'mysql.com'
+ q* P) r" J& y7 B' D+ a
2 Y9 a" O  n, |7 Nltrim(str)   6 I0 H: [* {  v' Y& L/ N
返回删除了左空格的字符串str  
% c5 I0 C2 X1 @4 l( X6 a6 `! Tmysql> select ltrim('  barbar');  
! E% u8 w6 }# ]' o. c+ o6 D/ Z. G  -> 'barbar' 0 U( }8 S5 E1 O: I9 g' B

2 B% R* s" R3 ~/ C& l3 |# l7 Trtrim(str)   " N$ A  I6 C; S  K  ~. V% c  H
返回删除了右空格的字符串str  ( {% G9 [7 e8 \- t" d' u
mysql> select rtrim('barbar   ');  ! Y0 E" I0 ?! |3 n, ~
  -> 'barbar'
( o+ C& z5 G8 Z& r$ v1 e # R% d: m' ?+ _# j/ s
trim([[both | leading | trailing] [remstr] from] str)   9 |7 B1 F- k3 G8 E
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
6 v) Z. E" d' R7 i$ ?+ N: n( Tmysql> select trim('  bar   ');  
: I7 ~( S7 ^$ _  -> 'bar' - I& t, Q3 |/ x: A% Q- L
mysql> select trim(leading 'x' from 'xxxbarxxx');  
. V1 Q( G5 @8 ^, o- S; J. j  -> 'barxxx'
: c$ L7 y1 q; f* G/ }5 ~mysql> select trim(both 'x' from 'xxxbarxxx');  4 |2 E, i7 c2 _0 p7 |5 S
  -> 'bar'
3 l6 Q+ p. K! j8 `$ xmysql> select trim(trailing 'xyz' from 'barxxyz');  
. p# H/ _9 g3 W5 f" M  -> 'barx' # N5 ]2 ^1 s8 |6 _7 ]0 L

! I/ T2 X2 r7 J! isoundex(str)   
' i- _5 r4 y, B) q3 S返回str的一个同音字符串(听起来“大致相同”字符串有相同的+ y( _6 D: x1 @" C4 `" O9 J4 f0 `
同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  9 k. d6 N' D! Z5 B0 p# J
mysql> select soundex('hello');  ) V2 Z% k  g# T  S7 `6 C/ g
  -> 'h400'
0 E% p4 H4 m6 m& }: Xmysql> select soundex('quadratically');  
% s7 ^% M+ K. d- u/ C& T  -> 'q36324' + N' y9 I: U6 A; s
   . A/ |% B/ i, q# Z/ B0 ?
space(n)   3 S  A6 M" Z8 b- G2 [; x
返回由n个空格字符组成的一个字符串  
# ~7 j8 C8 L: P/ p% S6 I. t* Ymysql> select space(6);  
  O4 N' Z0 q! c- p/ L* p# ~. o  -> '      '
" P" U, b6 s5 }; y; O   # U& {/ ^, x7 ]. Y' ~
replace(str,from_str,to_str)   6 E! q" p, e1 v3 y& J
用字符串to_str替换字符串str中的子串from_str并返回  1 a6 [, Y: n+ `0 u4 T5 ]
mysql> select replace('www.mysql.com', 'w', 'ww');  . h' e6 U! @+ N, T: U
  -> 'wwwwww.mysql.com'
. p+ |5 `! X- b* t1 |( I1 `
+ P' y* c1 O+ [9 Z4 S- [6 Q. q) B! Zrepeat(str,count)  
& p! @' `' }) J返回由count个字符串str连成的一个字符串(任何参数为null时/ q1 b0 ~: t# Z7 X6 d0 u
返回null,count<=0时返回一个空字符串)  0 _; w: Q6 {8 X; O. {9 j2 Y5 D
mysql> select repeat('mysql', 3);  , I6 N2 P6 `$ s* k' u+ t
  -> 'mysqlmysqlmysql'
8 [: J" y3 J/ t) g% o* }7 T4 p8 t   
' ~4 f1 ?! y  D1 f& D/ vreverse(str)   
" p; z* H) p# i7 w6 M9 O颠倒字符串str的字符顺序并返回  
& S- T+ ]2 I8 z- e% Z9 Kmysql> select reverse('abc');  2 r5 \$ @% J- L1 r1 P& R$ d
  -> 'cba'
8 e/ C4 z- m( Q- s
8 m  r8 n; Y) R' m, Q9 L3 `insert(str,pos,len,newstr)     _) n4 S" C+ B! Z! l" z
把字符串str由位置pos起len个字符长的子串替换为字符串
6 G% x8 f) n) T5 Y0 r$ anewstr并返回  3 N2 h# c( x. |
mysql> select insert('quadratic', 3, 4, 'what');  
1 P( z6 ?+ u: V' E" c  -> 'quwhattic'
3 y" i$ I+ `$ e9 j 8 A7 s8 }. v  m9 S
elt(n,str1,str2,str3,...)   
, J( C$ S! R+ s. D, M- i. k返回第n个字符串(n小于1或大于参数个数返回null)  
" M' J6 I. v1 vmysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  
) Z7 J7 S6 [! j  Q4 F: R$ s  -> 'ej' 9 h# Z) J# D/ k. T) L! w- ]
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  6 B0 A8 x; L3 H
  -> 'foo' 6 e  [0 n4 {/ c1 U4 V* i

# c& d2 d8 [6 O% F: Ffield(str,str1,str2,str3,...)   & e( A4 r: A+ P$ P
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  ! S) W; A. ~; k2 k( ]+ i* Z
mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',6 f9 Y  L6 [7 ~% U7 Y  `
'foo');  % y2 k) e( Q* @$ B, D& o% @
  -> 2  
8 {6 ]  a" z! W, h, q. Cmysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
& k, m' W) z  {3 P'foo');  * I/ ?7 l2 d: Z; K9 f( c
  -> 0  
- s2 ]8 P3 a& O: A# Z ! m: C7 j  e& b; F6 z2 {0 A
find_in_set(str,strlist)   
9 v; x7 x; H" Y' U- }" g2 y. ?9 l返回str在字符串集strlist中的序号(任何参数是null则返回
  q/ b- Y9 P/ e- znull,如果str没找到返回0,参数1包含","时工作异常)  0 W7 R$ y9 t) R& r5 N
mysql> select find_in_set('b','a,b,c,d');  . n1 q5 L! Y9 B; u3 b: t- T
  -> 2  3 b+ U  [- u3 }$ `$ w
   0 |! D6 j2 E* ~( j& v% O+ {8 z
make_set(bits,str1,str2,...)  
: ~8 X) X4 }$ T把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应: b. S5 {8 P- g) W1 ?
位置的字串选入字串集并返回(null串不添加到结果中)  
2 k% Q0 `1 V: k9 C' Cmysql> select make_set(1,'a','b','c');  
! e# Y" d% N0 Z4 M) T( @' Z; m  -> 'a'
( a8 m7 c$ o- T; o  T2 kmysql> select make_set(1 | 4,'hello','nice','world');  " Q% s3 O/ l' z) x* f- y1 @
  -> 'hello,world' 0 E) l! {1 M) _& a
mysql> select make_set(0,'a','b','c');  
8 w1 d7 D' m0 P# e& w  -> ''
3 B! g1 P* }- f5 L% y0 w % v, |  d, u  e
export_set(bits,on,off,[separator,[number_of_bits]])   1 A3 x( L6 J. x" x% x
按bits排列字符串集,只有当位等于1时插入字串on,否则插入
0 S+ s5 H# }: ^9 G1 [6 Foff(separator默认值",",number_of_bits参数使用时长度不足补0
* p0 v3 M7 ?2 g4 H) i. @1 P* |而过长截断)   
- F9 }# h& o$ T4 ymysql> select export_set(5,'y','n',',',4)  & w$ {3 U- S9 A% F4 ]( N% j( U: R7 s
  -> y,n,y,n   
9 r9 L/ w4 B' n" H1 `: [ : Q5 r* P# L# n" [% W2 T
lcase(str)  5 z- ~% e( M  t. o9 R0 S, B# i
lower(str)     B. I( o  u* _2 e2 }
返回小写的字符串str  
3 |7 W! I. j/ X4 e/ l6 mmysql> select lcase('quadratically');  . W% [3 ]: X4 x/ n# ?
  -> 'quadratically'
3 e  @6 b6 ?  v3 {   3 X- z9 V6 y" ]4 d# n5 [
ucase(str)   - t; M" w& B0 a2 F, z% I! s1 i
upper(str)   1 o; U! \: n2 z$ v8 ?! n( e
返回大写的字符串str  
; m1 j9 H) v; I: lmysql> select ucase('quadratically');    ?% V* ?* J: S  O8 l8 i
  -> 'quadratically'
& l5 s- _2 b$ ^0 i
  f6 S! o  Z7 Oload_file(file_name)   
9 S0 r; ?" \# O& B读入文件并且作为一个字符串返回文件内容(文件无法找到,路径- F( Y8 v9 x! }! P
不完整,没有权限,长度大于max_allowed_packet会返回null)  5 w! x" y- T( O  {2 n1 g
mysql> update table_name set blob_column=load_file; b& @7 x. U( |, z; z6 K
("/tmp/picture") where id=1;  2 t3 L, _! h: e6 M2 u; F9 S) w. f

$ t& m) g- D+ B7 ]8 e9 L2、数学函数
) ~" y" p4 Y7 a$ g! S, Oabs(n)
+ }: Z6 \) N2 |  x. `; H返回n的绝对值  
/ D, \% p6 ]7 j- L! U* [) Z3 amysql> select abs(2);   
6 [, r9 N$ A5 ]9 x6 z! B/ C  -> 2    5 l5 e1 p. I; N% U  i1 `; v/ y
mysql> select abs(-32);   
1 A# g. g% `0 H- {2 Q7 r  -> 32    0 i2 U$ _9 |7 D& X: ~4 l) q# ~
   
( W8 V3 m" t% d6 u; ?sign(n)  . L9 m9 I- k  X7 P; N5 E
返回参数的符号(为-1、0或1)  ( n  [) b8 A  a5 s: i
mysql> select sign(-32);    $ t, P. \1 G0 B( m! ~
  -> -1    6 W8 p% w% Q9 K* ]
mysql> select sign(0);    # M0 T0 N! s  w! {% m6 m
  -> 0      [0 r2 `1 G6 F( T( Q
mysql> select sign(234);    & D9 Z# v6 m& S" p! C
  -> 1   
* Q" B2 h5 s; d
# w$ S6 {* K% x9 ~) nmod(n,m)   
3 G/ T) J" j9 R: @$ ^取模运算,返回n被m除的余数(同%操作符)   
1 t8 c/ \7 z( w$ dmysql> select mod(234, 10);    5 k+ F  Z$ ]9 F3 r8 ]% A  {- d
  -> 4   
$ Q( E" U- ~8 B' o: Cmysql> select 234 % 10;   
, x& }3 [1 I4 O7 o, g% F  -> 4   
, j4 m! M+ h; O, s0 rmysql> select mod(29,9);    # f) Y$ e7 e2 b% C5 p5 b" Z
  -> 2   
) m. l' j3 \) E- m8 L2 q $ C% D+ z/ f) [  z9 |
floor(n)  
$ K7 u% u+ A- {- p. F返回不大于n的最大整数值  0 V+ i' p+ K! [; m; I
mysql> select floor(1.23);   
! h) m/ |; J: P  -> 1    + w# J* l) \7 J) K0 d
mysql> select floor(-1.23);    $ p" S5 N4 r0 @
  -> -2    ' {& i4 E  A; |  H. @1 A

, ?7 ]' J! u5 u5 _0 Qceiling(n)  
$ a3 G' C, l$ F3 a/ p* m返回不小于n的最小整数值  
  }, R& O& @  ^' Rmysql> select ceiling(1.23);   
8 [# ^  }% ?/ Q9 `  -> 2    ' J  N+ a* F( m( d: Z$ w
mysql> select ceiling(-1.23);   
6 g; q* Q" J  Q  -> -1   
1 [0 {& C- B$ n3 H. J + X' @2 B9 R' J2 Y+ Q- i6 _! f
round(n,d)  " f" C8 m9 l& ^
返回n的四舍五入值,保留d位小数(d的默认值为0)  
( A3 x6 |  c" ?5 ?mysql> select round(-1.23);   
9 E) a6 Q# D5 e, J+ n: J/ Y  -> -1   
4 a2 T3 Y6 l3 V% @mysql> select round(-1.58);   
0 I* m, q$ i& g8 j8 L6 D  -> -2   
* e" P+ g. N& I; p. zmysql> select round(1.58);    , C: ~; G/ |& k" E" T+ B* ^, A
  -> 2    + F2 I& _% \# p# ~, B- {$ }' k
mysql> select round(1.298, 1);   
3 b0 T( T* G1 ^# o  -> 1.3   
) {% J3 ?6 Y# p2 e" ?mysql> select round(1.298, 0);   
7 [4 t% \7 J* g. n/ S  -> 1   
7 u$ [! t0 C4 i5 V6 x) F
& N" B8 U* ~9 @: _exp(n)  * O$ H( l& m" A. ?7 O. o5 T4 q  a
返回值e的n次方(自然对数的底)  
  G0 u7 O/ s# @+ omysql> select exp(2);    ( r. M1 \' E& ?- c: R
  -> 7.389056   
" l% B2 S% C! J) [% G7 G2 vmysql> select exp(-2);   
/ V& X0 q4 C9 |& J9 e/ o  -> 0.135335   
- ^: r3 V) j1 y9 G  c: ^ 8 }; K1 C0 {9 E
log(n)  , p2 A+ u0 P! R/ z; |; a
返回n的自然对数  
" s; \, u$ D8 Dmysql> select log(2);    9 `0 l  Q) k# ]
  -> 0.693147    ; n. i5 G; _1 T3 m! _6 l4 P  L
mysql> select log(-2);   
- a3 l$ F0 b9 T: Z8 T6 x0 S  -> null    " s! [+ D( r/ g1 ~, U

% \! f+ s+ h( S: Ylog10(n)  
( y" R  ~7 C% n; Q( D% n2 F返回n以10为底的对数  
8 \6 \# q& t9 l( j% E6 O  k, C4 p- Wmysql> select log10(2);    ! x$ l1 g# Q5 }. o! e  X. J  h7 k+ e
  -> 0.301030   
; O6 B4 H. @% o4 Mmysql> select log10(100);    ! |3 T7 D6 F( ~7 y3 K6 w2 X
  -> 2.000000   
% ~5 ~4 V8 ~0 S5 _2 R- t5 rmysql> select log10(-100);    ( R7 T  d4 N' M
  -> null    9 s: a9 O  ~. x1 N7 T
6 s; P5 F, E) O! ]5 ^. B5 `
pow(x,y)    0 ^( R( i& M4 n" L
power(x,y)   
/ F  W! T2 ~9 o. w& Y# ]5 ~ 返回值x的y次幂  
2 ], f, e9 Y% [mysql> select pow(2,2);   
4 h" w$ V  _8 \. y3 N* o  -> 4.000000   
' M" k8 Y# X9 ]mysql> select pow(2,-2);    0 P6 O3 a3 `* L* w
  -> 0.250000  
4 T" m& \/ F! X' r: Y4 L
% F( t  n' T, W2 z! W7 Jsqrt(n)  
3 v( \  S) u$ I6 Z' F9 D- v 返回非负数n的平方根  
0 Q* P. U1 O- J1 @  w; fmysql> select sqrt(4);   
& l+ V. Y/ g" [- U4 |# ]  -> 2.000000      w2 H2 T  M1 J9 S) F: G" p
mysql> select sqrt(20);   
( p/ _. Q7 I8 ~7 Y  -> 4.472136   
2 K: i% x" b1 M' |; O . s0 i- r/ R3 `5 ?1 C
pi()   
1 Z: `$ o( U. ~& d 返回圆周率   
8 X* q! T5 p. D+ j" W* a' {mysql> select pi();   
% R4 _* ]9 Z, E4 T  -> 3.141593   
+ o6 i6 e) P1 A5 L  H0 g6 X
. _' c; z2 {0 W7 J' k2 S4 `cos(n)  
  }% }$ L, J# g2 [  W 返回n的余弦值  
! o* O, j5 n! S* smysql> select cos(pi());  
1 t: a' \& H* d; ~! d$ `  -> -1.000000    % H, q- c2 S: ?; Q0 ?1 w
+ ~, S4 Z7 R2 A5 M4 M% J
sin(n)  
9 g2 x% u7 k1 y' ^ 返回n的正弦值   
3 \2 D& r  U- Q" `( E+ T- i! ?- gmysql> select sin(pi());    $ R$ j8 I/ e& I1 i( E
  -> 0.000000   
! d) b9 \) \( m( { / _. s3 {7 X  H8 X* e" E
tan(n)  " q9 g: a2 ]) A. Y& M
返回n的正切值  ( v/ m( P" a; T  g* R
mysql> select tan(pi()+1);   
$ r1 O1 n' X* _. D: Q, N  -> 1.557408   
8 Y1 t' b) V! M. c # P/ \' ^, C; @6 s
acos(n)  
! T7 ^  ^. N, Q/ Y) F$ } 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  9 T% J$ }: p, S! ^
mysql> select acos(1);   
) X5 R9 {& B+ p0 Q: ], ~: J9 ?- j  -> 0.000000   
4 u% Z3 X6 e2 ?! Z1 \mysql> select acos(1.0001);    8 n1 _% F4 p9 M
  -> null   
% {+ |+ r/ X! U/ q" Omysql> select acos(0);    3 {9 q) O) g  Y" `* U
  -> 1.570796    ( V: D7 E3 G! H5 W: W

7 N5 Q1 g# r( Q$ i8 \asin(n)  
; w0 J; j5 ?( |返回n反正弦值  
+ V& [& {/ d# o2 Dmysql> select asin(0.2);   
* n1 d( t: P+ ]8 t4 A+ D  -> 0.201358    : h% [3 z. L% V" ~1 l- s
mysql> select asin('foo');    # }7 }+ D9 Q7 I2 `  Q, U
  -> 0.000000   
3 [. A4 h1 e3 ^$ a 9 D# _/ w  l& b9 R5 |" B. D
atan(n)  ! T4 P3 R/ l+ F
返回n的反正切值  
. e0 {3 G: C$ I/ r- X' D7 C; vmysql> select atan(2);   
! Z) \5 d4 b- A$ b  -> 1.107149    " Q8 d1 M4 V6 U2 F7 Y
mysql> select atan(-2);    7 C% s( ~; @+ D5 e& D9 B% O( H
  -> -1.107149      |4 X; t  z. s& l! U; Q. a
atan2(x,y)   
' X) t3 m1 b. B0 N 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  
& X% x. N; f' Dmysql> select atan(-2,2);    4 w" V0 c9 B( y
  -> -0.785398    # Z+ r: H0 S, K2 O* F# ]: S
mysql> select atan(pi(),0);    # Q3 X) h. G8 i8 w, v
  -> 1.570796   
* g; T! G( k2 u! O# i: H& x
# s; D+ {" _4 P+ Z, h: kcot(n)  # Z0 [2 Y0 n/ l) @% c& f) ]/ i
返回x的余切  
$ O- Z5 D2 k7 C, h3 \6 A( Vmysql> select cot(12);    1 _0 F6 h9 U" n" s( H! Z
  -> -1.57267341    / I% A, f* ~' ^8 m$ \
mysql> select cot(0);    , b  p! u' ^7 E( n* ?8 M
  -> null    ( B8 }3 U6 R' D6 G) A

. x1 R, Q/ l4 `' N# P' \/ }- Hrand()  ( z& [7 w/ r$ \
rand(n)    8 G/ [5 p; d8 C1 l% y& t5 i) t
返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
. K, g" w4 q$ ?  h. a5 A+ s5 Z
1 b* Z! @8 J  P) mmysql> select rand();   
: p# q! Z! N$ s  -> 0.5925   
. l# q, R) i9 g. g: e8 ]mysql> select rand(20);    0 K1 x& B0 e/ X
  -> 0.1811    & V  r$ |) e+ j% z/ k/ A+ }
mysql> select rand(20);    3 f8 @' c% z) a# L( m8 C4 R9 @
  -> 0.1811   
2 E, @2 P8 f7 [% Rmysql> select rand();   
0 n/ D6 O* ^' f: m; q, Q  -> 0.2079   
6 f( D* R# Q% Y# c. n+ L4 U6 U0 xmysql> select rand();   
; a# S. C  v) l7 q  -> 0.7888   
4 l+ v' T# x* E5 H5 w  Z/ B; f 5 `; `' u) Y# z/ w6 q" Y$ t
degrees(n)  
: T. g8 ]: v+ n) ~5 q1 [把n从弧度变换为角度并返回  + f2 Q+ T  d) q6 P8 B8 ?1 g' B
mysql> select degrees(pi());    8 s- D" w, R3 x$ }5 [
  -> 180.000000   
) R, F% {" v' L$ Y# j
4 E. @0 S  ^, \3 X# K3 tradians(n) + ^: d* Q) w# \0 |5 j& w. }& L
把n从角度变换为弧度并返回   
' ?) y& ?6 `: n% [( ]: y$ Gmysql> select radians(90);   
: G5 J8 l. d0 A: k( }  -> 1.570796    % E% e* D& s% p1 n! `. L
7 l# X5 v3 m. l
truncate(n,d)    % z- `- I% n$ R" q
保留数字n的d位小数并返回  
9 I) l* O* N, u7 y- amysql> select truncate(1.223,1);   
# k. T7 v% X' w  -> 1.2   
0 w( w* F/ y2 V! k! qmysql> select truncate(1.999,1);   
7 T. l) M* V' S4 Z  -> 1.9    - W( ~3 S; v3 Y+ ]+ ^
mysql> select truncate(1.999,0);   
* W& {3 P8 B* v; F: K  -> 1    6 i7 U# {6 m: I' x- q* V8 j

# Y8 m. a2 Y8 R  K0 Q) ^least(x,y,...)   
# O: O* J/ m- [/ Q: ]( J  D返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
" t$ l$ Z; O" a0 K1 umysql> select least(2,0);    & `. s3 Q' B, F0 \6 w, F0 z' `5 K" y
  -> 0   
$ d# s3 `8 u" R' Y: Tmysql> select least(34.0,3.0,5.0,767.0);   
$ [% P; }! M$ n  N; k% ^' b  -> 3.0   
- D; q1 D0 @. M5 o; @0 ?6 a" jmysql> select least("b","a","c");    9 b: Y1 a7 R. @( j  z& |1 ~* |
  -> "a"   
4 R1 U! Z2 F: |7 e% d
6 {4 L7 l5 m. J+ X& f" C6 Ogreatest(x,y,...)    ' W. m( U, _$ `" U9 {
返回最大值(其余同least())  " k  X0 e3 Q( R4 H
mysql> select greatest(2,0);   
2 k7 S& f# k  Q4 Q  -> 2   
0 E1 Q5 u9 W4 wmysql> select greatest(34.0,3.0,5.0,767.0);    ' ]+ v$ @7 p2 N# }% t
  -> 767.0   
' v: L$ L0 d" w8 dmysql> select greatest("b","a","c");   
& m7 [, s3 A0 d6 i% A3 Y. L7 S/ P, e  -> "c"     
- N& |% P. A& d6 c, ?5 n3 m& E# W8 s
  P; W+ O" }4 i9 i. G3、时期时间函数
& i# @: b, w* h2 tdayofweek(date)    & l4 H  Z: H5 e. t, \( O. S; H) {, X
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  * U; }+ D' F# |9 d/ O( {
mysql> select dayofweek('1998-02-03');   
1 D+ \7 S4 ]/ f4 }* a7 G  -> 3   
( _# z: Z7 r, N& Y. }  d) n 6 {  J+ D$ s0 ?# n
weekday(date)   
" }1 \& V. n' c* [, T& ?) G3 s返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 ) W' D' M; d* }' L
  
( J9 u* i6 E: omysql> select weekday('1997-10-04 22:23:00');   
4 P% d% P8 b! F4 P  -> 5      g' \! k, M3 s- `# o7 [; g& ]
mysql> select weekday('1997-11-05');      B( M0 {# n. S  c$ U) }# `
  -> 2   
& e  n0 A2 a; M: s$ w; y+ X) N* q+ E 8 b. L( T% c9 p5 |& k
dayofmonth(date)    
! G2 ?2 T: Q) C返回date是一月中的第几日(在1到31范围内)   
% U$ p+ _0 N* N) Y/ c5 ]4 Emysql> select dayofmonth('1998-02-03');    8 h, x! r6 I* n
  -> 3   
( F) k# q4 w# i  a) C0 y. k. Y# U0 C . W: L8 b/ K3 P$ H# W5 M, L$ m
dayofyear(date)    - n1 R+ }5 d) h6 q. c+ `
返回date是一年中的第几日(在1到366范围内)   
- k- A9 |+ B9 I9 M1 _- |1 wmysql> select dayofyear('1998-02-03');   
' a0 W& T: P$ R# Z  -> 34   
2 {) A, j, K( g. k$ W6 Q* n
- U, ?9 ?* T. o2 r4 Emonth(date)    - F* u2 z9 J- P$ N+ A# t: I
返回date中的月份数值    / }) \! M# p) m1 S
mysql> select month('1998-02-03');      D( x, E  y) |+ C
  -> 2    . D* r7 n* r! a0 M) r
6 t. l0 L7 f! _% d! y' p
dayname(date)   
3 a, q' T+ O) g! s) i' d' d返回date是星期几(按英文名返回)  
5 X3 q5 v& K+ v1 k1 ]1 R% d) h: hmysql> select dayname("1998-02-05");   
% G8 Q& Y; B# z0 s8 ~, \  -> 'thursday'   
+ S. f, I4 G: q4 r2 E
  ~' k9 K) ^" w. x8 Wmonthname(date)    
* ~& A3 L* {% m7 h* [6 l  d返回date是几月(按英文名返回)  . D8 u8 T9 G3 ~8 f1 F* n2 @
mysql> select monthname("1998-02-05");   
. e2 o9 B, ^0 c" ~2 [  -> 'february'    ; E- Y& v; U$ j5 e2 ]6 s

  W7 C: z4 W7 X5 pquarter(date)    5 n5 ~4 S: w$ n4 H6 v: v
返回date是一年的第几个季度    0 v- r1 `. h2 ~# Y
mysql> select quarter('98-04-01');    % ]  `& v0 J5 q
  -> 2      J7 d5 ?2 B. c+ q8 z- Y

4 @$ a+ j0 i, L. Q# {. ]8 \# iweek(date,first)   
( c( w9 Y1 N, |9 L7 Q) N返回date是一年的第几周(first默认值0,first取值1表示周一是
$ e" f; H+ B" S' E$ }周的开始,0从周日开始)  5 H2 j) q: M( j3 P
mysql> select week('1998-02-20');    6 H8 V& k( n6 l! F* M4 M" }6 O
  -> 7   
: s% L1 L5 W2 j( ?3 [6 Q5 g6 smysql> select week('1998-02-20',0);   
* V6 N0 N3 j" y/ w( y4 |0 D  -> 7    ' S* @4 h% M. K1 o
mysql> select week('1998-02-20',1);    ! u$ `. d" R3 k# g+ H, H2 a" q
  -> 8    4 t9 ]+ u& Q/ m6 Z  z0 c: E% u
- l2 E8 d, F% K6 E7 C1 s0 v5 p
year(date)    8 |1 e) N4 U) M) C( Z# [
返回date的年份(范围在1000到9999)    % g  M0 S5 Q1 [
mysql> select year('98-02-03');   
) t: c- C. }) N& |- T; O  -> 1998    3 X: M' T( C& F2 U
0 ^' w0 G) Y: u9 G; Z; o
hour(time)    
: @8 y3 o: _' e7 I" T& ]返回time的小时数(范围是0到23)   : ]6 C' k& ^' [/ f$ ?9 C
mysql> select hour('10:05:03');    7 \6 M, @8 k6 }. o9 [
  -> 10   
% F- v/ x7 h5 k- a6 b4 ]
' g- g' d: L- y& C. tminute(time)   
' s2 O; A" A2 ?0 |( f返回time的分钟数(范围是0到59)   
5 |2 T6 Y+ s5 I5 u+ H: o$ ]mysql> select minute('98-02-03 10:05:03');   
7 a; T6 T- p5 J& ^, C  -> 5    * c0 v& z1 J" Y8 z. l
7 w; H# u5 P1 z  [
second(time)    5 _; Z+ g/ b0 d5 T6 A: x/ s
返回time的秒数(范围是0到59)   
( Z' J1 v1 c3 k" ]mysql> select second('10:05:03');      n  ]; @9 U3 H) c1 v( e  x" i
  -> 3   
& C* w  @8 G3 T# `/ S* u 7 u5 {8 g- M4 }4 c, ~% w$ g6 R
period_add(p,n)   
& [% {7 ~' b7 W7 }7 F增加n个月到时期p并返回(p的格式yymm或yyyymm)    & ?: H2 G8 K+ b2 `; P" I8 X# \6 \
mysql> select period_add(9801,2);   
; u& @3 B0 l  \  -> 199803   
! G, t2 Z3 N# c7 b
  P" g8 @$ r" i/ p7 U5 aperiod_diff(p1,p2)   
# U7 O1 X( S6 T4 l. |# F返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  3 @3 Y7 \4 W$ D1 I+ [
mysql> select period_diff(9802,199703);    & K! f% K- g4 b0 ~) [
  -> 11    , Y; j- k" Z  t: b7 u

1 m6 o8 `  M8 c1 R5 K2 q0 Qdate_add(date,interval expr type)  
, I) }" }/ P- vdate_sub(date,interval expr type)    - y+ s, e. j) R
adddate(date,interval expr type)    - W- v5 K8 Q+ Z
subdate(date,interval expr type)  
" Y8 g+ O8 B8 c/ S# z2 A, c对日期时间进行加减法运算  
: ?0 y  S6 Q1 W% b" g% k(adddate()和subdate()是date_add()和date_sub()的同义词,也- R/ e9 e6 C1 `# C; l# x
可以用运算符+和-而不是函数  # z% X1 A2 w: n) {1 h
date是一个datetime或date值,expr对date进行加减法的一个表
4 q; x' k4 }# R% {达式字符串type指明表达式expr应该如何被解释  
. s2 [1 S6 T0 t; F* H- Q" v [type值 含义 期望的expr格式]:  . o9 n  i6 g' ?
 second 秒 seconds   
- g; U, l7 J* ?) R# S  F# y7 Z minute 分钟 minutes   
8 R2 N2 ]3 r* B. e; h3 \1 z hour 时间 hours      I) u# H  Z/ W+ T5 Q
 day 天 days   
& U* X; @% ]$ [8 M7 d; X+ J month 月 months    ' {+ q# F4 T- A. t2 }
 year 年 years   
0 B9 F' g7 `2 |! r7 \- k minute_second 分钟和秒 "minutes:seconds"    6 R) y% v* m6 H9 Y5 _
 hour_minute 小时和分钟 "hours:minutes"   
/ E) Y3 _( R+ ^ day_hour 天和小时 "days hours"      r! B7 e) w( d, A
 year_month 年和月 "years-months"   
3 x! w# B6 ?8 s- P3 P# @% ~ hour_second 小时, 分钟, "hours:minutes:seconds"   
# O6 U- i' l, p- K6 u  o day_minute 天, 小时, 分钟 "days hours:minutes"    + q% C6 r/ U" P" @0 E7 D1 R
 day_second 天, 小时, 分钟, 秒 "days- T$ t3 p4 ^# F  V
hours:minutes:seconds" * n1 H; P/ n$ s$ p' `- U: l( G
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个
+ d0 k" p( M/ E9 {1 _9 ndate值,否则结果是一个datetime值)  * P) g4 t0 T$ }
 如果type关键词不完整,则mysql从右端取值,day_second因为缺6 n- j1 i3 v  J5 O' X
少小时分钟等于minute_second)  
2 Q; ~  L6 k( s# j7 r5 n+ A- e0 Q 如果增加month、year_month或year,天数大于结果月份的最大天
$ W: {9 S4 w: Q. g! x数则使用最大天数)    $ ?0 e0 s$ z: J; F: R6 c
mysql> select "1997-12-31 23:59:59" + interval 1 second;  # R3 f! F4 v( ^2 `, [$ Z

/ W5 X/ i: x7 ?) C4 b4 ?  E  -> 1998-01-01 00:00:00    & X9 |3 d" H9 W1 ]  E
mysql> select interval 1 day + "1997-12-31";   
- J- I5 S5 d) _% L& ]% ^9 R" Q  -> 1998-01-01    7 ]- q; J& |# `8 w
mysql> select "1998-01-01" - interval 1 second;    + @+ {( v+ L5 {' b
  -> 1997-12-31 23:59:59   
, A3 d( L% X5 cmysql> select date_add("1997-12-31 23:59:59",interval 1$ B4 V( l6 T* V9 V
second);    ! {, g! F3 t5 T, q: y
  -> 1998-01-01 00:00:00   
' ^) V; i& i: S5 E# k$ R" umysql> select date_add("1997-12-31 23:59:59",interval 1
! l  _- q+ D# J9 ~9 W1 ]6 ~day);   
; n3 A( p2 M; I( s  -> 1998-01-01 23:59:59   
. f& [$ |, c4 x0 ?4 Q2 Pmysql> select date_add("1997-12-31 23:59:59",interval; U5 k( v% V/ n) q$ }  V$ ?. o
"1:1" minute_second);   
( G: O/ ^: I( e8 v; P- X0 K  O' u  -> 1998-01-01 00:01:00   
8 T! P. q8 I* s8 rmysql> select date_sub("1998-01-01 00:00:00",interval "1
% B% x1 X" s. a) H1:1:1" day_second);    7 {$ j, K. z( r0 [  K
  -> 1997-12-30 22:58:59   
: I' Y8 g1 H5 T1 Q* T5 B9 Hmysql> select date_add("1998-01-01 00:00:00", interval "-17 n0 d- G4 H' }% l& s- g
10" day_hour);  
* i1 ]% C8 N. o  -> 1997-12-30 14:00:00    $ n) j. V% u( M$ z2 U" T, K- O
mysql> select date_sub("1998-01-02", interval 31 day);   
" B' X4 H2 C0 ^% o+ j8 G2 O4 ~6 f7 M  -> 1997-12-02   
) \  i) q5 p% m- O) K, amysql> select extract(year from "1999-07-02");   
/ `+ W+ {. }! ]7 y8 ~  -> 1999    - e% w: a4 _' T* ^2 G
mysql> select extract(year_month from "1999-07-02
- B2 @& _& E( `01:02:03");    8 |. K, i' R: j- k; j6 Z
  -> 199907    . x3 h' A* s8 S( R: @% R1 b
mysql> select extract(day_minute from "1999-07-02( q, r3 c) O, B- w7 q
01:02:03");    " U/ k3 z; z6 r" v- [5 z! C  P
  -> 20102    ; R( I7 U( S# ~3 u5 B

( l; \: T& M5 P7 p- eto_days(date)    + D: h& R& [- v8 G6 H9 B5 o9 n; w
返回日期date是西元0年至今多少天(不计算1582年以前)  
. Q, f2 c+ ^8 ymysql> select to_days(950501);   
% N  h0 |$ W2 S9 p' d  -> 728779    / I9 ?* z0 d% Q$ j8 _! E) [- x5 j
mysql> select to_days('1997-10-07');   
7 h7 U" T/ O* {; z+ Y  -> 729669   
: [- F% n! B. H0 y7 J
  F4 \1 c6 V+ u: X+ A9 k" {8 e, N, wfrom_days(n)    4 P, l8 U; `9 b/ x# {
 给出西元0年至今多少天返回date值(不计算1582年以前)   , v+ L7 Z2 P6 [5 X; \, X/ b. a
mysql> select from_days(729669);    " k5 O3 C( g4 U* n
  -> '1997-10-07'   
" x0 t2 h, w! l2 j) L$ H
. E$ M5 G: N" o1 v# \4 rdate_format(date,format)   
& E7 l4 x5 ]" ~- C 根据format字符串格式化date值  
) m. C- }" X/ x% C, Q+ y5 y (在format字符串中可用标志符:  : ~: y: r9 Y/ q0 j- @) J
 %m 月名字(january……december)    ' F  l9 g& f# f  e) u
 %w 星期名字(sunday……saturday)    8 L. H2 t7 \* W$ j* Q: J: ?0 z
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)   
; v, |1 N: d+ ]' E2 V; }  E %y 年, 数字, 4 位   
" Y: n4 o; J  d5 m/ A %y 年, 数字, 2 位   
! @4 I- R1 \+ e1 E, _, ~0 Q %a 缩写的星期名字(sun……sat)    ) ]  M5 b2 S1 {7 Y' U6 g1 i
 %d 月份中的天数, 数字(00……31)   
( m- g- y$ C  O' }' R4 _ %e 月份中的天数, 数字(0……31)    0 f3 a0 w- }, e+ S! p; K8 e
 %m 月, 数字(01……12)    ; C8 u0 X+ \: P1 @1 U3 ]
 %c 月, 数字(1……12)   
- q; B0 g, R6 M %b 缩写的月份名字(jan……dec)   
6 [) k7 F9 S; r* U2 |8 M  y %j 一年中的天数(001……366)    - l$ _2 \- x+ z
 %h 小时(00……23)   
: w$ h" F( {0 I$ n) M %k 小时(0……23)    ) w; @% X# s! `5 I  ?' h
 %h 小时(01……12)   
( P8 k0 A1 i( v/ _% \ %i 小时(01……12)    7 D% {' O& ?& ]
 %l 小时(1……12)    $ [# {% z, H! ?$ G8 {
 %i 分钟, 数字(00……59)   
+ R6 q, j- T+ d5 Q7 _0 d' ] %r 时间,12 小时(hh:mm:ss [ap]m)   
9 ]0 F9 Q! O$ a  G  Y %t 时间,24 小时(hh:mm:ss)   
" d( W' D1 f: p( @' I1 t  V %s 秒(00……59)    6 T7 Z2 i4 P) `2 v
 %s 秒(00……59)   
9 _+ C# I  y- x; H: z; b %p am或pm    : k& I  U: r3 G% n+ Q! T
 %w 一个星期中的天数(0=sunday ……6=saturday )    # |9 f1 l9 }* g% p$ g( c
 %u 星期(0……52), 这里星期天是星期的第一天    8 v4 m" o0 G; [, k- W6 g
 %u 星期(0……52), 这里星期一是星期的第一天   
& C/ ?2 J0 Y  L7 n" b %% 字符% )  5 b5 D! ^. \( H4 d1 c  ]5 {; w5 l9 [
mysql> select date_format('1997-10-04 22:23:00','%w %m %, G7 y1 B  K0 {5 t
y');    ! E1 p0 d/ ?. {. ^
  -> 'saturday october 1997'    3 w2 l) y; [  a4 a( k) k& Y4 ~- g6 w* I$ Y( B
mysql> select date_format('1997-10-04 22:23:00','%h:%i:%
, s6 f' x: m  m5 ms');   
; l2 I  S2 }$ s: k  -> '22:23:00'   
5 ^5 V( [  ?0 X) Nmysql> select date_format('1997-10-04 22:23:00','%d %y %a
, `8 w( W( Y0 Y, K3 z4 R9 H%d %m %b %j');   
0 C: O, f; U' g; j. h  -> '4th 97 sat 04 10 oct 277'   
0 `4 |/ N, w) hmysql> select date_format('1997-10-04 22:23:00','%h %k %i% g0 _' x8 x2 r, M! O* Y& a" C
%r %t %s %w');    6 H9 X# c; f% X4 s0 [1 R
  -> '22 22 10 10:23:00 pm 22:23:00 00 6'    ) K/ _7 c3 n/ N( j0 E

" v8 q/ o; {" v% V% H$ X. Ftime_format(time,format)  2 v# s) Q8 @/ w. e
 和date_format()类似,但time_format只处理小时、分钟和秒(其1 ~- P6 z( g0 ], K8 O4 [9 I% m5 {
余符号产生一个null值或0)  
( ~  U' ~! a+ _! ^ . Q6 |7 L- `3 K* t( _' _( o
curdate()     
, G0 R1 Q+ Y: W) A6 v$ H8 ocurrent_date()  
+ j2 q7 Y( H! z# Q 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
& i/ M5 i! t1 I3 H5 r; ~; M  k2 ]处上下文是字符串或数字)   
; ?: z1 J  u* x  I# B4 Tmysql> select curdate();   
- X* ]; R; H9 Z  -> '1997-12-15'   
( F- t. b. m' C( N2 O6 xmysql> select curdate() + 0;   
; n7 @) }8 D( v& X, E! a- G" i  -> 19971215    ! }3 q, K$ G6 s1 J% k7 ?* k9 {
8 z6 y$ k, v% a9 E, G, P2 b0 N7 W
curtime()    ' X0 P# Y: K: }- y9 Y# {- F4 [
current_time()  9 h2 \2 z; ~7 T% j8 w4 w
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
0 m0 L" l+ R* t7 M5 W下文是字符串或数字)      
# Q, C/ h+ |1 x2 ~8 R& |mysql> select curtime();   
) [( x: s3 r9 g+ X& I3 g( [  -> '23:50:26'   
. f) B- I7 o/ ?. K  b$ ^mysql> select curtime() + 0;   
- Q5 r* \7 i& {% ]  -> 235026    : D, T% ]8 t  C3 d  h- J% u
( P7 r' Y. ]  `$ ~% F' X
now()    
$ d1 @7 D2 ~# S+ esysdate()    
/ U9 n) B. M3 j3 c% Kcurrent_timestamp()  
; y( {% l! a( w) r0 N& C2 \ 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
: [% N/ D4 B2 J9 H时间(根据返回值所处上下文是字符串或数字)     - N9 n# q+ v) p& O2 Q- ~
mysql> select now();    ) [9 v2 ]/ v. @! j3 u; \
  -> '1997-12-15 23:50:26'    ( I  ^1 b5 K- {6 @! ?% l3 J5 ]6 I, e# n
mysql> select now() + 0;    9 t7 e$ G1 S- v4 x& e
  -> 19971215235026   
' T$ Y) |5 U; Y, d% u
1 l7 d4 ]8 L+ I6 F/ O& p! F% _unix_timestamp()    ) n/ }& V1 V" I2 [' d% J5 {4 A
unix_timestamp(date)   
- z$ t1 A' i* K( L: k返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒; Y' L' @# A$ K# e" Y/ H) i9 u
数,date默认值为当前时间)  * k/ r9 }0 `" j6 ^0 J2 d
mysql> select unix_timestamp();    % q. c& V5 ]$ m% H! r9 I2 A
  -> 882226357    1 v7 M3 M* G8 N$ ^' U
mysql> select unix_timestamp('1997-10-04 22:23:00');   
: \2 T$ m5 ?# E# v) b! O  -> 875996580   
4 h/ e3 @4 F; m * \* g2 j/ ?' L
from_unixtime(unix_timestamp)   
6 O& }, z* \# F以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的
) W1 C" ?3 N, j/ i- R值(根据返回值所处上下文是字符串或数字)     ' O: B, {$ G) p# T" W6 X4 N
mysql> select from_unixtime(875996580);    2 H1 S7 [3 g  B5 b% R6 {
  -> '1997-10-04 22:23:00'    ; k5 @& L1 H. D9 S. ?
mysql> select from_unixtime(875996580) + 0;    4 z- x# {! i% J+ {) ?
  -> 19971004222300   
4 T+ x  d/ n& ^4 v
, |- M* z/ e6 e0 O- l. |: d* Nfrom_unixtime(unix_timestamp,format)    
6 a/ M0 }6 g* g以format字符串格式返回时间戳的值  
5 s- c% k* z% N. gmysql> select from_unixtime(unix_timestamp(),'%y %d %m %) w% b6 n2 Z  d0 l$ e5 o
h:%i:%s %x');    ; S3 w( A/ N5 z( r/ v8 k
  -> '1997 23rd december 03:43:30 x'   
, k& k' Z9 a* S' p( C% A
0 @' o- I2 ?0 ~' r: N0 V7 dsec_to_time(seconds)   
9 n6 E" _4 q7 j& K4 f$ g9 g+ a以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     " {' u( c8 n! c  `* g9 C! w
mysql> select sec_to_time(2378);    1 ~8 C: f3 R$ s) s$ ?
  -> '00:39:38'   
2 |+ H0 B7 R4 ]/ R% T+ Wmysql> select sec_to_time(2378) + 0;    # _' z- b9 F) \: l9 h
  -> 3938    2 l' I  q8 k- N: r( i4 V; `; t

! a5 U. s+ ]+ V( w4 X& ?time_to_sec(time)   
( \* S# q' B, m2 h& S8 _返回time值有多少秒    . I" [; u1 {6 y. Y  z6 y' b
mysql> select time_to_sec('22:23:00');   
: r& \: I- k8 E0 B9 Y( V  -> 80580    + I# y! T- O0 ^' ]) Y7 P- D
mysql> select time_to_sec('00:39:38');    , K+ t0 S4 }" m
  -> 2378
4 V- C% Z1 V% R3 t' i( d . \$ X3 i7 \9 ^5 |* d  r
转换函数
4 @+ \  ]1 c5 A* P" k( X" _cast
2 h  H9 A. x4 M& b) Y用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]2 Z; E4 i5 c( _! X; ]& V- l/ P
实例:select cast(a as unsigned) as b from cardserver where order by b desc;$ R% ?% R# j/ S0 u5 h) a0 o
convert:) z2 D( I& ^% G, m
用法:convert(字段,数据类型)
" Z- I. [4 g2 ^! o: t$ U7 u) b实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
! a; Y) o3 L6 x+ v4 |' }9 Z1 f% u





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