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