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