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