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