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