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