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