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