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