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