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