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