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