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