找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 2260|回复: 0
打印 上一主题 下一主题

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数
' ?+ K: m1 O9 ^5 Aascii(str)   0 Z+ B# s# n! d. Z$ K8 n
返回字符串str的第一个字符的ascii值(str是空串时返回0)  6 z+ D0 t5 q7 a+ o+ U0 W1 U
mysql> select ascii('2');  ( Z, @3 C3 O3 O) I: @" A: K3 K9 {( ?
  -> 50  
' ?! F- U9 V3 h- tmysql> select ascii(2);  1 e4 a9 b" e/ C) o- K
  -> 50  & E3 \. z- }+ C' M1 ?: F
mysql> select ascii('dete');  - Z% {0 x& }2 d+ Q) c; Z6 Z4 x
  -> 100

, l  b# c$ W( A3 _% p$ n5 [ord(str)   # t+ ?/ L5 g9 A* o( Y5 H1 {% P& ^
如果字符串str句首是单字节返回与ascii()函数返回的相同值。1 Z+ |6 g, ?- D6 K9 [2 k

  E9 d! \+ X: l如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  " z$ }5 P% c6 T8 Z! ^
mysql> select ord('2');  * i4 I1 z0 h3 F. B% u( O
  -> 50  
6 v3 _: }; C0 S   3 f+ b3 L1 F  z/ ~: _
conv(n,from_base,to_base)   
/ ~: Y8 |% Y6 N7 O# B* x' F对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
! w# ~+ D$ s  A2 y- emysql> select conv("a",16,2);  
( ]. i" c" }! o4 H3 }) @; ^# a  -> '1010'
1 C$ V- r9 r6 X4 }9 E5 T/ Qmysql> select conv("6e",18,8);  
1 D; S5 |4 X9 M/ c8 u. ^  -> '172' - k4 k1 V0 F% S
mysql> select conv(-17,10,-18);  / W: {8 W7 \% Q0 Y
  -> '-h'
. u$ C0 j: O  f% A( W% g) f- Xmysql> select conv(10+"10"+'10'+0xa,10,10);  
8 f" v7 L9 F$ y* A  -> '40' 7 ]* O5 k* V+ |
   ) \  Z: K+ J/ e. E# Y/ {
bin(n)   
  N$ D# j# y- F/ W8 z把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  ! s  y: m+ w( D0 d" W' q& v
mysql> select bin(12);  
! r9 N7 g! [# g0 G  -> '1100'
- I: [* |1 Y- [* ?. A
9 Q! x, j' F  T. w& w9 `8 W" foct(n)   
5 v* {1 e9 S3 E& }把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  * H$ s. ^) L7 v8 o0 F" _
mysql> select oct(12);  - ?" t; `& Z; \
  -> '14' " ?8 A4 x1 f; ^0 {
     O% P! F: j; t: Z4 @8 j* l  h
hex(n)   
' b! e; z, a6 E' P7 ?把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  
& U' M& u1 y: ^- @& z- j, Tmysql> select hex(255);  9 q* R; E. m7 ~# v
  -> 'ff'
7 r0 M! w  t$ v$ G1 p, S  F   & K' z9 i% O3 S8 [+ Y( }6 r* ~- B: B
char(n,...)   ' C3 g& J. v" x/ d$ s% |9 X
返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   
; o; H4 H* N( emysql> select char(77,121,83,81,'76');  1 L7 y) D4 T1 V* m. |" P% w- n
  -> 'mysql'
7 z5 h9 S" L* V% b* Cmysql> select char(77,77.3,'77.3');  
" c/ I0 ]( v3 s* q  -> 'mmm' 8 ?& T, W) y+ _. s
   
9 m( A' |0 [* ~9 econcat(str1,str2,...)   % l; h6 p0 I9 o7 \, M
把参数连成一个长字符串并返回(任何参数是null时返回null)  
) Q$ P3 E7 O$ dmysql> select concat('my', 's', 'ql');  * c6 m1 m& H" v! G/ R3 }  f# w
  -> 'mysql'
) U0 c; B! o) D: s. |mysql> select concat('my', null, 'ql');  
) r# Q' x' ]% x) M2 M6 A$ y1 b  -> null / {9 e. R5 ~$ V0 P" X; ^0 \
mysql> select concat(14.3);  
/ B. C, H8 ], d) r3 r" A  -> '14.3'
! }4 b+ F* T! z
& W; p- s' n; s6 o# T9 ilength(str)   
4 \4 n* i+ s* soctet_length(str)  - K0 \" ^, n) v( H' L
char_length(str)  
5 K: ^4 Q! c% L( _3 i/ d2 hcharacter_length(str)  - M6 t' q' y$ j$ L$ c
返回字符串str的长度(对于多字节字符char_length仅计算一次)
- k9 M* a0 c9 x% r% Bmysql> select length('text');  % {* s( `# R  w4 }* j0 n& s. {( ~
  -> 4  
) w7 J% W$ Q# Zmysql> select octet_length('text');  4 M8 h1 c2 L" t
  -> 4  0 }9 L1 g8 g" ]8 n9 E0 [- v' B

8 G  ?9 r6 Y& c& ?+ A5 Slocate(substr,str)   
3 e; o; h4 m: G3 R" iposition(substr in str)   
) }3 R) v) V4 \1 r$ r* ^* Z返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
  }  K* R8 k! e7 q& |mysql> select locate('bar', 'foobarbar');  
; p: C# J0 b4 r/ I7 m, v. M% S5 @  -> 4  . W; Y  }1 ?: H2 a
mysql> select locate('xbar', 'foobar');  ; o7 s  m' }+ q( W' Q. T4 P
  -> 0  
8 o* a2 c& X8 c- d7 N+ o  w/ b   
7 B0 u1 ]6 ~/ E: k! u' Hlocate(substr,str,pos)
9 D% I7 l$ V% L" W/ u% ?" o/ x返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
# ?  d. ^( {  y4 h: _: i" `6 j9 y( imysql> select locate('bar', 'foobarbar',5);  
5 S) l( S4 {4 `4 B$ \! d. {% W, u+ F  -> 7  - l! o* A4 B! X6 H( @0 F

4 P1 h# [+ W, E! L8 hinstr(str,substr)   : J: X8 e4 n; ~) n* p) z% G+ t' G
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  9 ~7 c# k" y7 r. d0 ?
mysql> select instr('foobarbar', 'bar');  
# W, ?. i4 C1 L) B9 [' ?8 q/ E8 O  -> 4  7 p- A, @7 y: b+ W
mysql> select instr('xbar', 'foobar');  
0 m; B3 G4 P( A3 M' T  -> 0   3 k# g+ [  z' V( G4 G7 R; _

" `, J8 t- K. ]( j% Glpad(str,len,padstr)   
, p  ?/ c9 I4 o! J  D2 ~2 J1 X* g$ }用字符串padstr填补str左端直到字串长度为len并返回    H: Z0 E4 B3 e8 u
mysql> select lpad('hi',4,'??');  ' m- c- t" ], v
  -> '??hi'
; H2 g# S8 |8 o* \4 h5 {   2 a" S; A  Y  F' s8 w9 s
rpad(str,len,padstr)   
5 b9 F5 N$ \# ~5 {4 z1 n* D: ?用字符串padstr填补str右端直到字串长度为len并返回  
9 _4 R# k2 \- ?  _mysql> select rpad('hi',5,'?');  % D, t0 S) y# ]' @1 ]/ G/ ], `6 }
  -> 'hi???' 7 W% o( O" w& @5 o. N0 d
" q) I$ K' O+ F5 Q- t
left(str,len)   ) F7 z8 }* B3 L/ v
返回字符串str的左端len个字符  
7 R! Z* i; R3 @$ T* i1 `mysql> select left('foobarbar', 5);  
0 G. G2 S4 L5 F: Y  -> 'fooba'
: F7 f( I, _2 T$ J( A9 b  f & a" A2 \( I& Y; B
right(str,len)   0 K+ I1 U  h/ O9 i+ K9 W" |( O
返回字符串str的右端len个字符   5 T/ g4 i. r) u. T1 A
mysql> select right('foobarbar', 4);  
2 q  P7 E$ P' n. g9 v5 o8 K: f  -> 'rbar' ) n7 F. ]& F/ m0 ]
4 K$ @% f' J$ u1 c& t" F
substring(str,pos,len)   
7 t: Q) _; I* {# b1 _5 c( E! k# [8 ysubstring(str from pos for len)   
# f1 s. J, }% v3 \# ]mid(str,pos,len)   
& J" X4 d3 J, d. v2 `返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  ' L8 j9 w. X& c2 O0 P
  -> 'ratica' & m; c) B/ A: k' u- y
) U( Z& G, @6 u# e& l
substring(str,pos)   
$ Y) t3 U2 j/ |1 d0 w9 K9 p8 A( n! Osubstring(str from pos)   5 A, [. i% M6 @% v4 D. O9 o: u: L0 L
返回字符串str的位置pos起的一个子串    b! T4 |; ]" p1 h$ O( `, [
mysql> select substring('quadratically',5);  
9 x) |1 Q) @6 c) ?" y1 X& B0 n  -> 'ratically' & d* |; D5 H4 N4 B! o- _: @* U
mysql> select substring('foobarbar' from 4);  
3 |7 j* J& o+ X" ~( L  -> 'barbar'
* K- ~$ ?1 O" H: w' G
9 p0 b2 \; s9 l5 e( B* _* Hsubstring_index(str,delim,count)   
  K; H1 j, J3 S7 E: @  M, U: o返回从字符串str的第count个出现的分隔符delim之后的子串/ F. J9 ~) |% n! S4 W! |; ~
