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