找回密码
 立即注册
查看: 2520|回复: 0
打印 上一主题 下一主题

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数
, P6 X( v/ r8 E9 p! O1 p; M3 Rascii(str)   & l+ Y" b6 @/ T, Y: i
返回字符串str的第一个字符的ascii值(str是空串时返回0)  
7 ?6 v& {0 t, O, b" Jmysql> select ascii('2');  # F2 D" _% N' a/ \% z
  -> 50  
) a  T  H3 y+ U$ ]% j! [6 Mmysql> select ascii(2);  
4 p- V+ S) ?& I4 S  -> 50  ' h. U/ Q! a' e& H# p1 O1 A
mysql> select ascii('dete');  
/ i- X: E6 y3 T" L# g  -> 100
  G  @; L5 O8 h
ord(str)   
- g  _( t, E1 P  l3 k如果字符串str句首是单字节返回与ascii()函数返回的相同值。& l2 L% `4 V6 O! i* B; ?

. ^; {; k" P6 j1 S6 t' \如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  
) D! X% \7 C9 ]8 w/ N" H7 G, ymysql> select ord('2');  
' H8 X$ Q+ k- j( T9 y. D  -> 50  
& G+ z  _8 Y  s   
9 N) P: L5 l9 C& b$ p8 a' econv(n,from_base,to_base)   * D7 K3 B5 M. `: t& k
对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
! C7 P' c5 v' A0 y" Imysql> select conv("a",16,2);  2 P; M& e3 n, u2 r0 ?* k; c
  -> '1010'
" W3 z% h/ a- o* Emysql> select conv("6e",18,8);  # Q2 k, o& ^8 z5 j
  -> '172' 8 j9 L/ t- d3 y$ s1 X3 E- \4 [' w+ F. N
mysql> select conv(-17,10,-18);  
/ F' u' @6 k3 a  -> '-h'
- H1 w# w; }# c/ fmysql> select conv(10+"10"+'10'+0xa,10,10);  % a0 y  Y* L- n% i' U% }/ K' a% N
  -> '40'
+ B, {8 [8 L9 H4 R2 B* o1 p9 {   ; E; y1 M9 L' p8 ~# Y
bin(n)   
: o6 H. ~4 j! W2 n$ o1 S# d+ F把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  ; Z8 n4 G9 {# z6 u+ C; g
mysql> select bin(12);  
3 J1 m3 {$ W1 U, G/ e3 l- I  -> '1100'
. r6 ?, ~0 D+ P( e  e9 d 0 j! T/ G# U+ f1 d/ t% }3 T! y) v9 U
oct(n)   , x" V+ e; h/ }
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
' N4 e( f3 I0 f8 |9 smysql> select oct(12);  1 i' r  S- @+ p1 B/ j' E% g( t9 m
  -> '14' 9 {  |% p5 @+ u& d: I
   
% `2 j: R0 R3 I( q$ F  Z7 rhex(n)   
- H& t9 |, s# M  Q7 P3 v把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  
% k" _, h$ G- j3 ~# D( @6 o5 Amysql> select hex(255);  ) |2 S6 k% k3 S
  -> 'ff' 6 H: ]2 T( P! U' u1 F+ G& A
   
9 j1 o9 K; c/ c1 Z' k9 N. rchar(n,...)   
7 \2 L3 l- i# }: w返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   - k, g: L- a$ l& c0 R- S- I" y
mysql> select char(77,121,83,81,'76');  8 q! z2 }3 X; ^' V" Q
  -> 'mysql'
0 r, E# I0 P$ A' Vmysql> select char(77,77.3,'77.3');  * E* w! l+ U* r& W6 S0 K" N' s
  -> 'mmm'
& x+ J1 H8 U0 h8 T* ^5 l7 C7 Q, [   " j  l$ \* @; n4 ^; }
concat(str1,str2,...)   1 @/ c$ K  C, y; V9 f; y! i
把参数连成一个长字符串并返回(任何参数是null时返回null)  
7 r5 V% c2 W0 @2 Cmysql> select concat('my', 's', 'ql');  1 i8 g. C/ e+ Z& Z: @, l
  -> 'mysql' $ E  r* G' N6 t+ F! X6 R8 w, O
mysql> select concat('my', null, 'ql');  8 F' B3 P4 P; U4 J* X8 Y+ V' S
  -> null
+ _" g4 V% G, V# h5 x- I# C) {mysql> select concat(14.3);  . n) P! T; {( Z! A  \
  -> '14.3' ! z$ x. G: u, z( a/ K
9 Z2 s4 K$ Z* E* I4 z
length(str)   & \5 Q" G: s+ P
octet_length(str)  4 b1 V  d( n, W" b+ v9 \
char_length(str)  
# s1 H+ i: e- O0 z5 x, t4 Jcharacter_length(str)  & x5 H' l. a+ @* b! Y2 e, u
返回字符串str的长度(对于多字节字符char_length仅计算一次)" |) J7 w& T* o$ a# ]
mysql> select length('text');  8 N, m& _: l8 Z& G; p
  -> 4  6 ~3 q, }  u; x4 s. T! a
mysql> select octet_length('text');  / g! {+ X; T# G. d
  -> 4  5 }2 T& P/ T% a. T3 G9 {
- E. T: P5 R; a# K- }) t
locate(substr,str)   
- Z; U: a8 C- [. pposition(substr in str)   , Y  }. a" @4 v3 n. ?% |
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
; A* C7 x1 l+ q( |# {9 }mysql> select locate('bar', 'foobarbar');  $ s$ U) I. e7 \
  -> 4  " j5 M1 x! H6 W$ v/ v7 F, Y* C# Q) @, u, h
mysql> select locate('xbar', 'foobar');  # {0 q0 W1 E4 U/ T/ E
  -> 0  0 L/ }, S! O0 n' c5 x; t2 t% g
   
6 J9 [; P2 q: A4 Elocate(substr,str,pos) 5 K, C; B1 J; g- e$ I6 L
返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
% a7 S* `- N: b: q, v0 pmysql> select locate('bar', 'foobarbar',5);  0 G: @& l# ~* r& E- s
  -> 7  7 z; c' {2 \6 U2 C) Y( t) R

: Z3 _$ k' G1 }* Y3 E2 O4 A5 E' [instr(str,substr)   ' q  M$ p* y) m" w; b( R1 i( x
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  4 S; ]- G# ~6 K7 n6 _
mysql> select instr('foobarbar', 'bar');  
' b: w7 {! ?. {9 I* A- j  -> 4  
1 U+ P+ J0 t. [' g- Z9 t5 umysql> select instr('xbar', 'foobar');  2 w9 H9 K5 d. p
  -> 0   
+ U( }4 E$ a: {$ V' m! X 3 W6 B. g9 C+ ]" @9 J$ W
lpad(str,len,padstr)   * u  u( J( j3 _1 A
用字符串padstr填补str左端直到字串长度为len并返回  
* D$ b4 x1 M' f% v# }, g& qmysql> select lpad('hi',4,'??');  
$ j6 o. M/ }8 c' k' r  -> '??hi' & J/ i. A8 E+ p8 S
   $ L  Q$ ^; e6 B2 c% @2 g
rpad(str,len,padstr)   
8 \' f& F4 K1 p+ f4 F. {7 l& }$ F7 W4 m用字符串padstr填补str右端直到字串长度为len并返回  , a0 C% Y9 {8 [2 }
mysql> select rpad('hi',5,'?');  
( ~8 `$ y* T! v$ w/ W0 Y  -> 'hi???'
4 d8 I& z1 [: b+ H 0 F9 J% A8 M' y% L1 _4 C
left(str,len)   
/ a# q" ^  |# z+ J返回字符串str的左端len个字符  
4 G) ]4 x- p1 z/ [6 l# i1 kmysql> select left('foobarbar', 5);  & Q3 ^4 \: k7 X3 ^. i# C
  -> 'fooba'
" `1 w; N7 J6 j. H# c& a4 A % {0 _. |4 s4 Z9 ?+ B
right(str,len)   
/ _8 Y7 T9 g9 J- s; O  A, r返回字符串str的右端len个字符   
$ w8 D, O+ a+ B: P: vmysql> select right('foobarbar', 4);  
: d! g& F: s% f  P/ |" |  -> 'rbar'
' h& B  T, K' E1 e ' W6 T% T' Q7 c6 T& w
substring(str,pos,len)   
0 n2 I+ k3 t# Q& ?5 U& b" J: l; ysubstring(str from pos for len)   
% I- P* O5 U" \4 \& i2 V. x8 bmid(str,pos,len)   
' Y9 x+ v8 g, d$ L: i% l返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
5 U- K5 a, X, p  -> 'ratica'
4 ]  w9 s; O4 F, x
6 z6 O+ s& q- k& b9 r! r; ysubstring(str,pos)   # w. o) ~$ N6 ^  B* @
substring(str from pos)   ) V6 [* X' e8 X
返回字符串str的位置pos起的一个子串  
5 ~( c! ?. ?" M6 ?5 @- ?( Y  B  X0 dmysql> select substring('quadratically',5);  & x" H% e' `/ ]; e$ L
  -> 'ratically'
. z8 B4 U% F$ y# h& d' mmysql> select substring('foobarbar' from 4);  2 D6 x9 Z# O" l
  -> 'barbar'
9 C7 c  a0 N6 X" n- Y! o; j6 G 7 Y# ~% {- s+ I$ u' E: @7 G$ a
substring_index(str,delim,count)   
0 _4 Y$ n/ q& r2 G3 q3 @返回从字符串str的第count个出现的分隔符delim之后的子串
" o! @# ]$ j3 J4 n" U' X(count为正数时返回左端,否则返回右端子串)  
: x  x, g; I, |. ymysql> select substring_index('www.mysql.com', '.', 2);  
0 A5 P0 ]0 Z' u% z. |% Z2 D: P/ {1 H  -> 'www.mysql' 8 {) t7 @$ `* f) h0 e; @8 C
mysql> select substring_index('www.mysql.com', '.', -2);  4 t; x$ C* D7 i4 S+ r1 H7 |
  -> 'mysql.com' & F% Y! t/ X" }" C8 w" ^

3 e9 @8 U* E/ v8 {% x. z* N( W. t$ v4 Ultrim(str)   
" v6 O0 ]4 V* q: r8 ?2 m# k返回删除了左空格的字符串str  # d/ x$ q9 ^! Y" }
mysql> select ltrim('  barbar');  
- t9 j* {5 w: R* v# F, W# u  -> 'barbar' 8 a1 U+ ~$ _$ H% _, }9 y

% \' t5 {0 u' y8 krtrim(str)   
$ b% R$ I9 ^- N0 |% @! F返回删除了右空格的字符串str  
. ~# t) ^8 z. k% nmysql> select rtrim('barbar   ');  
! r' V9 `4 L' d8 X7 R  -> 'barbar'
  L0 b/ y9 q9 Y! M - Q+ d" Q2 ]* K3 F5 G
trim([[both | leading | trailing] [remstr] from] str)  
7 E! x7 Y: Q, O  k4 Y返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  ' O1 ^: F. \( r* K" T* b; t0 M
mysql> select trim('  bar   ');  ' W' _; c: ^% X4 v( A8 k" C
  -> 'bar' 1 A+ }; q! F& z- _7 z6 m4 o
mysql> select trim(leading 'x' from 'xxxbarxxx');  
+ G, Q* @3 ^( V6 o; ~  -> 'barxxx'
/ }/ y1 _) {* Z7 n4 {( r, nmysql> select trim(both 'x' from 'xxxbarxxx');  & T5 G7 |$ D! m# k( b5 v, B
  -> 'bar' 0 Q  r4 X  v1 W
mysql> select trim(trailing 'xyz' from 'barxxyz');  9 E0 ]) P6 O/ S! m3 t
  -> 'barx'
7 ^/ J* n2 P( f2 e: U 6 U% M# O' b  R& n! x
soundex(str)   ) F. m+ J& V3 [# j
返回str的一个同音字符串(听起来“大致相同”字符串有相同的* b2 C( p* O, f
同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  
  S7 `/ V  B5 n6 L4 Umysql> select soundex('hello');  
1 u0 H, t; _' a. n/ ?  -> 'h400' 3 N+ C. {( D5 k& p
mysql> select soundex('quadratically');  
* Q1 {4 @: g2 T' C2 S* f  -> 'q36324' - l( ?. f' J7 d; _3 d
   . ~* |6 p1 k; j1 A0 R
space(n)   8 B& H2 C! O$ F+ o7 n, Y8 R
返回由n个空格字符组成的一个字符串  % q, p) X6 i" K% |, D3 H
mysql> select space(6);  
6 y7 _5 A5 V% S" R  -> '      ' 2 o% ]7 n5 J3 W6 P8 R7 u$ S
   6 K) y9 I2 _7 o& y: e4 p
replace(str,from_str,to_str)   
3 m$ l+ n: g: R7 w6 A0 {" m用字符串to_str替换字符串str中的子串from_str并返回  % h  n. D$ x! U6 U1 x% J3 _8 _, ^
mysql> select replace('www.mysql.com', 'w', 'ww');  ) p. c: f. r8 v& L* J) m7 X. C* X
  -> 'wwwwww.mysql.com'
# x! S! m) n+ b. {
: V  a$ }% F! Q2 `- {  ]repeat(str,count)  
* `  J0 B) A( J返回由count个字符串str连成的一个字符串(任何参数为null时
6 ]! B! S" P. W2 k返回null,count<=0时返回一个空字符串)  3 |2 a0 k! \5 z
mysql> select repeat('mysql', 3);  
1 U( ?9 _/ A! c5 ]$ a8 a2 z2 s- p  -> 'mysqlmysqlmysql'
8 L5 `/ Y! i4 q   
8 a8 A+ L% E% ~2 D: w, ]! Preverse(str)     P0 B: n1 c$ e: l6 q+ E7 z  ^
颠倒字符串str的字符顺序并返回  
, k" w* V- \( l6 O* F$ vmysql> select reverse('abc');  
7 @8 g0 D. ]3 Y+ _  E  J6 [+ i  }  -> 'cba'
+ y5 [. r* r4 `7 R1 O 8 Z* @7 z5 V! R6 G8 B# ?. ^
insert(str,pos,len,newstr)   ( }7 g1 V5 ~, g) @( G7 e
把字符串str由位置pos起len个字符长的子串替换为字符串
* v, D% M" W0 R; i: Bnewstr并返回  6 \$ D; M1 \3 M3 O- q( b% q! p
mysql> select insert('quadratic', 3, 4, 'what');  
2 ?. D: f7 y9 K- e9 \& B  -> 'quwhattic'
8 ]& Y) `  M: j# V! U
9 X/ {% [5 c0 O; n& k) @elt(n,str1,str2,str3,...)     O5 y7 q& n7 d# L$ T
返回第n个字符串(n小于1或大于参数个数返回null)  ) \! v" p  b5 O4 N
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  
$ ~9 Y! u0 V& U, V4 `9 {$ j* }  -> 'ej' 1 d( \! \9 z! M/ u! `
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  
% h+ g: b1 Z, n8 g  -> 'foo' * K  Z9 a7 m9 W$ \' E/ z; s
$ m% ?9 ^6 B  u
field(str,str1,str2,str3,...)  
7 U+ J: }" X. Q7 V, f返回str等于其后的第n个字符串的序号(如果str没找到返回0)  % Y( v. [4 Y" M; ^! L- `9 F* o
mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
9 u' G: V5 _1 ~9 |'foo');  
, P+ f. V' i6 G- f& V( S% m- Q  -> 2  0 c7 ]: c- t2 \6 f5 G8 n9 _
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',. }! ~8 M  @: k  H9 l( O! d7 r
'foo');  
4 y- w! p/ K+ `; Y0 _  -> 0  * d& w% u" x% L/ f* I: c/ ~' h
2 Q5 x& U* n. _, U( ^* Q8 @5 ^5 J+ E
find_in_set(str,strlist)   
" F3 ~2 h# E) E返回str在字符串集strlist中的序号(任何参数是null则返回, W3 ~# V: Z0 j' q. n
null,如果str没找到返回0,参数1包含","时工作异常)  ) |; @% l  m$ z( P2 R6 l
mysql> select find_in_set('b','a,b,c,d');  $ ]8 x1 q$ o4 a( c& s
  -> 2  + X+ l4 W8 `5 ]( x4 k+ h7 n
   - F' P8 G; C: z# t
make_set(bits,str1,str2,...)  
' z1 B0 H% K: d4 P! O( ^+ ~# K" |把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应8 @, x+ w! ?3 Q5 r2 R  u
位置的字串选入字串集并返回(null串不添加到结果中)  & G  T1 w! s' U
mysql> select make_set(1,'a','b','c');  8 h5 Q2 j5 T) Y5 L& i1 o: D$ X
  -> 'a'
4 l) _% m$ w  s  W4 zmysql> select make_set(1 | 4,'hello','nice','world');    @2 k* H. w( Y3 a9 a
  -> 'hello,world'
# H3 C2 k, N8 p3 v) ], Nmysql> select make_set(0,'a','b','c');  3 K- ^% C5 \% ]# O
  -> '' 2 u% Q/ Y" w! A8 Z1 P3 K1 C4 l

& b) w8 ?, ?) k" Q) }export_set(bits,on,off,[separator,[number_of_bits]])   
, l3 d- l) N& j! e; P! z% t按bits排列字符串集,只有当位等于1时插入字串on,否则插入2 O; Y' G- ~( z) t
off(separator默认值",",number_of_bits参数使用时长度不足补0( @9 |+ I4 _2 {$ C# O; U5 K' q! p
而过长截断)   
1 n8 y0 H3 k  T; W0 A' Amysql> select export_set(5,'y','n',',',4)  
7 K' b; }' [/ t7 {  -> y,n,y,n     R/ c+ }' Z3 A5 Z* L

- `1 t1 x% P, @5 `8 |lcase(str)  ( [- `7 h. y4 @" U
lower(str)   
9 Y( ~. \  k  a4 _返回小写的字符串str  
7 D3 X$ {* a: a9 @, C; P# `8 Gmysql> select lcase('quadratically');  % h+ W6 \! T. B' m
  -> 'quadratically' & z! ?; s  B/ a0 d9 x
   3 c1 Y* W, g3 k3 J( b
ucase(str)   
! ~6 _0 G! o& I* d) D: s5 iupper(str)   / T5 h" b: e8 {
返回大写的字符串str  3 x- R9 s% w: n% \  E5 a
mysql> select ucase('quadratically');  
$ E, Z8 p/ [' i  -> 'quadratically'
+ X6 F: i7 A% ^- W4 o 5 |1 M+ a/ }0 u& Z; J
load_file(file_name)   
6 J! j8 [- d) v读入文件并且作为一个字符串返回文件内容(文件无法找到,路径
6 x) w+ N+ W/ F' e9 Q, d4 r% E不完整,没有权限,长度大于max_allowed_packet会返回null)  
  d8 T# b: r; j5 e+ ~mysql> update table_name set blob_column=load_file' e$ v( @) q# ?% C# b
("/tmp/picture") where id=1;  
7 X% H! S4 @% M6 Q6 M1 \
4 U7 c% B; v. s+ Y2、数学函数1 L; V4 J7 s5 r' h. i7 ?3 |
abs(n)
) @$ d4 \6 f# t. C7 s& D返回n的绝对值  1 K4 C  d# V' ^3 k& y
mysql> select abs(2);    2 z  Z4 v% ]4 O# S, P) k4 B6 Z# ~
  -> 2   
, ]( e* R; n% b! C9 [mysql> select abs(-32);   
9 w& t& s. l& ~3 }( C- o  -> 32    & z) l0 S8 f1 M  l# q
   
6 g* o2 }5 K2 {: e5 Hsign(n)  $ |' @, Z" V' f  L
返回参数的符号(为-1、0或1)  
3 s4 ?; s0 `$ D0 z% q, tmysql> select sign(-32);    2 v# ]5 }7 _8 O$ Z4 B8 v/ A3 G' R" ?
  -> -1    7 Q5 ?# b: P- ^. U- j% C4 G, \
mysql> select sign(0);   
. Y, U* Y; H8 [" l$ \1 Y  -> 0   
  i" z9 @! Y* |* ]mysql> select sign(234);    4 w4 W6 e' F" v3 [( `, f
  -> 1    - X1 i3 D. G% p- g: i2 C% B. _
+ ~& _. Z, s6 `; P" S
mod(n,m)   
& h2 @6 P3 c6 G1 H! i) C/ i; ~取模运算,返回n被m除的余数(同%操作符)   
7 p; _; I- R( J9 X+ r4 \+ S# K$ tmysql> select mod(234, 10);    . r- L  W& P# z! \  ^! V
  -> 4   
4 c& C9 ?; g! _$ k: r/ U# Xmysql> select 234 % 10;   
# @7 c* Z6 B6 W; Q8 U  -> 4    0 p( K7 @# |& j( f$ w" I
mysql> select mod(29,9);   
" X9 `: m8 Y% \5 T1 k$ y2 [7 Q  -> 2    3 @$ n9 b8 J1 l& {
" ]8 G- D1 k4 k! G2 K- s2 x5 z
floor(n)  
2 r% p4 c' ], U3 ]2 E6 H" t2 ]返回不大于n的最大整数值  
- u6 Q+ r! h; G  a  J+ t% M6 Omysql> select floor(1.23);    * s) v0 U. A1 v0 G
  -> 1    5 K! d) H0 D  ^2 |9 _
mysql> select floor(-1.23);    : |% O/ |' x3 L4 ^5 o$ B
  -> -2    + n, }  q. A5 Z/ V, Y7 W; ]$ }
  `# P: ^) P! b+ F7 l" s
ceiling(n)  * r% M+ ?0 k  U
返回不小于n的最小整数值  
2 I  h) f4 Y$ B+ A( Q1 cmysql> select ceiling(1.23);   
& O' a0 ?% C3 Y* c. e! K$ j  -> 2    / [8 L: h5 H8 t$ M  x$ G8 t  _% l$ M
mysql> select ceiling(-1.23);    " _! k2 ^* ~& j! S6 p& M
  -> -1    1 D6 ?& ], V9 ?4 d' B! \
) i7 ?4 M# d* u; o, q' V9 S7 {
round(n,d)  $ P1 v4 ^; C4 }- D7 Z2 [6 t
返回n的四舍五入值,保留d位小数(d的默认值为0)  
" E" ^0 K! c7 N2 W- l& _mysql> select round(-1.23);   
$ |2 J  o! C( h) N( g1 ?4 z! b2 g5 `  -> -1   
2 O  m: s. d! V; C6 }, u$ \mysql> select round(-1.58);    # W1 m& X! i3 F! }/ n
  -> -2    7 y/ F& p% o% j" f7 ]
mysql> select round(1.58);   
) L, z) {  X# g2 x  -> 2    6 `# G7 i- D  b. `1 e1 G' q9 F
mysql> select round(1.298, 1);    & z! Q( k4 F7 k4 K7 w/ g
  -> 1.3    9 ~9 T, u  u& z3 e
mysql> select round(1.298, 0);   
/ S+ [8 R- _3 f  -> 1    ; o+ E, @  G% K1 A# r7 _* C0 Y4 `

" Q* I/ x6 e1 A4 o2 L8 H. H0 cexp(n)  * r) y: d- W: Y' G: A
返回值e的n次方(自然对数的底)  - L( N$ Y6 r$ I8 T: V
mysql> select exp(2);    . M; P; r4 _5 w6 N
  -> 7.389056   
9 H1 {# a  K( Y& Cmysql> select exp(-2);    * M+ I' b1 \5 @! X! b( g
  -> 0.135335    2 j: S9 t5 R) J5 V% ?3 c
* i8 ?( q3 W+ {2 B$ n, n- H
log(n)  # x+ W) m  ^9 k3 ^% [( X  A3 [& |; C) s
返回n的自然对数  
" u, o; J  e  s3 pmysql> select log(2);   
& Q4 X; ]9 ^3 M5 Y  -> 0.693147    2 W2 |$ t- Y* p
mysql> select log(-2);   
& P" i) ], [, L  -> null   
; Z- T4 f( K" y- L& C7 N
1 [. z; }% Y' I. Zlog10(n)  - {  l$ a$ z4 {! e9 E1 d
返回n以10为底的对数  * H* ], _) k1 v/ I+ D" Q
mysql> select log10(2);    # Z% ?7 y0 i! H$ s3 \& T4 I
  -> 0.301030    ( ]- y/ N' Z* c9 X' L# L. V
mysql> select log10(100);   
9 j. ?! G; _% F6 \' L( ~# S  -> 2.000000   
2 M1 @) s5 e& T' @9 Hmysql> select log10(-100);   
8 D. T& v& }+ f5 [  -> null   
: n: S  J3 A% }' J
: q4 G  G+ l# o  ?: q. }pow(x,y)    % z# g+ h! N. u5 K+ M$ e
power(x,y)    * S2 n4 ]( |4 H; f2 a; \2 Z
 返回值x的y次幂  
# }5 l+ q) p1 l1 ~' }mysql> select pow(2,2);    / h) N3 C! ], u1 c1 y
  -> 4.000000    # A$ s/ n% w$ Z, E9 ?
mysql> select pow(2,-2);   
4 g! O* F; }$ Z4 m2 G1 p  o  -> 0.250000  
; K* ^2 A5 ]8 j
/ n7 b* j  S7 n" Q+ T( r% r8 {9 J+ x7 Esqrt(n)  & u  \8 L9 V7 w3 C+ O2 r
 返回非负数n的平方根  : |6 ]" ~+ M0 [' e. x; S
mysql> select sqrt(4);    : B8 `: L; ^" c. B. U& C. D
  -> 2.000000    ! p: Y8 P7 l$ R- v' `
mysql> select sqrt(20);    ( v- B: J7 ^" F+ K
  -> 4.472136    & C/ \( J& t, {4 O% Z8 }% J4 n

8 t  C5 X9 K# _# \' F4 \( ^pi()    * b5 ^6 @, u1 m& B  k1 r
 返回圆周率   
( y+ T' V: Z0 i  Xmysql> select pi();   
5 h2 T7 m1 f! @  -> 3.141593   
2 j! X: l& ^, n* f7 ^* m 3 T1 n# a" \- g0 g0 v
cos(n)  : C2 U% O3 m- B4 b
 返回n的余弦值  
) P8 L2 _. u4 R, }) V0 }# m9 x# Jmysql> select cos(pi());  # J- k4 h8 p* D: P3 v& M9 k" d
  -> -1.000000    ( c( d$ [% O" j- j/ S
9 d8 r) g' H+ T" [! F. f
sin(n)  ( K) W) _. r9 [
 返回n的正弦值   - [2 q8 T. y2 ]9 o* g. V) b
mysql> select sin(pi());    6 ~* S% C; A# A% Q1 W9 z
  -> 0.000000   
# B* R" d3 k' x, H+ Y # m% W: [9 z# O5 X
tan(n)  
0 c1 E* ?) a2 n$ ~返回n的正切值  ' N0 [# b5 i# O1 R0 i
mysql> select tan(pi()+1);   
5 t& z! T- |! b+ b  -> 1.557408   
$ U7 `9 L  C. q9 s ( D( t& |8 V5 u4 Q. Z: E
acos(n)  
! O+ @) q  V  z& l" L6 b1 T, P2 n 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  . s) n" G/ i# u  h- t  G
mysql> select acos(1);   
  k: v9 V0 L9 ?3 j& m1 }  -> 0.000000    1 j+ G9 z( X: @9 G
mysql> select acos(1.0001);   
$ E3 y3 @: {# }1 D6 P1 P% w$ P& Z  -> null   
# f2 v( F  n, _% w! S& Pmysql> select acos(0);   
# u8 O% v% M; V' j  -> 1.570796    ( j3 g2 |' I7 d) f  U& ^9 w7 I8 r' Y
& f& A! J9 G1 j' h+ N  `" \
asin(n)  ! O% ^) J% |+ R1 }( T0 o1 U( q1 T2 B
返回n反正弦值  & r8 I: M* P, [5 g: G+ ~
mysql> select asin(0.2);    - P* B$ q  N4 E/ `
  -> 0.201358    6 ?8 i+ S2 S4 W% I) H5 S. P4 [6 W
mysql> select asin('foo');    5 [) D+ d5 f9 l+ A
  -> 0.000000   
9 |5 r" g' e& P5 z* f
7 h; R. u/ ]4 @. m. R, ?1 {2 x$ ]atan(n)  
, T8 C4 b# F# ]/ ~0 r返回n的反正切值  
$ `% o# o  a& c/ g7 w1 y! x0 ]' C. Kmysql> select atan(2);   
6 @1 v& s' _" L; P) j" a& @( [( [  -> 1.107149   
( R) a6 Z5 M9 e2 {  Omysql> select atan(-2);   
  ]! ]1 \3 \" |  V  -> -1.107149   
3 A9 g$ {+ G& @( R7 \2 {3 p, e  ratan2(x,y)   
# c/ N6 ]# |8 G/ m6 u3 D 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  
7 J1 [: ~2 J8 I* s5 |- Y0 fmysql> select atan(-2,2);   
' H& q6 A$ v' n- ]; z  -> -0.785398   
7 K( e2 r, p: R/ B* \/ Nmysql> select atan(pi(),0);    8 V, i0 N" F: z$ Y2 O
  -> 1.570796   
. J( j9 I6 v. S 8 c  g* n' E+ Q( S, o: }* ?
cot(n)  4 H3 w' K1 P' R( N
返回x的余切  
1 E' k7 |$ T$ ~' L9 Z  A- }mysql> select cot(12);   
( }5 a* y5 f( K& C0 s  -> -1.57267341   
2 U3 G6 O) J2 {0 x! {2 Y. K" Jmysql> select cot(0);   
) v# }+ v* h$ w0 D6 D7 |8 Z3 V" z  -> null    0 A0 z/ Y: I2 i1 o4 y

8 J  T$ {. Z" ^  V# ^5 K7 Mrand()  
2 y3 Z" |7 K# B+ I: C" ]rand(n)    
5 m! Q" E* f4 j0 E  ^返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值) 1 ~& v3 D( e" E% \

; E+ g0 s, F/ H" emysql> select rand();   
: S* x% w6 N/ w9 h% B: `1 v  -> 0.5925    ' E" i2 Z# y+ F
mysql> select rand(20);   
. h3 P4 K! L% S6 `  -> 0.1811    - g% F- T! a; d% c& o" f( v# C+ n; T
mysql> select rand(20);    " k! }0 i  {9 |3 }: h
  -> 0.1811   
$ Z* E' b2 o* A. ^, v9 a+ o  J9 Emysql> select rand();    . i1 N# I) U- A" ~+ X6 \- A* ?
  -> 0.2079    2 G4 e$ R. l* [
mysql> select rand();   
8 ]4 A3 W$ H0 Q+ h7 m5 g3 E- s  -> 0.7888    # q+ A3 `$ D; I8 M4 D& I
4 s) s. }# x' d( }
degrees(n)  
/ d1 k- F( J4 n! f" h把n从弧度变换为角度并返回  4 v& g$ Q- x# |5 e/ f- h* Y
mysql> select degrees(pi());   
0 ?# w+ _2 b4 N' H3 ?  -> 180.000000    3 g$ F+ d7 ]/ C

0 s2 F' `/ I" \, n) f4 Oradians(n)
% F0 V' b  H2 u( K3 b/ w- l+ t把n从角度变换为弧度并返回   , G3 q( g7 l( D
mysql> select radians(90);   
7 V( W% U" A" u2 I  -> 1.570796    + g. {/ B* x; ^
, r% m" B1 |5 k  J: Z
truncate(n,d)   
; g" T; P. m8 e保留数字n的d位小数并返回  
) y! n' t1 \( Zmysql> select truncate(1.223,1);    0 q. h0 ^% u! O2 O  X. h
  -> 1.2    4 c- O: J, H# H- o% F7 p
mysql> select truncate(1.999,1);    - h9 O" N, D4 C$ z
  -> 1.9    8 z. M( @# k; l7 L6 r# N( T
mysql> select truncate(1.999,0);    ) g/ ]9 ~) E- H! C* T! h
  -> 1   
/ m) B; ]& _/ q1 ~3 u) M3 ^
* |/ h6 {+ G& W' Zleast(x,y,...)   
7 \: }" Q( g  }' C2 s1 G  n返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  % U; b$ g& I/ g. t: o1 I
mysql> select least(2,0);    6 V$ \  G  b7 W
  -> 0    3 {) K! }5 A# l# g$ R
mysql> select least(34.0,3.0,5.0,767.0);   
2 G& J3 [6 T, ^* a* Q* B  -> 3.0   
/ Y% ]0 X- l# x% x7 W- C0 s  Q$ `mysql> select least("b","a","c");    ' ?, X3 L/ j+ x+ x2 q# ~8 D+ V' L
  -> "a"   
' ~, r9 P- l, o. ~( I
) u3 g9 g' k; Dgreatest(x,y,...)    9 w& r, b* Q7 r
返回最大值(其余同least())  
3 s# R6 K1 Q6 E  S% Vmysql> select greatest(2,0);    ) b% I" G% `# [8 r! [" l# c% ^
  -> 2    + i, w9 d! w6 Z  ~
mysql> select greatest(34.0,3.0,5.0,767.0);   
6 Z, b8 H) y2 J: l  -> 767.0   
  Q* w$ H/ n  I2 h0 s7 Jmysql> select greatest("b","a","c");   
) z0 i4 M& z! x& D  -> "c"     
8 h8 |" ^# m: G5 J9 ?/ f' z; Z
# C) O/ t5 F& c& r( m3、时期时间函数 + B5 ]* R8 @* I, M; r
dayofweek(date)   
7 `" P: g2 k; u$ K返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  ! x- O) m  T$ C, Q# \
mysql> select dayofweek('1998-02-03');    : c. ]' O$ a) \" W: A; V
  -> 3    " m/ B, }& I; m+ L  s

. ~5 a7 E; S/ x1 ]8 d. u% wweekday(date)   
0 [0 B3 G# `. u1 W4 m! G返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
$ ^8 r1 k5 o! m# N, Y! ~  " ^# I9 ]7 P" `3 L# c* x
mysql> select weekday('1997-10-04 22:23:00');   
' e# c4 y7 g% s8 R+ z9 v) Z  -> 5    ; u6 w2 p% ?! I/ R! R. o/ S  R
mysql> select weekday('1997-11-05');   
. ^/ V. T) d8 `: t; o$ H  -> 2   
. m( q* y8 L- ^, B
/ I$ i, e) o! [, Xdayofmonth(date)    
; m5 }  X& W7 t, w返回date是一月中的第几日(在1到31范围内)   
/ Z7 N8 s. u  S: c7 A, C" kmysql> select dayofmonth('1998-02-03');    % z" T4 j1 f$ _7 a; \2 p
  -> 3   
  [2 B* H! S3 k& T 4 c0 |& z, y0 H, \3 @/ i
dayofyear(date)    ' t9 C5 X! k" m( s+ I; s# J
返回date是一年中的第几日(在1到366范围内)   
* D; h0 h& w1 T. ~5 J0 @; Hmysql> select dayofyear('1998-02-03');   
$ U  h$ k- E" C" _' l7 Q/ t  -> 34   
0 E( h5 n8 T2 z6 `3 p " j2 ?0 A2 c) r+ ]9 [
month(date)    / l+ X/ y9 {* H. t) K
返回date中的月份数值    2 X; d4 Y7 W$ A% z
mysql> select month('1998-02-03');    & G% ?+ m: r% n/ W9 s: \
  -> 2    6 j, O( T2 G; h8 I, p4 {, `# y" F
2 {. W0 Y4 \! C4 @7 c
dayname(date)   
" z" I( K1 l( A4 E; y. j$ V% m返回date是星期几(按英文名返回)  & k3 A7 T- V8 H4 x$ P. y3 ?
mysql> select dayname("1998-02-05");   
* R/ Z( _% Z! ~/ g' w( e8 [  -> 'thursday'      k# o- W) V) F7 o5 x+ S" `" D- V2 x
; `* s: p( k7 x$ U4 o0 a
monthname(date)    
; K4 d2 h/ {9 S) Y; ?返回date是几月(按英文名返回)  
/ e, P. M4 _, e- ?9 _mysql> select monthname("1998-02-05");   
* X6 E  \  c- R+ o3 r' ]; ]! T  -> 'february'   
, [  O! G, ?7 a1 `( Y7 Z
5 O5 z2 w$ n  X! G8 k  J; Nquarter(date)   
' M3 s1 H+ S( Q: M返回date是一年的第几个季度    " e/ U% l  }. d/ \' Z
mysql> select quarter('98-04-01');    ! ?5 q8 h6 X2 o1 v7 o- C
  -> 2   
4 s, g% W* J/ n- k0 P; Q3 q; R # M, r$ B  |0 }* T
week(date,first)   5 @7 q5 `" f0 T: E% z' I
返回date是一年的第几周(first默认值0,first取值1表示周一是9 I8 `- j1 u: c5 {' x
周的开始,0从周日开始)  
6 c5 C# B" p9 ]8 W2 P- Wmysql> select week('1998-02-20');    " O$ D. {! r. E: u: E0 j
  -> 7      ?2 V6 P2 c2 s" D( Q. k  k; k
mysql> select week('1998-02-20',0);   
) f+ b5 l3 u5 |6 J) S& v3 g  -> 7   
; k9 S4 p! g2 f1 D1 Smysql> select week('1998-02-20',1);   
+ B% j1 p+ ?+ {  -> 8   
9 ^, R& w2 J/ f( W% G % \  _  @) w& P! d; A7 x+ U
year(date)    9 U. A2 m  M/ r9 Y2 s& C8 y
返回date的年份(范围在1000到9999)   
" v5 E5 q* Z' T. E6 x4 W- G# Tmysql> select year('98-02-03');   
2 \% R" z) [& h- F8 n  -> 1998    , @( e) y' H$ r  c9 M. R$ R
& z. f% w: r  z4 o) T5 k* K
hour(time)    2 B7 D; \$ z. g! Y  q6 u
返回time的小时数(范围是0到23)   7 o! @$ V+ M! ?# N- n$ t
mysql> select hour('10:05:03');    2 ~( c  @0 }$ }
  -> 10    ) O1 I! Y. H: z! I( V0 @* T

0 y0 H# m, A1 jminute(time)    $ z9 y, h! S2 e! k: T
返回time的分钟数(范围是0到59)    6 H4 m7 C' h7 n6 J) G7 W0 ~
mysql> select minute('98-02-03 10:05:03');   
6 b: k) m" F* U. R; y" {6 I" [! @  -> 5   
( H/ {7 V  L. C/ J2 W' w4 w
7 z/ ^* j$ l' `0 T7 @9 Esecond(time)    
: ?% t/ J2 L$ i" a返回time的秒数(范围是0到59)   
0 z9 u+ X! v* S. y) d# Cmysql> select second('10:05:03');    5 a$ }- _" H8 o. O, i2 |, \
  -> 3   
' v& ^+ H% s& |4 @$ [9 J* B # A. j7 G( y" A; v/ Z" O
period_add(p,n)    ' A9 }; O/ K7 r) e4 x. N- u  m
增加n个月到时期p并返回(p的格式yymm或yyyymm)    ! O; F( ]2 [8 {) j. A7 q  Z
mysql> select period_add(9801,2);    3 Z, s/ z. m0 |' H- S+ V
  -> 199803   
$ U; Y0 E- w# u " W: N5 A1 f, F3 D- l/ U
period_diff(p1,p2)    $ X0 C% i: C* S: L; w% t
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  7 u$ x& {. j* l
mysql> select period_diff(9802,199703);    : s) ?) j7 v4 O
  -> 11   
& W  W2 ]+ n& W7 ?, p # Z. A/ i0 w0 d. w9 {/ E
date_add(date,interval expr type)  
' h% c0 o. p1 {6 y9 p" i' ^date_sub(date,interval expr type)   
8 Y! X: ?  f- j. yadddate(date,interval expr type)   
# Y) Q" [# `- z" D" f$ l$ T! }4 Dsubdate(date,interval expr type)  7 Z* }3 T% I* `& C( F
对日期时间进行加减法运算  
3 M! T4 m3 Y$ }2 e(adddate()和subdate()是date_add()和date_sub()的同义词,也. i$ U' i3 a' ~5 V1 @
可以用运算符+和-而不是函数  
1 a% Q$ T. @. I& A" M1 k1 ldate是一个datetime或date值,expr对date进行加减法的一个表
% J& p) c. R) e& G1 m( p达式字符串type指明表达式expr应该如何被解释  " g# W0 k- D, L2 x
 [type值 含义 期望的expr格式]:  , O+ Q) c) K% w4 I
 second 秒 seconds    5 v8 x. {8 F7 F; M0 ]$ K3 H
 minute 分钟 minutes    ( w. c" i  W+ k4 ?+ j& k0 f9 a" f
 hour 时间 hours   
0 Y- D; F9 G; { day 天 days    $ L" F  O; @1 T- a. D) d  C
 month 月 months    & \* `' X- m8 ?& b! H  d
 year 年 years   
+ U, P: j/ n' J( ]* G  u; d% R0 @% t minute_second 分钟和秒 "minutes:seconds"   
  v: t8 V' K' @$ x9 g( s hour_minute 小时和分钟 "hours:minutes"    , K" [6 e6 r/ H0 ], k
 day_hour 天和小时 "days hours"   
+ a7 ]0 H! q: ]) I year_month 年和月 "years-months"    + l5 O9 b: A6 K  i8 ]1 \/ X
 hour_second 小时, 分钟, "hours:minutes:seconds"   
) D" `2 P% T( ]% B6 v7 F7 |  w) A day_minute 天, 小时, 分钟 "days hours:minutes"    6 a6 e4 |" M; t# i: l; l) o
 day_second 天, 小时, 分钟, 秒 "days5 j( b* v$ K# b& t0 K/ S
hours:minutes:seconds"
$ j4 i! Z8 c1 X* }& |% ~# D expr中允许任何标点做分隔符,如果所有是date值时结果是一个  H. j, G* F* H7 d, ?  s) K7 c" \
date值,否则结果是一个datetime值)  2 G% D- }5 ^" z4 U$ @9 P/ G
 如果type关键词不完整,则mysql从右端取值,day_second因为缺
