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