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