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