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