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