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