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