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