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