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