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