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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数4 b# ?" g7 J  E" ^( [+ L9 B9 R" Z. V
ascii(str)   0 y" P7 J; U! X$ q9 [: k
返回字符串str的第一个字符的ascii值(str是空串时返回0)  
0 ~/ ?$ Z4 }' p4 T+ Fmysql> select ascii('2');  3 A  p: t* A8 r" N6 t
  -> 50  , X. K5 s+ i" V1 Q( Q9 n
mysql> select ascii(2);  # J: [2 S6 A& t* i' [8 n
  -> 50  
) T( e0 C  h# n% _0 q; qmysql> select ascii('dete');  ' A$ B/ ]- k1 C
  -> 100
; Z7 X% y% y- e
ord(str)   # r1 T. g* p. ?* ]7 }1 ?3 p
如果字符串str句首是单字节返回与ascii()函数返回的相同值。+ f2 S- @6 n4 Z) W/ h) N  X- _; F" d

9 v# D1 I  g* T6 w如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  
( i, ?% P' Y( b: t( Lmysql> select ord('2');  / ^6 \: Q) z  [6 U
  -> 50  ( \- Y$ u1 C& S/ h4 e( N" s+ w
   6 N' p7 h: _2 B8 y( G9 i
conv(n,from_base,to_base)   ! D, C$ j, B4 j5 R0 X9 m
对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
9 y3 [% ]6 l: O4 g4 L. E6 \2 z# G4 Lmysql> select conv("a",16,2);  
" a# |. j0 l' e  -> '1010' * X3 d, r4 `. Q: _: c+ R. k
mysql> select conv("6e",18,8);  * P7 k* P5 J; @' x. J5 e% j, q6 u
  -> '172'
6 L8 _( @3 X0 E9 {7 P7 Amysql> select conv(-17,10,-18);  ( b' Q( p+ {- V
  -> '-h'
; s% U( g# n; v% k# {# D/ w6 Xmysql> select conv(10+"10"+'10'+0xa,10,10);  
& T3 v$ x. C4 H0 m& u0 P  -> '40'
' k" ?* `% t5 q- U- b   3 M$ K/ y, O' G: a- w& u) g
bin(n)   3 r: f& N- j+ P8 S
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
1 B0 d# p& u/ ^% j1 smysql> select bin(12);  - X& E2 o& C8 }2 D$ v1 I. a, k/ m4 I
  -> '1100' 1 X* E: D4 {! T& c) S: ~4 x

) }, {( c/ Z1 p; B0 H' i  goct(n)   
4 W* w( Z& J6 j7 `把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
+ T4 X: H6 K# v% Fmysql> select oct(12);  ; a! ?2 g- H7 X
  -> '14'
) k/ U6 h9 ~' |6 _   0 I6 u( ~2 h) A
hex(n)   
) P/ m) O% y2 Y% w' z把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  
# e- F6 A2 z$ p* t- |mysql> select hex(255);  + F5 M) f2 Y: ~+ ?
  -> 'ff' " m" G9 V, q4 J9 B; f5 g. R
   
" O5 ^) j: p# Q( s9 g: \2 ?& [char(n,...)   
8 N5 e& e& g! q5 W$ y: C9 [% b7 ]5 X返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   6 P7 U9 b3 A! V; }0 e* \
mysql> select char(77,121,83,81,'76');  7 V8 I% Q# c+ W6 u. ]# `/ {. F" s
  -> 'mysql'
3 h( M, N' [6 d. tmysql> select char(77,77.3,'77.3');  $ F2 G& F; X+ S: _6 ]
  -> 'mmm' ( n& |4 o) C: h/ D$ c+ c$ _7 |
   4 l# J4 H' u  }1 K$ p' S2 N
concat(str1,str2,...)   9 Q4 H) ^, m5 \
把参数连成一个长字符串并返回(任何参数是null时返回null)  
' k2 R9 W0 _$ j" smysql> select concat('my', 's', 'ql');  
2 p5 a5 s5 ^8 s( i  -> 'mysql' 6 t7 r9 P1 s0 l7 \; J/ Z% D
mysql> select concat('my', null, 'ql');  
2 I6 @, D& x- o. N: U' B- c& w  -> null ( }5 s+ H+ F+ T
mysql> select concat(14.3);  8 O5 L8 r! g+ w1 D4 h
  -> '14.3'   b. X) d. d: o, W

6 {# E! Z- I* }5 ?% ~1 `' Q* Glength(str)   
, X& \; K9 F; ^octet_length(str)  0 r+ x; l0 y6 e
char_length(str)  
* a4 m) A9 I$ |character_length(str)  
4 q4 V% F8 e, R4 X* t返回字符串str的长度(对于多字节字符char_length仅计算一次)3 E& f( A0 O" Y2 {8 [
mysql> select length('text');  
' s! S0 k2 D$ v- b" \  -> 4  3 M$ U8 T! B4 [! e' D& g
mysql> select octet_length('text');  
9 X: L) V2 _) u# q$ p6 _9 V- @  -> 4  
5 u% X- s/ k6 u) }  H2 Y' {2 X & ~$ T# t, `: i
locate(substr,str)   1 a. Q$ C' Z4 D. t" Q) O
position(substr in str)   
/ x8 y* A! z- g( X/ c7 I' B0 k返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  ( K- U% e9 m- G% O* @
mysql> select locate('bar', 'foobarbar');  : t$ G1 k1 o" i' m6 L- m! W
  -> 4  * n% I7 I- h  k# P$ i" F
mysql> select locate('xbar', 'foobar');  
, i- U7 f7 p4 D  -> 0  
- t0 a; t8 C. M0 C7 R* {   
8 E( C6 d; c6 x1 V8 @locate(substr,str,pos)
5 k; N2 m1 C1 I2 [4 P返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
4 \; P2 x/ V4 x, l  N& p0 mmysql> select locate('bar', 'foobarbar',5);  5 m" R0 d& d' b! K- _; [8 w
  -> 7  
1 e8 k# j) e* `2 Z# e/ |! @7 I: r 3 L- X5 m  O9 f; I" C# P
instr(str,substr)  
8 \& j9 {2 a% w4 {# C7 }返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
1 O# u) v' ?" Z& X! p! Z) e& H7 w$ @mysql> select instr('foobarbar', 'bar');  
+ T# }1 r! l1 \8 f2 q  -> 4  
0 |/ V/ P4 s) p, \8 mmysql> select instr('xbar', 'foobar');  6 t. N' M/ t" L
  -> 0   
) l  p- ?& B4 }& i
. t- I% ^% w3 l! ~lpad(str,len,padstr)   
/ S& g3 D* c& F/ r9 z" y! Q. B! g6 ]* w用字符串padstr填补str左端直到字串长度为len并返回  
4 w' |2 ^8 Y& P2 bmysql> select lpad('hi',4,'??');  
5 d9 a$ U8 {% N2 G; D  -> '??hi' 7 g* a& @) R- P9 l2 O) t) E4 c
   
3 r& I0 t6 ?9 h& G! X0 d% mrpad(str,len,padstr)   ) [& d# B  \  x$ e5 f0 @
用字符串padstr填补str右端直到字串长度为len并返回  
% H) Y# ~" @& v, G3 @7 dmysql> select rpad('hi',5,'?');  
* c& t+ G; y- ~' O2 p# J  -> 'hi???' 3 L: S# l% a& ^0 J6 R; u' g0 \

7 v$ E. D% T9 v5 Hleft(str,len)   + i2 q( p; `5 C8 \
返回字符串str的左端len个字符  
* @5 q* B. V2 e; qmysql> select left('foobarbar', 5);  
& ?/ Q0 u) g9 Q  -> 'fooba' # ?6 r; L+ K3 L, `2 T8 [
2 v$ |+ l# ]! z
right(str,len)   $ a  G- C% _. K7 F: P" a1 V
返回字符串str的右端len个字符   
+ c& ]# H* }) X9 @6 @& D6 fmysql> select right('foobarbar', 4);  
' w$ e- O4 j* _* @) w4 V  -> 'rbar' 6 J+ Y2 J' ^9 ^7 ^$ k' W
; z2 D; \# {: B' T# w8 ^% ]
substring(str,pos,len)   
8 A: s& q5 a4 Q% b4 M8 ~substring(str from pos for len)   
( w7 r! G3 c, L  ^+ R3 kmid(str,pos,len)   + [# ?9 e( ~$ g3 G% h
返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  # W2 ]! x9 Z) e
  -> 'ratica' ) d; c6 e" a! q6 x) [
) Y! V% c  c" X3 m/ ?
substring(str,pos)   
0 T6 X3 `5 M( L; R) k$ usubstring(str from pos)   
4 c0 P8 o1 c6 \' [* t, e返回字符串str的位置pos起的一个子串  
9 x7 p4 x  {$ J- H+ {. f- Omysql> select substring('quadratically',5);  
. w& t' s# M# y  -> 'ratically' * H  [9 X$ e* {: H
mysql> select substring('foobarbar' from 4);  
8 v' E$ x0 c3 `; Q  -> 'barbar' 1 ]- Q; j2 T& I3 Y
' l' l3 C/ w7 [- |+ W% E+ [  c
substring_index(str,delim,count)   5 ?/ ^6 w0 `' U( e% R& g/ s% n
返回从字符串str的第count个出现的分隔符delim之后的子串& [) _" l6 I7 Q9 e
(count为正数时返回左端,否则返回右端子串)  
+ o' f. Z  r) h+ `9 Fmysql> select substring_index('www.mysql.com', '.', 2);  , p$ E2 _, Y, o3 b" F+ }* o
  -> 'www.mysql' ( S; c, G4 e: U: R2 N
mysql> select substring_index('www.mysql.com', '.', -2);  + E* r# L$ f! x/ V+ ?2 l: o4 h
  -> 'mysql.com'
, R1 w6 ^/ x8 Z3 `. ?$ D 9 ?; v5 k- }. ]" o
ltrim(str)   
* y5 ^, z0 H9 J. ]返回删除了左空格的字符串str  , ~9 S: Q. ~& V& B
mysql> select ltrim('  barbar');  7 J: }2 `  m" W  u3 i
  -> 'barbar' * G* y# f3 S- L/ G
* n& \, B" l5 X) a3 w* ~3 M; m* c
rtrim(str)   ; f+ K1 I/ A' K1 ]) J& ^4 e
返回删除了右空格的字符串str  
  \. J& h" M1 t' t% t0 h, H4 M, rmysql> select rtrim('barbar   ');  2 M* W7 F6 c/ j" `, d
  -> 'barbar' 5 |5 _* v3 `! A0 @8 S+ _  l
) y$ n( `; A  |: @
trim([[both | leading | trailing] [remstr] from] str)  
8 J, k" v- a6 o9 B4 b; z1 a" @返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
0 R1 t' e3 D1 Lmysql> select trim('  bar   ');  . I" R5 U; r4 p- D% a" ?3 p
  -> 'bar' " j+ ?1 T" c* I, d/ |6 Q/ c
mysql> select trim(leading 'x' from 'xxxbarxxx');  
' |; }/ d9 o1 q( f) ?4 r  -> 'barxxx'
, {) f3 k- i# r6 n" gmysql> select trim(both 'x' from 'xxxbarxxx');  % N2 ~- j5 C$ {! p9 Q, b4 |
  -> 'bar'
9 M! g& A' ^! j" ]mysql> select trim(trailing 'xyz' from 'barxxyz');  + s- t9 J0 X0 \) K5 Y+ u
  -> 'barx'
; u& W6 m& x/ O* d
5 E) r3 J. M/ g6 ~" C/ bsoundex(str)   
- t7 ^, S4 f* [+ {, n6 {# q返回str的一个同音字符串(听起来“大致相同”字符串有相同的
; o! c: R- n3 f: X, ^- G同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  0 ~/ {0 R- D) R9 A3 R* m* c6 b
mysql> select soundex('hello');  
* ^. g0 t) P6 G/ l  T# `  -> 'h400'
. V* w) w# e6 Q% }+ Rmysql> select soundex('quadratically');  
8 O9 p' f2 g  o  -> 'q36324'
0 ]2 g5 y$ }' H   
$ J, J! Q# U$ m9 H# `' }space(n)     U+ y$ L' L; _4 B3 g
返回由n个空格字符组成的一个字符串  
' m2 Y' s1 I1 b! w$ Gmysql> select space(6);  
' f1 u+ g4 j3 v8 `: `* F5 a! R  -> '      ' 1 L8 x, b5 t. d1 r" P. I! B
   + r; G  b1 j* l5 T( B: {  v
replace(str,from_str,to_str)   
$ R* B! t6 ^' ]6 D  g2 y用字符串to_str替换字符串str中的子串from_str并返回  ; F* v) U0 k7 P( k
mysql> select replace('www.mysql.com', 'w', 'ww');  6 U; g) ^% h$ f, w. |
  -> 'wwwwww.mysql.com'
9 v) Q# Z7 ], |2 d- W $ \" h! F; x1 r+ T8 z0 z9 ?4 @
repeat(str,count)   5 P% \  F7 W6 [7 O" B  f  ^
返回由count个字符串str连成的一个字符串(任何参数为null时. N  o1 [; N. _9 A* e
返回null,count<=0时返回一个空字符串)  
2 d; E0 Q- u0 S# U. Y7 Z, amysql> select repeat('mysql', 3);  4 z2 b" A/ Y2 T
  -> 'mysqlmysqlmysql'
! f' P8 E% O/ S; L   
* w8 F/ @+ ~' P: ~0 x7 breverse(str)   ! V) q7 t4 A2 K4 h& G) S
颠倒字符串str的字符顺序并返回  ' n- L# t$ l0 L9 {
mysql> select reverse('abc');  
+ _1 z" o+ G: U8 M+ k0 ?  -> 'cba' 9 M. k6 ]: w$ G2 i0 A# {" D/ @
" x* d9 O. L2 ~7 ^. q# [
insert(str,pos,len,newstr)   , f' X1 D7 P1 `1 s' I: \
把字符串str由位置pos起len个字符长的子串替换为字符串
  Q$ E" }0 b* E1 ?+ ynewstr并返回  
3 L/ [& I' [# g  n( F3 }! i1 vmysql> select insert('quadratic', 3, 4, 'what');  
4 Y7 z' n6 q# m$ I# c  -> 'quwhattic' 2 A' O" i( f7 P, d2 y& j9 X6 e

: b" X' L. O& h  [, Eelt(n,str1,str2,str3,...)   
5 g3 m8 G( u+ U7 N# W0 |; |6 F+ \返回第n个字符串(n小于1或大于参数个数返回null)  
. \" v% N. \( p- ]. {mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  4 t, J8 U4 L: t+ }' [) x* h- t
  -> 'ej'
# Z0 F8 ~* ^6 I4 f, C+ Nmysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  : i0 E5 t$ T- P5 V$ U1 e
  -> 'foo' 0 C' c$ j" J2 Y. u$ U

' M. B  m! o  o6 `/ j7 q0 ^field(str,str1,str2,str3,...)  
$ R2 d# G+ `. y$ r$ Y4 \! C返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
6 s% Y( T. X5 k5 b: t# b% tmysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
$ u" C, G1 K, o'foo');  : t6 j6 p1 O1 W; e- v  t7 U
  -> 2  
4 M# h1 y2 T9 O; [; c- l, V4 ?3 wmysql> select field('fo', 'hej', 'ej', 'heja', 'hej',( t, [; z( m) c/ @, ^% g0 }* P
'foo');  ; C# f: h' b, G. g- D: ?, }; R
  -> 0  
3 q* ^; t0 L) z) y4 q ) p" _' x+ ~! ^) C: X- s
find_in_set(str,strlist)   
' f& ~+ g/ G5 a  r返回str在字符串集strlist中的序号(任何参数是null则返回% D, J+ i- Q2 g* L( V+ S1 v+ h
null,如果str没找到返回0,参数1包含","时工作异常)  
1 p  l7 d7 r+ k+ g2 ^. Y' Fmysql> select find_in_set('b','a,b,c,d');  . c9 y0 n2 B4 e) b3 g# _; _6 |5 J
  -> 2  
- Y& p) E7 `: \# o& n6 {1 |* n   2 F% W# L3 v+ V% Z1 u
make_set(bits,str1,str2,...)  
% N0 A, K0 B0 N* N* \1 a9 z1 }把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
; b2 V3 |  Z& F. Y8 c位置的字串选入字串集并返回(null串不添加到结果中)  + r; C8 Z+ Y: E: H$ B3 O
mysql> select make_set(1,'a','b','c');  6 u5 C6 X. ]) K7 {
  -> 'a'
/ ?8 b( \9 D' t' {! Z1 Zmysql> select make_set(1 | 4,'hello','nice','world');  
0 Y& N) U2 ], b9 n" J: k8 J* Z. |  -> 'hello,world' 8 A* I* m( c) L) `; V3 q
mysql> select make_set(0,'a','b','c');  
% ~. V0 D( k' `0 z, ?0 V  S  -> ''
: i5 m% R; A; ?7 S& B
0 f2 L2 h% N6 Iexport_set(bits,on,off,[separator,[number_of_bits]])   # |0 G( z! c, G# d, D
按bits排列字符串集,只有当位等于1时插入字串on,否则插入
5 m( w# V. x6 \' [off(separator默认值",",number_of_bits参数使用时长度不足补0; A4 D+ H" O0 |6 z1 b3 f# r6 @
而过长截断)   
, Y( z8 U" ?% Omysql> select export_set(5,'y','n',',',4)  
8 a$ H0 @% R: z  -> y,n,y,n   $ f) q& h3 ]; F5 @4 P9 a
9 M' w/ G: k+ H) P6 q8 B/ t
lcase(str)  + \1 z" u2 H! D) _9 |6 p8 {
lower(str)   
* q: \7 ~. G/ z  o返回小写的字符串str  . O' T1 e- c- Y; ?6 k7 `0 x
mysql> select lcase('quadratically');  9 S% v  x+ h$ p# \& }7 M) ~; T
  -> 'quadratically' 1 t0 _. v% |- H: Q# U4 b; E) Z0 J' D
   
8 D& a$ [4 }# I& \$ fucase(str)   
' l2 F3 a  d. n! cupper(str)  
) b( d- `5 p5 S! I# i" H返回大写的字符串str  5 w' _0 }1 \" F0 R2 U0 l, x0 _
mysql> select ucase('quadratically');  
- A$ P/ @+ W) p$ ]. k  -> 'quadratically' 0 s4 c9 c4 [: P. s

! b/ W& [4 u7 [. xload_file(file_name)   - X! ^) c9 u# c
读入文件并且作为一个字符串返回文件内容(文件无法找到,路径
3 o: H# K; g2 e% j" i" a4 N不完整,没有权限,长度大于max_allowed_packet会返回null)  # I6 v5 K: d, _% ]
mysql> update table_name set blob_column=load_file0 j/ f. w3 W4 r$ w6 i
("/tmp/picture") where id=1;  ' C) I+ I0 h' E, b. H! W8 k
! D6 u* f" n: h. {. y
2、数学函数
* [2 C( k; ~7 M( _abs(n) # ~' F* A6 ?7 v7 s; ]
返回n的绝对值  ( V% c* w, r" ?; s. M# a
mysql> select abs(2);    , x5 m* D5 P8 C- k
  -> 2    ' J7 [* ~% i  u/ x4 f& `" b+ }2 }
mysql> select abs(-32);      a7 P, ~) s$ L$ L
  -> 32   
) a* B$ W. [6 {, D1 s   . t) @' L2 m' n3 [& G
sign(n)  ( e; m/ Q( `( H' I* Q$ e& R
返回参数的符号(为-1、0或1)  
: i/ e  D& _4 n6 x/ d  x1 bmysql> select sign(-32);   
+ i* G) @- Y+ e9 [" s  -> -1    $ z) w2 o  D- \3 n$ N* ~
mysql> select sign(0);   
: y( ~8 q  |, v2 l  -> 0    4 E4 p# ]" H) N
mysql> select sign(234);   
5 c1 S& Q& I* g  q) R  -> 1   
2 t) w& v6 k* ]. f% n4 H- I 0 S# V6 I' m! K. c9 H
mod(n,m)    . y6 b- h0 u) c* M/ y$ A* N# m
取模运算,返回n被m除的余数(同%操作符)    - n2 H- p& x. k$ W3 U: H: Z
mysql> select mod(234, 10);   
" }. m# _- J3 A! s  -> 4   
# w6 L3 s1 i% s  ~mysql> select 234 % 10;   
% R2 u2 Q+ A. V+ d4 p8 n0 \. n* b  -> 4   
. R# g  p8 M) Y& [3 {- C0 ymysql> select mod(29,9);    - H0 f, q& u; c$ R1 P
  -> 2   
  z) j' t+ R4 R# E, Q+ ]8 Y  I ) X% ^; x0 Y4 l
floor(n)  ( ?" Y+ k' ?# d' T6 G
返回不大于n的最大整数值  
2 ^% ^/ _! U" g9 _2 D6 K: U! cmysql> select floor(1.23);    9 x5 c) H9 \1 D& d) M
  -> 1    7 x; P' A4 J: j6 i
mysql> select floor(-1.23);   
9 z# k( Q0 G, a: q, c# s% h  -> -2    8 l( O: b6 D1 e+ f
4 U' S1 _4 H. C, o5 [) U4 ~
ceiling(n)  
8 ~  J; h0 T9 K返回不小于n的最小整数值  3 [( |- z  ^4 D2 j+ Z" ^9 A$ x
mysql> select ceiling(1.23);    6 f2 S- Q9 T% L/ G
  -> 2    ! n* S8 C# z0 Z' z
mysql> select ceiling(-1.23);    ! K& C: {" i+ F' J; P* Z
  -> -1    5 U8 n1 C9 W" L9 _$ H8 M5 O1 p

/ k% R4 ?; o5 l0 sround(n,d)  4 u3 T! h) x; I$ E- e
返回n的四舍五入值,保留d位小数(d的默认值为0)  + g) z( U& Y! k
mysql> select round(-1.23);    , O1 u9 k" Y, l7 b6 c9 v
  -> -1   
1 j' T6 M. h6 s9 C; Pmysql> select round(-1.58);   
! W( e- t" k+ _; B  -> -2   
( q) \) k1 y7 l5 u: Y4 gmysql> select round(1.58);   
) Q% t) h% Q! ]/ t% z3 r  -> 2   
8 ^, e# o  j& i. x6 _6 n2 {mysql> select round(1.298, 1);    ; g( t% H/ u$ E/ }+ I7 ?' I
  -> 1.3    4 {7 R' a- G9 p+ Y4 X, O
mysql> select round(1.298, 0);   
2 b3 ]8 \( F, H( P  -> 1   
- h& ]7 ]5 t$ {, P9 A 7 L! [; Q. F0 ~0 F% Z
exp(n)  ' X3 k3 G/ w  i. a1 L1 Q8 M! A
返回值e的n次方(自然对数的底)  & n- H- c$ {$ ?, I' I
mysql> select exp(2);    3 H' M; G: Y/ ], C2 Z2 K" d4 T
  -> 7.389056   
- ]6 C) Q% I% hmysql> select exp(-2);   
" ~; l+ N3 C4 z- u4 F( [  -> 0.135335    6 Y2 X! V' |, r3 J9 L( D) {
- R  d1 s, M1 ~7 Q0 z, O9 G
log(n)  
) D2 Z; i1 V1 o' l6 P# ]( H返回n的自然对数  
9 N5 v$ ?! j) ~# Rmysql> select log(2);   
5 [2 E& v5 W0 B. X  -> 0.693147   
: B, t' T' t: r, @' R9 k$ l# fmysql> select log(-2);    3 j5 G2 z$ O- p) j- o
  -> null   
1 z6 v6 P' i' K- A
! J7 L# o; W# L" F0 blog10(n)  
. x4 z0 Z7 \6 s7 N' t8 B, ]返回n以10为底的对数  8 [2 Y* p  E& D8 m4 I
mysql> select log10(2);    , N2 P- Z0 l- V7 ~3 E. @, j
  -> 0.301030    * x, j* I7 i, X7 u
mysql> select log10(100);    2 N% ^+ ]: W+ E0 r
  -> 2.000000    3 X+ _. q8 r3 Y! B* t# z; }
mysql> select log10(-100);   
- H& j, y$ P0 A! h0 I; p6 w  -> null    8 e) S3 u- e' ]) P
9 q9 E2 S7 T& G: p7 |
pow(x,y)   
3 O. Z+ ~9 q$ O, j# Rpower(x,y)   
3 p7 ~9 v& F7 Y0 w9 h. @9 Z8 A& A 返回值x的y次幂    M0 N" z& u$ \8 k5 z3 D/ ^' g
mysql> select pow(2,2);    ) N% k" ^1 F/ i: i) q
  -> 4.000000    0 m* e3 p9 }" M; l* f: p: j
mysql> select pow(2,-2);   
% @! N$ k% Q3 X8 [  -> 0.250000  9 d1 N: k- v4 v2 W2 Y" T# \: ?3 S

# e7 `( m& f/ h: ^* G4 o4 h0 H: \sqrt(n)  
" A; Y8 P9 T8 O* ]0 ?+ V& U 返回非负数n的平方根  " n- ^) t5 r) P  W
mysql> select sqrt(4);    / J( y  Z) ~5 n& `" \8 y2 X- [
  -> 2.000000    ! ^; n$ p  T3 h3 R
mysql> select sqrt(20);   
3 f: @/ U9 P/ m$ u' Q! Z2 k  -> 4.472136    , i5 u+ f- [  c4 Q! F
, E* K6 c9 L# ]: [' C( R
pi()    . F. F, b6 V5 ]( u& g
 返回圆周率   + @3 l5 X+ q/ j1 n7 U: k' G/ B9 [
mysql> select pi();    7 p' L( k' w4 t8 q
  -> 3.141593    - ?: m8 Y( e: t1 I

/ ~. w; S! `4 a" t+ lcos(n)  4 d) x7 n/ y+ [4 b
 返回n的余弦值  
/ h# U" [2 s3 }, L  t$ nmysql> select cos(pi());  
8 A, x. s; O3 i  -> -1.000000    7 }' Y4 k  l- `6 `* m1 T
8 l- J6 J& f' q; k5 k1 G
sin(n)  
" b3 D3 h5 J& g7 H5 h# ]0 V 返回n的正弦值   
. Q# p& e' Q/ _2 r9 I6 K3 Pmysql> select sin(pi());   
1 ?- V" F2 T8 J* \. x  -> 0.000000    2 w8 M$ t5 L0 t/ Q: V- G, _/ q

( q+ h3 r- O. {tan(n)  
; H6 C, A3 l$ F4 X2 R返回n的正切值  3 S- F+ k: p* j" D2 b' J
mysql> select tan(pi()+1);    3 i2 M9 x2 D& E) U8 S4 U/ {' ~. U
  -> 1.557408    5 g5 L8 @6 j+ D, M0 Y0 _! m' O

3 L  \' k5 D- a2 Uacos(n)  ) B$ n; L. m5 {0 r: |+ h, a
 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  
: K1 A# ^: g* a: Omysql> select acos(1);   
* p1 X9 ~+ l0 k8 v8 S  -> 0.000000   
6 E! `! J* t7 C6 X; [8 bmysql> select acos(1.0001);    ) E& I9 ]4 d  o
  -> null    0 q% i' E( e' n, v. a* {5 V
mysql> select acos(0);   
1 F+ W/ O/ d+ ?+ ?+ F  -> 1.570796   
9 @; G9 Q) [9 [+ e& ~
7 @" E' n! _. d& e9 i$ y2 basin(n)  1 O4 F7 ^9 n$ M7 R" C3 L' R- J9 ?+ o
返回n反正弦值  * D, F: j. y% A+ K2 ~& l$ G5 L( O2 x
mysql> select asin(0.2);   
- r3 w, u* o+ j! e  -> 0.201358    ( L5 h' F! L8 q  g# f& F
mysql> select asin('foo');    - `* R8 i6 L/ i, _9 m" X
  -> 0.000000    % i6 i# _* _' J9 a+ ]- m

* Y1 G0 s4 {, N" x1 y9 uatan(n)  . A/ u$ [, ~. ]8 R' e- [/ b! ~
返回n的反正切值  
8 y2 @( o0 P( o* @mysql> select atan(2);    4 |$ v# a% j* e$ {$ e* \( \$ {
  -> 1.107149    $ \, I; `' w  J) n- h
mysql> select atan(-2);   
+ y, v+ n4 i. L+ O  -> -1.107149    + g9 |4 ~5 n% X7 {1 Z
atan2(x,y)    # _  l  l0 B5 m, p" v5 }
 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  
  p" b! l- f" D$ p* zmysql> select atan(-2,2);   
2 {0 l2 P" H. c& V! {8 T  Y; c' s" o6 e  -> -0.785398    7 R+ m0 P. F8 B9 w6 C4 Q
mysql> select atan(pi(),0);   
/ B2 S, l  A9 c5 D# ~  -> 1.570796   
, f6 [- ?' t! _6 O: U* ?2 R
# q) e4 X5 u9 }cot(n)    A8 G( T7 g; W3 j; @* c: H5 R
返回x的余切  1 O- e! s. D- c7 Y5 s0 @
mysql> select cot(12);   
; K6 l" s5 E1 _! W  -> -1.57267341   
9 Q/ W6 G1 X, Y* v' U) zmysql> select cot(0);   
. K  x, s& a8 _+ p; a  -> null    / f# {' c: M! k4 X" b" P# K

0 V+ m6 f$ \1 w$ h% W- krand()  2 [! J5 F& c8 C
rand(n)    
* S& z. C$ d& d( X6 u: d返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值) 8 Z9 z; }( j1 N- J
6 W4 h1 X0 h* ]* U6 ~
mysql> select rand();    ) K- `9 l6 Y) k9 _
  -> 0.5925   
& [1 i0 a$ }, p, ]. Y4 l# Nmysql> select rand(20);    + P. P) t# W, V1 G4 V, x' I& E
  -> 0.1811    4 R6 X: e8 F* s8 r$ l
mysql> select rand(20);   
2 ]  O( e; G! y  \: o  -> 0.1811    5 |5 d$ \/ X% x+ X1 m+ [' l+ V
mysql> select rand();    0 M4 Q- M' i, f( ]/ y9 h# V2 k
  -> 0.2079   
$ M. k1 m3 I* R, q( l/ f: R4 a5 Ymysql> select rand();   
& U/ C0 t. x8 a0 a+ g' Y  -> 0.7888   
3 S) v9 R% }1 K% N4 c+ D. C9 C
$ d! w' X& R3 v* Tdegrees(n)  9 n5 Q4 W: s$ m( l2 Z6 K
把n从弧度变换为角度并返回  
: _. w3 i, h- H. W9 T  Jmysql> select degrees(pi());    : s7 s2 V6 v- C
  -> 180.000000   
% K, h2 _/ R: d3 `6 p2 \& A   D: f: K* G, `5 q! b# m. p
radians(n) : p* C' t& L9 \. O1 M6 e4 z
把n从角度变换为弧度并返回   
- G( t8 p3 s9 G2 d" pmysql> select radians(90);   
0 j. P7 T# r. t! N/ K  -> 1.570796    : S0 r# Q6 Z0 \- m2 w; T6 ?

: J% s* z& h; C1 utruncate(n,d)   
" R- m  t6 t# X. O0 q保留数字n的d位小数并返回  ( [% c. `) m$ Y3 I
mysql> select truncate(1.223,1);   
9 u$ `4 C, M( G  -> 1.2   
+ y# A2 S: e( d+ O) e3 _2 }mysql> select truncate(1.999,1);    0 Y/ q& R# L0 `+ ?
  -> 1.9    ( B: i2 c4 i  k8 S# l7 G
mysql> select truncate(1.999,0);   
0 K- ~) f% m; {' h  -> 1    ; X8 |/ c: Y- B3 Z& `
2 z: p1 w; g' ?( f$ ^
least(x,y,...)   
. V: Y; z7 \  [" \; `. q0 H返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  7 l0 j4 E. r$ p, c
mysql> select least(2,0);    0 K  R: |3 u) Q  V. N
  -> 0   
- n  }. N8 u( C3 T' D' Emysql> select least(34.0,3.0,5.0,767.0);   
! ^/ B$ q( F3 X" Y  -> 3.0   
0 r5 p# s5 l4 Y+ [% R* O6 \. ]mysql> select least("b","a","c");   
3 ], x( c/ c9 H1 V! [- ~2 T1 V2 d  -> "a"   
7 G$ w. Q9 E. n% k
, {, ]% V, t- [: `% |0 l  [6 Mgreatest(x,y,...)   
1 q7 G! \. Y% d$ C' w) ~! h返回最大值(其余同least())  
2 O' W9 c/ i' D, M2 W1 Nmysql> select greatest(2,0);    , S) W# d, V3 k' l7 \' k: z( N" o
  -> 2   
& n$ J7 [5 `* e- Y0 d8 Umysql> select greatest(34.0,3.0,5.0,767.0);   
9 w$ J+ }4 D" x5 s, i' L  -> 767.0    . U* N* x0 B4 d* v
mysql> select greatest("b","a","c");   
' k4 s7 b, j; j  A/ J  -> "c"     
; X* z0 z% ~: T3 M/ K
- O. s: a+ W4 p: Q3、时期时间函数 - V7 {  ~2 }( `4 ~6 u" [& y
dayofweek(date)   
! T9 b/ @9 W: g. ?% |  a$ {: B返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  : g7 \8 ^8 x- e* F  H
mysql> select dayofweek('1998-02-03');   
; [) Q3 r$ s2 t4 M" l  -> 3    0 F1 O5 R6 z3 f! L0 W
3 ^9 e  n& a% S) [
weekday(date)   
4 V4 W8 f  }# ?/ L- h+ Z$ b返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
: |5 ^, f# G( l" ?: Q9 }  
& ]* E- x5 l  q( \  p: R% rmysql> select weekday('1997-10-04 22:23:00');    & ~4 E6 [6 M/ n' ^
  -> 5    # U- r* v: y1 s6 D
mysql> select weekday('1997-11-05');   
* x( c7 f' G  i; v$ ]  -> 2   
( a9 C8 g% W4 i . z; J4 C7 a/ K8 l0 B- r8 p
dayofmonth(date)    
! R3 t) g; q! W0 A- X5 o返回date是一月中的第几日(在1到31范围内)   
8 L2 f  f: I3 m# [6 M, Ymysql> select dayofmonth('1998-02-03');    / ]1 z$ u1 S, Q$ b* \  }5 o& T
  -> 3   
+ E3 t6 |  p5 W' S# u6 q
9 F3 Q( w* D+ x2 o% t" O/ [7 }3 y  Rdayofyear(date)    - t- C3 r/ s7 K# P% v  Y
返回date是一年中的第几日(在1到366范围内)      l4 O. ]  w0 [  y& @
mysql> select dayofyear('1998-02-03');    2 Y- w6 j3 B% V  x% y
  -> 34   
9 n7 @1 h- o) E1 n; p
: K6 L( S$ C7 V) U" T+ x( @0 Dmonth(date)    5 b0 G9 A7 `  k6 l
返回date中的月份数值    ! O- E- @& C$ G3 b
mysql> select month('1998-02-03');   
1 x" q3 T0 F+ o  -> 2   
3 u, V9 W" N8 X/ Q) z, E3 A ' ~! @) D: t( i
dayname(date)   
9 S) z2 K/ ~+ k5 ~4 @返回date是星期几(按英文名返回)  8 X: W  G$ ^/ q8 C% m
mysql> select dayname("1998-02-05");    + \, p7 }+ O; ?* p3 v( R
  -> 'thursday'   
' V! p% p7 Q' h4 }4 r6 ] 9 r$ n# B: ~) z3 r% j6 G. S
monthname(date)    
2 y+ O( b' f1 [4 v0 }3 g5 `) j# B返回date是几月(按英文名返回)  & \! n  l2 N/ B1 H% ]. C7 G
mysql> select monthname("1998-02-05");   
. k% \, O  J3 z8 W0 ~( U  -> 'february'   
; K8 E$ |1 Y2 ~# j+ M0 N
& y. N' t/ s. M3 \quarter(date)   
5 w" @  n% j" b# N% ]* M返回date是一年的第几个季度    ; K: z: N! _( V# r) A2 M; i5 |
mysql> select quarter('98-04-01');    4 C$ N( T) w( t" R
  -> 2   
. u* q$ Z7 h7 x; |8 V! J* Z6 Z * I9 O8 U1 E+ H6 P! |% k7 l
week(date,first)   3 K  w. o) k/ y' x4 ~
返回date是一年的第几周(first默认值0,first取值1表示周一是
6 ~! z6 U, \8 R9 B/ Z* K周的开始,0从周日开始)  
' u! ^5 C% f  R* Pmysql> select week('1998-02-20');    ( u+ t/ G# Q& L9 |1 b
  -> 7   
& V' R3 v9 t9 z( \$ }9 z9 K! e- {8 Amysql> select week('1998-02-20',0);    ) g1 p- S9 e+ t1 F: F/ `& L2 j! E
  -> 7   
, A; X' k( W3 imysql> select week('1998-02-20',1);    ! b! Z+ I/ \: {! o
  -> 8   
8 V# D% d+ `( K5 q# X7 @ ( U% a0 i2 I+ f5 J1 d8 C
year(date)    ; U+ \3 B  _; e  U
返回date的年份(范围在1000到9999)    9 ]" F$ {2 ?* e9 _" k
mysql> select year('98-02-03');   
; {' i" }# {/ M7 y! u  -> 1998    # W6 v5 l) ?6 s4 O" c
0 S! O  Z$ j2 @- ?
hour(time)    6 f% a' z7 _  G0 L6 E+ \
返回time的小时数(范围是0到23)   
$ e6 {; h5 D* c* @3 Smysql> select hour('10:05:03');    " E$ G" j8 G- Y  Q
  -> 10    . p9 c! G6 C  I
. ~: {9 n9 H$ r9 t' A+ ~. n
minute(time)   
# E& a! o3 u+ y0 t- ?返回time的分钟数(范围是0到59)    - \3 C3 ?7 T/ @' D- x& y
mysql> select minute('98-02-03 10:05:03');    7 c0 c/ i, J# I
  -> 5   
( V5 v4 n& P. F, l
5 h+ V4 p2 h" H% L. ^' l0 b7 B$ p' u+ Ksecond(time)    
9 L* o. h# B$ b  [7 r5 n返回time的秒数(范围是0到59)   " m/ \* I2 |) C0 f1 u. A7 I5 n
mysql> select second('10:05:03');    2 t, k/ J: }7 l7 \* ^2 a1 j
  -> 3    / N- q0 B! [4 K& U8 h

  R. q& k* j  M4 vperiod_add(p,n)   
3 s* [$ a0 |! j8 R/ q增加n个月到时期p并返回(p的格式yymm或yyyymm)   
( s* W% t/ q# U4 m- }$ e! gmysql> select period_add(9801,2);    " ^' N9 r9 [# D8 P5 I. w
  -> 199803    % Z) ?5 c7 f: N, R/ `$ O: y

% t9 f9 x9 {& [/ D  t& hperiod_diff(p1,p2)      p4 N: g3 H' [* i/ C  R# I9 {
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  ' Y  A8 b. o/ M
mysql> select period_diff(9802,199703);   
( F0 ^; z( b8 h  -> 11    % y7 A! b( r' Z2 v% a# U
% t/ k- g& s: ^' F- S
date_add(date,interval expr type)  
0 [" |+ S9 p8 b( Q7 Y  D; o4 l1 ]3 tdate_sub(date,interval expr type)    # ~# X0 _2 Y; f8 C7 C
adddate(date,interval expr type)   
  y! b$ V  A* K# f9 Dsubdate(date,interval expr type)  2 c5 `' \1 X6 H. v! p
对日期时间进行加减法运算  
" P& t1 O' x" T! T- [: i(adddate()和subdate()是date_add()和date_sub()的同义词,也9 p( a8 t; H8 o- S$ F' Z: i
可以用运算符+和-而不是函数  ) ^+ \. Q* `" Z& t9 F
date是一个datetime或date值,expr对date进行加减法的一个表  K+ {8 a+ u7 O) q
达式字符串type指明表达式expr应该如何被解释  ! A3 h9 s6 z+ F, _3 m. Z
 [type值 含义 期望的expr格式]:  
, \& Q' s2 m" `, G1 U! @ second 秒 seconds    5 F4 T, z! Q! F. A5 p) b8 h5 t
 minute 分钟 minutes    2 {& d- [4 ^3 I& i+ T, b" g, \
 hour 时间 hours   
& f4 l: u) _: ]7 |; c5 F day 天 days   
1 t, H+ f2 A  J month 月 months    - [1 _" h) {( o5 C4 T
 year 年 years    & c, E% r$ l3 J' n0 t$ R
 minute_second 分钟和秒 "minutes:seconds"   
; e$ S: z5 G- q9 I3 F1 g hour_minute 小时和分钟 "hours:minutes"   
' q+ |+ z0 L2 l day_hour 天和小时 "days hours"    . i' F& z  ]1 F% _* M
 year_month 年和月 "years-months"    6 e) ^/ H, ?2 O. A! A
 hour_second 小时, 分钟, "hours:minutes:seconds"    * ~/ ]( i9 ]* W1 `# S& t
 day_minute 天, 小时, 分钟 "days hours:minutes"   
1 }5 v; w; a! m1 U1 e# Q# m; o1 K day_second 天, 小时, 分钟, 秒 "days
, [/ v. _$ X( whours:minutes:seconds"
1 y% `$ A$ q4 t8 g5 Q/ p, t expr中允许任何标点做分隔符,如果所有是date值时结果是一个' u8 m. s# {8 k6 _4 Q: O  d
date值,否则结果是一个datetime值)  ! o0 I. S$ M: A5 ~9 V  z4 a
 如果type关键词不完整,则mysql从右端取值,day_second因为缺% `% l' R9 t( C+ q; D/ }3 n: F
少小时分钟等于minute_second)  
* q8 h! l" h9 ~( ]+ z/ t 如果增加month、year_month或year,天数大于结果月份的最大天
6 D- M* u$ Z4 g% k2 p数则使用最大天数)   
) F' S+ w1 t) W+ p) m( E# \2 xmysql> select "1997-12-31 23:59:59" + interval 1 second;  
% T$ v0 r% A5 M/ n/ Q # d# z% B/ C" p: S+ w8 K
  -> 1998-01-01 00:00:00   
4 U8 A9 o) N4 ?& R) N& |: \5 Omysql> select interval 1 day + "1997-12-31";   
* L5 f) |2 [7 O( J) m  -> 1998-01-01    / X/ ]. M; c# ~$ n' J+ q) N
mysql> select "1998-01-01" - interval 1 second;    . W- P  O2 D: [0 o* a
  -> 1997-12-31 23:59:59    6 X8 U5 s, Z3 u
mysql> select date_add("1997-12-31 23:59:59",interval 10 G  w  @! ~& X! a4 e* V3 {& }: v
second);    $ `  u( K" S+ }/ d( \. S
  -> 1998-01-01 00:00:00   
0 o! p. @6 V& Z- cmysql> select date_add("1997-12-31 23:59:59",interval 1
1 B) x- d. R! Q9 o8 `  x8 cday);   
2 z  S& |) ^. T+ @  L. C$ p  m  -> 1998-01-01 23:59:59    4 D0 @7 Z9 i& \
mysql> select date_add("1997-12-31 23:59:59",interval
1 S, S0 g8 U1 b' l$ m' K& Q2 F' o"1:1" minute_second);    . L9 o" }+ w1 D! o2 a# @$ N' Q
  -> 1998-01-01 00:01:00    - o4 B: @9 Y/ B) Z; Q3 T! L/ t
mysql> select date_sub("1998-01-01 00:00:00",interval "12 W6 ^& B; V: _8 n: o9 `7 H$ u
1:1:1" day_second);    9 |- \+ v, n3 [, D7 m
  -> 1997-12-30 22:58:59   
: f5 u. v* T) B% ]* F; g0 Dmysql> select date_add("1998-01-01 00:00:00", interval "-1
5 h( S7 T" F0 {5 @4 U: a10" day_hour);  
3 h3 g" q0 O; r4 K, h/ D$ R+ x  -> 1997-12-30 14:00:00   
! P! N8 T: n1 Q# h0 `2 nmysql> select date_sub("1998-01-02", interval 31 day);    " C0 k. W0 ]+ Q3 m
  -> 1997-12-02    - @- n* [" O9 `+ f! w0 X( h
mysql> select extract(year from "1999-07-02");   
* ^; L7 d! Q# Y! H* a  -> 1999   
" y" j# K4 u7 r) d- ^mysql> select extract(year_month from "1999-07-027 k% N" }" u4 d" v6 l# s- `$ t6 t
01:02:03");    + i5 k1 {% d4 j* k) r
  -> 199907    8 j" D! B+ o5 ]; [) T+ V2 D
mysql> select extract(day_minute from "1999-07-02+ C+ G* o  `5 e" ~
01:02:03");   
% r2 W. F  Y+ \- @  -> 20102   
0 t+ l) S. B3 N, O8 {$ ^4 A5 t; V) x / ^9 b; O# e$ }6 Y& f) R0 B
to_days(date)    - F; D+ ?- `3 D/ }2 F8 d9 f
返回日期date是西元0年至今多少天(不计算1582年以前)  
; s, ^" w% `& q, A" t4 [mysql> select to_days(950501);   
) y. T+ n# D" R/ }9 j4 \  -> 728779    5 T& j& n* |$ G* e7 h' ~" Y; c
mysql> select to_days('1997-10-07');    ! B, g% \& Z. R5 P- }- H
  -> 729669    ) ^9 b( |6 |6 p* G3 N) r

) ]$ Y4 @% H, _& z* ]: |from_days(n)    # ]% j- Y+ T0 Y4 u( C1 R' g
 给出西元0年至今多少天返回date值(不计算1582年以前)   9 L# x( I1 K) @+ n( d+ m
mysql> select from_days(729669);   
/ X9 L. ~- l  y& H  -> '1997-10-07'    8 \- D' ^& ?1 u; v1 b0 m( O! r0 l

' n( Z. s+ I* E' y2 o' }date_format(date,format)    # M( N; A# ~4 o% g* W
 根据format字符串格式化date值  * U8 r: V( @6 M, T+ ?, U4 t
 (在format字符串中可用标志符:  
( J2 F9 V/ j) X1 w. C/ R3 I %m 月名字(january……december)    5 W" l3 G  v# {! l; w8 x9 ]
 %w 星期名字(sunday……saturday)   
1 j% r( f2 J3 N! d+ Y; | %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    4 K2 ]) g0 P7 Y, ^
 %y 年, 数字, 4 位   
+ g; |) t9 Y1 K4 i( g %y 年, 数字, 2 位    6 g# O% J5 v6 q) _: Z* B% |4 _5 F
 %a 缩写的星期名字(sun……sat)   
: \6 t& C  G4 ^2 i' `1 R %d 月份中的天数, 数字(00……31)   
2 }8 r5 Q) A7 V( k$ s %e 月份中的天数, 数字(0……31)   
2 v) O$ b! }; o. d) H! @ %m 月, 数字(01……12)    7 y6 Q/ I( ]) |( ^
 %c 月, 数字(1……12)   
3 l3 U5 [: j# h: V8 ]* Q %b 缩写的月份名字(jan……dec)    3 n) V% {: r! Y8 o+ Z: R. M2 G
 %j 一年中的天数(001……366)   
' w* B/ M* J. `0 P5 V, f %h 小时(00……23)   
! ?3 e- N% S$ k" M7 `2 f  i %k 小时(0……23)    " C/ A. Z0 R# s; F4 ?8 O5 n9 }5 s+ h
 %h 小时(01……12)      O6 q# k1 D. }$ E% k
 %i 小时(01……12)   
+ K' [% L; F3 c8 B0 Y) ?8 u %l 小时(1……12)   
4 r& ]/ Y/ Y% x %i 分钟, 数字(00……59)    7 P) w1 n5 D( W2 R; g/ L; t
 %r 时间,12 小时(hh:mm:ss [ap]m)    8 j" ^: t% |/ r* b
 %t 时间,24 小时(hh:mm:ss)   
! U2 g; O' R5 M. D$ j+ _ %s 秒(00……59)    * v- f- h' u, M
 %s 秒(00……59)   
7 Q) ^- f% Y4 r8 I; k7 Q %p am或pm    ! I2 B) z% @8 \# {5 H
 %w 一个星期中的天数(0=sunday ……6=saturday )   
  c3 ^8 e& e6 k5 | %u 星期(0……52), 这里星期天是星期的第一天   
( A0 f; j/ {3 U3 a/ o, | %u 星期(0……52), 这里星期一是星期的第一天    * M7 G$ w4 ]( b1 q  F
 %% 字符% )  , ?: ^- R5 K; V" O
mysql> select date_format('1997-10-04 22:23:00','%w %m %
# L% X, X$ L  u; m' sy');   
5 k; X2 O$ J, d0 ~9 ?+ q  -> 'saturday october 1997'    * ]3 x) U. Q, s% w
mysql> select date_format('1997-10-04 22:23:00','%h:%i:%* V, J, {+ v% D5 }$ h( j8 d3 F" u
s');   
( _/ p: p" H5 v2 D( _, ]  -> '22:23:00'    + Q# O" r5 Q4 B, g8 V+ a% A
mysql> select date_format('1997-10-04 22:23:00','%d %y %a
  D1 |9 j" x( F! X  ^. M%d %m %b %j');    : i6 ?( \% {# k" U  A9 A8 S" U
  -> '4th 97 sat 04 10 oct 277'    ) |0 z! S5 K& q6 {1 M
mysql> select date_format('1997-10-04 22:23:00','%h %k %i* R& }# s5 |# f" e3 `" c# L
%r %t %s %w');   
+ X, U3 T7 T& ^( ]  -> '22 22 10 10:23:00 pm 22:23:00 00 6'    : K' Y- D6 e2 Z% B

0 ?# S; |9 T2 Q: Jtime_format(time,format)  
9 O, K  Q/ W( w. W+ C 和date_format()类似,但time_format只处理小时、分钟和秒(其3 a+ |8 i0 V3 w; Z* B
余符号产生一个null值或0)  
  Q, {9 P& W. U$ J) X 3 D) ]& M& a( E3 j7 v+ I
curdate()     - U$ X8 b" k; E* e
current_date()  
2 Y1 C$ U6 E  r/ Z 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所: Y, j/ Z0 T  }! T8 ]  z
处上下文是字符串或数字)   
7 V+ M2 T8 e; o8 Mmysql> select curdate();   
; m# i: [. M1 f/ k. p  -> '1997-12-15'    8 [; C8 E2 p0 O# f8 [
mysql> select curdate() + 0;    6 d9 m( H& ^% k3 x% v+ J
  -> 19971215   
; R3 K' P; Q* `& H & S( E  _: _! |8 C" `) u7 v
curtime()    ) W; z  f" i. T
current_time()  6 I7 C; `: C* }1 w# f
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
* b% c+ J  z5 Y( q4 l1 Q# O下文是字符串或数字)      
. {: I+ R# n8 y9 f5 {" ymysql> select curtime();    ( K& Y$ f# l* f9 ]
  -> '23:50:26'    0 B7 g, p% u/ O% e% b1 f5 e4 R
mysql> select curtime() + 0;   
, X) g# u: T4 ]  W' k/ G- \- s9 F5 V  -> 235026    * c4 B% j0 E2 b5 g
" N! O3 O4 E2 V0 A% G* d" T, b
now()    
% U9 Z" d  F! w! Csysdate()    # k8 W( K6 Z: ?( N$ P; j- w
current_timestamp()  
% q3 S% [1 n$ K: D- m. P; ?( M 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
0 R$ ~9 Q) A! H1 R+ x: g时间(根据返回值所处上下文是字符串或数字)     
$ e0 {6 m8 x: L  v& J! cmysql> select now();      A# o/ s# ~: t1 P) e
  -> '1997-12-15 23:50:26'   
+ w* ~$ a% P+ `5 P& H7 S2 Tmysql> select now() + 0;   
6 Q# g7 x* b( |) W" q% t" m  z: c/ ^/ J  -> 19971215235026    & z7 y7 e5 E: X( ?! ~0 H

; M6 I& u5 W7 Z7 xunix_timestamp()    ! j+ X* T- ~1 }: A2 O! A7 f
unix_timestamp(date)   
- h- X" A9 X! b# L" u7 ?- X返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
1 E5 o. P; {+ s% v( ?( i$ ~) r数,date默认值为当前时间)    l3 d9 ]+ d& q) Z- j# U9 i
mysql> select unix_timestamp();    ' z3 D' o7 Q$ m+ w
  -> 882226357    ) ]9 y9 v; Q  H/ ^7 |8 {6 s! f
mysql> select unix_timestamp('1997-10-04 22:23:00');   
$ i8 m7 _" k7 d. }* R$ r  -> 875996580   
1 ?- S6 n6 g% I& C9 z  Z' n + d. e, s% x3 _6 u4 l
from_unixtime(unix_timestamp)    * q0 p) R* r2 c. u
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的, D5 R7 s3 M) [3 P- f0 E
值(根据返回值所处上下文是字符串或数字)     # l9 f. H# k; S0 V: x/ w
mysql> select from_unixtime(875996580);    + w2 c: t+ F, t7 b( Q
  -> '1997-10-04 22:23:00'   
2 h& l: y+ m+ E" t) a' }) Dmysql> select from_unixtime(875996580) + 0;    2 x  C4 ^. {, q
  -> 19971004222300   
9 s( |+ u9 D5 d0 m6 g$ c . e" }" _9 m. j6 I3 P" }: v
from_unixtime(unix_timestamp,format)    
+ H: A0 z- J3 B+ T# R* V/ b以format字符串格式返回时间戳的值  
$ O* v1 u# }9 P" U1 q, ?mysql> select from_unixtime(unix_timestamp(),'%y %d %m %& o7 {* K4 u" m* F  D, A$ P: q% d
h:%i:%s %x');    " k4 q' x3 I6 J% c* P8 U
  -> '1997 23rd december 03:43:30 x'    5 c- `: D. T* q# n& g
1 {; \' ?6 b3 _1 N. t
sec_to_time(seconds)   
! v( l& C/ q/ n+ }$ B以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     3 W, P7 _4 ^! \: m! U7 B+ s
mysql> select sec_to_time(2378);    & v8 C' Q2 G; {* G' S* @
  -> '00:39:38'    : C' H! O% m' X* `  s
mysql> select sec_to_time(2378) + 0;    " _# U4 B+ Y7 c# l% s
  -> 3938    8 C3 ]) ?5 _2 m" B9 S
; `5 ^/ [- @$ w
time_to_sec(time)   
/ P  L6 X' Q; Y' A  w返回time值有多少秒   
/ [5 o9 ]: Z* S) L8 gmysql> select time_to_sec('22:23:00');    % S- k6 f6 J/ x; X0 o
  -> 80580    $ R" K3 s6 a, C: e! X* B7 j8 `$ q
mysql> select time_to_sec('00:39:38');   
4 b5 Y* B$ k6 b; J* G- e  -> 2378
) A, `$ [: _, k1 ?- S, o
1 k1 |3 y# _8 `. p0 H, z5 h2 H转换函数
2 }+ C* Z( w. o1 o3 b1 ]3 icast
* P' Q1 ?7 G% s5 Q5 k) m用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]
) L5 g: Z' g1 N$ P! d; M  e实例:select cast(a as unsigned) as b from cardserver where order by b desc;6 S" @! W& Z: O1 O& v
convert:, q* _4 U& z, I5 [) \6 h$ C
用法:convert(字段,数据类型)* D. a+ F9 y; [2 r2 A
实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

/ e  [; }2 y9 Z& S8 R1 w
回复

使用道具 举报

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

本版积分规则

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