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