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