(count为正数时返回左端,否则返回右端子串)  
' q3 U. ~6 h& h: n! D$ Nmysql> select substring_index('www.mysql.com', '.', 2);  ( w: O6 p7 H: t; Q6 w& U
  -> 'www.mysql'
/ ]9 V. D5 h8 Zmysql> select substring_index('www.mysql.com', '.', -2);  " R+ U1 S( n0 `8 A
  -> 'mysql.com' ( j9 g' j) S/ I4 S

3 o! w! r+ ], ?9 b  G# s  Z& e9 w& Jltrim(str)   : J* D- E. x% u/ `- P
返回删除了左空格的字符串str  4 R4 Y  L9 F- m: G! }# V
mysql> select ltrim('  barbar');  
! q3 N! ^3 _+ Y5 P: ~0 `  -> 'barbar' 7 N' D9 U# s' x$ b
1 Y' c- {/ ^+ v3 \# i: L
rtrim(str)   
9 t* t% A, S9 x8 m5 H返回删除了右空格的字符串str  
% l9 Z) w2 d; e& e4 I5 N' t; Tmysql> select rtrim('barbar   ');  
# @0 ?' L- q$ t2 j, Z  -> 'barbar'
6 F- n. K! r2 v5 e" x8 y
2 g6 X' e# A0 L& |trim([[both | leading | trailing] [remstr] from] str)  
" I5 k  C3 u% x返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
6 _6 o4 H- j% X& y+ w; E& smysql> select trim('  bar   ');  
5 `  y% ~" W0 }/ f  -> 'bar' ; @6 h3 w7 D  N, Z/ d/ F
mysql> select trim(leading 'x' from 'xxxbarxxx');  
3 E' P7 @2 E) A  j% }  -> 'barxxx' $ K, k" D; V, e+ W
mysql> select trim(both 'x' from 'xxxbarxxx');  ( I/ g+ W2 v% N* J
  -> 'bar' 0 N: f% D" Z7 x0 f+ D4 S
mysql> select trim(trailing 'xyz' from 'barxxyz');  % n$ {8 x4 B/ E. q" c/ q5 w1 l
  -> 'barx' & x5 F) w) g0 ?% {5 z) |# F% R

+ H5 [2 {; k$ R( e. I$ |, ~0 |8 \* Lsoundex(str)   , |# H* _  e7 c+ H
返回str的一个同音字符串(听起来“大致相同”字符串有相同的
9 R4 ~3 E, v3 j- f- {同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  # S1 L2 A% g7 K. m# `( K) K
mysql> select soundex('hello');  0 v, f( d, b& }) U2 J  g6 _- p$ l
  -> 'h400'
* g9 Z5 F3 U; H, H! a3 |' jmysql> select soundex('quadratically');  
% X5 u/ B$ E/ w2 j. w  -> 'q36324'
! b7 M. U! H9 ~5 G" \' _   
7 |9 C8 a$ S1 C- ^0 Ispace(n)   - q) N) b' Z" w& c  r
返回由n个空格字符组成的一个字符串  
' [, U" w% x& ?! Smysql> select space(6);  
( Q7 g4 `" x' y) Y4 d( |6 c6 A+ u  -> '      ' 8 `; {% t7 o4 |) |
   ) a. J* }% m( w2 t) t# H
replace(str,from_str,to_str)   
; M% M% D  Y" A用字符串to_str替换字符串str中的子串from_str并返回  
8 c6 ~( @% d1 F3 h3 qmysql> select replace('www.mysql.com', 'w', 'ww');  
6 e$ ~9 ?' @. l: J8 L  -> 'wwwwww.mysql.com'
! U2 C" ]" t4 [9 Q1 X4 j
, v6 _0 J! }" b. b! b1 krepeat(str,count)  
, ^# U- \" z+ Q1 n+ g. Z返回由count个字符串str连成的一个字符串(任何参数为null时! v7 m: ?' W, _* a5 Q5 f
返回null,count<=0时返回一个空字符串)  
' P7 d5 i1 z1 @1 m+ x5 B5 c% Smysql> select repeat('mysql', 3);  9 U' T; `' H( J$ ~  ^6 g( B5 y6 ^
  -> 'mysqlmysqlmysql' 1 K( k! `5 V: Q% N- Z' r
   
' u  F& N( I1 |! W2 H+ m7 f, sreverse(str)   
! S& t# g' S6 `  ^颠倒字符串str的字符顺序并返回  
/ ^9 }9 U8 s1 n$ ~, h' B2 X( X- ]mysql> select reverse('abc');  ! |9 K8 |) a  |- g
  -> 'cba'
