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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
1、字符串函数1 z. A' V; [( _" d$ u. z' V
ascii(str)   
  K/ J! T% Z4 \. h返回字符串str的第一个字符的ascii值(str是空串时返回0)  & b- F2 O' t# }) g4 M, f
mysql> select ascii('2');  
' s5 B. {- D/ U  -> 50  4 Y& n% `( D6 ~# U) z/ \% E- L3 H
mysql> select ascii(2);  
8 S. J5 b2 n2 p2 r. e  -> 50  
" w1 D. j* K7 c: U, W2 ]' |mysql> select ascii('dete');  
; U7 l6 [; T( o0 B# C! C  -> 100

% _) ~" R1 l4 }" _0 m3 hord(str)   
& t' t) ?7 b$ c: A  [: y7 D# o如果字符串str句首是单字节返回与ascii()函数返回的相同值。% ^9 h  j; O5 @# S

; ~' b+ u6 V+ L3 J( D2 w9 A% o& K如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  
& X/ d, S+ {" T* f! Hmysql> select ord('2');  
& b# ^( ~1 Z# _' }2 }6 G* a+ D+ ]  -> 50  
  y3 r" b$ {& n3 L% A/ i   
* R! v5 Q7 Z* c; q' Lconv(n,from_base,to_base)   
& b& Y( Z5 r/ @1 I( y对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
2 T  v( o; v5 B  wmysql> select conv("a",16,2);  . A7 i% e% F& u7 A: ~
  -> '1010'
; C. G5 z! O% h4 J6 [/ Gmysql> select conv("6e",18,8);  
. G$ p) e  ~" E& A" k) e; }  -> '172' 0 v+ G# _3 P8 m
mysql> select conv(-17,10,-18);  
) i7 A6 S2 l' Y( \  -> '-h' . h9 x$ F% f* b1 m1 j) K9 W8 r
mysql> select conv(10+"10"+'10'+0xa,10,10);  : g, x- L( m& v$ `/ B- R" f" \& b2 u
  -> '40'
8 G; t7 c- b" r4 q: Z3 ^   : C* n5 S( l# u' x
bin(n)   7 c7 D+ B) @/ i' q7 r
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  $ m% t" B, {0 J* F1 h
mysql> select bin(12);  
: v0 V9 [' w5 A- T  -> '1100'
5 [+ J6 }2 n6 Q7 N4 {5 \ $ `3 b3 R  \) l2 }7 I- u
oct(n)   , z# w; P% }/ m5 F
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  ; X- F$ {& x0 E
mysql> select oct(12);  - `4 l- ?, G4 C5 w6 V  b* S
  -> '14' 5 F; x9 {9 l; G
   
8 l! n2 O- h2 Y6 ^. {hex(n)   * o! v% ]0 |! e9 i; k' i# p
把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  
4 F5 p; ?3 i0 A* U' e+ ]7 y& ~: @mysql> select hex(255);  ; H: j4 n) |: n4 j& G$ m
  -> 'ff' . N& j1 h1 B* }- D/ i
   
% v* q% M; l" A; achar(n,...)   : R% L5 @" b9 c: w
返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   
" m0 o+ i, Z% M8 \" m0 V: imysql> select char(77,121,83,81,'76');  # k4 k& k3 d/ v: A
  -> 'mysql'
) P5 w/ Q+ {! u& jmysql> select char(77,77.3,'77.3');    y3 M. l# i6 x4 g
  -> 'mmm' ! v& C6 |) H( ^9 V! T
   
0 T0 m7 w/ Z" z: j# i& Bconcat(str1,str2,...)  
+ }8 r3 k; f5 l9 P$ P' v9 |3 }把参数连成一个长字符串并返回(任何参数是null时返回null)  
# A9 Z- P% r& n0 b( m: s, w" M' Cmysql> select concat('my', 's', 'ql');  : L: A( c0 q8 i  ]' x
  -> 'mysql'
* ?9 ~/ z% u% W6 U" t7 t/ c* Imysql> select concat('my', null, 'ql');  ( b* A4 A7 d7 Y  ?$ v  J
  -> null " N7 H: [2 e" c+ ]/ u
mysql> select concat(14.3);  * V) M- [% A% t- B! }
  -> '14.3'
$ n* H" P& @& ^0 W; w2 P! [ . z+ ?& ^6 H8 \2 ]+ A6 `$ {
length(str)   - b9 X  ?; l% w9 R, L) o
octet_length(str)  
. N' M2 ~( L! [( ], _char_length(str)  
; b+ w2 Y! R# Q+ ]" x1 Vcharacter_length(str)  
) N; l# {' I0 m) h返回字符串str的长度(对于多字节字符char_length仅计算一次)
" ]: V$ |2 i5 P9 q( Y3 Kmysql> select length('text');  % h0 K' B  O' ?& X  g. g& N
  -> 4  + h. M8 \& c# ~  r2 @' f  N0 l
mysql> select octet_length('text');  ' R9 D4 V  \6 M1 m( v. R; \5 W( h
  -> 4  
- y: n$ ?& H3 L - U. C4 P- ], ?" N# P6 x/ U
locate(substr,str)   6 q8 d, w( S# b4 B; }; e
position(substr in str)   
8 U( [; Q6 q, Q( F( m返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
7 c8 f: f7 Z* T# W, l; F3 J0 tmysql> select locate('bar', 'foobarbar');  
8 y: X# i2 w1 f6 @  c  J, m  -> 4  
. O/ m$ a$ {  mmysql> select locate('xbar', 'foobar');  1 w8 j7 H4 A" S
  -> 0  
0 P: H9 h0 M6 G" M% |  o, f    # y$ S, g# _1 d2 Q* E* @
locate(substr,str,pos) . p5 C! F/ V  s. m( L, J/ L
返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
. E! r7 F' p, E# ]$ ]mysql> select locate('bar', 'foobarbar',5);  $ v2 D- x* J5 }" S- L+ t
  -> 7    v, ]1 |7 V( ?# ^, j
, t) T6 l/ E' t( J
instr(str,substr)   9 ^9 r0 \9 j' w" x4 W( C' F1 `  e0 B
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  % p  X& s1 a5 x( S$ h
mysql> select instr('foobarbar', 'bar');  8 f" `! R  u! c4 s7 y; P( X' ]
  -> 4  * {  ], K8 C% H) A1 V
mysql> select instr('xbar', 'foobar');  
; n1 L# c7 t! e7 ?0 L  -> 0   
, t  r! `( B+ N0 h2 j# B. b) i
( o3 @8 M5 s2 p4 p* c2 B+ Glpad(str,len,padstr)   
  u0 o9 I; l- T9 l, {用字符串padstr填补str左端直到字串长度为len并返回  
# s/ [. ?+ w' Q  n$ O8 Y: r5 Bmysql> select lpad('hi',4,'??');  
. b4 x% a# U1 a0 @9 i7 f! X  P  -> '??hi' 6 b) Z. @5 b  F9 V, w. |4 t
   ; `+ s- L$ _5 B4 U* [) {& s, y1 X
rpad(str,len,padstr)   4 R# E8 Z, f) Z7 ~% T: x6 g
用字符串padstr填补str右端直到字串长度为len并返回  
! }1 P# G' [8 e/ i) E$ n6 z9 Bmysql> select rpad('hi',5,'?');  & ^' Y& q  G& R/ _2 h' ?5 J
  -> 'hi???'
( @$ x6 y; O" i3 a7 M
% _% I# `  K3 y# v! ~9 L# b/ w0 gleft(str,len)   8 [# R# F! J' c  @! w7 A
返回字符串str的左端len个字符  
% [# T# }7 E  W4 W1 v2 |: imysql> select left('foobarbar', 5);  
" e: V5 |0 F( R* e  -> 'fooba' ) Q* Z0 s, O1 W2 V; u

4 `* Q. v: C$ `( b$ J; Dright(str,len)   " _+ w9 G5 h2 X: D5 T8 \
返回字符串str的右端len个字符   # x* U6 y& @: U/ Y  P, f
mysql> select right('foobarbar', 4);  
7 B/ R5 f! E$ z; P, d1 m  -> 'rbar'
# _: |( `1 f& v3 J1 o
+ d8 Y4 G; c: d6 zsubstring(str,pos,len)   2 V2 V9 M; O* l2 k
substring(str from pos for len)   
! P( B$ b4 V% w1 W2 u( emid(str,pos,len)   ( o+ X. Z/ M5 @7 M0 I! f  c7 R0 x& b
返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  + g3 J8 I  s3 c- Y8 p) G# h
  -> 'ratica' ; I; O9 h6 \$ r3 {9 `8 o

6 _/ I4 u9 `* Ksubstring(str,pos)   
  w" Q9 E. v; g5 z7 Xsubstring(str from pos)   
5 i& n$ s9 h4 G; p# I返回字符串str的位置pos起的一个子串  
% T0 J* ^& l6 J, X- X& y" jmysql> select substring('quadratically',5);  ) Z% [/ G: Y7 d) U: ^
  -> 'ratically'
' f9 v/ X& N* ]; `% E& U, @mysql> select substring('foobarbar' from 4);  2 M8 S$ x5 r, }# x, C
  -> 'barbar'
, g( C3 p4 ?  M2 I  L7 _ * j# J& e+ L. I+ t. @: k
substring_index(str,delim,count)   
: g6 M. S* o( x- c返回从字符串str的第count个出现的分隔符delim之后的子串
5 e; J. D: M8 ~$ ]2 ]* w(count为正数时返回左端,否则返回右端子串)  5 C  _& ~% f* g( }8 S' e
mysql> select substring_index('www.mysql.com', '.', 2);  5 g- z& T' a, h/ Y$ p# B  f
  -> 'www.mysql' . a1 M% c$ V7 m* W" J5 P
mysql> select substring_index('www.mysql.com', '.', -2);  
% [, ~9 {/ d. t1 O. E5 B  -> 'mysql.com'
# t+ Z" W% v9 x* \* n0 Q5 M% V4 L . _9 Y' x; U& Q
ltrim(str)   
  @+ d% J: P3 c( ?8 \: H9 k5 [返回删除了左空格的字符串str  
  P/ e% U' Y0 l2 I( U. imysql> select ltrim('  barbar');  
* ]1 f, A4 X# B0 Z% A0 s  -> 'barbar'
9 f* o; ~7 D9 t( q- ]5 }
  n" u9 H8 _0 ]1 Z' ~rtrim(str)   : A5 I! r# K/ U; Q. ?
返回删除了右空格的字符串str  : l$ N; s" ~& D  Y3 f1 A/ Y4 j
mysql> select rtrim('barbar   ');  $ _( D1 |7 a% {' `5 X6 m* l
  -> 'barbar' + T/ B+ h! o+ P$ t( j2 W+ U

: m$ M. t. ^& C; P; m. itrim([[both | leading | trailing] [remstr] from] str)   , R: {( {. S1 B  V% A% _* l- Z
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
! z# N- L; S" y$ Zmysql> select trim('  bar   ');  
, i, V1 B' I! Z5 _4 H8 T  -> 'bar' : Z, k& l/ i' H8 s) q$ M1 A5 C; p
mysql> select trim(leading 'x' from 'xxxbarxxx');  
: O0 n2 I  ]# z, |  X# b  -> 'barxxx' 6 n; g4 v8 o3 d, G! y+ G- C
mysql> select trim(both 'x' from 'xxxbarxxx');  
% ?% E) K/ M7 |4 s" t/ E# E7 k4 M% L  -> 'bar' * p7 |0 q( q) N& U9 f
mysql> select trim(trailing 'xyz' from 'barxxyz');  
: V, \" g; y' K  -> 'barx'
% l1 ?/ v1 s2 \/ u+ N, N6 n+ a4 A4 j* ` 2 s/ F& A. g! O$ w* _7 a$ G
soundex(str)   
" \' n8 J7 D$ `& _返回str的一个同音字符串(听起来“大致相同”字符串有相同的( }4 w1 j' `" r- P# S- W5 b
同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  3 G2 O6 t, d7 c9 o7 A
mysql> select soundex('hello');  
4 \9 N7 l4 Q- G" {* x  -> 'h400'
4 Y) O/ I! V5 D) l5 Dmysql> select soundex('quadratically');  + w$ e* X& ~1 M8 X$ ]3 P
  -> 'q36324'
" j1 }: l: g9 \9 B6 N; L   
1 F" O8 c6 d: s( `8 P6 Q" hspace(n)   
8 C( ?2 z( B# Y' O" c) a6 q返回由n个空格字符组成的一个字符串  
# I& Q/ L7 R; h, ?mysql> select space(6);  
* T! u; c) G0 j( t; w8 L) r4 d  -> '      ' $ S7 \2 v% W) a* q
   + K3 F4 G, D* f( N
replace(str,from_str,to_str)   & |: q8 _/ g1 i& u
用字符串to_str替换字符串str中的子串from_str并返回  
. k9 I1 C5 F! W- Lmysql> select replace('www.mysql.com', 'w', 'ww');  
" z1 q8 i( {( s  -> 'wwwwww.mysql.com' 1 t. v" l0 [1 ~5 x$ u1 O- M. p
% z. J7 Y) q- O
repeat(str,count)     @" w. d5 j3 u0 k4 x8 U
返回由count个字符串str连成的一个字符串(任何参数为null时
# S4 V# f! Q5 K9 m0 L$ X返回null,count<=0时返回一个空字符串)  
& ]/ t  C. g) R! U3 G7 [: R7 [" Wmysql> select repeat('mysql', 3);  
4 Z; W9 o8 X. I8 M/ b  -> 'mysqlmysqlmysql'
4 f: P3 N% O+ ~& W1 ^9 [% M& z& [   
3 b% J5 U2 \  Nreverse(str)   
0 V* A5 E. a2 \* J" G8 o颠倒字符串str的字符顺序并返回  
- x  k4 Y. \9 I$ a1 H  Z% Imysql> select reverse('abc');  , `8 w" c( H0 h- H3 K, Q
  -> 'cba'
6 I8 _' [4 G8 @" g4 p7 x
0 I% K2 T8 A6 J  k! sinsert(str,pos,len,newstr)   " F/ x+ y5 N/ O# V5 R, H; r  Z
把字符串str由位置pos起len个字符长的子串替换为字符串5 S1 ^9 ^0 M8 }2 ~" g
newstr并返回  + z4 h2 l5 v0 ~3 a1 P; a
mysql> select insert('quadratic', 3, 4, 'what');  
- s& L# J# h0 ?6 k& k  I% x  -> 'quwhattic' ) m$ K4 i8 V0 `) g, l' L$ ~
3 O7 l/ A+ s& p3 u& c7 T, H
elt(n,str1,str2,str3,...)   6 E* X" a# M( Y% j: g
返回第n个字符串(n小于1或大于参数个数返回null)  ' W* o9 a4 t. Z  {1 i+ n" V8 ^+ S
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  ' `6 Z2 {/ Z: L/ F7 F: h
  -> 'ej' ! N, O% J; C# z3 q/ u
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  
" U5 C! A# `6 N4 j- i, }* m) A0 \  -> 'foo'
! e) p3 A/ b0 G' q' G9 I
/ S) L6 i8 s0 ~field(str,str1,str2,str3,...)   ( Z' w! ?5 s2 d/ K: o1 u/ n
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
: F/ m1 L1 p6 Y6 W. o7 ^! b+ o& Ymysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
! ~0 E6 h/ K( D( s'foo');  ! `  A$ u" E/ X$ A8 d
  -> 2  
3 M* P3 P7 f, K) @mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
$ w4 P+ u' W$ \% X'foo');  
: e  d' @0 s( v6 ?  -> 0  1 ~' G. P* R* |* X! G& q
; V# w5 o+ e$ U! c0 A' f
find_in_set(str,strlist)   ; X8 k2 I6 l9 z* Y
返回str在字符串集strlist中的序号(任何参数是null则返回
8 ?) U  w. p0 {! B4 O' Rnull,如果str没找到返回0,参数1包含","时工作异常)  
5 `- ]+ ], M' F" Nmysql> select find_in_set('b','a,b,c,d');  
, \# x* r* |' u# h1 Z% w  -> 2  
: {0 Z- J" @5 q3 i. b   
# e" _: A; Z3 z/ `' M. j$ ~make_set(bits,str1,str2,...)  
1 o2 c, j5 v, i4 _. ]4 b: ?把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应3 z, g: w  I- ]8 N" x
位置的字串选入字串集并返回(null串不添加到结果中)  
" F* o% I/ J; y, i9 D( fmysql> select make_set(1,'a','b','c');  
% K+ g( K7 A, L" q! n6 M. l  -> 'a'
+ R9 ]! H5 i8 \' c/ `9 Ymysql> select make_set(1 | 4,'hello','nice','world');  2 a8 P$ E: m) N
  -> 'hello,world'
6 {+ b# y1 B# U5 G; A0 {mysql> select make_set(0,'a','b','c');  2 a1 e6 [3 W* u. S- O* K
  -> '' 6 n6 b3 _1 i6 J. T1 V

+ n$ g) l! w% T' x' c& b0 wexport_set(bits,on,off,[separator,[number_of_bits]])   , B  m0 d' o% _4 O, o
按bits排列字符串集,只有当位等于1时插入字串on,否则插入
6 e! O8 _: ^* m6 }& |off(separator默认值",",number_of_bits参数使用时长度不足补03 E2 [0 U* ~$ {5 G" b+ a
而过长截断)   
( O7 @2 e5 p# y3 h0 `+ i2 bmysql> select export_set(5,'y','n',',',4)  
; ^  s6 x: l: B# H: L1 }6 _  -> y,n,y,n   
6 x$ `9 Q. ]2 p9 P0 E9 [* ^
* o( n% x& T+ q9 I" ~5 R+ H3 F, E7 @lcase(str)  % m0 |) Y0 N+ T: |: L. \
lower(str)   
  e% T8 ?6 H0 y) o7 s( j) B返回小写的字符串str  
+ I9 a: a! B$ N  v& Imysql> select lcase('quadratically');  
: t" E& ~1 F# U) H  m  -> 'quadratically'
7 @: Q/ }: Y$ B: e   / f, Y' X. H( [) s+ i2 e5 L
ucase(str)   
; a/ G; D  j2 ^6 |0 F+ Tupper(str)   - `% g* N9 |6 h5 K/ I
返回大写的字符串str  1 K( j7 R8 B6 _7 d' j- l
mysql> select ucase('quadratically');    d- K8 e' z( r6 h3 l6 D
  -> 'quadratically' # A, ?: H, C4 M. r9 s4 u0 r
( p1 p$ |' m4 N' o; s
load_file(file_name)   
" N' e, j4 y+ p4 H$ e% W. T读入文件并且作为一个字符串返回文件内容(文件无法找到,路径
- a0 Q3 k0 k2 U$ m不完整,没有权限,长度大于max_allowed_packet会返回null)  2 f' |, W5 [- e1 @7 v2 r+ M' d9 F  r
mysql> update table_name set blob_column=load_file
# T1 P! U6 M  Y' H% g8 I("/tmp/picture") where id=1;  + b; T& f. b' _% f$ I0 P- N
/ E% W1 {! Q' A+ j
2、数学函数' I) ]$ i4 C8 W
abs(n)
8 ^7 P- B  y" X: a( ~. N3 u返回n的绝对值  
' F+ J5 U! e" [* V$ {5 b  nmysql> select abs(2);   
/ D6 N& s4 E/ F0 Y8 s  -> 2   
; ]0 Q+ H; |2 n: |8 L' m5 Emysql> select abs(-32);    3 y, M5 Z" w5 v' w
  -> 32    ; D8 v" e/ ]" L; O
   
6 r* {: A  R" M* J* n: vsign(n)  
; ?- Q* F$ `- ]* G' u返回参数的符号(为-1、0或1)  # L' s/ _9 p& D8 b" g: t+ a
mysql> select sign(-32);   
& O$ T& p/ k8 i4 ~  -> -1   
) D  ~' c. o4 y+ |# `4 A3 Fmysql> select sign(0);    % q0 J6 S& u2 E- G2 r7 o
  -> 0   
3 c6 F3 _9 m1 j* t" jmysql> select sign(234);    % K4 P; l* B' g( l
  -> 1   
2 n% ~% _+ N! d: x  V% D) L% ~ 0 r* z+ g  B9 {( D
mod(n,m)   
" p: B4 @0 c/ o+ f! V. I取模运算,返回n被m除的余数(同%操作符)   
1 i; H) b" s$ n  E& n; cmysql> select mod(234, 10);   
: [* f' z9 c. ?2 U) Q  -> 4   
# u  i/ R% y2 x2 c( ^/ Vmysql> select 234 % 10;   
  i/ e* v# |; K) H, j  -> 4    ! F$ H. |9 g$ j: H. d: `% B
mysql> select mod(29,9);    , v, ^& C8 E7 C% w" H' j
  -> 2    # }. }1 F$ d- e7 n, B8 l4 a
& I' [; ]& q  a( ]4 ]. K6 w
floor(n)  
1 X0 F, }8 q+ e+ Q; A8 p+ j返回不大于n的最大整数值  ; G7 S% X/ z* p$ V2 T- A
mysql> select floor(1.23);    " R9 a: h3 o- H1 J8 y3 ^
  -> 1   
5 X* }0 W* E: \2 M/ m% Omysql> select floor(-1.23);    + ^) r  O, V$ y! U: ]
  -> -2   
0 _) j0 `3 E6 g5 e 4 f1 |! [- o) ^  T! u: z  D- H: R
ceiling(n)  $ t$ I. d  M( m* [6 Z
返回不小于n的最小整数值  * |2 i" B7 ^; e! g. {: Y7 O% B$ K: H
mysql> select ceiling(1.23);   
" _# }/ o( C& ~- r; }8 `1 G( t  -> 2   
! Y' o3 P& O- O* Nmysql> select ceiling(-1.23);    2 b( I" u* {. `& C& e
  -> -1   
5 F0 i* k+ ]% N, F
" [* i5 J0 _7 U' e7 O% Eround(n,d)  7 |  |8 i0 K6 ^3 o' ^, x- _% J
返回n的四舍五入值,保留d位小数(d的默认值为0)  1 ?4 }& S7 e5 ]) N5 M) F3 i/ ~# b
mysql> select round(-1.23);   
8 U) ]. ^9 Q8 E  -> -1    3 z+ H$ ?& L9 J. |
mysql> select round(-1.58);    7 P2 V- F3 I& _+ p: y" O' s, A/ \
  -> -2   
$ T; _9 c% X. C# E  L( Kmysql> select round(1.58);   
- x# l: l! z/ |& p! ~  -> 2   
# l- P. w2 n1 P* vmysql> select round(1.298, 1);    2 ^9 F* a" {3 e2 x! `
  -> 1.3    1 ]. q& i; @( Z/ T& E8 i5 \
mysql> select round(1.298, 0);   
$ ?6 S: T& d' `/ ]9 R1 J  -> 1   
; U' p8 ^$ I- Y4 Y6 u& @* `1 ] 9 `' a' }/ x1 d' h0 G
exp(n)  
7 `! z+ H# s9 C1 c) R0 j返回值e的n次方(自然对数的底)  
" L" ^3 }. }7 Y; u& j* x9 [mysql> select exp(2);    ' _; v0 l% s: I1 `
  -> 7.389056   
! K6 C7 h: A9 Vmysql> select exp(-2);   
: e, d9 ~/ d! P* |) I, n6 ]3 o  -> 0.135335   
- C: b& ^% L' _
4 H6 Y  x% s% X% w; d+ Z  t& slog(n)  * R$ I% m$ h; n. W
返回n的自然对数  7 m& i' O; ?$ a- ^7 Z
mysql> select log(2);    * Y4 i. G1 N3 ]  v5 u; u
  -> 0.693147   
! s# [. ~; z4 I) Qmysql> select log(-2);    4 O; n3 R: Z/ t5 u$ U( |
  -> null   
1 S2 Y4 }6 P" ` % H" [7 m" S# i! w/ `5 d0 q7 C1 r7 x
log10(n)  
& }- q, C4 x, B( c  |! V返回n以10为底的对数  + V4 o  u; K1 q
mysql> select log10(2);   
& B; L8 Y. H  s' i$ a, Q  -> 0.301030   
# ?2 X) D1 k" m3 Nmysql> select log10(100);   
: m4 I( h9 a. Q/ [7 y% I2 z- w  -> 2.000000    # e! I+ ]) y* v9 N$ Z/ E
mysql> select log10(-100);    - R1 k( w" X8 E6 ~* J
  -> null   
4 z, s& v6 i  u* q 6 D6 K7 R  O* i" E. L( f& b# r
pow(x,y)   
3 A( g8 N, O# mpower(x,y)   
8 C2 `/ k. E* k0 C: Y! X4 E: W 返回值x的y次幂  ; q/ B" k" R  G! [2 _) h4 m
mysql> select pow(2,2);   
- a' Y% `6 A! O$ X, g  -> 4.000000   
* L/ o# L  V# xmysql> select pow(2,-2);    + m3 D$ H" h9 p3 V! `( M5 `/ S
  -> 0.250000  : Y1 Y2 _2 m* h

7 M9 P" s8 @( @) S) J' T2 lsqrt(n)  + O$ X2 W) f% K# x
 返回非负数n的平方根  0 d- G8 ~4 c# W$ z
mysql> select sqrt(4);    % L' H3 O6 C1 L+ K5 T1 H
  -> 2.000000   
! p+ K& ^1 q6 ~$ pmysql> select sqrt(20);   
# O" T" `9 h4 c! ?% T0 `  -> 4.472136    / p% i: O/ v# v& D8 y0 ~
5 h+ l: [! k1 \3 `9 o$ m' i; R9 _
pi()   
1 c  E. u8 I) H) s8 t2 E' s 返回圆周率   : u. s6 q+ X. E1 f
mysql> select pi();   
- a- ^3 k. H- R& l! H  -> 3.141593    " I, I  X$ ~2 z* I5 ^9 z# {- q
) M. y" U6 i7 t
cos(n)  
7 ]8 _, e" q- u 返回n的余弦值  6 c4 V, |0 }$ D; N+ m
mysql> select cos(pi());  
6 o4 N8 n0 ^6 Z  g8 }  -> -1.000000   
" ]  v1 V6 C) V0 h; E 8 f- v! C: y# w) a6 B; B' |
sin(n)  6 V2 {, J% t  i& g; ]+ e
 返回n的正弦值   " r' k/ J9 z% m5 D7 W3 e
mysql> select sin(pi());   
/ z* y( H7 b7 \2 J: }' e% J  -> 0.000000    7 w& W1 D& V7 ^. w5 S

" ?9 _& h' N0 O4 m, xtan(n)  
" n% R% f" D5 Q8 F返回n的正切值  0 ]! o/ d2 H, |, E
mysql> select tan(pi()+1);   
0 y6 @' M; A+ ]# G  -> 1.557408   
5 z* f) \6 V- H# l" b$ [ 2 T  Q# x) y& ]1 ~2 h* f0 }; M
acos(n)  
. X! d# r  g& f' v* X 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  . t8 v2 L# J9 ^0 Q. W
mysql> select acos(1);    . |' X) L% @$ A6 I( u0 i
  -> 0.000000    7 A* U9 b2 F, S7 F0 {  [7 x
mysql> select acos(1.0001);      Z3 b% O, p: g
  -> null    % `+ \* H/ g) p. }2 W5 @
mysql> select acos(0);    7 T# g9 T% x1 e
  -> 1.570796    ' \) R/ f6 |- @* e, [5 b7 I: V) K1 x
+ P0 @! k6 l1 s* u3 p' i# B' L
asin(n)  / N% T9 k$ \: I9 D& x% e0 T
返回n反正弦值  
0 \1 u, `* u3 w' n! s, Vmysql> select asin(0.2);   
* Y( C% a  U5 V+ y; ~  -> 0.201358   
" t* G: \& u) b# s8 S- \' W6 v# Hmysql> select asin('foo');   
% I( N& W5 J! S' G2 {* f& k( K  -> 0.000000    ' N  l+ P. s: c1 n: }, }
6 y1 g1 ?& U8 o) \7 }; X- B
atan(n)  
, R9 I, g+ C( A返回n的反正切值  1 Z0 z& t8 l8 K" k& F
mysql> select atan(2);   
6 e5 M& N( v7 Z  -> 1.107149    - k, q4 n$ t/ Y
mysql> select atan(-2);    2 G1 h' o% S$ L, e! @0 P+ ~6 S
  -> -1.107149    - @( T. k6 O0 I0 ^7 ?
atan2(x,y)    6 e/ t0 f6 w6 `# g
 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  
: h* F7 O4 D9 Q6 y" S+ n  Imysql> select atan(-2,2);   
# p$ c# ]2 m* a8 K/ M' {2 T" t& J  -> -0.785398   
1 s' I* Y+ u, a! r7 Amysql> select atan(pi(),0);   
. f3 V$ f" T4 ?) i  -> 1.570796    & S& d: s1 [; v+ u% u
6 ~" V2 f2 N- D  q7 c9 a" a+ E2 G
cot(n)  
# e' J( ^3 W) y7 K  x返回x的余切  
; ~9 e3 r9 ?6 l  Y) wmysql> select cot(12);   
7 x' W5 \6 C' ]* \  -> -1.57267341   
0 X  G5 [2 @4 b! g0 i: Pmysql> select cot(0);   
, m) I/ g+ K  {! c5 u  -> null    # M/ q. u3 G1 K0 c* F& `1 h4 _- C

/ w, n1 z! A3 q: h- b$ `5 mrand()  
# N; a8 ]2 Q8 t+ J$ nrand(n)    5 ^/ S4 \& I7 C  y
返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
1 S. U  n  J2 ]( w 5 S8 r1 f. T: G) C: q
mysql> select rand();    $ s( T  D6 u) \' z+ t  P% \
  -> 0.5925   
: w! |, {$ h1 ~8 hmysql> select rand(20);    5 v7 y5 z% v+ l. @6 b, ~
  -> 0.1811    2 X% W, t/ w" g! I% t: \, A1 |
mysql> select rand(20);    / M* Y  u/ U  s* ^. w8 \/ C' f
  -> 0.1811    + ?3 Z3 W* N( s; q2 m
mysql> select rand();    & p! K* D" ?6 x" d/ V, y
  -> 0.2079    ; E+ D6 B+ `, L, h
mysql> select rand();    1 l, C: f9 h: Y5 }2 G9 ?! s. d
  -> 0.7888    - W+ i5 K4 N5 k3 m& [& o0 D* p$ B
0 b; N; K2 {8 x: g; f# p
degrees(n)  
6 H+ Y6 [8 o% R# K; |4 l3 E: y把n从弧度变换为角度并返回  . }* p: c% t! F/ G. \5 s5 q  b
mysql> select degrees(pi());    7 O0 j0 Z! x: Z0 b/ }
  -> 180.000000    9 s' D2 q& ?. M1 z5 F
+ k$ Y: c6 K  ~9 a6 P
radians(n)
' b8 i6 L5 J( A% G把n从角度变换为弧度并返回   
& o" ~: N3 i1 qmysql> select radians(90);    0 W) r1 j# V1 w& H- g% D
  -> 1.570796    3 R1 t; t% y& S' c0 @) R7 a
5 I. g4 }9 v9 Y( B9 f5 d
truncate(n,d)    $ r9 o( G- Q4 I' Q, `" ?
保留数字n的d位小数并返回  % N* X& y0 x# \2 s9 @# ^1 U" y
mysql> select truncate(1.223,1);    3 D- S. L4 j+ D  B( Y
  -> 1.2    , I% _1 t/ ^4 w
mysql> select truncate(1.999,1);    6 ]+ Z/ c% I: Y
  -> 1.9    4 k& a" c- a5 X8 R
mysql> select truncate(1.999,0);   
( D* o* j: R& u, G& {  X3 K  -> 1   
$ M0 b% c) y( f 0 P* T  t' Y. t
least(x,y,...)    ( d" [! p0 J8 }/ M; Y7 p
返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  3 A: \! U/ z6 C5 W- Z
mysql> select least(2,0);   
! Z0 w3 n! P* b  -> 0   
3 B0 N& R8 O2 y# N  S0 \mysql> select least(34.0,3.0,5.0,767.0);   
8 a& g  O+ Q3 \  -> 3.0   
( |7 w/ {) l5 V2 O) g% Wmysql> select least("b","a","c");   
3 R: V. z) q8 c: E+ G) _8 \7 [  -> "a"    " B9 b" o' l; B3 ^* e: Y8 x' |0 T

6 m6 K" \, |7 }. C* xgreatest(x,y,...)   
( h  {; j2 t1 {* k, O返回最大值(其余同least())  
- n! S2 E0 K  o) X, Qmysql> select greatest(2,0);    8 j5 Q, i4 o1 u, i) A. p! [
  -> 2    : h+ K, J- G. E) b* ?; r6 K
mysql> select greatest(34.0,3.0,5.0,767.0);    4 Z: t9 |$ L5 l3 n1 |% {7 ~' l
  -> 767.0    4 @4 W. r! N8 r0 L
mysql> select greatest("b","a","c");    3 d' U. [/ Y- J* ?
  -> "c"     
+ ~4 b5 |1 \4 f5 x* }4 F
5 B4 C* ]$ ?& t1 N6 ^3、时期时间函数
" v# E: x# x% X9 c6 Sdayofweek(date)   
! d) c* [5 }4 v  Q# r返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
) l5 s) w& X( v/ F+ |mysql> select dayofweek('1998-02-03');   
+ n4 e6 w4 \' a' ?$ j  -> 3    2 I% X  p# r+ \5 O8 G/ P2 _
# T1 J) Z3 @" h9 P$ \2 a
weekday(date)    : ~- w! s% {# S, S
返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
- _+ q; J7 G, F/ M5 G' p% L& z  6 K, V. @; G! |3 N9 P
mysql> select weekday('1997-10-04 22:23:00');    6 v1 |9 D2 u, k
  -> 5   
, W* Y4 x* @4 E( j6 Z8 y! V: K- y6 Umysql> select weekday('1997-11-05');    + k" g$ j5 \1 `3 I/ a: ]
  -> 2   
( f6 {* z) g  N* q7 o" @; l& z 7 ~8 B' v1 h  W6 h' ?
dayofmonth(date)      C+ {6 B- |- W0 D
返回date是一月中的第几日(在1到31范围内)   
2 W: z/ d" z& x- u$ Jmysql> select dayofmonth('1998-02-03');   
( ?. C7 \  V# l0 I  -> 3   
7 d7 a' ~6 `# j) F6 z 8 z* J7 T9 [9 Y% {
dayofyear(date)   
. B$ c( c/ v7 W1 k返回date是一年中的第几日(在1到366范围内)    ( ~; ^* |6 U) e% c- m+ a/ P" p7 g: F( m
mysql> select dayofyear('1998-02-03');    : w4 }: {& n$ m' `& ]1 ^
  -> 34    : p' ]" b6 u- M9 v- I0 {
6 l* l* O  L! |9 Q
month(date)    ' D& u% s1 L0 ]& p6 n5 @
返回date中的月份数值    - |; h4 _" z4 b7 D' a
mysql> select month('1998-02-03');   
+ V% z' C1 r; D. h; T  -> 2   
2 V- M% }  m$ v5 b$ ] ; }0 C- Y  ?. F  q  p5 D
dayname(date)    " ~: ]) U& _. R8 K) z
返回date是星期几(按英文名返回)  
' O' Z6 G; Q' Omysql> select dayname("1998-02-05");   
. R) A5 [2 }: j3 `" {  -> 'thursday'   
- M* z, i& i* v5 n7 e: `* ^* ~& Q ; l* {( W4 H0 C, o
monthname(date)      X  [) O* b9 N5 ]4 y
返回date是几月(按英文名返回)  
  d2 r( H2 d2 `( T/ }2 lmysql> select monthname("1998-02-05");    # r; z/ h/ Q' Y8 b
  -> 'february'   
8 f& ]0 V3 y2 i) `! y
. _  `! W! }$ Q. O; ?  T" o1 gquarter(date)   
+ B3 B" W, d6 {9 h" s* ~返回date是一年的第几个季度   
1 Z( X2 ]/ H" y6 d: I4 `mysql> select quarter('98-04-01');   
% \; v, m2 t) C8 A7 \9 ~  -> 2   
5 s/ L% h) C' _ " D! {% w3 C) X
week(date,first)   # _# @# U+ t; E* J/ t+ T
返回date是一年的第几周(first默认值0,first取值1表示周一是( u! k  k5 Y- q* y$ O8 C8 q
周的开始,0从周日开始)  
9 `0 y- h# L* G( R3 O8 }5 Pmysql> select week('1998-02-20');    $ p+ R8 ]% e' |. |+ L: i
  -> 7    * j% q! u8 _* s: B- p- M$ A
mysql> select week('1998-02-20',0);    / L. B( q4 s) u
  -> 7   
9 y+ k! w" r+ v! X  Y2 n1 r# bmysql> select week('1998-02-20',1);   
9 Z, `. B( ?, `8 x3 j  -> 8    - D/ i$ ]2 v3 B1 ]

/ ]7 l2 W" n0 N+ i! q% c7 n1 z8 Fyear(date)   
, }4 n0 K- w) ~4 Q' a7 R$ G, Y& h+ C返回date的年份(范围在1000到9999)    ; E9 J2 q+ e' _0 @- k6 F
mysql> select year('98-02-03');    5 Z7 _) I6 Q! y2 r4 a2 {/ q9 X
  -> 1998   
: D* |  Q$ m% }* [" e1 u5 N & D" R. V$ g% [# T4 h# f7 K' O
hour(time)    9 F5 p% z# z% ]- o6 u4 _( |
返回time的小时数(范围是0到23)   3 C3 s/ z) ^& L3 X3 X
mysql> select hour('10:05:03');    * |# Z# G* ]) [6 Q2 @8 p9 l  }
  -> 10   
& L! q+ o- S0 M$ g) D" ~8 G * D( m5 X3 R+ s$ U' Z
minute(time)    # R+ q2 e; W# P# `% q0 `
返回time的分钟数(范围是0到59)    & S+ E7 X4 e% r; z
mysql> select minute('98-02-03 10:05:03');    7 {* w5 L' z8 z: L  O% h
  -> 5   
0 Q1 X, C) j2 H' F; C& {
4 _5 T" x1 M9 |) U  c* N$ R7 E" }second(time)    + I/ e3 |+ I5 v/ j
返回time的秒数(范围是0到59)   
$ y8 f9 k7 h: G4 ]5 Mmysql> select second('10:05:03');   
5 B1 v+ y* i9 t( C8 w' h2 T  -> 3    2 g- y* ~4 w* u& ]0 k: u
- b, a$ _6 q* z9 e6 ?
period_add(p,n)    & V" }: A/ g2 F& V
增加n个月到时期p并返回(p的格式yymm或yyyymm)    9 z, ~7 o4 Y- U4 K# l) e" p
mysql> select period_add(9801,2);    , }3 j1 j- v: i. m
  -> 199803    - _7 W: @0 y. Z. w. D$ T. T& ~

# H8 ^/ s9 f  @; L0 A+ Tperiod_diff(p1,p2)   
0 t5 G0 p# {8 n( q& x7 C* G0 a4 E返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  # P0 [/ Q- P2 B- n" v
mysql> select period_diff(9802,199703);      L4 O+ M! d  j6 y
  -> 11   
4 ]1 A, v2 P. i; X / y8 P& G& R( Q2 `# p
date_add(date,interval expr type)  
2 P7 [1 ]' A0 k6 j/ [date_sub(date,interval expr type)   
4 H, w8 X) A7 ^) ?7 badddate(date,interval expr type)    ' L5 ~# b* Z) d0 i, _) H
subdate(date,interval expr type)  
+ l* {$ |7 c9 H& A; z% y对日期时间进行加减法运算  ! |2 ]1 l5 z( {7 R% ^# W+ p
(adddate()和subdate()是date_add()和date_sub()的同义词,也8 d" i& o% V0 |5 F
可以用运算符+和-而不是函数  
$ v; M/ ^+ A5 I0 K/ P# @$ l$ Vdate是一个datetime或date值,expr对date进行加减法的一个表
: U. G5 y" M3 `2 S; m! n* G1 e达式字符串type指明表达式expr应该如何被解释  2 P# `( L# {1 Z
 [type值 含义 期望的expr格式]:  ! Q; ~; q( p/ I1 B6 f& u; |
 second 秒 seconds   
$ r$ ?3 d1 U) b" X5 W minute 分钟 minutes    . L4 V% b$ H8 k4 N* B7 a
 hour 时间 hours    , W' u- p! x9 X# P
 day 天 days   
* c. c: m) P9 X1 X+ | month 月 months    ! G/ Z( J$ J$ p9 b; T# ~# w. e
 year 年 years    " e1 q: B6 O7 L7 V2 `! q
 minute_second 分钟和秒 "minutes:seconds"   
3 u" B5 f0 b8 M1 n hour_minute 小时和分钟 "hours:minutes"    1 p. j0 C: N" P8 S) _' e
 day_hour 天和小时 "days hours"    5 ?+ f' T* g- p: k6 i/ _# T
 year_month 年和月 "years-months"   
' @8 O( k, E, g9 T- S( O" ~ hour_second 小时, 分钟, "hours:minutes:seconds"    * ]+ {. M, K- A0 V0 y
 day_minute 天, 小时, 分钟 "days hours:minutes"   
: E& N; o" Z8 [& d; S  L- x. `0 } day_second 天, 小时, 分钟, 秒 "days
; D5 Z8 `8 K9 q  Y7 X+ I: dhours:minutes:seconds"
9 L5 W( ?* s8 v1 c- c expr中允许任何标点做分隔符,如果所有是date值时结果是一个9 G$ ^- `( K% A
date值,否则结果是一个datetime值)  ) Y1 s5 }, D7 h* X
 如果type关键词不完整,则mysql从右端取值,day_second因为缺
% b+ o2 |! e, Q9 P; S4 t" T少小时分钟等于minute_second)  + s# h9 {2 f+ |* ?" H, W* g: x$ E
 如果增加month、year_month或year,天数大于结果月份的最大天( N5 c) r4 G1 u$ m5 p) \
数则使用最大天数)   
4 N/ v* s& q# q1 |+ b% qmysql> select "1997-12-31 23:59:59" + interval 1 second;  
) D* E% _2 F! \) S" m- R$ }& [
3 M7 I) C) k+ H/ J  -> 1998-01-01 00:00:00   
/ r0 I. z0 r! J) B5 }mysql> select interval 1 day + "1997-12-31";    ) ?3 b/ f4 P, W
  -> 1998-01-01    , I- m' P- a* R
mysql> select "1998-01-01" - interval 1 second;   
7 c, r+ ^. b& P% J: l  -> 1997-12-31 23:59:59    ' V/ F2 [& G" c$ X. X
mysql> select date_add("1997-12-31 23:59:59",interval 1! G5 u2 K4 ~- m$ p/ l6 {2 C, _
second);   
6 i# M$ \1 H- m, [( A# o) {  -> 1998-01-01 00:00:00   
8 Y' H3 M! a: d2 omysql> select date_add("1997-12-31 23:59:59",interval 1
$ u5 V" G4 a0 |4 M) i% x" K  qday);   
% o$ B/ ?: n5 E2 t; ^* O  -> 1998-01-01 23:59:59   
) p, ?/ j0 E6 B: b' a$ }mysql> select date_add("1997-12-31 23:59:59",interval  C( B5 x+ i9 ~& d) ?" n2 c
"1:1" minute_second);    # a- Q1 ~' j# F4 b1 m; R/ X* E
  -> 1998-01-01 00:01:00    ( t7 Z" j+ T8 f6 d) U
mysql> select date_sub("1998-01-01 00:00:00",interval "14 m- d+ p- J3 W4 U
1:1:1" day_second);   
: _2 @1 F# S" u5 c  -> 1997-12-30 22:58:59   
8 j$ Q6 ~: T5 u9 c0 wmysql> select date_add("1998-01-01 00:00:00", interval "-1
  O1 p: B! B. W/ n10" day_hour);  
+ Z& F9 @4 u1 I3 b. |  -> 1997-12-30 14:00:00    8 ~# W7 z" y+ s$ r
mysql> select date_sub("1998-01-02", interval 31 day);   
6 f7 `4 S. F0 n# v1 C: G  -> 1997-12-02    : Y, A; b; ^7 c, e4 m
mysql> select extract(year from "1999-07-02");   
3 n3 o6 ~! A7 U. s' ^; z( z  -> 1999    7 n% G  z4 p+ m+ V  Q
mysql> select extract(year_month from "1999-07-02
. Z" f  l/ ^" }- ~- r4 I01:02:03");    % ?' ^3 U2 ^( X0 j7 K) N& ~5 t
  -> 199907   
, f5 m2 E/ s5 G* K7 m- \5 {# kmysql> select extract(day_minute from "1999-07-02
- Y8 z. y7 `( ]# m% U  S01:02:03");   
3 X% Q7 J& |5 X+ y  -> 20102    1 _2 s& L; t8 i+ V% t4 h

: I( \& e/ ?% u; `  _1 sto_days(date)   
# T0 \# N" C7 B返回日期date是西元0年至今多少天(不计算1582年以前)  
6 g, V3 c+ i' h0 g" r: D8 Umysql> select to_days(950501);    ; z1 y) ^. _6 _. Q7 N7 I; b
  -> 728779    + O" R7 B: u0 G3 }6 l
mysql> select to_days('1997-10-07');    $ D. r$ _9 S$ A, W! v9 B; B
  -> 729669   
$ T. N+ G' |+ {6 b" i% E9 P2 M9 A - w; U8 M; K1 I% X3 u; Q8 t0 @1 l
from_days(n)    , a4 w& Y6 `2 D# @+ c' L: F6 |) Y
 给出西元0年至今多少天返回date值(不计算1582年以前)   $ x8 |8 ^% \! h7 ^
mysql> select from_days(729669);    / S: K; \/ C( s! `* ~
  -> '1997-10-07'   
- ?' r# ]( Q* }
6 a$ A# |. s/ E! m0 ]date_format(date,format)    , M7 a* k7 L2 D- z
 根据format字符串格式化date值  
  z; \  s; h4 E: p  m# i (在format字符串中可用标志符:  7 ]" D5 ^5 v" |1 g
 %m 月名字(january……december)    , ^5 _' n/ d+ h* e( j6 x0 J! f( d
 %w 星期名字(sunday……saturday)    ( i% U$ x+ k+ H! M+ A
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)   
/ T3 ~' y; U; I' b) v, w %y 年, 数字, 4 位   
6 R5 _  Q2 H3 z8 o %y 年, 数字, 2 位    + K8 R8 n' J! |* W( W2 e; ~
 %a 缩写的星期名字(sun……sat)    + ]! N! o- D, I. g
 %d 月份中的天数, 数字(00……31)    . d' P3 ]- F7 a* _' p
 %e 月份中的天数, 数字(0……31)    % H9 B3 M8 z) G+ a! u# M' G: j
 %m 月, 数字(01……12)    9 J0 [( |6 M! S: I( u6 q
 %c 月, 数字(1……12)    5 ~7 b( K$ w7 M# k
 %b 缩写的月份名字(jan……dec)    * c7 J7 j, m! b
 %j 一年中的天数(001……366)    7 ?6 ?! g) o/ Q/ [  |
 %h 小时(00……23)   
" @" i5 {% E$ d: Z0 }, d %k 小时(0……23)   
, c" M0 o: \( d; U; e %h 小时(01……12)   
4 `8 d# J9 v. a5 c9 e# Q1 w %i 小时(01……12)   
' H' l% V" C6 a' u %l 小时(1……12)   
; @! V' n8 p/ L9 }8 W %i 分钟, 数字(00……59)   
: [$ S) J5 y) r2 Q3 A1 [8 M %r 时间,12 小时(hh:mm:ss [ap]m)   
6 m0 b# h7 Y% u %t 时间,24 小时(hh:mm:ss)   
7 A' t" M4 {1 S, I+ L( g5 T %s 秒(00……59)    7 R; l5 x4 U" r/ U; w% W
 %s 秒(00……59)    1 I* a; j  i6 I* G2 z
 %p am或pm   
( t0 m# p; d% b% j5 ]- {# g2 g %w 一个星期中的天数(0=sunday ……6=saturday )    ) S2 u5 t- @# n, s+ A
 %u 星期(0……52), 这里星期天是星期的第一天   
! N2 X+ G6 Q9 I$ l %u 星期(0……52), 这里星期一是星期的第一天      _" q7 ~5 f6 v+ w1 G! _
 %% 字符% )  
( M+ r% w1 _0 r7 D' ^  K8 hmysql> select date_format('1997-10-04 22:23:00','%w %m %
0 M! @3 f& `  S4 N3 Ry');    ; B* x. o5 F4 C2 R2 y
  -> 'saturday october 1997'    . U, ^8 C* e+ e! Z: I/ w5 b1 C
mysql> select date_format('1997-10-04 22:23:00','%h:%i:%
% k* g- q( }% ~) U# d8 |# ]s');    1 ^0 b' \) y/ q$ k: m
  -> '22:23:00'   
1 N8 `& \/ q& `" k* emysql> select date_format('1997-10-04 22:23:00','%d %y %a
7 _2 \2 P; k6 g/ ~%d %m %b %j');    & j* x7 A# w" v. O
  -> '4th 97 sat 04 10 oct 277'   
* R$ u0 n1 }8 X$ B6 t& {9 Nmysql> select date_format('1997-10-04 22:23:00','%h %k %i
2 L" i+ D, m, l%r %t %s %w');   
7 V4 ~. w! W3 Z! Q( b  Y  -> '22 22 10 10:23:00 pm 22:23:00 00 6'   
+ |' J1 U& ], n* K6 O  z. |* }; a * B$ m3 A( c  k- k; _3 {( F
time_format(time,format)  
) O2 x) I6 K$ b" T( N  ?4 E" n 和date_format()类似,但time_format只处理小时、分钟和秒(其
$ G& X8 l. f( B, @+ q  |余符号产生一个null值或0)  
5 z4 v4 V2 a4 f6 A9 ^' R# ^1 `1 X" ] - Q; v3 [. g9 c2 i
curdate()     7 z1 o9 t  U- N7 }5 G  N
current_date()  
2 Q7 e6 W9 d" l" M2 {  u 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
% h6 p% h+ f( G* X处上下文是字符串或数字)    $ L' t( V/ ^/ u3 i9 f" B! K' N: Q
mysql> select curdate();   
0 o, Q4 ?9 h; M' |8 P5 B  -> '1997-12-15'    ; O3 O3 T) s* H( c$ g, e# J, \
mysql> select curdate() + 0;   
' c7 d: l; g, v. A$ f! z  -> 19971215   
; I( f! L8 u8 V
, P+ {6 R  `3 \$ V* W6 K! Acurtime()   
5 @. G2 }) f, Y8 F9 F$ A+ ^" Icurrent_time()  
3 m3 y" D2 u1 ~' k4 ? 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上+ l3 F- B- w% e6 _) ^* q
下文是字符串或数字)      2 V1 z; V' ]$ [: t
mysql> select curtime();   
2 B, e/ R. Q2 _  J9 Q  -> '23:50:26'    " U( O* v  ?5 U
mysql> select curtime() + 0;    1 {9 W) z7 D/ q& _8 F. G5 [  i, B
  -> 235026    6 U$ X; Y9 D1 a
; y% @) Q0 R8 `5 g
now()    ! K) Z5 }( C0 c7 ~3 Q% j
sysdate()    
7 n& e! e/ P% p3 z8 x' ]! U) O! Zcurrent_timestamp()  
7 B, q1 P2 W! F% N) d& o 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
) j6 Y4 I. E% x4 a$ k, Y时间(根据返回值所处上下文是字符串或数字)     ' Y( P0 G' C5 x3 I1 w; K& e2 ~3 G
mysql> select now();    8 C8 P& S6 _5 ?' ?) f2 G7 Q6 ^; G
  -> '1997-12-15 23:50:26'    $ s( E. \* O* k6 L. y0 w
mysql> select now() + 0;   
8 o: a0 n& W+ `" O: h& e; m  -> 19971215235026    ' S# d% {- n) o: [1 {) h

& A% p: ^3 X, x$ A4 L: l$ [unix_timestamp()    ' V" b& c9 Z4 V3 M4 G& ^2 p
unix_timestamp(date)   
2 u  l- Y2 m6 p" ^! S0 f返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
! i( _8 f  N" v/ g3 T1 C数,date默认值为当前时间)  
  v. C6 _# u1 L. ^5 y/ amysql> select unix_timestamp();    2 ~" R7 K! R9 s2 w6 }) p
  -> 882226357   
" ?; U  R. X  M- Hmysql> select unix_timestamp('1997-10-04 22:23:00');    , L8 [5 {7 w( o8 Z8 {9 F4 Y
  -> 875996580   
) U/ C& w' K' K5 n1 H6 q. O" Z/ ` 7 v" k& P& H3 F+ z
from_unixtime(unix_timestamp)    0 y' \9 d/ ^. R) ?6 P+ y& A
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的2 f7 n: e+ x2 V2 }# L
值(根据返回值所处上下文是字符串或数字)     / t3 l; o9 I) O
mysql> select from_unixtime(875996580);    4 q' i" Q5 n4 P6 A0 w. C5 a6 |
  -> '1997-10-04 22:23:00'    , H2 {, r1 W4 a/ g% Z$ i- w, K
mysql> select from_unixtime(875996580) + 0;    & r4 p2 U  N% E9 a
  -> 19971004222300   
; I& J: T  q3 p1 \. c. a 3 c- B; F. y& H2 n+ ~. h
from_unixtime(unix_timestamp,format)    - o! w, M. A2 C1 T- V' Z0 C- ?. Q3 V
以format字符串格式返回时间戳的值  
7 t4 |8 r: I& @' g2 Rmysql> select from_unixtime(unix_timestamp(),'%y %d %m %
0 i- ?2 l9 P" E( c4 Bh:%i:%s %x');    ! G- A. `/ o- x* D
  -> '1997 23rd december 03:43:30 x'    ' Y6 E8 O! B7 O; ]/ w. l5 O  ^- [
' _" k; I6 z3 @& L  A
sec_to_time(seconds)    ' B# G' p9 f2 X7 p$ ^
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
  C* q7 S0 }5 Xmysql> select sec_to_time(2378);      @  B) G( Q+ X1 _
  -> '00:39:38'   
, w- X( c( B5 V4 L, {  i7 Jmysql> select sec_to_time(2378) + 0;    ' y+ x# k" Q2 O1 k) n; M2 |
  -> 3938    ( }, g5 n7 o5 e  O' _8 |. w

% r2 l, Y* r3 x; G3 U) J+ L* k( Z8 \' ?time_to_sec(time)   
3 G$ V3 X' T- U1 `! @% j9 e0 {) k% v返回time值有多少秒   
# s2 S$ {3 z; p9 z  g3 L; }mysql> select time_to_sec('22:23:00');   
0 o% n' f5 \$ e" \- m$ B  -> 80580    + n1 M/ N# ^5 x! k5 J
mysql> select time_to_sec('00:39:38');    . U0 a% L$ _0 M) M9 D, h
  -> 2378 ' p/ O" Z* X+ \+ V! G

: R6 j% z) n1 {3 }5 a转换函数
) U# {* g0 I* o5 Mcast
% r9 a, l) Y1 a+ n7 f) E用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]& \& O( W7 Y- e+ @" x# l6 ~
实例:select cast(a as unsigned) as b from cardserver where order by b desc;
$ [0 N& l2 s- k9 }- p+ Sconvert:
7 G5 \" k. E+ ^& K用法:convert(字段,数据类型)
& h% Z8 V+ {/ G4 J实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
; z4 j0 S; C% l$ ?
回复

使用道具 举报

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

本版积分规则

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