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