" g5 d7 j! D1 S* W' r( h. t& d少小时分钟等于minute_second)  
. l, p, D5 n! Z5 Q: \, \ 如果增加month、year_month或year,天数大于结果月份的最大天
' }" J1 j& v# B数则使用最大天数)   
+ K  A- M% ~+ ]8 a5 Dmysql> select "1997-12-31 23:59:59" + interval 1 second;  
( M, O4 h2 c) G
0 b/ Z7 H4 _* q) k3 y8 C1 i  -> 1998-01-01 00:00:00    . [, O# ]  u- J7 x- Y. G
mysql> select interval 1 day + "1997-12-31";    & k! D  s- `0 Y; Y3 W% p8 K/ n
  -> 1998-01-01   
0 F9 w0 Q7 y! s2 e* |mysql> select "1998-01-01" - interval 1 second;   
& V1 i; X7 i! _/ E7 U! R  -> 1997-12-31 23:59:59   
) z" {8 X9 r% ~* s7 Xmysql> select date_add("1997-12-31 23:59:59",interval 1
+ B# }  n4 Z: y4 F  ]second);    ! \. o' Q8 r& H+ z+ k
  -> 1998-01-01 00:00:00   
4 l4 o  I) F3 Q! cmysql> select date_add("1997-12-31 23:59:59",interval 1
3 K* {8 p; Z+ @4 |day);   
' Y) i0 ]  `2 k- d% Q5 S/ |  -> 1998-01-01 23:59:59    6 Y' B% S+ T+ w8 H; T5 m- ?
mysql> select date_add("1997-12-31 23:59:59",interval
6 s. z% Q* X. X! t8 H' }( i$ D% H"1:1" minute_second);    " R; V3 V6 i6 V7 f5 g
  -> 1998-01-01 00:01:00      v$ \9 P3 ~7 _/ _8 @; \6 S: Y
mysql> select date_sub("1998-01-01 00:00:00",interval "1
; N) Y. s1 `$ |% F+ x1:1:1" day_second);    ! M8 N/ f1 V/ q
  -> 1997-12-30 22:58:59      ^; Y* B4 o) g) z
mysql> select date_add("1998-01-01 00:00:00", interval "-14 R# y1 S8 e' ^. Q* X# d6 |
10" day_hour);  ; g. J: a- W/ N' k  k
  -> 1997-12-30 14:00:00   
8 [! C! z6 q" c6 Gmysql> select date_sub("1998-01-02", interval 31 day);   
$ B/ p) H) g" o  -> 1997-12-02    * U4 _. h# W% j$ ?$ B
mysql> select extract(year from "1999-07-02");    ! L# Z! X  L! a3 n# U  ?
  -> 1999    0 X/ k+ M# U4 k0 [7 }6 e0 s
mysql> select extract(year_month from "1999-07-02& @& C, [+ w: i" N2 i1 |5 R
01:02:03");    3 @+ L0 N; {* }7 N
  -> 199907    : H9 B/ N  L: d( W$ s
mysql> select extract(day_minute from "1999-07-02! g6 x  |! M4 ^+ Q. {) D
01:02:03");   
5 O& v6 k: i7 ?8 f, c6 L5 V2 ^; m  -> 20102    ; w8 y( T( P; N  \9 W( D0 @: ]) m

0 O6 `/ s$ m- d8 fto_days(date)   
/ O7 Y. m. `# t9 ^1 W+ c返回日期date是西元0年至今多少天(不计算1582年以前)  ' N3 N$ D; f0 g" M3 ~+ @
mysql> select to_days(950501);    5 a( c! L- X" b/ ^
  -> 728779   
- H; p0 Q) V  i- ymysql> select to_days('1997-10-07');   
* M1 T, X+ U% y* c5 X  -> 729669      l2 J7 s( A/ A

5 y2 f1 _! ~1 J: lfrom_days(n)   
6 F3 {# {4 m- y+ u 给出西元0年至今多少天返回date值(不计算1582年以前)   
/ {; ?1 m1 s' A- k3 T4 Q8 ?mysql> select from_days(729669);    % W( [# d3 P5 u3 p5 F
  -> '1997-10-07'      I  p; Q; A) ]; |1 P( V7 E, T
7 ^/ ^$ r$ Q7 r# X( ]6 h
date_format(date,format)    / @6 O+ o( Q# w8 `, q) c+ q
 根据format字符串格式化date值  
3 P" O  j5 l4 H$ m! k (在format字符串中可用标志符:  
# {* Q" j$ j) |7 O8 X" M %m 月名字(january……december)    6 J8 }: n5 x4 M
 %w 星期名字(sunday……saturday)    1 n* {2 l( @2 a% z; Y* }
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    * ]# ?. h  P: v& O4 V
 %y 年, 数字, 4 位   
# |( N/ z3 k3 K9 p %y 年, 数字, 2 位   
" F, G8 {  s% z3 u) x8 e: ^ %a 缩写的星期名字(sun……sat)    9 H: Y" s& q! s6 }" V
 %d 月份中的天数, 数字(00……31)    & I9 o$ E1 ]+ |) J. m% f3 h0 n
 %e 月份中的天数, 数字(0……31)   
