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