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