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