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