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