6 ?% Z# a7 O$ V) U- z" n4 W$ u7 k %m 月, 数字(01……12)   
5 A3 Z8 h. r+ `! k4 g/ U %c 月, 数字(1……12)    2 o# u/ [# V& n7 z( L  ~
 %b 缩写的月份名字(jan……dec)    . u1 ~! r) P0 D5 z" J
 %j 一年中的天数(001……366)    9 z, |0 Y4 ?8 J$ |$ {5 N$ C- S
 %h 小时(00……23)   
' g+ H9 K- M  ~" j, [$ u %k 小时(0……23)   
( y8 K- ^: y$ d %h 小时(01……12)   
/ Y1 Y  J" s/ Z  v& c %i 小时(01……12)    * q' a, y- n2 d2 X( _
 %l 小时(1……12)    3 B3 W1 m( W9 u
 %i 分钟, 数字(00……59)    & d7 ^. c9 Z8 Y+ r
 %r 时间,12 小时(hh:mm:ss [ap]m)   
) t; O: p) l$ z0 A6 W %t 时间,24 小时(hh:mm:ss)    0 c3 S- c+ h4 y
 %s 秒(00……59)   
+ q& A. T9 P- c) i" G! q7 k3 q( K3 U  Z# ~ %s 秒(00……59)    ! p8 y9 x, u- c. B- w* G* Z- u
 %p am或pm    " F  o& o4 S: g; l" d, s. C* z
 %w 一个星期中的天数(0=sunday ……6=saturday )    5 U( A7 [7 a& Q4 Z5 M2 C
 %u 星期(0……52), 这里星期天是星期的第一天    7 B% X1 h+ g% {+ k- ?
 %u 星期(0……52), 这里星期一是星期的第一天    ; K. p% |# }; g. f
 %% 字符% )  
9 @+ m$ U4 j& d- e$ ~mysql> select date_format('1997-10-04 22:23:00','%w %m %$ e7 F- f: \1 g3 x
y');    2 j- ?" M$ A1 L: G7 A0 q
  -> 'saturday october 1997'   
3 s0 ]+ m9 s* q) M: n+ xmysql> select date_format('1997-10-04 22:23:00','%h:%i:%6 ]" H6 S- k; ?3 p" S$ b
s');    ) d1 s% _, X9 {
  -> '22:23:00'   
' v. Y  d* ~. o* O- Ymysql> select date_format('1997-10-04 22:23:00','%d %y %a
3 {9 p$ w2 O: L$ m  V%d %m %b %j');    . h' l- M  m( w# r6 W
  -> '4th 97 sat 04 10 oct 277'   
; i8 E/ p& ]' _9 Jmysql> select date_format('1997-10-04 22:23:00','%h %k %i
" _* E$ r2 s# z%r %t %s %w');   
5 W% E$ u9 [% W7 {# L' `  -> '22 22 10 10:23:00 pm 22:23:00 00 6'   
/ L5 K$ ?, e% p' J. j( v , q* L' p: `& U) \2 \; S% C
time_format(time,format)  2 z$ J, s3 p9 N! F( y% m' ^$ Q
 和date_format()类似,但time_format只处理小时、分钟和秒(其
) k# P8 Z, W: c3 a  H余符号产生一个null值或0)  " w- v' J! g8 w2 Q  h) M
. _' y4 s+ f. Q+ V3 k
curdate()     : @8 l3 r- P+ ], j
current_date()  1 g8 w! o8 O! F* e9 T
 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
0 g# W% e' I. c* t处上下文是字符串或数字)    7 C6 X& l4 y; g7 U/ A4 b- R
mysql> select curdate();    8 ]/ g$ b% P% o+ F
  -> '1997-12-15'    # g+ H! s- K' E
mysql> select curdate() + 0;   
9 D2 r3 t! z3 N6 Z- \/ V& u4 h: Y+ L3 R  -> 19971215    * ~7 w" e- p7 Q

0 O, W! Q% ?2 r! [curtime()   
9 K# o' i& `6 W( Z" Ocurrent_time()  : ^- Z2 q6 c5 N0 `# A
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
! ^) n8 `6 y" \/ @下文是字符串或数字)      
" }7 ~1 M& L- `- `mysql> select curtime();   
: F) x( ~; V3 C8 i, v  -> '23:50:26'      ~0 r- x6 n& ^) f
mysql> select curtime() + 0;   
4 _- w% x3 e  ^' W$ E  -> 235026   
" x+ Y& ^' B. c$ }6 k9 I " F& g9 K9 m3 H! w! q
now()    - n9 f+ g) F. {
sysdate()    7 O/ u" s# `# g; t3 Q5 p- f) w" B
current_timestamp()  
8 y3 {$ p5 B/ K4 l 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期( F9 S) b: x- w+ U! X* o+ U
时间(根据返回值所处上下文是字符串或数字)     6 [1 V* u1 l; m+ @4 |: S* T( x
mysql> select now();   
- v+ M- ?6 m& b9 T  -> '1997-12-15 23:50:26'      _4 Z0 Z; p- D
mysql> select now() + 0;   
" Y) t: H. F% O+ }! O4 L  -> 19971215235026    / C6 \# _; s( h
# z! J  {. t0 v) u7 F6 K2 |# Y4 d
unix_timestamp()    ) K+ T  A" C4 |, Z6 M* \  L
unix_timestamp(date)    - i  A( M3 M* l: T
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
0 j5 Q8 _! _6 L" |0 h3 f. X! \3 {数,date默认值为当前时间)  
) W$ L! a( `! B- B- {% fmysql> select unix_timestamp();    / K6 Q- ^( o5 i3 T# E6 R
  -> 882226357    * r3 ?: }0 y+ a
mysql> select unix_timestamp('1997-10-04 22:23:00');    ; P/ ?3 s0 b  M3 s- c
  -> 875996580   
7 y/ |& ^8 ?% e* F# }
9 W1 V! E$ \* I/ Y$ o/ Q' b% n1 rfrom_unixtime(unix_timestamp)    % s& n+ P, M) f5 X% Q) l7 A
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的
7 E7 ?- ]( k3 W5 Z值(根据返回值所处上下文是字符串或数字)     
/ ]3 g( ^% ?* b! z$ Y# J6 y( ^mysql> select from_unixtime(875996580);    $ ]# B% P8 X/ s
  -> '1997-10-04 22:23:00'   
4 e5 x3 r! f' b1 x- z4 ymysql> select from_unixtime(875996580) + 0;   
" @7 ]. L1 t% X1 m  -> 19971004222300   
# W. T* v' N4 L/ N: {0 W! X% V . \/ k" W- Z& r" ^: t
from_unixtime(unix_timestamp,format)    4 u$ d# W) p7 w. q
以format字符串格式返回时间戳的值  
! K  @- p( F. Y- n3 u6 s/ dmysql> select from_unixtime(unix_timestamp(),'%y %d %m %) t4 E. w3 s9 K$ ]. C3 H; w
h:%i:%s %x');   
' x7 ]8 [; g0 g2 _8 `  -> '1997 23rd december 03:43:30 x'      ~8 i' l+ b: Y6 U3 M- S- c

5 a* p& E, h4 v6 lsec_to_time(seconds)   
9 o; Y2 c3 p. M1 x6 j以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
! A  A+ y/ R7 F3 N, g% _mysql> select sec_to_time(2378);   
* d/ k& j2 n: t1 b  -> '00:39:38'   
. ?# C5 F3 N2 t( C7 x+ imysql> select sec_to_time(2378) + 0;    1 V1 x% d1 F3 X& o% l
  -> 3938   
" b+ _6 E/ R  O! T/ E6 h& W
, Y  [+ S0 Q4 |* \' k" b" Ctime_to_sec(time)    % Q4 ~0 K# C$ R+ N8 @+ T
返回time值有多少秒   
' [' V( E9 `5 [5 {* amysql> select time_to_sec('22:23:00');   
7 J# ~0 U3 G2 _& h1 [  -> 80580   
/ }/ ?, N4 x! [+ T9 ~, E# xmysql> select time_to_sec('00:39:38');   
( k& c0 E  X) c) a  -> 2378 / r: w) U" H7 v# M2 f& D" J+ k" n5 i

$ x; e8 o- i1 T9 l" }7 b转换函数
( [! {! l8 k8 S0 S- Z' Tcast
4 K5 X" U6 Q# W" N$ S$ e' `用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]
* u7 ^/ r& G8 |* N3 u0 s实例:select cast(a as unsigned) as b from cardserver where order by b desc;& j; K' }/ A, ~
convert:( D; D6 m4 F! a8 G+ n* Y2 j- |
用法:convert(字段,数据类型)0 i# l1 f, I9 _
实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

3 v4 l" p3 U3 X# I9 ^$ E: _
回复

使用道具 举报

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

本版积分规则

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