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