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