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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数
* Z# v. g: l0 N4 Y  x7 ]$ Qascii(str)   
5 K- q% n; M, j: w; ^1 w返回字符串str的第一个字符的ascii值(str是空串时返回0)  
; J4 h/ k- r! P1 l/ G/ X1 zmysql> select ascii('2');  
6 a7 ~3 {8 v5 [2 a# W. T* F0 A  -> 50  # h. g' K8 m+ I
mysql> select ascii(2);  $ z8 F  l" N( W, l1 q/ b
  -> 50  ! E' c# t7 }! d4 i6 l7 d
mysql> select ascii('dete');  5 _: T9 X, t9 w; X: s. b7 W5 H: d$ f
  -> 100
% L# y2 ?- F5 u& E, t9 Z
ord(str)   5 {7 Y5 X1 I% c# o" B2 ?
如果字符串str句首是单字节返回与ascii()函数返回的相同值。
( L* m4 A3 u5 C% S 5 J5 R/ g- a& o
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  + k* S7 p1 V- m" z
mysql> select ord('2');  ; l0 y- l6 f" _- j8 {0 C7 e5 m/ m
  -> 50  % b9 D  b+ O' _+ _4 M% Z% F- T
   ; l9 {# B7 Z, I, L$ ?. {* W8 I$ Q
conv(n,from_base,to_base)   7 {+ B( @# V! x( X. X& u* d$ s
对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
) `4 V( L% }$ h5 l( W+ ^  ]mysql> select conv("a",16,2);  
/ \" y" S3 f" w4 L4 M8 L2 b  -> '1010'
' f* R2 C$ L! @mysql> select conv("6e",18,8);  7 I& t' `  a# z! z
  -> '172'
- P$ D5 E" N( q/ H; y8 p  Kmysql> select conv(-17,10,-18);  
6 S. O  G8 D/ o" c8 [. T  -> '-h'
' L1 E) n& ?, Z4 }, l) s# \mysql> select conv(10+"10"+'10'+0xa,10,10);  
9 M. y& Z8 Q4 d# u1 b5 L  -> '40' ! o' O  S6 |, Z. _+ [4 ~' `. p" b0 g
   
6 p1 D$ J- S# [* h1 Z, wbin(n)   ! W- m2 z) {0 r* Q2 G- m
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  7 P8 v$ I1 @: R' F9 n5 o  }. P
mysql> select bin(12);  1 n  Q% G! k2 O
  -> '1100'
7 \7 j9 X+ ^/ P4 {/ e$ o/ d; y
$ b8 o$ c, N4 n5 ~: poct(n)   , `2 H5 N0 ?; |; N$ f+ g
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  ) _. q7 C7 v. t" |( ?( S
mysql> select oct(12);  
7 @1 ?) w+ Z* _+ @% x  @  -> '14' : |# a: V1 X. Y4 {
   
' k/ b4 S  x1 K/ V' ^/ vhex(n)   
4 k2 X/ {' r8 n把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  
% F: _  F  d% ?. ^* ^0 G- Smysql> select hex(255);  
8 K% |: K$ c  Q! w7 C, A% O  -> 'ff' ' X& e& W$ I& S, t3 v
   
) P; K# m: D3 ?' {( K$ X/ H! t, ~( dchar(n,...)   $ N# z. C2 g2 R/ R
返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   : O6 X- Y0 C5 G, @
mysql> select char(77,121,83,81,'76');  8 p& L+ J! J) H- t; ]
  -> 'mysql' # X* l& r% A& b! U% o. c2 r" w0 o
mysql> select char(77,77.3,'77.3');  1 n# c" E+ U. q9 g
  -> 'mmm'
, B# P; S4 j3 ^- |/ ~+ |   7 O$ l. ?1 P# D6 O- b5 j2 s  ^0 j
concat(str1,str2,...)  
7 a$ R% M1 G' `' y0 \4 V把参数连成一个长字符串并返回(任何参数是null时返回null)  
# U, \) x' Y- _+ Emysql> select concat('my', 's', 'ql');  
5 R2 v& ^* ^- z# O- V# x) M4 j% n% c& P  -> 'mysql'
/ n* U8 i" G( c- s0 ]  O; U$ tmysql> select concat('my', null, 'ql');  & E, c* `  k* s6 H' R4 D) Q7 i
  -> null % d8 J2 i. Q: s, A: ?
mysql> select concat(14.3);  
8 Q0 ?) v  `1 n$ n  -> '14.3'
3 a) j9 d$ e3 _ 1 Z0 G/ p7 P, a
length(str)   
- M" L, G# {! Goctet_length(str)  
: V2 k$ S% W! G; }: }, rchar_length(str)  8 N! I2 G$ {$ Q: `0 T& h/ S5 d
character_length(str)  7 H8 S& R% n" j* i& y- t
返回字符串str的长度(对于多字节字符char_length仅计算一次)4 v# w3 d2 `# a+ W8 [& S/ b# Y) l
mysql> select length('text');  5 y5 {' T" X7 v7 |2 R
  -> 4  & c3 ?' F3 s% T! x; A2 T7 H0 d
mysql> select octet_length('text');  
! n- F9 T! }/ A$ [  -> 4  
; M' O' f- S0 B! g# t8 S  D
: B/ B. B$ Q. D1 _locate(substr,str)   ; E1 z: C' }" c( {0 }7 e0 c, Z
position(substr in str)   
) q" b  m. O) f4 M返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
( x' a8 R1 g1 q) Fmysql> select locate('bar', 'foobarbar');  , }4 D* d$ ~. u$ R. I
  -> 4  6 x+ r- g: ~& a* ]/ i8 w
mysql> select locate('xbar', 'foobar');  
1 A# ~, X7 [* G; U  -> 0  ; a% x8 P5 P  }3 p  T  y
   
8 ^" _% f  W' D0 Klocate(substr,str,pos)
( S( |! O6 h. `, ^( B7 b# E返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
; Z- e( g# i) s% B  ]; hmysql> select locate('bar', 'foobarbar',5);  / c, }: q0 t0 B  c* l
  -> 7  
+ w) {9 z9 ]- T: v# M 0 a" K! C/ w  o6 x
instr(str,substr)   + L: ?" b( t" [6 {0 h1 h
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
1 w8 s: r/ u. q& G9 L0 q" hmysql> select instr('foobarbar', 'bar');  
% J% U; ?8 {% p$ c$ g/ A( l! B  -> 4  
: _4 O& [/ {! c9 x8 ^) b' Nmysql> select instr('xbar', 'foobar');  - ?5 L5 M) y4 p6 H) v
  -> 0   
) o' C3 {/ z7 l, I/ V; L! N9 R0 s
1 Z! D+ P5 b; d4 s' vlpad(str,len,padstr)   
9 t& H  D: A5 e$ [- ]  P+ l9 K用字符串padstr填补str左端直到字串长度为len并返回  " [% A* g( A7 h5 c4 q
mysql> select lpad('hi',4,'??');  
; r% u0 @: }; ^) A% O  -> '??hi'
5 v  Q% |! t2 \% x7 y' m   ' B# s' ?' l7 l$ D9 H# A
rpad(str,len,padstr)   
# T/ F& ?" V6 g8 t4 f用字符串padstr填补str右端直到字串长度为len并返回  
& C) x8 E- D* @: _/ Q6 g  Dmysql> select rpad('hi',5,'?');  
/ \  l' q* y) Y: T2 c" o4 w  -> 'hi???'
$ Y6 a% a7 n& y0 L. V/ U  ~
- d, @9 @: ?& C+ z% U4 qleft(str,len)   ( a8 ^8 z: F& Q! W. n4 P
返回字符串str的左端len个字符  " ]7 j# w' u: K: Z2 P' h
mysql> select left('foobarbar', 5);  5 i1 Z. Z5 c, U+ Y1 {- N; p8 n
  -> 'fooba' 1 C1 E" A; w/ X2 p

+ a. u3 ~- V6 }. k, i. {( i6 hright(str,len)   , U& g! A' R5 W
返回字符串str的右端len个字符   + l* r% W4 f8 o( y
mysql> select right('foobarbar', 4);  0 v& u  y, C& @8 ~
  -> 'rbar' / X7 b" k. x- a3 c# W$ A
( e; N' J; T3 K& o( n
substring(str,pos,len)   
2 |5 W+ m+ a% L+ {3 Wsubstring(str from pos for len)   
- t% y, R7 }6 r3 ?9 Z: Pmid(str,pos,len)   # a' g) Z6 W$ j* ~
返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  / a/ w4 |) p& \/ m2 S1 p+ I* S
  -> 'ratica'
: M  J- a, Z2 A$ I- H 0 O. ^) q7 t+ R9 n/ p, j
substring(str,pos)   5 m$ E' U* i; |3 Z* j
substring(str from pos)   5 Y) t" I; G7 f1 P
返回字符串str的位置pos起的一个子串  8 v: @- s+ V% V! I" Z
mysql> select substring('quadratically',5);  
; P7 b/ i2 Z. h4 Q  -> 'ratically' 4 w- A0 N: j1 P% G! P& p% N
mysql> select substring('foobarbar' from 4);  
4 T9 B6 W/ e( [" k) y  -> 'barbar' 8 t3 L; }& R& r' k% ~- \
, u7 m8 M3 U' @( S- a  H5 @- n
substring_index(str,delim,count)   
3 C' e4 b& G5 ?3 @/ n6 a- X返回从字符串str的第count个出现的分隔符delim之后的子串- E3 ]: Y: e' o, {/ ]
(count为正数时返回左端,否则返回右端子串)  
2 X: J2 T4 T/ h) }2 ~& ^# z2 N2 Vmysql> select substring_index('www.mysql.com', '.', 2);  
: m/ ^6 E) c$ m6 e2 c& e* Z" s  -> 'www.mysql'
; V  \3 ]. F9 n+ H/ |! g1 g8 m7 o* Umysql> select substring_index('www.mysql.com', '.', -2);  ( B7 z# w! S3 t2 ?
  -> 'mysql.com'
3 K& z) s8 J" ?$ p' v2 k% | 2 n1 A4 n# w' J3 A! E9 s
ltrim(str)   
4 Q5 C& v- {7 n3 m2 X; x/ v返回删除了左空格的字符串str  
+ ?- U5 k+ y4 C; Ymysql> select ltrim('  barbar');  
5 S- l/ B, r" O" Q  -> 'barbar'
) {5 V* W+ B% n3 P& M
7 p! z' {$ K- c6 Y8 _$ j& _( Ortrim(str)   ' N$ B) ~- c2 r% H) S
返回删除了右空格的字符串str  
! N' |; ]. ^' c, c$ l" \mysql> select rtrim('barbar   ');  & R7 h8 F& a9 z: a: P
  -> 'barbar'   j1 ?% u, u% p
; @6 s( l( n+ @
trim([[both | leading | trailing] [remstr] from] str)   7 [) y. p# U4 J
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  % E/ V$ B9 |- d# j9 H- ^
mysql> select trim('  bar   ');  7 _( ~3 F+ Z7 l- W" x- j
  -> 'bar'
4 d& H$ \/ t( G, S) ~9 f4 Tmysql> select trim(leading 'x' from 'xxxbarxxx');  
% }; B' ~3 J7 ~! M  -> 'barxxx'
' Z1 ?2 P8 Y$ c$ ]4 u( ^$ ~. d6 ymysql> select trim(both 'x' from 'xxxbarxxx');  $ X( p1 t/ Q1 A7 I3 J5 ~4 `
  -> 'bar'
0 O1 ~; p; ]& Fmysql> select trim(trailing 'xyz' from 'barxxyz');  
5 s' o+ X4 }/ S$ D) E& [* k  -> 'barx' 6 O8 e, M' [! o8 d

: }- z5 m7 z+ Z+ lsoundex(str)   
( [! }: ?3 x! {" E, t! t* N返回str的一个同音字符串(听起来“大致相同”字符串有相同的1 n( x7 P3 l3 I2 ], a; G+ [
同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  ) ]6 k# {/ {- p' L
mysql> select soundex('hello');  
8 E' @* H8 S) ]- O1 n( P7 L  -> 'h400'   m5 Q  \+ d" P
mysql> select soundex('quadratically');  ' `. ~0 R+ l+ `
  -> 'q36324'
! O& T( f3 x! f! ^   
# x9 M+ S* f& E1 s; Gspace(n)   $ L9 Q$ C* g% [0 V6 {% o
返回由n个空格字符组成的一个字符串  6 U+ y# o# {3 `4 B  _' y8 Q
mysql> select space(6);  
& Y; d* P) s6 e- e0 f  -> '      '
7 e" S& l. v4 r0 `  m1 U   
7 y/ n  K& m& Z, F7 M# Qreplace(str,from_str,to_str)   - j/ [6 m9 l0 y" o# G1 e
用字符串to_str替换字符串str中的子串from_str并返回  7 m- i7 N# @4 A, H
mysql> select replace('www.mysql.com', 'w', 'ww');  
( {5 J  }: z& I8 x, @1 N# b  @" S  -> 'wwwwww.mysql.com'
  b; D/ R# y. l' @5 X$ d % Y' c" t6 K) O' x
repeat(str,count)  
0 D; \. f# b8 b, C* s# f返回由count个字符串str连成的一个字符串(任何参数为null时6 Z2 E9 Y" [  U. B- U
返回null,count<=0时返回一个空字符串)  
8 p4 M1 i4 {$ G1 pmysql> select repeat('mysql', 3);  
* t2 N& n( K2 B: ~# _( a  -> 'mysqlmysqlmysql' 9 L* K, Z0 R& g0 V+ _
   0 b2 T) _; c6 y2 ~% ]
reverse(str)   
) W8 N5 p0 j6 D. q颠倒字符串str的字符顺序并返回  / B7 C. t+ A6 E) o: M# p
mysql> select reverse('abc');  : {4 U8 s7 [  S. g( S; |0 R
  -> 'cba' ; h. b5 m0 d" p8 @6 \

4 Y8 Y0 B$ @9 H( C9 Einsert(str,pos,len,newstr)   
! L" i+ C7 z* @, t把字符串str由位置pos起len个字符长的子串替换为字符串) b8 g0 Q& K8 `: M' Z# S" }
newstr并返回  
# g3 F# ?) T& h$ H8 {# l- k8 g# Imysql> select insert('quadratic', 3, 4, 'what');  
7 _6 n4 G9 v% i: `- J. S  -> 'quwhattic' 2 t* x/ Q" H+ e. v5 G

0 X( u+ i9 v& Y" ]. I! W0 O3 Melt(n,str1,str2,str3,...)   
! G: d6 z7 r1 Y7 x返回第n个字符串(n小于1或大于参数个数返回null)  : p& e! f$ g4 ~+ A6 A' k- l( D
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  
" y! t$ p! j, G' p  K. z  -> 'ej'
9 V1 s1 x. Q3 q5 h+ {0 Cmysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  
) U) A$ L& _6 c/ u1 ]  -> 'foo' " u( {; a3 d- E+ H  Y

; S% }! |$ J! d0 R2 [field(str,str1,str2,str3,...)   ) K$ @/ ]  ]6 y0 H
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  ' f% l  a. o$ D! D' q( }% E
mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',9 D9 |" D. ?, g" l4 f2 d* {+ S
'foo');  
1 i( N( `) C. U6 G  -> 2  : U$ F# ]; q3 U
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
3 T5 y1 R+ A8 R# u) r'foo');  ' p+ V$ l3 [8 A2 L3 x
  -> 0  " p3 [- ~" }% F

0 K/ K  L; K9 {4 u" v" n+ ufind_in_set(str,strlist)   & c, t4 ^8 h% @' t
返回str在字符串集strlist中的序号(任何参数是null则返回
) R) m/ v; t: c8 A& Y$ Knull,如果str没找到返回0,参数1包含","时工作异常)  
' _9 t. `- t5 ?, _4 V* Imysql> select find_in_set('b','a,b,c,d');  
0 ?3 l' F. k  x  -> 2  ( }' n2 L+ p& S( A, i
   
6 [* {; E9 r6 E3 {make_set(bits,str1,str2,...)  # F) l) p( I; J, I* L6 n
把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应8 w+ ^. R, K- \- o7 b- {
位置的字串选入字串集并返回(null串不添加到结果中)  ' r$ g' `* k; ^
mysql> select make_set(1,'a','b','c');  
; v& m$ U. S. z, A  -> 'a'
# A$ ]  H6 b# ]mysql> select make_set(1 | 4,'hello','nice','world');  
- k" ^2 J* y1 x  -> 'hello,world' + B( t8 B% r# a' x3 @
mysql> select make_set(0,'a','b','c');  
9 A8 D! m2 A4 t- L6 U6 o8 |  -> ''
8 F* }5 L1 t  Z/ B3 |: E 6 }8 m6 A7 d$ ]( l
export_set(bits,on,off,[separator,[number_of_bits]])   
3 I8 Q' ?. Q, t* Q4 S按bits排列字符串集,只有当位等于1时插入字串on,否则插入
/ o0 Y7 Z3 ?9 Uoff(separator默认值",",number_of_bits参数使用时长度不足补0- o# d& X- x: R
而过长截断)   * E: j2 {8 |9 C0 E* p7 f
mysql> select export_set(5,'y','n',',',4)  
. B$ [/ N* p; h/ H  -> y,n,y,n   
( B6 P, l2 U+ Q0 O& P4 T7 D- ^9 u 9 \& M. ?% v# S9 N
lcase(str)  
6 f5 [, U/ g! E- ^$ V$ Q7 ]lower(str)   
; C: W! d! k1 X1 {返回小写的字符串str  
; c0 O6 r' E9 Omysql> select lcase('quadratically');  * P5 m+ r9 ^9 F- j" s
  -> 'quadratically'
; d; P8 Y8 }8 q  N3 w1 U4 m   * m7 g! }* e! C0 H
ucase(str)   ; ^; D2 O' c3 u- C6 c
upper(str)  
! p7 s. T5 ]$ w  U" \返回大写的字符串str  
6 o+ Q  i3 I, w7 U+ i9 v' Lmysql> select ucase('quadratically');  
( G0 a1 n1 \  E- D9 p0 L  -> 'quadratically'
1 }) Y4 N5 }" K+ V2 R+ u  Y0 ?5 k
. H: |: E( _0 fload_file(file_name)   
4 g% i. ?9 w( s6 j/ r! j# [. A读入文件并且作为一个字符串返回文件内容(文件无法找到,路径
: t  E2 X% K% W/ f( \; n不完整,没有权限,长度大于max_allowed_packet会返回null)  2 g$ d0 v1 y. c
mysql> update table_name set blob_column=load_file
9 E( s9 b7 r% L("/tmp/picture") where id=1;  3 D! k% Y( k2 u% ]  c

9 d7 V: h+ L8 O7 x2、数学函数; v. K2 W. M$ S* y4 k
abs(n)
) }" j# Y" |) ?6 C返回n的绝对值  * E7 X6 I- A4 ^2 Z- Q! N; |
mysql> select abs(2);    " N( b1 H" p2 w5 g
  -> 2    - a/ M! `9 K2 [+ h, q/ D& d; C: Q6 G: _
mysql> select abs(-32);    - t9 u, u! X7 o+ \
  -> 32   
4 {+ u8 g9 Q: B7 ]7 O& b' B   
9 f0 S7 X, ^) asign(n)  
8 J( I% q$ k* h% {  x返回参数的符号(为-1、0或1)  & u7 B  a; w( Q4 y' e1 z
mysql> select sign(-32);   
: z& r# c, N" J' g1 L# r$ g, }5 _' s  -> -1    / z4 I' ?) Z" z& S
mysql> select sign(0);   
6 {9 g7 O2 P6 `; ~8 h; Z  -> 0    : a' ?. E) [  e2 x
mysql> select sign(234);   
# G- z, v/ `1 F& H" J  -> 1   
/ R  V. E7 ^* K6 ~7 N+ N8 N
' [8 J0 ]1 H; d3 Z! A) |8 z+ ^* nmod(n,m)   
6 t0 G$ l6 Z( B" y/ g6 Y取模运算,返回n被m除的余数(同%操作符)   
6 M+ w5 ?' t. `! ^mysql> select mod(234, 10);   
5 N. l1 ]4 [6 \$ ?) r+ A: j  |  -> 4   
2 g* |1 b* ?$ X8 Dmysql> select 234 % 10;    % V. ^1 g  P% s4 o  {
  -> 4   
2 n) j4 D7 y6 V& t( \( Fmysql> select mod(29,9);   
1 B4 ^2 `- o6 y9 w, G2 `% S' L  -> 2    ; |) c( T: k" c8 Y7 f

7 R% _% l+ ~8 U/ Ifloor(n)  
* |3 Y8 |* [2 r2 |, {9 O返回不大于n的最大整数值  : W2 _% b- J: e) l' d
mysql> select floor(1.23);    4 Z2 M9 d, C8 X$ d
  -> 1   
$ J# f' O" z8 E9 G" rmysql> select floor(-1.23);   
  {' y+ q  E  M+ P  -> -2   
/ X( W: t& J' I 2 F. z! H( D% P& H1 x; n
ceiling(n)  
' c5 S$ W/ K7 f5 a7 i1 V返回不小于n的最小整数值  1 ?9 F" ?; d7 {! m
mysql> select ceiling(1.23);    0 Z1 Q7 Q% M' I0 I8 t% s0 C! ~* u
  -> 2   
7 Q, W+ C/ J. `4 rmysql> select ceiling(-1.23);    + Q% _8 _% }; ?8 A$ ~) f
  -> -1   
% O1 i8 }+ @$ ^& E- L- l
: v9 q. d; |+ S/ g" i% fround(n,d)  ( `/ \+ |5 L5 q2 f+ F; K% k
返回n的四舍五入值,保留d位小数(d的默认值为0)  " u9 B4 H7 _, ~8 i8 R6 y) J& u
mysql> select round(-1.23);   
0 d0 M/ m( l3 I) Z/ A. W  -> -1    ( x0 e7 s4 H3 T3 t
mysql> select round(-1.58);    . t+ O6 ]4 g: R. i) @. D1 T) Y
  -> -2   
, `# T/ L) _' {* imysql> select round(1.58);   
% B; }6 p2 i: T  m0 i  -> 2    + m9 F# ?6 ^" b$ B) ?/ W; G) z% y  l
mysql> select round(1.298, 1);   
- h+ Y% u) ?4 b9 ?  -> 1.3    . j0 B$ b, d  R4 t& e
mysql> select round(1.298, 0);    % [3 A: B6 L( ?1 V. \3 x
  -> 1   
+ d; k! `  K  l9 E% ?+ W# m- O; ?
7 L+ r$ w0 d2 j- q3 `0 D3 R) Jexp(n)  ) y; P1 O7 F$ L) J% @) _5 W
返回值e的n次方(自然对数的底)  
8 v! j4 ?2 ~4 u- W5 ~; Qmysql> select exp(2);    3 T- K, L' j/ r% n9 h% g" t( d8 p  _2 m
  -> 7.389056   
$ |/ \) l( q" omysql> select exp(-2);   
! T+ y- e6 M5 C8 v  -> 0.135335   
: e6 B$ z; a4 g
! v8 K6 f$ Q: a( J# U9 z+ \log(n)  ' K6 J( B2 U& i7 }
返回n的自然对数  
$ \- u! B3 f% o9 d% s1 {mysql> select log(2);    " v: G. R' A6 E% B
  -> 0.693147   
  u! M% |+ H* W/ o+ o. x! `mysql> select log(-2);    ' i& ]# w  x1 Z( M) f: {& p4 {5 O
  -> null   
% _0 p6 S, ?, ^- R, I% ^ 5 [1 s& ]7 o! Y( m9 Q7 z  L! V
log10(n)  7 }0 z" x1 c6 T$ ]. u
返回n以10为底的对数  : S* y: B! b4 E! T
mysql> select log10(2);    / k8 K$ `& A. ^
  -> 0.301030    ! r& _; L( s. y0 x7 o* p
mysql> select log10(100);   
7 E9 ?3 p+ \' j, f. z, }8 V  -> 2.000000    / R( t; y( B, }+ j% N
mysql> select log10(-100);   
2 k- J. K, c" @! V  Y  -> null    $ h% x# A  s- k3 h+ `1 l, s

& Q! G! q$ Q/ ?2 E/ n% Y0 epow(x,y)   
6 A# l. z* w6 Spower(x,y)    8 n+ F7 E; U/ v5 q
 返回值x的y次幂  % K: e( R# n7 H* A+ Y
mysql> select pow(2,2);    - \$ q$ S2 ~8 t8 D5 Q; V
  -> 4.000000    5 i- Z3 t- Z4 b( u% }
mysql> select pow(2,-2);   
; A8 V9 t& |1 S% A- Z% N  -> 0.250000  
5 y2 u* T: p2 S6 S  t
1 P0 V  z, I0 O/ h* H* y# a7 `sqrt(n)  $ J5 \( I/ y" q0 @" n6 L* m7 p
 返回非负数n的平方根  
8 N2 S0 ^2 P) _$ M$ H2 b' nmysql> select sqrt(4);    2 ^2 Y- b9 k3 b( y/ [3 a4 y* i" O
  -> 2.000000    , r& p0 g0 ?0 P
mysql> select sqrt(20);    2 @( V" S$ h+ d" v  m
  -> 4.472136   
% F% v+ t: K6 Q% j
0 V: t6 f& R+ Z" x8 y7 I4 bpi()    6 [- J4 u( V4 |: \- O4 ^2 V  H
 返回圆周率   
* w. O1 o" t- n1 i, Kmysql> select pi();   
5 f' ~2 r& w$ v9 `  -> 3.141593   
7 F/ h3 b& Z. ?( y ' ~1 R' F+ \& ]# L
cos(n)  
$ _2 U0 k! c* z) Y+ }* E 返回n的余弦值  
# `/ b! v. R$ g+ p# ]! gmysql> select cos(pi());  ) ?, ~/ q8 t3 C
  -> -1.000000    , _  }5 U& l- t1 a5 [+ h- J' l
3 X# |, u: `) A. o
sin(n)  . @. i# i; c" N9 H& c
 返回n的正弦值   ' p$ z' S; i9 c; y
mysql> select sin(pi());    / g2 A9 B+ f. m  u
  -> 0.000000    6 I) M% W' S+ i
1 F2 X* Q: Y% Z0 Y
tan(n)  
0 d2 W# n9 r# l% l返回n的正切值  
0 i: T4 L5 e1 J+ bmysql> select tan(pi()+1);   
7 L! J) U: V  @" Y6 d  -> 1.557408    ' D9 [8 H! x5 l0 j

; p/ N% S5 I4 P/ q2 Y# z1 Zacos(n)  3 ?9 F  u) ]7 f& m3 h, k
 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  
1 G- F! V  x$ \1 b% ^- Emysql> select acos(1);    % J9 o7 Z5 |0 s( l3 Y: Y4 S+ L
  -> 0.000000    4 S" Y3 V# N" C3 {: o/ @  D
mysql> select acos(1.0001);   
( Y0 ?/ h+ f; \# K0 f, t7 v  -> null    ! P3 j1 E, |3 K* n
mysql> select acos(0);   
+ X0 j" i1 }% F  -> 1.570796   
. M: n- {& z' o$ S5 `$ T
8 s4 p6 D4 X% pasin(n)  0 }% P0 W+ I7 n% @
返回n反正弦值  ( `7 S7 \2 P0 b* C  c% {
mysql> select asin(0.2);   
  B# L, b# n  |% J: f9 L3 H3 X  -> 0.201358    0 r2 `& Y7 D3 u" G+ d2 ?
mysql> select asin('foo');    / ?4 D. S" ?3 M' A9 }/ u0 i
  -> 0.000000   
& v2 _5 B  Q5 X5 e
& e) K$ q  j0 D/ @atan(n)  
1 @5 ?/ b9 }! z5 T; u" q0 N# e返回n的反正切值  # T" _: `/ Y% O# `) ]. O  c
mysql> select atan(2);    2 L: K4 e$ |* r# S% T$ t7 n
  -> 1.107149   
; l+ d" Q9 A7 g& p! @+ K  L$ Dmysql> select atan(-2);    ' A9 Z: l% B& S7 {) e
  -> -1.107149    5 [! c/ i* h3 {. I' B/ a$ W
atan2(x,y)   
' Y: h+ L, z- c, ` 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  6 l1 C- Z) H# {3 G$ g
mysql> select atan(-2,2);    1 N5 g3 d) u0 n) I
  -> -0.785398    . o  w+ W/ H3 b* `
mysql> select atan(pi(),0);   
' Q, b# ]! v5 E2 k$ Y6 t8 k! |2 t  -> 1.570796   
* S: E; N& ]1 }5 \
5 [% t8 Q+ j7 k( _cot(n)  
2 M$ {+ i0 C$ t: s9 j1 p* _返回x的余切  
3 O9 E( Z7 e# }2 ]  G% ^9 @- s$ h8 amysql> select cot(12);   
/ W* |* M$ _" n6 m& |* ^. |) |  -> -1.57267341    ; _4 _& }; @1 A# W0 G9 w
mysql> select cot(0);    3 M8 s9 U" D. J% ^# u
  -> null    # e1 i% F$ A9 n0 u; e

5 W0 Z7 h* W/ T" e$ Z. ]rand()  
1 ~9 t! Z2 z% f6 Krand(n)    8 f; h- T3 C6 ]( U
返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值) 4 ]& `0 ?' Z& H0 @$ U
( L! T: Q1 A* n4 |2 [  U* h
mysql> select rand();   
+ \7 ?$ P, t$ w! a* P  -> 0.5925    - \: Q2 E* p  x
mysql> select rand(20);   
' }6 T2 n0 f5 O* Q( m$ p: M  -> 0.1811   
% p. o% m7 P! o3 Q" Hmysql> select rand(20);    ( |9 C; X1 V, q
  -> 0.1811   
1 o& U# Q$ f# e! Q- t. cmysql> select rand();   
' z# q3 o3 f6 F+ a' E  -> 0.2079   
* P! L( N; }! K2 J1 i; Gmysql> select rand();   
- \8 K* K6 }9 h  I  -> 0.7888    : ^4 g* f! _+ g4 N
" Q/ e4 l; L* f* {. R6 v
degrees(n)  3 S# X$ ~9 n- ?# f4 m
把n从弧度变换为角度并返回  6 h8 g" p6 t$ z9 w
mysql> select degrees(pi());    ' ?: @( S; _# `! k
  -> 180.000000   
3 L0 Z$ {. I9 S* x $ V& P. Q1 \5 ?% @2 o5 e2 s
radians(n)   M& x+ j* l* c- I- Y0 R4 e2 l
把n从角度变换为弧度并返回   
# f" x2 _5 g$ D, Smysql> select radians(90);    # f0 L( m/ W1 X0 M& I
  -> 1.570796   
( @! h! I" J* [- c7 |. L3 d/ R/ C- L1 Z9 F& ?0 ]
truncate(n,d)    " S3 I0 S  |/ f; [
保留数字n的d位小数并返回  
5 c8 H/ u" E6 y) ^mysql> select truncate(1.223,1);    ' t! L" ]/ L7 A; R" O( t( X. ?
  -> 1.2   
, r. R8 _$ i# t) p. F+ Mmysql> select truncate(1.999,1);    9 z3 |& o/ w- A& v; M( `, r
  -> 1.9   
5 d+ Q3 x7 B' ^mysql> select truncate(1.999,0);   
* m- Z5 |9 v& |  n7 S  -> 1   
8 K6 `' R& Y; ]7 m' \/ |( [- `, ^( l 4 z$ F: I: X! b; N& o5 w& u
least(x,y,...)   
' f3 F7 W, f3 q! ]# ^- F返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
0 q5 y4 b$ i! {# u. F6 Vmysql> select least(2,0);   
* @9 G- n/ A$ K$ Z2 r  -> 0    " `% {' z) i5 M( X& ]" A+ E# @3 L
mysql> select least(34.0,3.0,5.0,767.0);   
% G+ ?) T- P- z5 i$ f2 _* Z6 b5 o2 }  -> 3.0   
5 r) I) ?- O4 B0 Fmysql> select least("b","a","c");    : n# |' P& e( y& N
  -> "a"    9 e8 ]1 G) }  z) S2 ]  @2 s6 V

! c' h  P$ @2 g, m4 e" D( egreatest(x,y,...)   
' y7 c0 v3 O; m6 x返回最大值(其余同least())  + p( t7 G; |/ o  s1 [6 C% V
mysql> select greatest(2,0);    : C; x8 x0 {" R4 Q; J0 X
  -> 2   
. w' D+ S# A( M# ?( }. e) Wmysql> select greatest(34.0,3.0,5.0,767.0);    % _% W/ z$ I$ O) V# s) \9 `/ G
  -> 767.0   
# ]3 D, Y  l: B% u" C1 e/ P. ?mysql> select greatest("b","a","c");    8 X/ M7 R  \; c9 [
  -> "c"     ; s( C& W9 D9 S

# g! ?% P9 {! y" d3、时期时间函数
3 g% S/ l: O) b: hdayofweek(date)   
; [: O2 t9 _0 J7 K返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
% e/ h; I! [" t1 m; pmysql> select dayofweek('1998-02-03');    ; Z5 g, n' ^* C# ~( Y
  -> 3    * a5 a9 X8 c/ H: Q# v: t$ m5 C

2 n& p5 X$ T, ]1 U: s( j0 F. d: a+ l# Lweekday(date)   
, B, r. M5 @% U/ F& X, N返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 3 @" G6 ~' o3 @( U2 q3 ]
  
. z' w# E+ w( j7 Q8 L$ z5 p  Lmysql> select weekday('1997-10-04 22:23:00');    9 }0 P3 {" ^/ V$ B
  -> 5   
/ o  }7 M+ h/ ]2 `. T/ V8 wmysql> select weekday('1997-11-05');   
3 C9 q6 r  ~9 \  -> 2    + ?% M/ N+ P; R; ]2 _% D

  l' I" U0 g/ ~dayofmonth(date)    + u4 ~4 }: G' M7 h& U! r  D' D
返回date是一月中的第几日(在1到31范围内)   
9 Y2 i' R+ @% Z/ z# [. S$ fmysql> select dayofmonth('1998-02-03');    2 ]4 E3 M% U* U1 _3 j. w6 i
  -> 3   
4 B$ _/ I$ U  i( n
. m+ u, y& C0 Y  X4 l# {0 g3 S) Jdayofyear(date)   
! E: E3 O! I- T# P* f返回date是一年中的第几日(在1到366范围内)   
( c: _; L/ E; g: k: dmysql> select dayofyear('1998-02-03');    0 S  [$ e. R2 d0 @( O9 y: u4 C
  -> 34    9 I; Q; ?) H/ ~- q. x
( f8 ?* J. N! _8 _* f; a
month(date)    % K2 P+ ^) [. A7 W
返回date中的月份数值   
" q- X% e) G% K6 hmysql> select month('1998-02-03');    & c% E" z9 M5 c7 ]7 z7 y
  -> 2    $ K; Q* }* L- K- X3 g) ]3 c
2 p6 s! n+ L: S7 {# v: R/ f0 `
dayname(date)   
0 V9 q0 L$ r7 i: N- U返回date是星期几(按英文名返回)  ; q! f: A& T6 ?% W4 e& d
mysql> select dayname("1998-02-05");    9 F  q( w6 J6 x8 W: s: _/ i
  -> 'thursday'    ; f" d; X* d* ~( @9 ]! q/ ~
7 m$ s6 ~- v1 T" d( c
monthname(date)    $ j& P1 F& O% B( n
返回date是几月(按英文名返回)  
1 V* V& }' j% _3 c! Cmysql> select monthname("1998-02-05");   
! C* U" y0 Q- L; c  -> 'february'   
* ?8 t2 j: v5 M
( J8 ]/ B' D1 b7 Y$ c7 m6 R- O3 Y/ vquarter(date)    " F; y  M' b! ~$ _& \
返回date是一年的第几个季度   
/ r. r- K" I) f4 t; @mysql> select quarter('98-04-01');   
% v% I: k/ o' i% f; M. h+ X  -> 2    # K1 T' K! V  O6 x- J
( S( J! |; {& Y! {/ M) I
week(date,first)   
, [8 X8 z/ F( O# n# r返回date是一年的第几周(first默认值0,first取值1表示周一是6 T' @* O" m3 P0 T  f
周的开始,0从周日开始)  
0 n! `5 J5 s# g, H; omysql> select week('1998-02-20');   
- }' l. d- G/ U* n  -> 7    * K. I+ e9 l( a3 o7 p% {' c
mysql> select week('1998-02-20',0);    . q, u3 C; T9 Q$ I
  -> 7    2 U, A. F( D4 D# P7 U- b, m( |
mysql> select week('1998-02-20',1);    # z5 P% ?8 A( P! s) C; L9 w. N4 H
  -> 8   
4 |) V! M! `- R' |2 r, b" k ; z+ @0 o* ]; t
year(date)   
- a0 O0 @& M* I) R. l4 {; S返回date的年份(范围在1000到9999)   
2 M& F, N8 a! I  d& q2 b* }! Wmysql> select year('98-02-03');    % f+ k3 s3 G- w$ E
  -> 1998   
& t/ x7 l* p0 X1 t$ n2 @$ {' m% t7 R1 v
( ?; W7 @. U7 B; ]+ Q+ Dhour(time)    ! E& v: |4 O, O  b" p& w7 s+ Y, U
返回time的小时数(范围是0到23)   6 g2 R! i8 E  Q- y. v7 b) f+ L
mysql> select hour('10:05:03');   
3 N0 k$ X9 G! g  -> 10   
0 X5 x9 k+ B8 A% o: i
) A7 x5 f  ~: }' Q4 q% A6 Tminute(time)    $ [7 M2 g7 z% e  l* y! Y  A
返回time的分钟数(范围是0到59)    ; _, _, I# i. u: i* m
mysql> select minute('98-02-03 10:05:03');   
, u1 k$ k0 H, k+ m: n  |  -> 5    ; v. G, q/ j3 Q% C5 M6 a
% ?( C4 k, }- V- r
second(time)    ) [2 {. L  j% g' G3 s: m8 j
返回time的秒数(范围是0到59)   $ y) U+ O3 \, A# h1 R' ~
mysql> select second('10:05:03');   
) m% G8 _6 @* T# [' J  -> 3   
/ n* d( {: P+ L+ |# x) n- ^. D 3 n3 e, h/ O/ o2 I  g
period_add(p,n)    7 ~' r8 D! E0 `5 _/ n& t4 h
增加n个月到时期p并返回(p的格式yymm或yyyymm)   
  D& T3 X1 G3 F3 M5 H6 omysql> select period_add(9801,2);   
' o7 ?6 ~! u! Z/ x; c! N' _* L. a  -> 199803    , N1 c, v0 W' P+ }. c1 J; U
+ @/ x7 l7 i2 s/ w
period_diff(p1,p2)   
2 y; U4 A4 k7 G+ X返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  
" V# h1 A7 t( ?+ T5 _% G0 jmysql> select period_diff(9802,199703);   
9 a, f  F% j- K: Z5 N  -> 11    % V9 _2 Y! H& D+ ?# `8 n$ p1 x
/ z+ @6 i( C, o& _# o  u7 N
date_add(date,interval expr type)  
8 [9 i* W$ O. s; A1 ^# l) e4 E& udate_sub(date,interval expr type)   
# ~$ ]4 V& V, F# Q- S6 tadddate(date,interval expr type)   
) y) B1 B" ?) u6 ~  m% lsubdate(date,interval expr type)  
- {9 {; W" v9 r对日期时间进行加减法运算  , H1 Q) q1 |  j, u% h
(adddate()和subdate()是date_add()和date_sub()的同义词,也% _/ J# Z& R# w% s5 c" Y" W2 h! J. M
可以用运算符+和-而不是函数  
* d7 q' z" M! `; h4 l% N5 xdate是一个datetime或date值,expr对date进行加减法的一个表& k' Q% c2 D& [' G
达式字符串type指明表达式expr应该如何被解释  . L" V* ]3 U) l$ W: a5 c
 [type值 含义 期望的expr格式]:  " n) U2 s! I! a0 s0 _
 second 秒 seconds   
2 m" a  a/ O* l minute 分钟 minutes   
% i" {* w& e( f, O9 I- h hour 时间 hours    ( |" {( e/ V1 `2 Q$ r
 day 天 days    2 s) J" @5 c9 M9 l
 month 月 months   
4 H- n; N0 z8 V: h6 a% m  l& _ year 年 years   
! ~0 i3 |7 a5 K; C minute_second 分钟和秒 "minutes:seconds"   
  [; y, {* q/ K# n- ?' s2 Y+ h hour_minute 小时和分钟 "hours:minutes"    ! S, K: c: C. I* a! t! t* E
 day_hour 天和小时 "days hours"    9 T# j4 ~3 O- _. D6 v) f
 year_month 年和月 "years-months"   
( _/ v! x# F* d+ u: @& m hour_second 小时, 分钟, "hours:minutes:seconds"   
5 f  d9 ?# V3 H: \ day_minute 天, 小时, 分钟 "days hours:minutes"   
7 ?9 C, X0 s; S: U$ Q. @8 q day_second 天, 小时, 分钟, 秒 "days
1 Z. G6 p) [' s/ R9 h! h; E; \0 Khours:minutes:seconds" * l6 _$ ^. [( ]3 v3 m, e' q
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个0 Q: d" D- c. c" A( x& z
date值,否则结果是一个datetime值)  
8 l5 @+ f  d' @% R8 Z3 e 如果type关键词不完整,则mysql从右端取值,day_second因为缺
6 a9 B, R2 R+ @9 b# F% h/ U- n! T少小时分钟等于minute_second)  
! K8 Z8 t" A, K: \) X% L+ o$ ` 如果增加month、year_month或year,天数大于结果月份的最大天
' K, X- L% A" S% D8 y' T! H数则使用最大天数)    ' p% e* N8 A% ~  x/ @
mysql> select "1997-12-31 23:59:59" + interval 1 second;  
$ u/ g$ f6 \3 K7 u7 L4 A; H& Z
6 A  x! y( J# I1 ~9 V( k  -> 1998-01-01 00:00:00    5 y$ v  r0 u) I3 w5 `% @
mysql> select interval 1 day + "1997-12-31";   
) y6 @* Y% M& T  -> 1998-01-01   
& f7 o& i0 h, r! s7 z3 _0 Emysql> select "1998-01-01" - interval 1 second;    4 a; P+ z! d/ ?; i
  -> 1997-12-31 23:59:59    , z. R6 K, S# @4 }2 q
mysql> select date_add("1997-12-31 23:59:59",interval 1
# `+ j+ L/ u; U9 qsecond);   
1 U9 ]9 O, l7 l# p7 `) t( R2 y  -> 1998-01-01 00:00:00   
& p3 y+ J+ Z$ k( hmysql> select date_add("1997-12-31 23:59:59",interval 1
, e/ ?! [6 R; ]( fday);   
2 |# z' Y4 w+ g9 E  -> 1998-01-01 23:59:59   
' l% Z8 u% W' A  Z% X: o1 G; vmysql> select date_add("1997-12-31 23:59:59",interval, z6 Y- U  }+ P5 z4 {
"1:1" minute_second);   
3 f3 s. q  c& O, ]+ q. v" I  -> 1998-01-01 00:01:00    + u  m1 S. k0 l( q& k0 J
mysql> select date_sub("1998-01-01 00:00:00",interval "1# P- D# N9 }9 k1 C. a
1:1:1" day_second);    , X. |+ e( w! j
  -> 1997-12-30 22:58:59   
2 Z4 C& n5 |# m( `: O" J  jmysql> select date_add("1998-01-01 00:00:00", interval "-1- ?8 A! A' _* \$ K# M. I' j' ~0 h
10" day_hour);  
! X- g8 v+ w8 m# K  -> 1997-12-30 14:00:00   
9 w- v: V/ F. U* ^1 _2 Imysql> select date_sub("1998-01-02", interval 31 day);    , R' _: I. Z" Y1 a/ W, i; q
  -> 1997-12-02    - N9 y; p+ v4 m  N2 H3 b3 m! w
mysql> select extract(year from "1999-07-02");    4 j3 Y3 t$ I6 W8 K
  -> 1999    # ~  B* |0 J9 {7 }7 g
mysql> select extract(year_month from "1999-07-02! i1 _/ N( [8 n1 H0 a! y
01:02:03");   
; H- ]7 Z  i2 ~" ]  -> 199907    & j7 ]( m9 W0 D* m4 k
mysql> select extract(day_minute from "1999-07-02; m. G% N6 y# z0 J
01:02:03");   
) |6 ?" z  O$ E& L4 Z  -> 20102   
3 C" C2 C2 U; d 0 Z. V( |$ E" R& q% h3 M
to_days(date)   
9 ~- F8 u+ `, w+ J/ W0 F3 F返回日期date是西元0年至今多少天(不计算1582年以前)  
2 M3 g8 x# H  g# r3 c$ Nmysql> select to_days(950501);    4 v" j: z1 ]* I* H" C4 \( m
  -> 728779   
9 O4 [, |# ^3 P4 `, P) S/ P" U$ ymysql> select to_days('1997-10-07');   
# y  G0 \* V3 K, \/ v5 B) [  -> 729669    ( R; ?" T1 Y! Y, H1 y( w# F$ u5 ^

- _% s4 X# X6 o1 P" L! _from_days(n)    - |$ m7 q. \! `" w; S& c
 给出西元0年至今多少天返回date值(不计算1582年以前)   
4 p  B4 Z7 o* v, ], Gmysql> select from_days(729669);    6 M3 ?2 d+ j6 ?* Z& W' Q4 g! v/ E
  -> '1997-10-07'   
7 ^7 T/ a: E2 y- f$ ^' F: _" Z + C1 |. e. O; N$ d4 p
date_format(date,format)    2 r, H) O; m8 |6 K( p
 根据format字符串格式化date值  
7 I  i$ a7 @* Z (在format字符串中可用标志符:  
9 |  I3 F9 ]0 |  u/ W %m 月名字(january……december)   
1 |( c4 m3 \' e9 H% T. H) t# l' u %w 星期名字(sunday……saturday)    5 E5 c  |3 ~4 d* Y( U
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)   
' Z/ T4 H: D6 S( M9 P %y 年, 数字, 4 位    6 w) D. g6 b( t- i# C7 a7 y& `
 %y 年, 数字, 2 位    2 K; s; U& T. g$ @
 %a 缩写的星期名字(sun……sat)   
5 t1 c5 o9 j8 x' Y) A %d 月份中的天数, 数字(00……31)    ; h6 _& U1 [' g4 E' a6 M9 n4 ?
 %e 月份中的天数, 数字(0……31)   
( |& u! f* Z: g& G' l %m 月, 数字(01……12)    : D8 o6 r7 g% D. W% k! s# g
 %c 月, 数字(1……12)   
: o/ @/ C  J  b% Y %b 缩写的月份名字(jan……dec)   
' Z- d# x4 h  ?6 Z. ]8 Q. u* d0 | %j 一年中的天数(001……366)   
8 J! }" K6 h% m# q( d, z, c& | %h 小时(00……23)   
' B. R6 z! v  v2 l# b7 m %k 小时(0……23)   
) P+ {8 E1 S5 ~+ s# x  R %h 小时(01……12)   
8 A; y. L; f: {3 g$ o4 C; p %i 小时(01……12)    0 ?* J/ B! u0 E* ~* h8 x
 %l 小时(1……12)    ' D/ |6 S: |" Q) p
 %i 分钟, 数字(00……59)    - {- H; [1 l0 x' x  v% H, Z) D
 %r 时间,12 小时(hh:mm:ss [ap]m)   
" {! J2 I" O8 Q. D" _$ U %t 时间,24 小时(hh:mm:ss)   
# C( p1 W3 _' y: X$ C, f %s 秒(00……59)   
# s  f/ y; f3 u %s 秒(00……59)    + S% v  S+ r7 a
 %p am或pm    " i' ~! ?; m5 z! E6 P( G0 a. K* x' X
 %w 一个星期中的天数(0=sunday ……6=saturday )      j; F- G# |" c; q; r
 %u 星期(0……52), 这里星期天是星期的第一天    # g: H6 E$ J- v: d' P2 e' F4 J
 %u 星期(0……52), 这里星期一是星期的第一天   
8 P8 n1 V. X2 Y# T %% 字符% )  
- W) z5 @& h; x* Q/ K7 {0 jmysql> select date_format('1997-10-04 22:23:00','%w %m %
7 k' c' t; g; p0 yy');    5 u. i9 U( ^8 G$ x/ p- C
  -> 'saturday october 1997'   
; t6 k. o. H5 O  ?mysql> select date_format('1997-10-04 22:23:00','%h:%i:%( y$ i) `9 b$ F9 E. h: F$ {, ]
s');   
% ~2 `# w3 O. e5 I6 k  -> '22:23:00'    / V$ Y: e, D! V6 ^' M$ i2 A
mysql> select date_format('1997-10-04 22:23:00','%d %y %a  W1 x2 x* B5 W! F0 Z
%d %m %b %j');   
9 }6 S8 E( g  Y6 @7 b  -> '4th 97 sat 04 10 oct 277'   
- x- D  @9 O/ x4 x/ h+ M( Nmysql> select date_format('1997-10-04 22:23:00','%h %k %i
+ D- B7 c7 e. Q. }% C* U& p9 R%r %t %s %w');    8 c% ]+ x' K" B- x5 q* c/ m- |4 T
  -> '22 22 10 10:23:00 pm 22:23:00 00 6'    : N. m4 L4 u, \4 a# ]! \

1 {+ w; ~1 K3 I) s, ^4 ^+ Ftime_format(time,format)  ' W3 X( o: ]1 B+ @
 和date_format()类似,但time_format只处理小时、分钟和秒(其
8 B6 a7 n' \6 A) i5 k  P; Y) P余符号产生一个null值或0)  ; x' V4 {7 e0 v, d( o* G! a

2 |  }& \! T$ J4 K2 W. Mcurdate()     
6 r1 D; D" j2 V& x' Pcurrent_date()  
' ?2 E( ~2 u2 [. \ 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所+ p  n! H2 l- K# t5 E( [( v  z( n) }
处上下文是字符串或数字)    3 X: G# ]& P3 Z7 c
mysql> select curdate();   
1 w" A# l5 U+ D9 F  -> '1997-12-15'    1 |7 M/ n, w$ C  c% S8 s
mysql> select curdate() + 0;   
* Z& p' {2 V$ g. A% A3 S  -> 19971215   
1 {+ H$ s) v' s, K1 U4 L: J/ _, i 2 Q. I3 W6 X7 J
curtime()    # Q1 o4 l5 W6 _& R4 k
current_time()  
  c  d8 J/ G+ q, v9 D2 p6 ?: N 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上% T- {0 E6 t+ |  A# O* X  G- D. @: s
下文是字符串或数字)      
6 J. i; D& d9 Rmysql> select curtime();   
7 u* |3 G+ i: m" J  -> '23:50:26'   
: m% e6 w* C+ g, M) R! Lmysql> select curtime() + 0;   
& W% M9 b$ V" Y  -> 235026    5 _' N% b) @: n; x6 E, p
) y+ X6 |0 C- s4 r5 j' x! d
now()    . Q3 J+ O4 P3 Y# E6 o7 \3 F+ P# S
sysdate()    
6 }9 `$ Y' C/ m0 W' Z* {current_timestamp()  
* g8 Q0 C0 u6 u. n1 ]+ i: ~ 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
$ T9 C3 m0 _) ?9 Y时间(根据返回值所处上下文是字符串或数字)     
6 K5 S9 f2 }( B# jmysql> select now();    - P- Z3 L; @) H. o* k) s
  -> '1997-12-15 23:50:26'   
' b6 p" f& }4 Z$ P6 {7 tmysql> select now() + 0;    / e6 h( S8 a3 s# N5 W
  -> 19971215235026    4 |% g5 G3 C5 y. E5 o3 L0 E' Y
6 a+ U+ k6 u+ b
unix_timestamp()   
" [' u6 E/ _: E% A: P5 Munix_timestamp(date)    1 V# P# N/ C: h/ b
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒" c; n. {* Y8 o1 I, D
数,date默认值为当前时间)  
) u; i9 C% t. imysql> select unix_timestamp();   
" L: w) Y* m0 t$ b, s9 L! o  -> 882226357   
8 g, w$ ^  ?: x/ lmysql> select unix_timestamp('1997-10-04 22:23:00');    % ^; o: ^+ g% f
  -> 875996580    2 k! r$ ~4 D2 r) `
) l- H9 s# m9 J0 n0 J$ B
from_unixtime(unix_timestamp)    + b! s$ l. _8 a8 p0 i
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的
8 u' \8 ?" `" N值(根据返回值所处上下文是字符串或数字)     
" Q# H" l$ v2 R# n$ K9 ?+ d. Mmysql> select from_unixtime(875996580);    ; \" W: o9 I& p- |$ T  M
  -> '1997-10-04 22:23:00'   
" M! _; N# o+ a9 h0 L2 tmysql> select from_unixtime(875996580) + 0;    & b; V2 M1 d2 ?0 ^! x3 z
  -> 19971004222300    2 X) a; \, L# @, G; y
5 U1 ?. r8 @1 o& K; [& @4 p( F, D& c
from_unixtime(unix_timestamp,format)    
$ y! a% z- B; z- v$ }6 ]2 P以format字符串格式返回时间戳的值  
9 F& l$ o8 Q! ?/ h2 b3 ]mysql> select from_unixtime(unix_timestamp(),'%y %d %m %# C0 m# @/ Y7 c# @, R4 N
h:%i:%s %x');   
& K: {6 u0 K5 `1 _( ?: }  -> '1997 23rd december 03:43:30 x'    , v9 ^( ?- N! g6 A2 W! d/ T6 o

% e) U* k$ o9 i3 Qsec_to_time(seconds)   
2 y% x# w  {+ ]4 a$ K& {& C+ f以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
1 G7 Y! ]1 Z4 i6 A0 Tmysql> select sec_to_time(2378);   
" b: H% ?7 ^$ v  -> '00:39:38'    + t3 r; j8 c2 ?$ w
mysql> select sec_to_time(2378) + 0;   
6 f. L( N) k! G( b  -> 3938   
  e4 t% d$ B  S9 i. F7 `! e 4 \0 v) n8 A6 u0 ]2 l
time_to_sec(time)    ! f! S" G  |( K- B) i
返回time值有多少秒   
; s& O, p( s9 _5 H1 }4 n! I" `/ wmysql> select time_to_sec('22:23:00');   
2 q. F: Z& k$ W! |+ g  -> 80580   
. S) T) H( k' u9 N. Y" smysql> select time_to_sec('00:39:38');   
/ R2 ~+ x- a- ^: T  -> 2378 $ {9 Z' B7 T1 Q, O+ }0 }

1 ?, |# O8 s7 |2 F& R2 f0 _转换函数
' U/ J1 a' W" Y8 ^8 n1 K* ^% j% [, C" {cast
* [1 k4 w9 o1 A& C' n- R! O0 h用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]7 @9 p3 P- R5 J( `' k
实例:select cast(a as unsigned) as b from cardserver where order by b desc;5 E' u. X% o1 t9 T/ U
convert:+ z7 Z  K0 J/ H; t9 K: F7 f
用法:convert(字段,数据类型)
, _  ]7 j7 |3 j9 o4 b实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

+ O0 D% O3 Q5 m" O8 R, Z3 Q, C& X
回复

使用道具 举报

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

本版积分规则

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