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