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