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