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