5 K% }+ Z- ?6 w# Z
. [% x% r: m$ W3 U$ q) sinsert(str,pos,len,newstr)   " ^! ^9 U3 `$ b/ D! [* z
把字符串str由位置pos起len个字符长的子串替换为字符串- p  ^5 b; f1 |3 V( Q  r
newstr并返回  ' p" I" M* Z) V8 d2 o* Y
mysql> select insert('quadratic', 3, 4, 'what');  
8 V, k* h) u  e* X& `& {* G: d6 v. L  -> 'quwhattic'
' a, v, V9 q+ k' ]0 y4 e+ c! w - [9 x9 s/ V7 _! ^# B# Y7 g) {  k! ?
elt(n,str1,str2,str3,...)   - q. w9 {4 b$ x+ v: B' S
返回第n个字符串(n小于1或大于参数个数返回null)  
3 }4 ~9 A& r% ?) V! _5 v9 jmysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  
! `5 i# r* a1 i' A3 f  -> 'ej'
4 \7 Q( J4 t. _1 i5 X+ Y, q- umysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  & _) v0 g& q1 s
  -> 'foo'
* V  w' s; V& i1 l; K4 h  Y * j% p7 c- E: W% u* ^
field(str,str1,str2,str3,...)  
# q$ x3 o9 `3 z" o3 t8 e" @/ O! N* \返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
0 C6 o3 w# H1 J6 q4 amysql> select field('ej', 'hej', 'ej', 'heja', 'hej',3 S2 V6 R  D. N* j- ~
'foo');  / T' `3 T# \1 ^9 c% i9 o  G
  -> 2  ; D. M: T9 F5 U5 d9 b9 P& M
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
/ ~  P2 u3 u8 |$ R/ O7 W. f'foo');  : R4 l- I; A1 _3 F
  -> 0  6 B: ^0 y* x; A% u; S# U
& x$ H4 F; U+ C5 O& c
find_in_set(str,strlist)   8 z/ O5 s/ ^+ q( t
返回str在字符串集strlist中的序号(任何参数是null则返回# d3 G. w' _: Q: h
null,如果str没找到返回0,参数1包含","时工作异常)  4 l- s1 f' f4 q" l: @2 @/ k
mysql> select find_in_set('b','a,b,c,d');  * E- Z; I- w' q  b* }
  -> 2  
$ u! N! |7 b# G. |: p9 z   - d4 n$ m3 {& B1 P0 C2 x7 C6 @
make_set(bits,str1,str2,...)  & ]* Y$ c% v6 F1 d  c% q
把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
. u: c  x" \" Z, K% D% F位置的字串选入字串集并返回(null串不添加到结果中)  
8 n, X& D: S  x9 {( umysql> select make_set(1,'a','b','c');  
) W0 N" G7 `2 m% z1 u1 [  -> 'a'
$ r: ~- i& n0 ]% `" Z, w% g. k8 Bmysql> select make_set(1 | 4,'hello','nice','world');  
* N9 x0 \! x4 W1 C  m  -> 'hello,world' $ Q. S9 a' X; n" q8 m
mysql> select make_set(0,'a','b','c');  
7 ^, ~2 ~: P( c8 ]+ h2 i# H; D  -> ''
) Q4 m$ Y+ y$ M, ]+ J( Y* [) G
) ?. r4 }( d) k1 e- m" C, j. Lexport_set(bits,on,off,[separator,[number_of_bits]])   / ?( X4 l% \+ `% D! ~
按bits排列字符串集,只有当位等于1时插入字串on,否则插入( h6 v, B% h8 u
off(separator默认值",",number_of_bits参数使用时长度不足补0
( y: S8 {* T. B) }; C而过长截断)   5 H5 h6 G6 Z+ U! I* z
mysql> select export_set(5,'y','n',',',4)  
% m* l& x, B$ T  -> y,n,y,n   
. ?# L2 U5 ?. A 8 S7 R& l6 I4 y9 v4 s+ ]
lcase(str)  " t! c, w! f% P/ e3 F
lower(str)   8 x) N! W. W. f- x5 B+ C5 B
返回小写的字符串str  6 _2 R5 M2 ^$ l& w
mysql> select lcase('quadratically');  " x, x" T. p8 c  G. M
  -> 'quadratically' 6 ]# Q. N# G1 j+ G% B
   7 @- l* H# }5 C4 p/ N7 [$ n5 d
