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