中国网络渗透测试联盟
标题: mysql常用函数大全 [打印本页]
作者: admin 时间: 2018-3-21 16:07
标题: mysql常用函数大全
1、字符串函数! f) y; W6 ~+ G8 K9 o+ ^
ascii(str)
( H5 _: i* _8 \# v2 I2 j返回字符串str的第一个字符的ascii值(str是空串时返回0) 1 [$ x# W0 B2 i
mysql> select ascii('2');
7 [% ?) U, V9 A E4 p -> 50
; }$ E8 ~+ ]) c; w* T- a Nmysql> select ascii(2); . d: N1 w' ]4 M. ]6 ^* A
-> 50
3 I3 ?: ?) X d) K0 \; rmysql> select ascii('dete'); 3 X# D" g: ?; d
-> 100
; _4 t; [: ^3 W" W1 ]
ord(str)
6 |' s$ R, Y/ D如果字符串str句首是单字节返回与ascii()函数返回的相同值。, ?! ~$ u- N. }+ k( q$ q" E
) W/ ]9 w8 H, o
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]
# ?( j( ]0 c. E' _mysql> select ord('2'); ( B0 i9 G' i/ j5 o
-> 50 * u% z$ A) {% W
) [- x& y& t( P+ L) c, o3 J
conv(n,from_base,to_base) : e; A3 L) |2 ~+ `# Q H( e
对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)
( H+ d( V0 K O+ e% l* pmysql> select conv("a",16,2); 5 k0 ?, `4 Z/ x2 V E+ |) R
-> '1010' ( C/ T/ [! @8 b' }* P D
mysql> select conv("6e",18,8);
8 C" W" Y$ d( ?* y, C -> '172'
* ~) i' \+ D# S0 A. P$ Wmysql> select conv(-17,10,-18);
1 q5 i) l2 t' O -> '-h' 1 E& q. L' B2 {" {2 b; B. D
mysql> select conv(10+"10"+'10'+0xa,10,10); + y. g, S$ ~9 Q
-> '40' $ G/ d5 V5 O4 ? [- K
. V# }7 x4 O6 M
bin(n)
6 x9 i. M# q$ T; I( x8 m I把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))
0 y* f! u" F) U6 K5 {% Q5 amysql> select bin(12);
8 I1 _" ?5 Y' |' W -> '1100' / j3 H/ c2 `) C9 }: m4 @
! o. i+ V+ y5 f/ D* Yoct(n)
# b' V2 X# }9 ~8 y0 j把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))
# j8 F+ G2 o5 Vmysql> select oct(12); . P% D* G" s3 z: c' u3 G$ `
-> '14'
H, e+ T+ a9 j$ U / W- p m Q4 d8 t$ O* i, [3 v
hex(n) 5 y. c7 Y* C$ N4 \9 p! m
把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16)) 9 o3 m) y* ]: K* @5 f
mysql> select hex(255);
4 A; t3 ^) ^$ }4 r& U& [4 O3 W -> 'ff'
8 e2 W; x$ X2 n8 i& E5 P / Q3 D }7 b5 b% T! m/ C& _
char(n,...)
, q0 H1 g) s4 c T) z: Y% {1 L3 M返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过) 4 y: J! c. q z( B) E+ `
mysql> select char(77,121,83,81,'76');
' I9 Y& z- s- C* Z5 I( ^ -> 'mysql'
3 ~* S0 }) `' W8 a2 Xmysql> select char(77,77.3,'77.3');
8 g$ V: _( s; |& w2 [8 @8 g9 V9 P -> 'mmm' G, b4 p6 Q: ^- H+ S9 \. k2 i1 U
' U, Z. T5 g* y' l3 uconcat(str1,str2,...) 2 G1 H( O4 v6 x4 ~9 R
把参数连成一个长字符串并返回(任何参数是null时返回null) 6 n! p5 | E: a' _8 S+ i5 U% s2 ?
mysql> select concat('my', 's', 'ql');
* v& I0 a4 D: C) z P& F -> 'mysql'
9 F8 J9 X- S$ y" f# K$ Q$ a: pmysql> select concat('my', null, 'ql');
) X) }! e5 I7 e -> null
+ I' o* Q& |+ ?7 |mysql> select concat(14.3); 4 m* y4 I6 I- F N; S4 a- y
-> '14.3' 9 U4 z( @, f s3 F
; x. ~7 }: |1 R2 v# O. O
length(str) 3 w' _/ w( r+ w1 S0 q
octet_length(str)
9 L# e& Y2 J5 w# rchar_length(str)
) A" ]) B! J [" Tcharacter_length(str)
- p: y9 O) p4 G6 Q8 C返回字符串str的长度(对于多字节字符char_length仅计算一次)
$ a7 @3 S) x: i3 X+ v5 D: H6 umysql> select length('text');
! m; |- }5 J7 t" ?1 g& S0 ~ -> 4 % B* s) W, Q( ?- C, e* Q
mysql> select octet_length('text');
! P$ h j% ?2 n. [ -> 4 7 Q8 s. u* D4 K/ V
- S5 c, Q! d& e K( l: P5 `
locate(substr,str)
. f* L( z5 W: W8 mposition(substr in str) $ |) b8 F8 X3 \: K# Q5 ]% s4 a
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0) ; ~$ J$ Z9 N. F
mysql> select locate('bar', 'foobarbar'); 9 W. d" r4 J! L) f. M$ e8 I& B% n
-> 4
$ t2 G, m1 y' L; ^& ~4 `mysql> select locate('xbar', 'foobar');
2 }, |+ F$ f* g. T k -> 0
" A8 \) s$ N% L 5 z% T3 i$ ]: k r. f0 w9 P' Y
locate(substr,str,pos)
$ p( c- ^. P. H; d$ w& s! `返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0) 1 F, v$ |8 ? [5 D( o# U
mysql> select locate('bar', 'foobarbar',5); " c0 @- z" H3 _5 e- w
-> 7 : t/ i- B) v6 V, ^$ X
. ?& |. a5 |& e! \/ t% Uinstr(str,substr)
( N% g% U6 h/ g) P* B返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)
2 ]7 ]( z* q+ J' t! ^3 Cmysql> select instr('foobarbar', 'bar'); 2 h* t6 S. W M$ d5 y* T3 i, H7 P
-> 4
& L! s2 Q: ^! J# W& a( J( dmysql> select instr('xbar', 'foobar'); ! Y8 o/ U4 X. ~+ |6 D
-> 0 $ B$ P( Z3 A0 P Y
8 P& O4 L+ i6 w! B
lpad(str,len,padstr)
2 l4 W h" x6 U8 h: E* q$ f) j/ w用字符串padstr填补str左端直到字串长度为len并返回
& y% `* g; [; b% C7 ]' nmysql> select lpad('hi',4,'??');
$ r: y: r Z4 }! K6 Y# M7 D -> '??hi'
4 t* W* O2 u) @- B# B& w8 G3 t8 Q& [
5 |* ?" i/ ], @# `0 Trpad(str,len,padstr)
0 g4 C. g$ U8 y+ y用字符串padstr填补str右端直到字串长度为len并返回 % n: h6 G- E+ E! I6 c
mysql> select rpad('hi',5,'?');
' g0 S- ]9 g1 R- a -> 'hi???'
- N: e, I0 i3 y" k, y3 P% B
+ s! X& {6 A8 M2 jleft(str,len) 9 l6 ?: k8 }3 j0 v
返回字符串str的左端len个字符
+ E. d0 G# h, v. mmysql> select left('foobarbar', 5);
( L, w: _7 L% S8 e {9 ` m' Y -> 'fooba'
, v" n- |- z+ z7 P7 y" k 1 r* m) w5 K7 y2 N
right(str,len) ) m0 o8 V G* G
返回字符串str的右端len个字符 ; l- p5 f9 `2 @/ n
mysql> select right('foobarbar', 4);
1 @5 }4 Y. v) f- D -> 'rbar'
0 }6 ?8 Y. ~6 x0 P- I
5 Y/ Y: p' O% i a0 {2 d8 Q! nsubstring(str,pos,len) : |3 g/ D# @4 s+ w
substring(str from pos for len) . f# N; `7 B9 B/ t
mid(str,pos,len)
# Z# U, {3 O0 c; b5 x返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6); - v0 m2 V9 l+ S2 G& h1 N
-> 'ratica' 6 p' u3 q$ K4 D
2 b! Q- e/ P0 a# v+ D$ N
substring(str,pos) ) o0 e% Z$ e9 P1 v
substring(str from pos) 2 D& A0 s/ b0 _( i) Q) t) m
返回字符串str的位置pos起的一个子串 7 \4 I: N" _) N3 F- o
mysql> select substring('quadratically',5);
5 `; q5 z8 U' F% q, V5 _3 T5 ` -> 'ratically'
# i4 }$ U( I4 \! K( Cmysql> select substring('foobarbar' from 4);
- P+ `/ |& j! X0 ^: F9 B# S& T+ I -> 'barbar'
/ \& x* k8 Y3 q" M
! W4 R2 v. a$ n# D$ L/ l9 D" _- qsubstring_index(str,delim,count) 6 e; D! {) ~8 w1 R2 @
返回从字符串str的第count个出现的分隔符delim之后的子串
' g2 V0 y& H! c: D6 f(count为正数时返回左端,否则返回右端子串) * }+ U! z. i! t, k, N! T" }2 j3 S
mysql> select substring_index('www.mysql.com', '.', 2); ! S% [! c; }* w& u8 i' d9 s
-> 'www.mysql'
/ d# S h# j9 }+ a6 L1 u- Rmysql> select substring_index('www.mysql.com', '.', -2); % V8 L" Q9 c9 l* b/ t
-> 'mysql.com' J7 P6 w# r% u% c
2 v& ?9 L3 H, n% fltrim(str)
9 B: Y, z# A5 Q3 r* [返回删除了左空格的字符串str
& }( g3 Z, }' G7 tmysql> select ltrim(' barbar'); 3 g2 c( \9 [& l5 Z1 K
-> 'barbar'
+ y. A$ d7 l( V7 z
& q5 p4 S, D8 Trtrim(str)
% Z: {0 s! ]. T/ W' h! g+ \0 F返回删除了右空格的字符串str * i2 B; V* `8 [
mysql> select rtrim('barbar ');
# F4 a2 j! j" z4 {# I1 E -> 'barbar'
9 s5 A) F( n3 V$ r0 `$ }; ]3 R7 n& r ) l6 G/ U' t/ l: J& v/ `
trim([[both | leading | trailing] [remstr] from] str) 9 K, G& ]' R9 e
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)
/ B6 W( T# b( Umysql> select trim(' bar '); & O6 D% i# K3 B. _) g5 H6 s- c r
-> 'bar'
' o- Y8 S* k% Dmysql> select trim(leading 'x' from 'xxxbarxxx'); ' f b- Z; `. C
-> 'barxxx' 1 X: w: _" Y' P$ a' d X ?4 m/ N( i
mysql> select trim(both 'x' from 'xxxbarxxx');
3 D, _7 _$ T! ~0 x' N -> 'bar' % n; g( X+ i8 X" j7 T
mysql> select trim(trailing 'xyz' from 'barxxyz');
3 f1 P" c9 l8 E, m; g" e* g! O -> 'barx'
. I- o7 E" j8 i, n! I1 _
# U g3 Q% H2 |5 ysoundex(str) ' n4 {/ j/ ~2 a* e: Z
返回str的一个同音字符串(听起来“大致相同”字符串有相同的
$ l: o- P- D! P同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)
6 A% o8 x# |( y3 K5 ]+ i4 Y* ]mysql> select soundex('hello');
3 S6 Y! ]9 H8 J- ~* U' Y4 H -> 'h400' ! M6 u) w- g4 d+ N- _2 B8 L& ^( ^
mysql> select soundex('quadratically');
! j* U+ B( d' t3 f$ @, f -> 'q36324' ! G+ d( ~2 X$ x1 S0 C( y" f# ~
8 b' \' Z1 O% t, x" d& s& D) r, wspace(n) * I8 n2 |/ a+ h& }
返回由n个空格字符组成的一个字符串 * {: X% d/ O6 ^; f D
mysql> select space(6);
7 k( N0 ~3 s1 p5 @4 l: @2 L3 y0 ] -> ' '
9 U/ \1 U0 x( c: \6 |( N ' ]: k7 A/ h. k1 T8 m' K
replace(str,from_str,to_str) 1 X) N" ]' K* i3 X
用字符串to_str替换字符串str中的子串from_str并返回
; L; u9 y% A: {- ?mysql> select replace('www.mysql.com', 'w', 'ww'); " w$ @/ ~ O/ `) C" u, H5 u
-> 'wwwwww.mysql.com' ' Q1 C( f* P& Z0 L; x$ ?
2 b2 ?, ?) e: E4 T2 y0 D' `
repeat(str,count) L9 v! [/ m0 E4 z+ N
返回由count个字符串str连成的一个字符串(任何参数为null时
& }5 p2 p: |4 ^# A& z" F; i" l( K返回null,count<=0时返回一个空字符串)
9 N- }3 c8 K V. rmysql> select repeat('mysql', 3);
4 j8 T- R' b& r( ]5 d- H# F -> 'mysqlmysqlmysql' 1 r5 I2 _* j& V/ I5 b1 a
- y$ F7 f' X- Q" \0 G3 t) Lreverse(str) , \, I: ]( E7 W
颠倒字符串str的字符顺序并返回 9 z j% q9 g" x& J, C
mysql> select reverse('abc');
/ I6 O7 `9 X! N4 O# x, z -> 'cba'
5 {2 `- Y7 z6 G3 b 9 p# b* G) G3 f7 B* @6 C
insert(str,pos,len,newstr) ! t1 X5 S5 u$ H+ e; \
把字符串str由位置pos起len个字符长的子串替换为字符串
( i$ Y+ X/ {. R7 I1 u" _: Bnewstr并返回
- D0 C) K" x0 `7 gmysql> select insert('quadratic', 3, 4, 'what'); h, V0 i8 ] J& Q
-> 'quwhattic'
5 a, y1 x& N7 p* _6 @% H
: m' G- n5 J1 {% u% g, m# belt(n,str1,str2,str3,...) 2 b- G$ d# _4 d" @
返回第n个字符串(n小于1或大于参数个数返回null)
$ D- b/ d% E$ S/ d- Mmysql> select elt(1, 'ej', 'heja', 'hej', 'foo');
$ O: l( {* d7 Q: j& u4 ` -> 'ej' * J$ @% S) H* l
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');
1 r/ F/ v- S. d n -> 'foo'
1 G$ U) O. f( g, W 8 F3 e4 R# M0 K' @
field(str,str1,str2,str3,...)
5 H5 m- c$ @5 t$ I4 {返回str等于其后的第n个字符串的序号(如果str没找到返回0) - K4 F, h! F# Y, N' \6 a
mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
- ?- f+ A! I- i/ R5 ^'foo'); # ~; \8 \3 x, c% h& i9 X1 ^) o1 M
-> 2
; a( M( O1 s \1 w) r5 m. P/ {mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
' T# E" N* b2 B" p7 _5 ~'foo'); ) B, v+ c3 H8 I6 }+ g
-> 0 8 b8 s" K+ Q7 d
9 d5 F6 @$ `& C$ q: P$ x9 W7 a" efind_in_set(str,strlist)
- v- J4 E$ S# Z, ?" ^; ~4 y: E9 C返回str在字符串集strlist中的序号(任何参数是null则返回4 G" Q3 u! c0 x5 b; U5 ]
null,如果str没找到返回0,参数1包含","时工作异常) $ X6 S" C2 P) G. G) A+ c
mysql> select find_in_set('b','a,b,c,d'); # v* B) M5 `) l1 Y: h: _- p% ~, G
-> 2 , p. d' E7 d; ]) ~6 b; M
+ r+ R4 A2 S. n
make_set(bits,str1,str2,...) ( C+ y0 e( a9 H2 W ]" E( R( B
把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应; j( U4 T0 [7 ?( [0 r
位置的字串选入字串集并返回(null串不添加到结果中) ! w1 R% U- e5 r3 B; P+ ?
mysql> select make_set(1,'a','b','c'); % @* o% t; T+ S7 G" k) J1 m+ k
-> 'a'
' v5 L$ W, {! w8 F* Z- Dmysql> select make_set(1 | 4,'hello','nice','world'); % X8 G8 p, h& d7 n
-> 'hello,world'
) V, h6 S! m; ^+ n- H' y @0 x$ imysql> select make_set(0,'a','b','c');
+ M6 ]( Z( u6 n# k# q/ { -> ''
% t# t" z, U+ q7 m* W9 k
) V6 _, L% P$ o2 a* Lexport_set(bits,on,off,[separator,[number_of_bits]]) # A4 w: l* J' B B6 D' X
按bits排列字符串集,只有当位等于1时插入字串on,否则插入$ H/ Z- n, C0 \- X* _7 m
off(separator默认值",",number_of_bits参数使用时长度不足补0
, [3 r1 o) G% b6 g7 U3 q: d! B$ n而过长截断)
; b. w }" p9 q4 }) |mysql> select export_set(5,'y','n',',',4)
4 e# u3 G0 t+ z4 D -> y,n,y,n + e3 V$ x* I& I* S& `
4 O2 w8 M9 n' K( i4 K ]1 f2 c
lcase(str) 9 G' N j" M# p4 K! h2 t) _; C
lower(str)
3 R5 V; u' p+ }' _返回小写的字符串str 3 _% B. D, h+ a
mysql> select lcase('quadratically');
9 ~ j- k$ E( z9 w. Y; q -> 'quadratically' 4 Y8 }7 M" ^! k$ e6 R( |) ~! D
8 |/ V2 E5 j" I; J X6 E) A7 r4 u
ucase(str)
( A9 U* W! ~! E2 K& R0 lupper(str) ! {4 ~- k' J3 l; s+ l1 b# {
返回大写的字符串str 1 \' H6 }2 R0 ^5 ?( l
mysql> select ucase('quadratically');
# o8 H9 C+ r* b -> 'quadratically'
. o; X3 R( F+ l$ B6 C$ v
4 P2 `9 w% N/ s- f: }1 c; p& s& uload_file(file_name) ; j3 V$ o+ z% V) C1 t8 ^- ?) m) P0 {
读入文件并且作为一个字符串返回文件内容(文件无法找到,路径 U7 }# T( V$ }: r/ y& \
不完整,没有权限,长度大于max_allowed_packet会返回null) ( z* g) n7 D( ], n P- B
mysql> update table_name set blob_column=load_file
6 ~/ q; H e. {* f6 g("/tmp/picture") where id=1;
8 }: R# X4 J' ?; x6 f& G 5 k2 J. D8 O$ K3 B6 J
2、数学函数
0 J4 a- _3 }2 x y! jabs(n) $ A" u' \9 t* k1 [: s
返回n的绝对值 7 T, N7 d( e; J/ O+ J- P& P
mysql> select abs(2);
. t, A1 P2 l# T6 {$ L) u -> 2 # R! T' ^; _- V* A
mysql> select abs(-32);
q7 G9 }8 U7 U -> 32
& ~5 c" p7 i" f1 L2 J% \ # y/ f$ ]& a* T9 F
sign(n) * _+ X) Q" Q2 I1 K1 B' g! o
返回参数的符号(为-1、0或1) Q4 e1 o& m7 J; C. f
mysql> select sign(-32); , w( a+ W0 a6 z: P. H) f
-> -1 ! F2 [( [' x! X v& s
mysql> select sign(0); * |' n0 _4 n# ~( [
-> 0
3 j% h# a( q% M a+ |$ d9 Z6 _9 Kmysql> select sign(234); & b& J$ h6 x, u+ a+ }) G7 {
-> 1 6 ~2 Q8 |; N* t) M# a1 m
$ Q( {7 D2 u5 W* i
mod(n,m)
" c3 n" Y* V9 }. l取模运算,返回n被m除的余数(同%操作符)
& g9 ?. R/ f/ Vmysql> select mod(234, 10);
' W! ]/ Q; A+ d) C3 Z0 r0 } -> 4
- O1 H) |) M( r+ a7 F8 X) Imysql> select 234 % 10; 8 u8 A/ X- G6 f/ c6 O* k
-> 4 6 V* Z3 F J S
mysql> select mod(29,9); 3 b- ?' W( L8 m
-> 2 ! h9 u8 U p0 d- B0 k
+ d! |7 Y5 p" p# m+ zfloor(n)
) F( l) b" p f, f& ]6 n返回不大于n的最大整数值 % j2 O( u [0 w) P/ n
mysql> select floor(1.23); " x6 W. |' ]1 k. X6 e4 F9 ]
-> 1 o2 L8 m2 x1 h$ ]2 Y
mysql> select floor(-1.23); ; q, {" R% C; I
-> -2 2 i" Y( z b9 ]( ~) _
4 G% _. K9 ?; q2 P; Jceiling(n) 3 h. x" ]8 D) W# C' M6 `+ G0 J; X
返回不小于n的最小整数值
, W- O( J1 z: Pmysql> select ceiling(1.23);
, `9 K1 Q) y) }. i. V6 F -> 2
6 ~( j: u, x. \' q8 f$ G9 m# _ m; xmysql> select ceiling(-1.23);
& i7 b' c0 F3 w& |/ q4 i" g -> -1 9 f& {+ v. J) O, y" I# d5 k- e: R
& e" w" E! C3 c; dround(n,d)
6 m. Q' i/ l1 _返回n的四舍五入值,保留d位小数(d的默认值为0) " `7 c& T) q8 }6 W
mysql> select round(-1.23);
" W7 g! N7 R- b: z- E -> -1
' g5 G: r# M* U5 {- O) J9 r9 o3 Ymysql> select round(-1.58);
' o4 M# `; |4 l+ S -> -2 4 z. S& X% f( r6 ?, u
mysql> select round(1.58); 6 M: b. n1 D, V; H" N) {8 S
-> 2 3 }- k; w1 X$ V. Y) O
mysql> select round(1.298, 1);
" B5 a V* g2 d+ }7 _ -> 1.3 0 x( P; {: F' `! a5 u" U
mysql> select round(1.298, 0); 4 f+ l6 f( l, O) c$ q4 x6 n* }
-> 1 8 ^( [# a& ~! Q. f- @
( x% T# y7 Y% F' `$ @7 h4 b: nexp(n) & h; a: D3 z8 f
返回值e的n次方(自然对数的底) % l& Q1 ]2 R+ r- d* C. U
mysql> select exp(2);
+ b$ v8 w; @/ X -> 7.389056 ( `7 z9 g: ?) U% k1 S* N
mysql> select exp(-2);
1 s/ g1 `& B4 t8 u9 O: @0 }' r -> 0.135335 9 w) i, g3 s, z9 [+ K5 |
( [( T' Q( N3 Q9 ]0 R5 flog(n) 5 z @* \% l: U- N) T' M+ ]
返回n的自然对数
3 p+ | a& R/ E; qmysql> select log(2);
: g9 W: c9 L: Y7 d6 L9 K3 P/ B -> 0.693147
) l9 _$ c5 O$ n! {3 zmysql> select log(-2); 3 N0 e1 x) d0 R' `) h1 u& i
-> null
+ V' W( x0 k7 V) N$ H% h3 l 7 X, @" q! e3 M! X2 _8 `
log10(n)
# `, n) k e$ w8 Q0 S6 K返回n以10为底的对数 9 j6 U& l7 o# U( [
mysql> select log10(2);
9 i' [- O0 A, ~( s0 t) U2 m -> 0.301030
0 z" P8 ?; W" @6 ?) [$ q( U9 Wmysql> select log10(100); 2 y( |. R; L* @5 y2 E
-> 2.000000 + o: ~1 {2 R" X" t
mysql> select log10(-100);
( j* U' g* x- }6 x# z6 m -> null . s9 f' C6 N) W6 R0 P
) b, q- q0 C* `) W$ F* ^' t' g- fpow(x,y)
. M3 p! R& z$ _% Spower(x,y)
6 j# @9 j+ e5 v% ~ 返回值x的y次幂 ' @* C+ @. M2 B6 a9 P3 t6 W
mysql> select pow(2,2); / W2 |. Q/ @! G7 r0 m
-> 4.000000
8 B: k8 V' K- G; ^* x/ `mysql> select pow(2,-2); 0 V* q* B& t$ s3 Z
-> 0.250000 ; j/ u; C/ f; {6 P8 z+ f
7 c3 e. }- g; J6 k, d/ Y' R
sqrt(n) u. D2 P2 t' f1 w4 W
返回非负数n的平方根 3 n! H1 M3 i, g& a
mysql> select sqrt(4); $ F! e9 r0 C8 Q
-> 2.000000 2 |: t/ M: k6 C, o2 j/ O
mysql> select sqrt(20); - y( @8 L( m6 I) ]7 h8 w5 a4 d1 p
-> 4.472136 % C( ~9 o3 e& s4 ^6 A
0 a& E2 @3 M3 h! e( k) c/ mpi()
8 h1 E+ l& d. ~2 ]2 a# b" B; i, b 返回圆周率 # Z! G9 ]- `, _. v0 ]
mysql> select pi(); 8 |; t$ b% v8 I; G' [6 X& ]
-> 3.141593
8 W! {+ ~5 j! R1 j# P ( f$ P: Q# l _0 H3 ]# w9 i& U: y( U- [
cos(n) : `! ]2 j; L/ u0 C
返回n的余弦值 # q$ h+ k" _; h% [% H8 V: f$ X
mysql> select cos(pi()); , L: f) y4 [! _. @5 I5 G
-> -1.000000
' y& ?* R+ y- B# S# ]8 q, E( i
" g" `% R s8 x1 ~, wsin(n)
# l3 t! k2 @% N 返回n的正弦值
$ p( @6 \3 u' ~2 C( i8 [) Lmysql> select sin(pi()); ( q- U. d# R0 J9 F- k* ~. c
-> 0.000000 + \ ~/ ^9 X% v2 o% G& P" T3 l
# |% m9 f1 n: [9 j$ h
tan(n)
+ ]* A; W& P* f1 V( V8 p6 r返回n的正切值
& C) b$ p- m5 l% _: x& ~, O8 vmysql> select tan(pi()+1);
: u( W+ v* v) p7 }! y9 @) V -> 1.557408
B& o8 I& L! O0 A& K " x$ d2 x, q. d5 W' h" i2 f9 {+ ]8 ^
acos(n) , t" x; k7 p# S/ f7 Y
返回n反余弦(n是余弦值,在-1到1的范围,否则返回null) - R/ k# h- ~ w- {& ~. P
mysql> select acos(1);
* J) }' H: X3 b -> 0.000000 1 q f( Z& O4 h
mysql> select acos(1.0001); : w8 n; |, g, ^6 X$ W" D4 U
-> null
8 v, { X( s6 n1 ]7 H. I5 Xmysql> select acos(0);
; C; i) {, Z2 _3 S3 q& C -> 1.570796
9 ]/ a5 T; g& |+ v5 U5 z3 f# q
/ X! I% o/ {& ?4 F- Z8 Nasin(n)
! \! U* C9 s; p }6 w6 ] ?) t* u( ~返回n反正弦值 : I# s I* {1 {- ^* ]" \
mysql> select asin(0.2);
( L6 S2 t! b3 Z% i, y/ ^" @ -> 0.201358 6 i" k/ n' J8 H: o
mysql> select asin('foo'); ) w' S+ [' n, J7 n
-> 0.000000
5 h+ i4 w# v9 ?( \ b $ G0 v1 ]5 Y; h; L4 q& @
atan(n)
: b/ C3 R& K: G9 M返回n的反正切值
1 f$ k" R' b, d" {9 `8 g4 dmysql> select atan(2); % c/ \$ c* R. }. h) b _1 s/ k+ ], ?5 g
-> 1.107149 " D, @9 G; z* N7 h7 c( Q" Y7 \7 J1 d
mysql> select atan(-2); 2 t) d$ {1 |) b
-> -1.107149
5 ^2 ?; u S1 g) @' [8 U' h; Vatan2(x,y)
7 ~& F3 ~0 g+ ^8 o9 F 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限) 9 O9 V( g2 v2 e, J7 ^
mysql> select atan(-2,2);
" ] y7 a& K# H1 d -> -0.785398
6 S9 e' ?( w: Vmysql> select atan(pi(),0);
! S9 p/ i1 x. S' J0 l -> 1.570796
( I& f2 W$ k0 F/ u ( S+ \$ S6 w5 v, [ O$ W
cot(n) 1 M( I9 ]% k, C- O' S8 o
返回x的余切 - i- b% {8 }) _
mysql> select cot(12);
( o* C0 y3 O2 B$ q( h* j7 | -> -1.57267341
$ R# J9 v4 `' O7 \" W }mysql> select cot(0); 7 u O+ H* S7 m2 D! j& u
-> null , r! h! u7 F* Y$ U
3 j( I: M+ I0 a4 K; j5 D; Drand()
5 \% N" ]$ u9 s+ d$ o" brand(n)
0 u+ r2 ^: Q' u4 [2 v/ p返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
# c2 B* w2 \4 B* f. } ; N$ o! D. F. d2 l( L& B
mysql> select rand(); # m O( Z9 g1 s; W2 `: ^; H
-> 0.5925 9 Z# D" C: ^. v2 V$ ^5 U# P- [' L
mysql> select rand(20);
$ g2 u: x, o8 R' }' V1 [ -> 0.1811 6 x4 n8 t* O% H0 Z
mysql> select rand(20); : o( b& v- }( t8 `, u1 x2 P' |/ @
-> 0.1811 . ]) [5 E6 N2 h3 D5 i% e
mysql> select rand(); 0 ]+ h# }1 a A# }' |: ^/ S
-> 0.2079 * B! E6 Q0 ^& `- M
mysql> select rand();
' v/ @# `" }; k -> 0.7888 / M- W8 V; S1 h* f: y5 A. _# g( N6 E
8 ]" G, ]7 ~" | W
degrees(n) - _% J7 t2 C) \4 \4 N
把n从弧度变换为角度并返回
2 i+ k9 Z: w8 Umysql> select degrees(pi());
; `) n: ? I* R' M2 T( b0 j -> 180.000000 6 ~/ E. o9 v' i6 F
6 {# J. Y" }# f9 I% `- w4 H
radians(n) + q3 Q+ B: U; a2 q' l3 y
把n从角度变换为弧度并返回
1 F& c) \, G" u+ k- Z2 w- T& jmysql> select radians(90);
2 W3 B' J; X. { -> 1.570796 4 K6 l+ }3 [, |9 E
+ P/ f: F0 P' [2 f/ Ntruncate(n,d)
: k. B) W0 H9 R( U0 o( x' R1 X保留数字n的d位小数并返回 1 s4 L) I* b, V
mysql> select truncate(1.223,1); ) D+ v/ x" k" ^# u/ Z
-> 1.2 W2 D3 O0 |$ O# u6 |' d
mysql> select truncate(1.999,1);
* r6 U, I& t/ j1 F -> 1.9 6 g" _) f2 H0 x1 {2 m. r
mysql> select truncate(1.999,0);
8 A2 y) e o- H -> 1 ( m! s! }) E: p9 G# z5 ]* u+ `# u+ T# R
' h8 s0 k* c: a7 R
least(x,y,...)
! l. l4 g6 ~1 L Q9 Y# z返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较) 4 m- @( H& Y' W9 f: I* M
mysql> select least(2,0); 6 q/ v7 w% M/ R/ [6 `
-> 0
: C" k$ v9 p* x, rmysql> select least(34.0,3.0,5.0,767.0); ( r) J' `/ O) m" k; _2 h
-> 3.0
1 c" o* O, X( x% N% C. Q1 U$ Ymysql> select least("b","a","c");
d$ a2 l' s/ p1 d2 z -> "a"
# k" h2 D2 W8 t L) i- I
4 u) a7 f9 ?2 n. D# P6 C. u* Zgreatest(x,y,...)
2 c. ]6 j) A ~返回最大值(其余同least()) , G2 I* |" y6 g* w- u, r# T$ n1 ]
mysql> select greatest(2,0);
& `' X7 Y/ a z8 u) S -> 2
( e4 C6 T2 E1 ?/ Vmysql> select greatest(34.0,3.0,5.0,767.0);
9 T9 K- t; `7 P6 L0 \8 o- K% X -> 767.0
9 P+ f) O3 {/ Q" X! \: nmysql> select greatest("b","a","c");
- w6 V5 ?% N# ]' W. x; Y -> "c"
: Q+ U! c- v9 Q4 [6 `6 ~
; f% U3 Z: I! w$ K0 Q# @3、时期时间函数
9 q! k, C: W- \5 s+ Ndayofweek(date)
+ ~4 g' h2 W: f( d5 ~6 P返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)
+ Y% p+ D \% }. n; K" T' v4 S Qmysql> select dayofweek('1998-02-03'); . [8 ~& U, b* N! Q+ H# L
-> 3
( i/ p# u+ H/ F3 Y$ s$ P
: L. {2 Y7 |5 R w) J# \3 m3 M& Sweekday(date) 5 Q# Z( v3 r8 J* |7 n
返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
- V7 ~2 o5 K, X3 }
7 k% A! s7 h- Jmysql> select weekday('1997-10-04 22:23:00'); 4 x7 }& C' n4 {2 V
-> 5
2 i8 r8 h- H7 Z% n* omysql> select weekday('1997-11-05'); + H4 X: p( P5 K+ y: T
-> 2
8 j' e$ ?+ u M% H/ ?% d; L4 I + x! |+ R- Z6 B Z$ t, `* p
dayofmonth(date) " \* z4 j* T. V) @: n
返回date是一月中的第几日(在1到31范围内) 2 t V& O4 m+ D; u
mysql> select dayofmonth('1998-02-03'); * ?8 k9 a4 _6 q$ u' N
-> 3 6 L% W" p7 V/ x, B2 c7 h6 A
3 b+ Q+ ?" D( W; j5 D. m2 Ndayofyear(date)
" h$ L3 V( b& C8 M5 o返回date是一年中的第几日(在1到366范围内) $ H2 L- K. g) `- _
mysql> select dayofyear('1998-02-03'); ! C, V! h" M1 M7 T7 @
-> 34 ! h3 ~" p# L% Z3 k- z S, A) i- }
! E( Y. Z) `5 nmonth(date) ( i0 \# y9 p/ R0 e
返回date中的月份数值
# k2 C( H3 o5 a& Q t+ @mysql> select month('1998-02-03'); 8 A7 \1 Z) @/ Y: T
-> 2 ' J5 y- |9 }2 H/ K5 ?
, H; u$ m7 p& [dayname(date)
4 [3 V( s9 p* z# R! l9 m4 k7 f! y返回date是星期几(按英文名返回)
9 _( M* Y: o2 K- ?* g! ]mysql> select dayname("1998-02-05");
* v+ _9 Z1 ^: K8 a -> 'thursday'
1 f+ Z% X8 p5 _6 }+ c" C
2 d2 g% {0 l2 r# [- C5 _3 l& l- Smonthname(date)
7 w1 I- w/ V# f; Q3 a5 @$ f$ X返回date是几月(按英文名返回) ! l& U" k% D, M3 S. [
mysql> select monthname("1998-02-05");
: v; S0 Z s4 u+ T K' t -> 'february'
# U9 X- p, z: t5 b3 X
$ s9 s- w7 k4 C8 r, y, A' Zquarter(date) / Z8 R+ L2 U! |8 m% d' b
返回date是一年的第几个季度
, r& e% p; E7 o! j6 U* I8 cmysql> select quarter('98-04-01');
8 o" q) g1 r) J3 \: F -> 2 * o! I2 R/ E, E0 o% F, Q# t
3 j4 ^3 u- D) C6 W/ e$ b4 nweek(date,first) , T7 e6 F! M; J4 o% y% D5 v& d
返回date是一年的第几周(first默认值0,first取值1表示周一是
8 i' `1 m( c0 h, x7 {9 {* r1 e* u( l% M周的开始,0从周日开始)
1 G3 M" P3 o7 m3 V0 }mysql> select week('1998-02-20'); + |3 v: Y3 j! M8 x
-> 7 7 \1 `9 l3 A H) P
mysql> select week('1998-02-20',0); ( l( x9 Q2 T$ t" L, H% n" _
-> 7 & T# p% @4 p5 g( `4 }# c
mysql> select week('1998-02-20',1); 6 m; U: I3 {; K, I( _/ V! Q
-> 8 + t1 i, z2 x$ x3 h- [
3 p3 K/ j" u. N2 U$ z0 b* B
year(date)
6 Z6 R2 I4 y. N返回date的年份(范围在1000到9999)
8 N! m& Q; v, ]; T' F0 vmysql> select year('98-02-03');
1 q; G T: k9 p( }7 G -> 1998
# k7 D1 V# `8 Q# s1 S $ f4 d# C' A% q& t# V2 O9 c& E) a
hour(time)
4 V2 B; F2 ?4 e5 p返回time的小时数(范围是0到23)
3 c, M. G/ { ~8 q& Smysql> select hour('10:05:03'); 0 c R9 ^4 M* E, I2 U* t
-> 10 0 l) k' F# o9 I9 z" O" v
2 Z0 T9 O# S3 {6 a# Xminute(time)
; _! J9 k$ s+ \1 A @' `返回time的分钟数(范围是0到59) " a8 k% A2 O7 R7 D& A% F. v
mysql> select minute('98-02-03 10:05:03'); . l% n7 C" g+ i
-> 5 ( f) D7 a! N: h
/ Q+ f- [1 v0 r* ^' Rsecond(time) 9 S, {1 x* h: ^" |
返回time的秒数(范围是0到59) . x; |+ L$ O# Q* F5 `
mysql> select second('10:05:03');
0 V7 L, ]# X" d: G4 p -> 3 / }- Q4 o! d* F( E( e* {
/ c4 c1 y2 v" u- N% hperiod_add(p,n) 9 s; s9 {0 L7 r! w! d1 Q! O
增加n个月到时期p并返回(p的格式yymm或yyyymm) 3 ` L1 d" l* x! T- `4 R% O6 X7 w
mysql> select period_add(9801,2); . z% D. K' v; O# e+ w: s
-> 199803
/ d* G4 G! i4 t
! U& C7 b5 ~& B0 i( ]1 H: Dperiod_diff(p1,p2) + Z+ h9 [$ `% D! Y6 }
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)
5 b# W1 Y, i! e; s1 Y# Omysql> select period_diff(9802,199703); 7 C% I- b j: J5 d9 r) }/ F
-> 11
5 d7 v" b3 \! ]# F) C- Q
1 x* J/ e1 D' e- |date_add(date,interval expr type) $ @5 U# ]0 A8 q; C8 c& d
date_sub(date,interval expr type) 7 J& K! G% W/ w0 S" `' I- B
adddate(date,interval expr type) 5 j6 ? a& S. r4 g
subdate(date,interval expr type) |% z, |! N) |% r* V7 z
对日期时间进行加减法运算
/ D' e' A7 X* y( E% `3 d(adddate()和subdate()是date_add()和date_sub()的同义词,也% s. v. t. S- F4 y0 o
可以用运算符+和-而不是函数
% O( z0 d/ N& \/ [. I4 \% v& p: ydate是一个datetime或date值,expr对date进行加减法的一个表
/ C' B: F7 ?: H+ I D4 y" D( z" u达式字符串type指明表达式expr应该如何被解释
& a( |* c n/ K% J7 E [type值 含义 期望的expr格式]:
8 _. I. U0 A) b5 [/ [* o$ S+ a: f8 G second 秒 seconds - ]+ @1 `# H9 f+ a7 v
minute 分钟 minutes + i& i0 ?2 L6 q) Z: C T5 l# E" H& i
hour 时间 hours 8 F9 g- w/ _# o/ e# _/ ~% ~
day 天 days : N4 t( L* C1 @1 z" _0 s; x" q
month 月 months : @; o) U8 j, S) P4 s
year 年 years ]9 S+ M$ o# m* ~: i8 W
minute_second 分钟和秒 "minutes:seconds"
% b6 V9 K1 ?, X# @ hour_minute 小时和分钟 "hours:minutes"
8 c- m5 z/ X& A! Q0 \ day_hour 天和小时 "days hours"
3 b8 M! j5 c5 s% L! z4 Y% b" p9 ^! B year_month 年和月 "years-months" * U: f: _5 Z8 c) u
hour_second 小时, 分钟, "hours:minutes:seconds"
: p% j* X l( d day_minute 天, 小时, 分钟 "days hours:minutes"
5 \5 T, r$ |9 S day_second 天, 小时, 分钟, 秒 "days
' {6 [. u7 d4 L& F/ X- i+ b0 Rhours:minutes:seconds" 0 p$ N8 P$ t0 l& B
expr中允许任何标点做分隔符,如果所有是date值时结果是一个
- \9 C0 w3 m7 m; s, S0 }& Gdate值,否则结果是一个datetime值)
, m: A3 D3 ~1 J( K) u0 N3 M 如果type关键词不完整,则mysql从右端取值,day_second因为缺2 r. ^ D; M3 r+ B
少小时分钟等于minute_second)
( W( z! t4 W4 Y9 Y' r l" z 如果增加month、year_month或year,天数大于结果月份的最大天
! O" E6 G8 _' Z- q, W0 c数则使用最大天数) . j* }- f, I- M) C
mysql> select "1997-12-31 23:59:59" + interval 1 second;
% b) o) z& ~3 G
; }# \/ N. ], d4 M -> 1998-01-01 00:00:00 - A; [ X1 c' m8 x- c3 ~' ^
mysql> select interval 1 day + "1997-12-31"; 3 q( i: X* J8 [7 ?$ g
-> 1998-01-01 9 d0 C5 N0 {( a1 u0 R+ T1 P! g/ V' u
mysql> select "1998-01-01" - interval 1 second;
1 g1 s: @4 u& r% z -> 1997-12-31 23:59:59 1 }/ y, B6 o2 m) Y
mysql> select date_add("1997-12-31 23:59:59",interval 1
9 L) f* Z1 |* K; Ksecond);
+ D9 [+ ` ^: J: m* O& w -> 1998-01-01 00:00:00 6 r: ]5 j& ^% m4 D9 k) m( `+ L$ R
mysql> select date_add("1997-12-31 23:59:59",interval 18 `' O5 O7 h; L# R
day); $ c ]+ u# P5 [5 W* r' [1 p
-> 1998-01-01 23:59:59 9 m: c- B+ d' K$ X7 ?% f/ K4 l
mysql> select date_add("1997-12-31 23:59:59",interval
. J' v& Q5 Y6 o: u4 j- H"1:1" minute_second);
# D# Q. h" y( W/ u' y4 o -> 1998-01-01 00:01:00
. \6 D/ V' s" z0 f# ~mysql> select date_sub("1998-01-01 00:00:00",interval "1
" }7 a9 C# S8 H; a1:1:1" day_second);
7 M8 z6 Q/ K1 {! g/ { -> 1997-12-30 22:58:59
- T: ~: g6 T! X& ?6 B- w' i( k2 {mysql> select date_add("1998-01-01 00:00:00", interval "-1 T+ Q, r' n% G- Z! @7 Q4 L
10" day_hour); ' ?2 \, |- @4 E3 I2 l( r- ~, s0 W8 m T
-> 1997-12-30 14:00:00 / Y1 a' k5 W1 @
mysql> select date_sub("1998-01-02", interval 31 day);
' L) x" A* H7 C% e" @! t0 `" I -> 1997-12-02
A" F S3 S3 t) M- }mysql> select extract(year from "1999-07-02"); 2 F/ \3 U) y) C; h m
-> 1999 3 L! r9 g. I2 A1 L/ F
mysql> select extract(year_month from "1999-07-02
0 i6 T% Y1 E: ?* R2 d" U5 a01:02:03"); 4 b6 K5 ~% u3 u% K8 j
-> 199907 5 `4 R5 N+ D' Z0 U
mysql> select extract(day_minute from "1999-07-02' O4 Z! B) @7 Q `: |! a
01:02:03");
4 R* Z* ^$ k- l2 E -> 20102 ! B) O N" r( o+ ^& x3 {& U
5 n7 Q) w( X6 i0 X' h x
to_days(date)
4 I' |0 h" R* F: t5 ~返回日期date是西元0年至今多少天(不计算1582年以前) ; s9 L; o/ ]* {% Y9 L
mysql> select to_days(950501); & Y. o9 Z3 V* R H$ x
-> 728779
- ~8 Q% ^ Z8 q6 a3 d$ a( [$ vmysql> select to_days('1997-10-07');
1 d+ v& R; T1 T! \) A( d- g! r8 g/ R -> 729669
$ @2 y+ ^7 A% J1 l2 N
% @/ k7 [0 u2 }5 Ifrom_days(n)
8 @& k! T3 R0 x" w5 v 给出西元0年至今多少天返回date值(不计算1582年以前)
/ n% s) Z; ?" p: }9 [2 Gmysql> select from_days(729669); 3 n$ r( ~$ ?- H
-> '1997-10-07'
- Z" {! W8 K* N9 M , Z# ^ e) d9 c4 I% ], F
date_format(date,format)
$ u5 b: i( V6 v8 @ 根据format字符串格式化date值 - N: t3 C+ ]' c2 k5 A
(在format字符串中可用标志符: & u, \) T- B9 w, x! f2 |
%m 月名字(january……december) + n; A) d: I* q5 S. _8 D
%w 星期名字(sunday……saturday)
o8 N7 V: u& P9 N5 R! X# j/ v, E %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)
+ M# U ]- J6 U" [7 D* L6 K; c" I3 z# g; r %y 年, 数字, 4 位 + }* y& j/ e% p+ b' _! O/ W% Y
%y 年, 数字, 2 位 5 B, L$ h7 i6 e3 r( y& O
%a 缩写的星期名字(sun……sat) 1 j7 d4 `( {: M& c7 E5 ~0 V
%d 月份中的天数, 数字(00……31)
( H+ z/ J! |9 @1 S2 @ %e 月份中的天数, 数字(0……31)
) f6 p3 D2 u+ I0 x! E- a %m 月, 数字(01……12) " |, O% B# M, P' W6 p- L* B
%c 月, 数字(1……12)
" o" Z, t7 R) H% K6 ^) O y %b 缩写的月份名字(jan……dec) 3 t* {5 L x W. L. H6 ^4 z7 D7 [
%j 一年中的天数(001……366)
. D6 I+ J7 E) e8 f9 x% D8 z %h 小时(00……23) 3 F# M. A% `! v' m0 s" n
%k 小时(0……23)
, J( ]' X* K% P3 P: } %h 小时(01……12)
7 T K* _& A/ U %i 小时(01……12) 5 s) i8 [3 D) [# L" p
%l 小时(1……12) 8 Z s" T0 x( i7 [ ] E n6 T
%i 分钟, 数字(00……59) $ a9 [7 w9 P! N9 n& ^
%r 时间,12 小时(hh:mm:ss [ap]m) 3 y& c4 H/ c& l' v- I
%t 时间,24 小时(hh:mm:ss)
2 C9 @5 F$ M+ T %s 秒(00……59) 2 h4 h% f! ^% ]$ [/ q% D
%s 秒(00……59) : G# }+ k% }$ S2 C
%p am或pm
* k+ s2 Z8 }( T %w 一个星期中的天数(0=sunday ……6=saturday ) 5 C) N& F( y- _! } n5 T
%u 星期(0……52), 这里星期天是星期的第一天
6 M* @' U) F7 L h %u 星期(0……52), 这里星期一是星期的第一天
8 X6 _% s- k% X1 ^ %% 字符% ) ( L m! Y" }6 K3 i5 l7 y. G3 F' p
mysql> select date_format('1997-10-04 22:23:00','%w %m %" v. [( V3 L, y
y'); - [9 ]3 N/ [+ y3 b i' ], Q7 P, I
-> 'saturday october 1997' * N4 v6 J) t) L( r$ p
mysql> select date_format('1997-10-04 22:23:00','%h:%i:%
* B, L+ W1 ~8 ^6 R) Ss');
6 H& N9 O9 p$ ?. s- B" s; I, |/ b -> '22:23:00'
; f9 K" F) k2 `$ |" u+ cmysql> select date_format('1997-10-04 22:23:00','%d %y %a# w5 O) Z3 i' q& y# {# z6 f
%d %m %b %j'); # ~# A3 a3 {, b/ d4 d8 z% ^' e
-> '4th 97 sat 04 10 oct 277'
4 ? u. B& T6 k( r9 zmysql> select date_format('1997-10-04 22:23:00','%h %k %i
8 {7 B. b6 Y$ n& H% U%r %t %s %w');
2 P( H+ L1 Y; P" ?) @ -> '22 22 10 10:23:00 pm 22:23:00 00 6'
+ c, @& o$ j; e5 q2 l' z # u* G/ p7 U* E+ c- F
time_format(time,format) ( Q( H- Z; M6 o3 e
和date_format()类似,但time_format只处理小时、分钟和秒(其$ {2 G# L9 |8 [3 b+ @4 G/ Z
余符号产生一个null值或0) 3 X' [" i0 E9 s3 y% ^. H
3 i( w" s, _. m4 A7 U$ P2 O( icurdate() 8 t0 g( _$ j2 P. f: s; a
current_date() * o6 u9 S( w- m) \% i* e
以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所$ L' H8 n5 y% G1 C' Q& D, S8 d7 p* U
处上下文是字符串或数字)
$ r' i2 W$ D- d! h/ ?mysql> select curdate();
+ n# x" q- B! w0 w$ k -> '1997-12-15'
x5 }9 Z( Z1 M! M2 Rmysql> select curdate() + 0; Y2 t" c5 {8 J8 |( R
-> 19971215
5 ^, t: k8 z" l. b, U& u0 Q
) C8 S7 ^( B* G+ a" W( B8 \) C# Zcurtime() ; f# P' H! o* P" g0 Z
current_time()
6 u/ g$ |# ]7 k7 Y h8 L6 E; A 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
/ L" ~' i3 H. n" D2 X5 r下文是字符串或数字) , Q) j! ~8 i5 |0 {
mysql> select curtime(); ( C$ @8 V( U% U o! @; f
-> '23:50:26' & i6 d! y5 F9 k
mysql> select curtime() + 0; 0 _0 `/ g8 w! P1 t4 Q, z+ I) p
-> 235026 ) Y$ i, i" x5 q, Y
% [3 j$ T( |$ b
now()
! t/ C2 Y0 y$ r. j5 m, Hsysdate()
# Z& j1 ?9 i0 ?- mcurrent_timestamp()
, ~4 Y9 ^+ f& m5 H/ Q 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期/ @2 [4 A9 t' [, n4 x5 J2 D
时间(根据返回值所处上下文是字符串或数字) / Y+ t; H' ~# i* G
mysql> select now(); 4 a& W- B4 ?/ T$ o- u6 m
-> '1997-12-15 23:50:26' ; i; a- e) P' n; {9 [
mysql> select now() + 0;
+ j1 r' y) q% L* F+ ]: j! t -> 19971215235026
, w" ^/ i+ a/ m, }2 O
$ d0 W }* ?: }+ T2 cunix_timestamp()
" v3 L, \: L2 F2 v/ Eunix_timestamp(date) / [- G, y! q* t
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒" w2 z: d1 d- |8 w
数,date默认值为当前时间)
) \+ G( I- u5 Hmysql> select unix_timestamp();
6 M" }% w& q v8 l. } -> 882226357
/ k; M6 U6 P7 Imysql> select unix_timestamp('1997-10-04 22:23:00');
; Q: m- @" P' g* d0 J -> 875996580
' h5 M' c* D4 P" e1 s5 ]( w N' R% t( F8 d6 q7 n. i5 c4 a
from_unixtime(unix_timestamp)
5 H9 Y5 h6 q% Q: i) B3 }以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的2 {! d' \7 U4 m% n
值(根据返回值所处上下文是字符串或数字) & h5 v% w* }- _( C
mysql> select from_unixtime(875996580); 2 v- a4 I5 G' i) y9 d
-> '1997-10-04 22:23:00'
9 S3 E0 G& s p" n3 ?mysql> select from_unixtime(875996580) + 0; % C7 d* U: x0 `! P" Z& z2 ~
-> 19971004222300 + H8 f8 r' ~9 j9 a `
3 ~$ a6 B3 a* q; F: X) vfrom_unixtime(unix_timestamp,format)
& ~/ W( @- R6 ]- m8 }) U) R% f以format字符串格式返回时间戳的值 N; U# b4 M! B' n V
mysql> select from_unixtime(unix_timestamp(),'%y %d %m %
$ }! K3 |/ N" V0 w7 G: D& H8 U3 rh:%i:%s %x');
0 K3 }7 Q$ n! Q2 {( q -> '1997 23rd december 03:43:30 x'
$ n; H$ u$ [2 _2 B5 |! T1 r3 p* R4 m
9 U! l3 {8 x: ?; o; Osec_to_time(seconds) 5 R4 e% [3 h I, K0 R# k
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字) & z3 x5 q# k: Z( F Q
mysql> select sec_to_time(2378);
$ q+ b& K- @/ Q5 X -> '00:39:38' / m- \+ x8 P) c% i4 o+ O7 q5 g
mysql> select sec_to_time(2378) + 0;
" y& v4 U& w* ~3 K S -> 3938 # V" O* n8 R% { l {8 l; h$ w4 U: K
( `: ?( l! S% b7 N! N; jtime_to_sec(time)
$ c5 f( @ {) k6 ?/ z2 x返回time值有多少秒
; \& J/ n- A9 I1 _mysql> select time_to_sec('22:23:00'); $ X A; \1 s6 l' A1 A
-> 80580 * [1 D5 S# K& x5 W8 }0 p4 c
mysql> select time_to_sec('00:39:38');
7 a6 H- M2 A7 E6 A -> 2378
, @$ L' X/ f( u
9 J+ X5 [0 T7 P0 j( @5 E2 R# V转换函数
" h4 v* e' t }% Ycast
# ]! L4 [5 q+ A2 ]用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]3 ]; [1 s5 [2 E, O% ]( q' m5 q
实例:select cast(a as unsigned) as b from cardserver where order by b desc;
% k$ l6 I4 k' G6 L& ~* }4 Jconvert:3 U, ?( N$ c+ ]( K+ q
用法:convert(字段,数据类型)
+ K4 S/ {9 ?9 c- s1 G" W实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
d" v# w4 a! E. t3 X# X
| 欢迎光临 中国网络渗透测试联盟 (https://www.cobjon.com/) |
Powered by Discuz! X3.2 |