ucase(str)   
, ^2 O& a/ B9 l% g3 i# Cupper(str)   0 }. U; v/ t- C" ]
返回大写的字符串str  # E3 P( D1 F5 @: X# d3 L
mysql> select ucase('quadratically');  3 K) [1 A2 k+ {+ }1 d. O: s
  -> 'quadratically'
. t6 v% r: k2 c1 ? ' m: L0 ~, u8 Y4 B7 J
load_file(file_name)   
6 j$ ^1 s! n  d6 U% }; x读入文件并且作为一个字符串返回文件内容(文件无法找到,路径
2 [  U2 [7 n6 X' Y5 b不完整,没有权限,长度大于max_allowed_packet会返回null)  2 w) Z4 y) h  x& w- o/ [" s) S5 W
mysql> update table_name set blob_column=load_file" `0 C: ]% F6 W. T2 r
("/tmp/picture") where id=1;  
: k2 f+ K' x( {8 N$ c5 k ( o0 L& j& E( p
2、数学函数
9 H/ ?0 `. |3 E; z1 z3 j* Fabs(n)
  M- b8 e0 m% f5 p$ n0 Y9 l返回n的绝对值  8 [/ Q. B+ m" w( f1 ^, {, p
mysql> select abs(2);   
; S  U) m- N# i; J1 t, a3 v  -> 2   
) n$ y8 A3 G; \$ k- z/ Xmysql> select abs(-32);   
; K# L" ^8 Q3 c4 m- ^, e- `/ R' y8 }  -> 32    ' y' U5 ?1 R5 S# j8 A
   3 y+ s2 Z: b& [: x' ~' o- l
sign(n)  2 i* j1 T( ]$ w2 M$ i, H
返回参数的符号(为-1、0或1)  - }. `7 f4 X% m: o9 t( ]0 S
mysql> select sign(-32);   
0 R" t; |' l6 U- Y& \0 T4 c- {; D  -> -1   
/ U- Q/ G2 ~5 b; ?8 m% v# Y' Kmysql> select sign(0);   
1 n- Y6 [7 ]! E- y' @  -> 0   
9 b7 e1 N3 E/ n( I2 |% o/ Vmysql> select sign(234);   
% `/ e" y8 H1 ^/ A  -> 1   
) V3 G, y% N7 Y$ a' r; J   t( ?  _+ c) ]
mod(n,m)   
: d5 |9 K; M8 F& V( X8 }  M3 a! ~取模运算,返回n被m除的余数(同%操作符)    $ X3 E! n7 t. F6 r
mysql> select mod(234, 10);   
) {4 T% b, L* \: ^6 u  -> 4    7 D3 H( o( r3 [6 E( w, @  U, Y5 x
mysql> select 234 % 10;    ' |% u% R9 a3 `7 h' s( H4 o) o
  -> 4   
$ n. G8 r- t  wmysql> select mod(29,9);    ; s# k& t0 |6 [6 n( F$ O
  -> 2   
, i: b% g. A- m+ f0 C
' ]0 x" X8 \, Afloor(n)  
2 S9 Q! `* W0 v  N返回不大于n的最大整数值  
  Y7 B( S- D/ i; u$ v* Cmysql> select floor(1.23);    0 S$ a& l0 N+ F) U, l7 I$ x
  -> 1    % I# g% j" s, h) z+ Z
mysql> select floor(-1.23);    0 `8 i1 N' |; ^, A# B. j$ x2 \
  -> -2    0 y# q" U* y- h8 o- Y& L
4 J3 X/ D: F" B% |* w
ceiling(n)  
. `- T6 |7 H. i% L" z返回不小于n的最小整数值  
6 j8 E9 |4 K' J3 c. Xmysql> select ceiling(1.23);   
, p. c* x. M/ ?$ _1 R5 h  -> 2   
: v; a) d3 V& |; U9 C- o9 L! Dmysql> select ceiling(-1.23);    2 b  F# L* T' i! q  G" M$ A
  -> -1   
7 j9 H  r1 v$ X' _* t
8 D1 M5 L+ w2 k- A) Fround(n,d)  % N# }( Y+ Z- s) d( t8 m/ @
返回n的四舍五入值,保留d位小数(d的默认值为0)  + B5 h& D* ]* J9 `* M
mysql> select round(-1.23);    ) p+ P5 C# j; g, |9 N9 K4 z9 ~
  -> -1      O' z. c, Q0 F
mysql> select round(-1.58);    * r" o# O3 y. T" I% [6 ]
  -> -2   
0 Z3 N! V. d# _) }0 Jmysql> select round(1.58);    $ W+ R$ g( j- ~( J2 y8 o
  -> 2    6 K, z2 h4 `2 I
mysql> select round(1.298, 1);   
% e' \9 H& o' ]/ G+ m' |% v  -> 1.3   
" N* I# f) [/ C& n* a3 wmysql> select round(1.298, 0);   
' O9 T) x( v/ ?, |  y. m  -> 1   
6 g/ H- r, x3 } 5 d/ H5 p. L; J  c8 v, s
exp(n)  
# |+ r" a$ T& s, }返回值e的n次方(自然对数的底)  
5 `7 }1 }+ k8 h' g) ^3 w) X! Xmysql> select exp(2);   
% [- l7 D5 a) @  -> 7.389056    - @: t0 ?4 d0 q5 ~  R& t
mysql> select exp(-2);    5 e, Y1 F8 b: T" |8 Q! p
  -> 0.135335   
2 x- r! f8 r5 }  M2 k
5 [/ a% a, d' K& K; [log(n)  
) f/ D  }6 Q7 n2 `+ R: x+ @  G) H返回n的自然对数  
) M& b6 \  g9 W# M4 s7 y) [mysql> select log(2);    0 ]* a2 ]. |: b5 G) J
  -> 0.693147    5 p5 G$ X& R1 [$ w
mysql> select log(-2);   
) O& I9 M7 B& y+ d* l$ C  -> null    4 x: @" \/ D/ S6 n+ C
4 g9 K. l" o& Z
log10(n)  - X* p7 y7 h) r6 V1 C7 A
返回n以10为底的对数  
+ J; ?  N, b" x0 Q; Zmysql> select log10(2);   
0 t2 [$ r7 h4 I  -> 0.301030    " e, d, Q( D! Z
mysql> select log10(100);    + Q* `  z2 C* ^
  -> 2.000000   
/ Z: Q# s! }. b( Fmysql> select log10(-100);   
( {2 a9 B1 I2 U1 w  -> null   
+ ?! x( D4 d! m7 A% {; B
, z5 c+ N% }  ]1 {pow(x,y)    / c" q& r" k- r. e
power(x,y)   
" U7 ~) p1 Q- G2 k) J 返回值x的y次幂  
  ?" M0 s% y  Z8 }1 i( v- [mysql> select pow(2,2);   
+ \. L7 [2 A5 [  -> 4.000000   
" r& u. j: |" H2 Gmysql> select pow(2,-2);    & M1 ~6 D) a, k( \# R4 i; C+ G# `
  -> 0.250000  
' J  b3 |8 W8 g  h) k! t5 C+ l- s: V0 W; w  V; x" |) Q: O* K
sqrt(n)  
0 P% @, p* h( U% E  Q3 | 返回非负数n的平方根  
. p; X8 u2 r" `4 B2 |6 dmysql> select sqrt(4);    8 M; N8 n8 N8 x9 W+ U
  -> 2.000000    # u! D) F+ G1 \) r/ ]
mysql> select sqrt(20);    ! H+ |% D. _* @9 ~
  -> 4.472136   
% H' x) [# W7 g( |0 L* E
2 L$ t, u9 b3 h" R3 lpi()   
9 H3 \8 ~' x- |& a) D 返回圆周率     t* F% C- G8 h: v% K) H2 ?1 U
mysql> select pi();   
* y8 e, O: v9 V3 |) b6 b  -> 3.141593   
3 e, s$ [8 k2 j0 g( r ) K/ ?8 }# x( a  Y, h6 X, o. e; Y
cos(n)  " Q$ h8 L. o7 l3 s( j
 返回n的余弦值  - m! }/ u8 x8 {  r0 O
mysql> select cos(pi());  , a4 Y4 l7 L  M1 t
  -> -1.000000    " J) b! b- A5 \8 R: _$ F' A

& ^9 W( G& r. t' xsin(n)  : k! \1 N' q1 E- r* m
 返回n的正弦值   5 T+ ~; V1 T1 r* e8 y
mysql> select sin(pi());   
' c  x  X% \8 L4 s/ j- m  -> 0.000000    7 A) O) K# J4 j$ q# _4 U3 o

4 _: q4 {! _( q: utan(n)  % Q5 Y6 @* S/ ~- V
返回n的正切值  ! V3 ~5 ?* p+ c  i8 j
mysql> select tan(pi()+1);   
" @" \0 g/ S9 k4 `  -> 1.557408      H/ a' G2 ?& v, `0 t; V7 Q
% G5 K; e( ^/ |9 c
acos(n)  
" y. D/ X* Q' c2 y( P8 z 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  8 t& I/ a! S, r  @$ f
mysql> select acos(1);    + R$ f; e! m8 X4 ]
  -> 0.000000    ( h9 @+ o: }9 z+ t% Z6 U" D8 _& b6 L
mysql> select acos(1.0001);    # a/ \8 C7 B. m5 k
  -> null   
' @0 k/ s- k2 ~! T+ smysql> select acos(0);   
0 \# s4 o- V9 z, W9 t  -> 1.570796   
4 ~  |2 @$ q: d ( }2 B- |$ Q6 u" X4 ?
asin(n)  
$ N1 _& e, K9 E2 }' [返回n反正弦值  
! _) ~8 s+ q+ ]$ r8 I# xmysql> select asin(0.2);    ! A8 Q. t& e5 m0 R
  -> 0.201358    9 x0 T  ~% l; o: }
mysql> select asin('foo');    5 ], v* |& m( K
  -> 0.000000   
2 n& l5 A# R0 M) N, y0 x ' O  d2 E* H& h
atan(n)  3 O* k9 x. d- r6 F( F3 f1 d
返回n的反正切值  7 V$ v4 ~  s4 d
mysql> select atan(2);    " X0 N: L3 W& q/ m- m! B
  -> 1.107149    ; o7 Q3 N; P( b+ `6 P
mysql> select atan(-2);   
9 D4 E& \. ]1 ^# W" d2 D1 D1 K  -> -1.107149    1 _: s6 M: c1 c# m
atan2(x,y)   
! U' k, \/ _  q  e: @: v 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  
' C1 ?- c$ M, ]& ^% o, Q; mmysql> select atan(-2,2);    ! ]7 A( ]* `  O+ E5 Q. `( ?
  -> -0.785398   
7 J* I+ x: u/ s" M/ y0 gmysql> select atan(pi(),0);   
, N2 s# y  _' u1 v  X+ j  -> 1.570796    , X! T+ I5 M' S7 Y1 k3 R
- \, w2 L: U  i1 r
cot(n)  % b2 n2 g8 m+ w2 P' N, N
返回x的余切  
1 O; O  |3 v" R6 ^: q2 Xmysql> select cot(12);    ! m* o/ `1 q; O% g; f# [/ u
  -> -1.57267341   
0 f9 i( l: ]! a" jmysql> select cot(0);    . k. f) O- ?  K- b
  -> null   
$ t  R8 ~' U* g
, P4 ]: Z2 D5 d/ x3 Rrand()  
0 P0 B* f# W8 i$ trand(n)    , B, F1 x/ T5 C+ ^! t( v8 C
返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
8 d6 r. t. ]0 i+ l - U% Y8 i+ F. ]1 m1 Q
mysql> select rand();   
& g* I9 j1 R- q# `4 s! M  -> 0.5925   
; q1 n2 k8 u# H# v+ f1 U+ |! Cmysql> select rand(20);   
( ~& R! F5 r, {/ R5 D  -> 0.1811   
+ f# V6 _7 P* I6 [mysql> select rand(20);   
+ F6 W8 h  ]' g  -> 0.1811    % n; x  h* ~2 v* v) ~
mysql> select rand();    * d: A1 M% }) F5 v
  -> 0.2079    - _- |8 h. b- c% T8 D6 M* n9 ~$ L9 J
mysql> select rand();   
) ^8 g+ I( Z" Z2 y  -> 0.7888   
3 j  I! u- K0 m
( f0 I) n3 Y6 Bdegrees(n)  
# K! O7 K" e: C" S# [把n从弧度变换为角度并返回  , g5 r" S  Y. K9 Z8 H! I
mysql> select degrees(pi());   
" {( f6 B5 g; \+ O3 h  -> 180.000000   
) k- u$ ~2 w4 ^& U1 {9 R7 R, W6 x
& }2 U6 `' ?, K; Iradians(n)
$ `+ b; I: `# v! @9 [; E把n从角度变换为弧度并返回   
6 p' k9 t6 N: _; y1 n# q  g# z3 W% Wmysql> select radians(90);   
/ e( B! v, W4 S2 f; e2 Y- s  -> 1.570796    ! y% P2 v( T' Q  S

6 W! Z; B8 u8 i" T6 P% b3 A: E: E+ q' Struncate(n,d)   
! t# ]/ O/ }( W5 _3 E6 `( \/ K保留数字n的d位小数并返回  
! H8 O; {. y. c3 Gmysql> select truncate(1.223,1);    2 ~5 ?6 T: O4 Q5 {( g) P9 V8 w
  -> 1.2    , e4 E+ b. L! x: h2 ?* P& f1 I6 F
mysql> select truncate(1.999,1);    + G$ K' I7 N& b8 v6 t7 L
  -> 1.9   
& R" d# v  `: Rmysql> select truncate(1.999,0);   
" ~& J& ~( C5 ?( N  -> 1    8 |: S/ V/ y2 e8 R4 p/ h: z

/ y' e2 z- Q- p4 Q7 j4 @5 \least(x,y,...)   
$ k8 X# K4 T$ ~4 n7 l8 M& C0 H" |返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  : T' `1 D5 D" t4 y. ~1 t0 n
mysql> select least(2,0);   
7 Z/ h9 T- t- x  -> 0    3 g1 M5 @! Q) S, f2 F
mysql> select least(34.0,3.0,5.0,767.0);   
: }& b& v, q. i  -> 3.0    / k6 e7 h: z( ?
mysql> select least("b","a","c");   
* x6 m% }4 J8 v5 ]  -> "a"   
. A! a1 f& o' y+ A, ^ + X. k8 A6 C) |4 j5 V" K
greatest(x,y,...)   
$ {: E+ K) j3 v返回最大值(其余同least())  0 x, `7 q# H& N' [7 \. g  ?) }. f0 C
mysql> select greatest(2,0);    % u4 b! r; V! a6 g) b, g: F
  -> 2    ) z2 G" w9 C( A( z& w
mysql> select greatest(34.0,3.0,5.0,767.0);   
) A; w; U6 a+ S# J: }6 e  -> 767.0    2 e* U  r' ^3 s8 d) C
mysql> select greatest("b","a","c");    0 q& |6 t( p, ~# N# C
  -> "c"       s3 z8 r- [$ I

* T8 c. m. d9 s. ~3、时期时间函数
2 w' R; K  v& r9 K% m  x3 N" V; sdayofweek(date)    6 b  X9 O8 M. s( H1 Y! b& Z
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  ; g' m7 J' c+ O. ]1 P
mysql> select dayofweek('1998-02-03');    / i1 }, F" {" y( D
  -> 3   
  f0 v! k) g7 i) w% o( {+ q 3 t4 ^2 l- T3 ^% V1 H" |. U$ M
weekday(date)    . ?. p0 ?- P  q# W4 v' h
返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 ) `% C" _: W, @0 s
  7 o& j3 r& U- x$ D- _1 L) m0 [- M8 B
mysql> select weekday('1997-10-04 22:23:00');    # l" p8 y" z' ^9 o! Q7 x4 a. _
  -> 5   
$ r0 S: u$ ]5 p& y4 Nmysql> select weekday('1997-11-05');   
& \( c  n( |$ f8 @! A  -> 2   
1 T* @3 ^; S, a8 Z/ i 5 [5 a; h8 c3 d, f, V( g2 z
dayofmonth(date)    # N" o. y5 l; f
返回date是一月中的第几日(在1到31范围内)   
4 U8 k: `+ r5 p! a4 x' Gmysql> select dayofmonth('1998-02-03');   
9 u% `: w8 M  J( Z& O  -> 3    3 U# W6 `2 r9 C1 ^/ V

5 v) q2 u  `+ d3 ~0 `) odayofyear(date)   
: v! d& _- _: n+ ~返回date是一年中的第几日(在1到366范围内)   
' L$ m+ J8 [3 E! ?mysql> select dayofyear('1998-02-03');    ) v  k! E9 b: y+ v# K' P
  -> 34   
6 o5 _- y7 U( _# [5 k9 L - d1 E$ t9 y2 S  ^8 A3 h& n
month(date)   
# y+ a; a% U! W! ]* l. f1 h返回date中的月份数值   
4 i1 K, d8 m9 k4 d  `mysql> select month('1998-02-03');    ! S  l, W  }: p; I; [' D
  -> 2    " u" g$ G" t5 Q) K# e5 i8 m

. N$ G+ G8 S: a1 W, J, {dayname(date)   
7 s( v4 p( K' B3 x" N+ c7 {返回date是星期几(按英文名返回)  
/ h3 _# d0 l; v$ _. smysql> select dayname("1998-02-05");   
  g9 M/ ^; x4 E% Q  -> 'thursday'   
" L2 {0 a4 K" D+ g9 _- B1 r; m, x% o
1 z/ X' I( S$ g, _0 R- u3 J  Mmonthname(date)    
. B. k' k: J) P4 L返回date是几月(按英文名返回)  4 e* F3 d8 F4 ]
mysql> select monthname("1998-02-05");   
+ f& h1 R! C5 c2 R: i( i# m  -> 'february'   
/ N' B! I+ d) I' p* G1 Z) d
- y( Y$ V! Q9 M! q; zquarter(date)    ( s. Y" ~5 ?$ O6 k, N, b
返回date是一年的第几个季度    $ K9 U5 m5 @$ g
mysql> select quarter('98-04-01');    ) L3 J  \- q/ i; e* i; k' v
  -> 2   
$ V% L, ^& l! I5 J8 h( F  E' g! u
8 W% l5 F1 p8 X2 b+ F1 S" Fweek(date,first)   
% ]6 R- r% C- i9 E7 O4 Z) G返回date是一年的第几周(first默认值0,first取值1表示周一是
; B* _& N) M0 W- N周的开始,0从周日开始)  
$ t8 y! s, e% ]9 U' |mysql> select week('1998-02-20');    / R, s3 G7 V; b* ~  }
  -> 7    & n: x4 b; L# D6 V
mysql> select week('1998-02-20',0);   
9 \# L/ Y/ B7 G" c8 L  -> 7   
% O) C! r/ e; g" Z! u- z7 f( A! cmysql> select week('1998-02-20',1);    ! |6 T3 B- [2 I9 `) |, M4 s4 Y
  -> 8   
$ f- j' K& o/ }( r, N4 u 9 j2 `; {/ J6 g, Z
year(date)    " L# F* k, K  e
返回date的年份(范围在1000到9999)    + {/ D5 ^$ V8 z: t; ]
mysql> select year('98-02-03');   
7 p: ~' v& V$ l- w7 e8 v  -> 1998   
$ f) S, }; N5 P6 b3 C$ A6 P1 l
; a# F) L8 w, o- khour(time)    
6 H1 ~( ~. _0 o4 s. k- \# Z7 b返回time的小时数(范围是0到23)   
0 S% W7 h9 Z# p! Q+ Fmysql> select hour('10:05:03');    5 W0 m( ]; ~7 a
  -> 10    + D+ l% j+ h8 A- u- u/ \6 y/ ~
6 k* m( f" P0 g! k
minute(time)   
1 Q/ \) F1 b4 h& k返回time的分钟数(范围是0到59)   
: Z4 \7 _2 h. ?  G% D4 i. Wmysql> select minute('98-02-03 10:05:03');    ; L( L& N  n* ]3 u9 b1 z* f
  -> 5   
: G% t8 j; m/ Z$ c6 B # v0 i! K( Z+ A' Q5 I5 R% \
second(time)    
/ J8 V$ b7 m) \7 P, j: p$ G返回time的秒数(范围是0到59)   
" q! B' l  j3 ?: z/ N, P' ~mysql> select second('10:05:03');   
: t0 Z0 r) @% y2 I2 C' J  -> 3   
: k. B* e: v& I$ a% c7 V, S % Q  c: b2 e1 J0 \8 @  ^( D5 o
period_add(p,n)    " A: b, d7 }5 f0 ?% o. u
增加n个月到时期p并返回(p的格式yymm或yyyymm)    . s0 \% o1 m5 @1 l
mysql> select period_add(9801,2);   
& U: @5 @$ ?) Z# R  -> 199803    # g: e) X3 C) w0 P# k2 y3 L( V6 R

5 Y8 c7 n* D" O! u. nperiod_diff(p1,p2)    " d! r( ?& Y0 c4 N, N( s
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)    p. @. d; d3 k
mysql> select period_diff(9802,199703);   
7 n" K' M1 f/ g) ?0 {( v: J6 ]! g4 Y  -> 11   
2 L! v" v% x. u, o8 }
% f- z: J+ D7 \date_add(date,interval expr type)  : i4 G, t+ L' j& m( l1 ]: z& t1 t
date_sub(date,interval expr type)   
% S5 R1 p1 n+ H- K# V* Uadddate(date,interval expr type)   
/ s) }; y% n1 H5 O& wsubdate(date,interval expr type)  
% a8 D3 n5 V0 I* o0 _2 O6 \' v对日期时间进行加减法运算  
( {( U; T- Q0 t6 K2 H: X, ](adddate()和subdate()是date_add()和date_sub()的同义词,也( B  q: H6 ^# K# D3 M3 w/ K# w: y
可以用运算符+和-而不是函数  ' G4 U. z6 c! H( k8 n3 u) `
date是一个datetime或date值,expr对date进行加减法的一个表. U: m2 Q) ?! u
达式字符串type指明表达式expr应该如何被解释  
' n0 L" r4 J. V [type值 含义 期望的expr格式]:  
9 o" }, u0 n4 m! m9 w( t1 L second 秒 seconds    ) ?  g& w( |6 N( h$ e/ e) A& L# c/ [
 minute 分钟 minutes    ! ^. f1 s! U, E% R4 K8 g
 hour 时间 hours   
- @; u0 c7 ?; I3 d3 I; v day 天 days    * H# W) y  v. a
 month 月 months    2 e! G/ a9 g9 Z
 year 年 years    4 x5 b5 m. x' c3 j
 minute_second 分钟和秒 "minutes:seconds"   
( I! U  P9 S+ ]; M$ y( H% p hour_minute 小时和分钟 "hours:minutes"   
  G. y$ H3 F' h) a' @4 N+ l: c6 a/ W day_hour 天和小时 "days hours"    ' M7 @5 r9 F8 V8 J/ `5 h
 year_month 年和月 "years-months"    % Y) c& C. `, U; S3 I1 c, X. r( L
 hour_second 小时, 分钟, "hours:minutes:seconds"    # S4 |+ o& G3 ~" B: j; k
 day_minute 天, 小时, 分钟 "days hours:minutes"    3 x- L* H  n4 ~4 K
 day_second 天, 小时, 分钟, 秒 "days
! h, P5 P9 o3 o4 Y4 dhours:minutes:seconds" # j$ j7 z7 c. j. w5 C
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个& \. i$ Y! w6 i5 h( G
date值,否则结果是一个datetime值)  
5 R8 i, a% y( o" q2 I( o! k 如果type关键词不完整,则mysql从右端取值,day_second因为缺
! |9 i( w8 M0 Y: S* g5 C少小时分钟等于minute_second)  
: q9 U0 p, d  q& z 如果增加month、year_month或year,天数大于结果月份的最大天* V- N/ k3 ]# ^0 k& R
数则使用最大天数)   
; K2 J/ s  {, h  q* Qmysql> select "1997-12-31 23:59:59" + interval 1 second;  4 t5 }- M  {. p6 @+ Z

3 S7 E5 w0 a6 H0 j1 t) r" ?' x- u; z  -> 1998-01-01 00:00:00   
5 k. C) y" B5 X, fmysql> select interval 1 day + "1997-12-31";   
2 z5 [1 s4 i; S! B5 X* u  -> 1998-01-01   
, n1 n: @* V: J3 Y/ W/ r6 tmysql> select "1998-01-01" - interval 1 second;   
3 h* ]; m/ w& ?, R( z& l) |0 s' F' D  -> 1997-12-31 23:59:59    : i. ^5 M4 v( N$ R* i/ Y+ N
mysql> select date_add("1997-12-31 23:59:59",interval 1# T& T. z0 s1 ^! G5 ]" T
second);    - |8 L/ e! i( y0 s; H& W
  -> 1998-01-01 00:00:00    , {$ o$ a* R% R3 W2 y, R8 p
mysql> select date_add("1997-12-31 23:59:59",interval 1+ f% {* V4 t9 M7 T3 H* J
day);   
0 L$ m& z. G. t. R3 Z1 V0 O! V! o2 C  -> 1998-01-01 23:59:59    8 |/ q$ r% U: \
mysql> select date_add("1997-12-31 23:59:59",interval) h# V$ B" V* O
"1:1" minute_second);   
1 [" w  g: o  @) I9 @  -> 1998-01-01 00:01:00    1 R- ~5 ~# r/ i( t. _8 Z! ?
mysql> select date_sub("1998-01-01 00:00:00",interval "1
' g! a$ E2 Z$ \. ~( o5 l! k1:1:1" day_second);   
# W: e1 b2 V( I% U! G; i$ u  -> 1997-12-30 22:58:59   
/ c; S! u- j; n  n& Smysql> select date_add("1998-01-01 00:00:00", interval "-1" c# d# k$ L( |- h
10" day_hour);  ! F2 B! `1 A- b* F' A
  -> 1997-12-30 14:00:00    % F- ^3 D' ?1 u9 B
mysql> select date_sub("1998-01-02", interval 31 day);   
7 z9 H, c) T& g, k3 ~  i  -> 1997-12-02    + \4 E5 `- S9 x: f5 ^8 w' B7 ], ~
mysql> select extract(year from "1999-07-02");   
/ @# u, E+ g3 K( s1 D4 M  ?7 X  -> 1999    $ K5 ^+ f& o8 K% q- A# x% V
mysql> select extract(year_month from "1999-07-02- v' X5 X: M0 v" v/ U
01:02:03");    1 h# \5 w( D9 F) C
  -> 199907   
. P5 E) m2 D) Rmysql> select extract(day_minute from "1999-07-02  Q, F- k% [' ^+ n
01:02:03");   
0 A$ E! _( A2 F6 F* G0 m  -> 20102    2 h; ^7 D  C8 q" i3 R

" ~" D6 M6 {) c" X- Nto_days(date)   
" _4 j+ o8 e% `; `1 ]/ q返回日期date是西元0年至今多少天(不计算1582年以前)  : H  e" z2 u' T, }
mysql> select to_days(950501);    : K6 C# K, D6 ~0 q7 H9 t# q
  -> 728779   
% ?) }& b( A6 ?, H, m% Jmysql> select to_days('1997-10-07');    * o. N3 S2 l4 K& s3 n, t
  -> 729669   
2 i6 q1 t3 `' p1 `5 g9 V
5 O+ A$ q; \5 B" A8 Sfrom_days(n)   
: }& B/ s* C6 H 给出西元0年至今多少天返回date值(不计算1582年以前)   # ?) ~* B2 s% |" i5 ]( ^3 ?& V
mysql> select from_days(729669);    5 H( U' N. k% i; w. U. q
  -> '1997-10-07'   
* l) M/ ]/ y/ x& c* v& A( i
' X+ I* W+ }5 }1 }date_format(date,format)    ( ?- D0 J3 `, V9 \- b; y9 f
 根据format字符串格式化date值  
" T3 D. s% E5 c (在format字符串中可用标志符:  - N, i6 ^- J/ T; |2 O5 q
 %m 月名字(january……december)   
' z3 w+ ^; F4 G) @2 r %w 星期名字(sunday……saturday)    1 Q( T5 Y- U! e6 Y& L
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)   
/ ~- ~  z' g  N) K %y 年, 数字, 4 位    . Q: X2 b6 ?' M& B
 %y 年, 数字, 2 位    $ g! Y- w1 ]7 C4 L# \. h% [, F
 %a 缩写的星期名字(sun……sat)   
