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