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