4 ?+ X1 U5 h  O( Z9 {- L9 \9 o( c- \4 D4 t %d 月份中的天数, 数字(00……31)   
( D& g: q/ G& N. ^1 t% ?, M %e 月份中的天数, 数字(0……31)    * i, |* ?, b0 K8 B/ R
 %m 月, 数字(01……12)    0 E0 c; K: P4 s/ z3 u4 I9 B  E
 %c 月, 数字(1……12)    % n% v: Q" y( O$ v- I
 %b 缩写的月份名字(jan……dec)   
9 V; T. P6 u. C1 A4 x %j 一年中的天数(001……366)   
; r" C' ~8 o1 J1 c* z4 D* j2 P, Y %h 小时(00……23)    # d/ B+ k" a/ \6 p3 Y. l9 [$ A/ ~
 %k 小时(0……23)    5 n* }; B8 _1 i& `/ i6 l
 %h 小时(01……12)   
3 K1 j. m# d- K) Y1 U& I %i 小时(01……12)    5 B% z# J8 K2 e0 p. F  p
 %l 小时(1……12)   
( S& l. X9 B! B) E4 j/ k0 _9 Y" c  F %i 分钟, 数字(00……59)   
/ m  `! b2 p! [4 Q: | %r 时间,12 小时(hh:mm:ss [ap]m)    + D$ |0 \/ k: I2 D
 %t 时间,24 小时(hh:mm:ss)    6 d' s3 Q$ h  o9 g' T5 q8 c
 %s 秒(00……59)    - r+ D- ~- U+ v% |4 x3 T
 %s 秒(00……59)   
7 ~, M3 ^5 U! G  ?8 k% S* ?  T %p am或pm   
# |9 {3 H! M2 p; @; a7 H %w 一个星期中的天数(0=sunday ……6=saturday )   
# U% ^  F! ~3 g! Z  K1 j %u 星期(0……52), 这里星期天是星期的第一天    - k! O; `3 F  |# z
 %u 星期(0……52), 这里星期一是星期的第一天   
; X) @( y- O# P) i %% 字符% )  1 A/ P0 x) F7 v" n% R0 P
mysql> select date_format('1997-10-04 22:23:00','%w %m %& u. a: p3 H8 J; O2 O+ L
y');   
! [6 g6 ~* c% F  }3 c+ C7 D  -> 'saturday october 1997'   
1 d% F+ _' U4 S3 u6 k' u" L7 kmysql> select date_format('1997-10-04 22:23:00','%h:%i:%
& Y7 q: E: ^* h7 x/ vs');    2 f; V+ M9 a8 V
  -> '22:23:00'    # `) h) w. S% k* i: f- c" V: n
mysql> select date_format('1997-10-04 22:23:00','%d %y %a2 _* O: B+ f$ {, J3 S. _# l
%d %m %b %j');   
# U$ K, f5 K; v. R& s8 G- x2 O  -> '4th 97 sat 04 10 oct 277'   
  o* h% }; t4 i& fmysql> select date_format('1997-10-04 22:23:00','%h %k %i- E0 U# B. a. l; T$ p
%r %t %s %w');   
/ d$ \. S8 @7 y. a) Z  -> '22 22 10 10:23:00 pm 22:23:00 00 6'   
) Y0 o! a( K: p' J+ h1 W
0 e$ ~( M, n7 Q& _time_format(time,format)  
- e1 w* n+ l: ^0 K 和date_format()类似,但time_format只处理小时、分钟和秒(其0 r) a, C5 a  O: c* X) \4 q" b
余符号产生一个null值或0)  7 L/ u1 S7 l; K- ^' }

6 o& D' Q$ w" v3 q* f9 Icurdate()     
4 k+ _" i* k0 h4 Ncurrent_date()  5 w4 Q5 w; T8 o: u5 k
 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
7 W9 L& b: v# _1 D! S, _* \处上下文是字符串或数字)   
  @" u# p5 O- w5 Q7 g# ^mysql> select curdate();    & q6 S; O* v% _1 O0 Z
  -> '1997-12-15'   
& _! F; y$ H4 o, A, B$ l) K. d. ]mysql> select curdate() + 0;    & v$ c' j# C6 J7 d
  -> 19971215    & z: D# e/ Y6 E7 S

' F0 E, z- T1 pcurtime()   
: `& k& m& v8 v6 Ncurrent_time()  . m& X" A! m2 \( w
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
7 B& ?2 L/ I) P* T: C, h2 b' b+ |下文是字符串或数字)      
' a7 Q9 t9 I+ |8 {mysql> select curtime();    3 |9 X" J, P& u
  -> '23:50:26'   
% [% n/ L0 s- B0 y9 c+ [" Jmysql> select curtime() + 0;   
$ N. T& i  u% c$ I  -> 235026   
/ f5 `' U, ^" r / U- f% {- w( N1 l4 {& k
now()    ! {6 h/ w" _; z$ V
sysdate()    
, ]) u+ b* N. B. _0 qcurrent_timestamp()  % ]! s& z, y3 l) x1 m* s- a
 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
7 ?: v; g' W# [  w- t( V* i0 g时间(根据返回值所处上下文是字符串或数字)     , S/ Y% e7 S" P& n' c4 B
mysql> select now();   
# r1 ?) R0 o$ R+ a4 C& `5 Q* h  -> '1997-12-15 23:50:26'   
" e1 }$ _' L* f6 |/ h& M6 l3 nmysql> select now() + 0;   
5 L! `7 u* k0 d! Z0 W* F  -> 19971215235026   
9 g/ `4 [( P1 P " K" u( P: `- `/ b& L0 h) J
unix_timestamp()   
4 r: c& b- l5 x* F" |7 H4 T8 f9 X5 h. g) tunix_timestamp(date)    - g$ x) R( G  l' o9 |/ j
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
! K  M4 v' _9 r6 p2 Z+ x. Q; w( c数,date默认值为当前时间)  
2 j7 s! M# l% Q+ \' ^6 Cmysql> select unix_timestamp();   
7 [* M7 B- S% D: F+ M  -> 882226357    / `) _/ A7 o  r
mysql> select unix_timestamp('1997-10-04 22:23:00');      ~3 c* M7 {! p; ~- u# u
  -> 875996580    ! |/ w) Q  B4 n" b7 _& Y

2 W3 ^8 x. c9 G/ ^. Sfrom_unixtime(unix_timestamp)    2 G- x5 v% J8 m, V2 C2 e
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的3 n1 a& R0 A3 P4 c% z
值(根据返回值所处上下文是字符串或数字)     7 n0 w5 `! u5 |) ]+ U
mysql> select from_unixtime(875996580);   
6 ^' K  |0 U( p  a$ C3 s  -> '1997-10-04 22:23:00'   
  A0 ~: t" m+ Y( f: Xmysql> select from_unixtime(875996580) + 0;    4 `# P( \% L+ n$ |
  -> 19971004222300    8 T; Z9 S7 b8 k" M3 Q

6 Q# v. p. r0 G& M2 O* p7 }0 Jfrom_unixtime(unix_timestamp,format)    
- q5 x- V& ]2 f. O+ H& [# k: l以format字符串格式返回时间戳的值  
+ M# b7 O& U4 v% Hmysql> select from_unixtime(unix_timestamp(),'%y %d %m %/ ~9 b, O& b% h% Q  g% p- j: W- v
h:%i:%s %x');   
$ G. K1 ?" A; {0 c7 O# V& E" b% u  h  -> '1997 23rd december 03:43:30 x'   
/ X7 V, Z/ g& z' P; L % k( n" o1 L& E6 B5 q& o7 ~
sec_to_time(seconds)    # Q! m4 L; _3 A, H' H
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
6 [- T# r" [  q. }* C( }$ c  Umysql> select sec_to_time(2378);    0 Z  o2 k: B. {, l
  -> '00:39:38'    , K& o) X3 U  G" m- U0 V
mysql> select sec_to_time(2378) + 0;    % k+ R0 O$ r: l' K7 a  I7 I
  -> 3938   
; Y) |, q8 j, O9 t9 D
+ q/ |8 A4 @! ?- V( v# Ztime_to_sec(time)    ) X; ?+ j& c' C- s, Z
返回time值有多少秒   
6 e4 x' `1 }5 v2 m, w# r0 mmysql> select time_to_sec('22:23:00');   
3 z* [/ ^3 E" |3 M$ R" R  -> 80580    / V1 r8 Z' i3 i; F7 ^" c  ]7 ?
mysql> select time_to_sec('00:39:38');    - s& n1 M4 i- e  ~* X
  -> 2378
* e" F+ g, }; c2 }$ F6 @
  L( r- ]8 `" j1 y2 S( T转换函数; b/ b, d% X* C6 z9 T
cast
1 h3 K( Y8 A" A/ c2 k用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]
" x1 t% `( n% E* q实例:select cast(a as unsigned) as b from cardserver where order by b desc;
5 ~- p! ^8 r& _+ V! w. v3 Sconvert:
' \6 e2 c6 r! n. _/ ]用法:convert(字段,数据类型)
% a1 I3 I  B- f* v& d. h8 V实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
( O9 k2 c/ c/ `/ V  s! O+ i
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表