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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数9 {: v, G" l% O1 F' h
ascii(str)   
* @3 m% x+ _1 e& L返回字符串str的第一个字符的ascii值(str是空串时返回0)  + P, {) h) R# L+ O. s
mysql> select ascii('2');  
- _2 g# s. m9 k7 v/ \8 b+ U  -> 50  # t, @( N! `- G4 @
mysql> select ascii(2);  
( B4 w2 @: ^; t  -> 50  4 z( p! H) P% J: ^' `& m2 X& K
mysql> select ascii('dete');    b, k' ^3 T# q0 X* o8 T
  -> 100

  k2 W) v& F0 L3 nord(str)   
2 Y/ q7 P1 ]  C3 r如果字符串str句首是单字节返回与ascii()函数返回的相同值。+ }" F  T% L$ g  k% T  |

8 A; g9 e3 |$ ~如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  2 @9 w5 u4 _! T" O# ~1 X
mysql> select ord('2');  
# ^+ x8 c" B5 l$ B3 b  -> 50  3 n* W4 C8 K! y
   ( Y; V* Y7 a: G1 _3 _
conv(n,from_base,to_base)   . b( n# p9 n% I1 S7 L( Y: \! d
对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
1 h8 ?$ i& ^6 b( Tmysql> select conv("a",16,2);  : H5 ~. b, D, s+ h! g' r* S
  -> '1010' + S; m1 a) m, U1 l
mysql> select conv("6e",18,8);  ' R% D  Z; K5 k) B3 y, r6 q3 M, `0 F
  -> '172'
6 q. z/ i, _" f# R0 h/ q' Emysql> select conv(-17,10,-18);  % j' o5 q2 C4 C" K& m( a. K7 A/ D
  -> '-h'
3 C, @  s: C% j! Y  t# Amysql> select conv(10+"10"+'10'+0xa,10,10);  & ~4 H- }3 @# h- T" `  ]
  -> '40' : l4 ?$ g; e) L: Z
   
4 r; ^. g( u# w7 b3 c7 z$ [bin(n)   ! |3 J  I& a% {  T) ?8 q
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
$ e8 e: z1 j- o% `) s% j- p) {% Nmysql> select bin(12);  
5 ?" i% k/ g$ t" o0 S  -> '1100' 4 H# Q2 d9 m# a

; u' Y* ^% c9 koct(n)   
" ^- I  k2 a/ R, r2 v0 w把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  , r6 U4 W4 _& |: }% z
mysql> select oct(12);  
# A( E% `# b% ]! D1 P2 i8 l+ n  -> '14' 3 i2 S, m8 I: ]6 s: T! Y
   & R7 W* [3 Z6 Y
hex(n)   
9 y- B' o, r$ {把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  & i+ b* `) ^1 I; r5 h9 l5 z3 Y
mysql> select hex(255);  2 r. d9 C+ c- b0 y$ w" Q$ T* A3 b
  -> 'ff'
6 N( ~# E: N6 }# d$ j! }. T   0 W4 \, u& l& t/ p
char(n,...)   7 @( k6 W5 q% y! d8 }3 V/ d
返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   
: B" H# Z8 e% ]" wmysql> select char(77,121,83,81,'76');  
1 l7 H: C1 A* b3 A) A  -> 'mysql'
1 ?  O7 R5 W3 xmysql> select char(77,77.3,'77.3');  
* d: e5 i- e8 E! i  N2 A  -> 'mmm'
0 j6 s$ X" ?4 J/ H4 }+ p$ _   
) o% F/ {, r5 b# u1 n* zconcat(str1,str2,...)  
' ?/ P: A9 |9 d. R把参数连成一个长字符串并返回(任何参数是null时返回null)  
! J4 b- x/ p+ F4 U. Xmysql> select concat('my', 's', 'ql');  0 n/ M, n3 X6 E# ?. Z
  -> 'mysql'
/ P. k8 b7 S/ `mysql> select concat('my', null, 'ql');  ' Y3 e& [: S2 r
  -> null
1 C; E2 C; o$ C$ }4 F4 |% F7 smysql> select concat(14.3);  
& |! a- c; k% A' ~. K  -> '14.3'
4 E( _1 r' h4 c- \7 i $ q$ l5 n- q+ h/ h5 G
length(str)   6 v2 B$ V! c# `4 h% v
octet_length(str)  
8 v: P0 [4 g& P# Uchar_length(str)  
0 z' b# f4 m* e/ w" acharacter_length(str)  : U8 g/ F8 K4 Z! m$ N' ^% p
返回字符串str的长度(对于多字节字符char_length仅计算一次)5 Z% P  _; A0 \3 _" t5 m
mysql> select length('text');  
$ T9 m+ S9 k+ p( ?$ Z+ q" D: v  -> 4  
" y8 P  h% I( ]& H$ q7 Nmysql> select octet_length('text');  
! J; w3 _0 F! X5 q& j4 @. ]7 [  -> 4  4 F# P: R; H; n8 i

, J3 h3 e4 \9 _1 M* q+ n5 `7 klocate(substr,str)   
5 I, r3 n- a: O, r% ^position(substr in str)   , P# |/ `# O& U4 v& g
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  . e1 r0 d/ @$ F) T: p
mysql> select locate('bar', 'foobarbar');  
6 v* T( J' L4 ?5 P2 m  -> 4  
' a& p& W  }0 a5 S. V2 Amysql> select locate('xbar', 'foobar');  ! y0 q( }, ~4 W7 x4 O
  -> 0  
" J4 o* Q0 H: I# Q5 n+ Q   
! o' @2 x6 `- K* Zlocate(substr,str,pos)
% L( }  k+ M0 y- [返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
0 n: U2 Z2 g3 Z( @mysql> select locate('bar', 'foobarbar',5);  * R' ^0 E' I/ o* X6 {6 K: ?
  -> 7  
1 v$ _& I0 b* O4 v0 Z & ^; {& v/ f4 f$ Q! m
instr(str,substr)   * h; L" I. J$ @5 x7 U
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
- r, P( _1 _) C  k- Dmysql> select instr('foobarbar', 'bar');  % S. K! J4 m0 X0 O6 H
  -> 4  
% I* y2 n  ~) V: Amysql> select instr('xbar', 'foobar');  
3 s" g& ^6 s! ?' n5 w- `! F: ?  -> 0   
" D0 g( r2 f, k& C5 q( P/ c & u8 [$ D9 E1 W( M. T8 d. f
lpad(str,len,padstr)   . P& k" k4 j) y1 `) i
用字符串padstr填补str左端直到字串长度为len并返回  $ Q: y' o! ]; Y$ G4 E
mysql> select lpad('hi',4,'??');  - l1 U2 p7 p# |. V1 g3 q5 X- a
  -> '??hi' * M; D6 o9 a( v; m# c- W$ m/ x
   ) `; v4 l/ S6 l  L8 X  F6 n  k
rpad(str,len,padstr)   
/ @( ]: o5 `: p5 X用字符串padstr填补str右端直到字串长度为len并返回  
- Y: d2 d. f. g; lmysql> select rpad('hi',5,'?');  ( }, b% h- X' U: p4 X3 T* a! b
  -> 'hi???'
; U8 H$ `$ D% F
( e+ J4 }0 K) i5 v# Dleft(str,len)   
0 e' B$ ?1 C3 K6 }  q, K返回字符串str的左端len个字符  / a2 @7 ^, }( K+ H
mysql> select left('foobarbar', 5);  
0 i! m+ \3 W3 L& ?/ X  -> 'fooba'   {5 V7 Z( b+ f$ _! z; L1 q
- S+ C& V7 u! \: _4 |$ O( s
right(str,len)   
; ~8 d% H( _' c: K* Q7 m, {# d( w8 j返回字符串str的右端len个字符   
8 H- H. v9 E" Z. Y2 I! j6 Nmysql> select right('foobarbar', 4);  
3 h% C0 _1 \/ v" D- W' a  -> 'rbar' 2 ?+ L2 t1 {& j6 H

" z$ O# ^- S+ ~7 f% `6 Esubstring(str,pos,len)   6 X* a6 Y" d. i: M8 @1 ]
substring(str from pos for len)   ; J' E5 c% Q4 M) M- F
mid(str,pos,len)   % w  f9 @4 {8 Q- N
返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
/ n; a6 z3 y9 f1 R; z  -> 'ratica'
6 W! r8 a- x/ O  a 5 E; v8 [: X! k7 [! T6 B& U$ G) Z1 A
substring(str,pos)   
% ]' Q- C8 h& `7 [substring(str from pos)   
+ I7 `1 X+ ^  S返回字符串str的位置pos起的一个子串  
1 _  X- T" ^8 y6 R$ _. T7 {mysql> select substring('quadratically',5);  
( O9 |6 R; [( H7 N$ Z0 G3 K  -> 'ratically'
3 b, n0 T' Y: E7 f( qmysql> select substring('foobarbar' from 4);  
. m* v/ W% M# |9 ^9 {8 Z0 S  -> 'barbar'
3 F+ V2 Q1 y9 X8 U+ P* a* [. X0 f 2 Z' |9 t3 ]& ^1 Q
substring_index(str,delim,count)   9 h1 B( @$ I8 [# h( v! i
返回从字符串str的第count个出现的分隔符delim之后的子串& p) S7 t. h3 O
(count为正数时返回左端,否则返回右端子串)  ; L2 [0 I2 a5 c2 _
mysql> select substring_index('www.mysql.com', '.', 2);  
6 R3 f+ A# S  T: U( O0 [  -> 'www.mysql' / g" L. M% H* q7 s
mysql> select substring_index('www.mysql.com', '.', -2);  ' V- x) ?' k2 A! ]" {  m
  -> 'mysql.com' # N+ |/ N8 q/ K$ i0 ~) M

) Y' p  Z/ w" _" n  V$ h0 oltrim(str)   
$ v7 S4 y5 ?! F! `4 t: }& d3 ~返回删除了左空格的字符串str  
: B: x0 y7 |1 R3 T& z+ Smysql> select ltrim('  barbar');  , ]! I: P/ k' A* f& x- m
  -> 'barbar'
/ j" ]- n% u6 `6 |$ k 0 u" U8 Y% P# l1 V9 `8 a  t$ M- Y
rtrim(str)   
* w( b& P  @, ^! ]; I3 X返回删除了右空格的字符串str  
+ x5 ], @4 \7 C2 b6 L+ B  Mmysql> select rtrim('barbar   ');  5 _2 k6 d0 \0 H6 N. ^6 x
  -> 'barbar'
5 H% L- b2 L& y) n) ^ ' A+ R- _/ H. W. R: i7 y
trim([[both | leading | trailing] [remstr] from] str)   3 s8 M& w* E* ~* I
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
. L; Z. }( G; b- m$ pmysql> select trim('  bar   ');  ( |  w/ i6 o8 G1 ^0 P% r
  -> 'bar' - @4 x, U  e: a8 ]' L
mysql> select trim(leading 'x' from 'xxxbarxxx');  / P; Y$ L& Z2 a  c3 C
  -> 'barxxx'
) U) r3 `) w' Jmysql> select trim(both 'x' from 'xxxbarxxx');  * \$ }7 k& K% q4 K* v: B/ L
  -> 'bar'
  p1 Y! v8 [; p) m8 pmysql> select trim(trailing 'xyz' from 'barxxyz');  
* M' M3 a& n2 G8 I1 ^  -> 'barx' 8 Y+ B1 U# c6 f% n8 k
/ R3 `( b. R" o8 J: @
soundex(str)   ' k4 g8 R+ E* Z7 b. L
返回str的一个同音字符串(听起来“大致相同”字符串有相同的
$ l: Z6 z6 d. m8 M/ D同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  - c: f6 M) _$ h  d# y: W6 A
mysql> select soundex('hello');  " e4 y" O1 i5 p" s$ x0 r
  -> 'h400' ' [( f8 `# L! }2 |+ g4 z; U
mysql> select soundex('quadratically');  / q0 Z5 m+ A! S% p8 o9 N3 M
  -> 'q36324'
7 k3 \7 `, p( r( A. x   , b, ?( L; s) @, n# A. f& H
space(n)   , z7 R3 f5 z4 _; v
返回由n个空格字符组成的一个字符串  + B8 ^* c" \- S9 ~8 \5 E: k( p
mysql> select space(6);  ! I; j9 P0 Q5 S
  -> '      ' & p: F3 y) h% a, T. b) D
   
" g' B/ N9 b+ C; Mreplace(str,from_str,to_str)   $ b: k2 r7 Q1 }+ [2 K6 X
用字符串to_str替换字符串str中的子串from_str并返回  
; b$ P( I' O! s- P: U, n1 B$ tmysql> select replace('www.mysql.com', 'w', 'ww');  0 {- B: A4 ]: ]6 ]
  -> 'wwwwww.mysql.com'
8 H- V# q9 `% i 2 o4 o: J& }9 n) [
repeat(str,count)   ; u+ F& a& U* f# N
返回由count个字符串str连成的一个字符串(任何参数为null时& m, D* ~5 `% O; S1 w+ T
返回null,count<=0时返回一个空字符串)  5 p/ e* Z% f) g
mysql> select repeat('mysql', 3);  & |2 j* M4 }! Q, s0 U1 B! y
  -> 'mysqlmysqlmysql' 8 w6 j; G  q: t9 N$ |
   
7 ^* ]* b8 x: @* creverse(str)   $ f" e, t# R7 E  W3 Q/ e! h% c
颠倒字符串str的字符顺序并返回  
& a% t  B, z" kmysql> select reverse('abc');  
) }$ Z# O% k' s  -> 'cba'
4 O0 w9 c1 A2 `; L. ]) ]( L3 S ( f$ s3 @5 c  f8 ?
insert(str,pos,len,newstr)   - v" I) A6 U3 s4 T
把字符串str由位置pos起len个字符长的子串替换为字符串2 s1 ~. k7 p/ w
newstr并返回  
. e% v( X2 Z8 O, u3 k9 f8 q0 U4 Pmysql> select insert('quadratic', 3, 4, 'what');  . t- O4 {8 j& i: Z) V
  -> 'quwhattic'   Q: I  U6 Z7 {1 L: @+ C) _

" j  ?( f# I  j! \9 D6 _& s6 Oelt(n,str1,str2,str3,...)     w7 q( h- X, B- g( Y% s
返回第n个字符串(n小于1或大于参数个数返回null)  7 ?) \1 t* _- |4 l7 b3 @: H
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  9 p; ~- E' r4 }' r& B! `
  -> 'ej'
+ o4 V1 Q* w4 z& Pmysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  * B9 h( X8 b) G- L
  -> 'foo' ; g& V+ S' M# U, H
! i- a/ t+ Y- W
field(str,str1,str2,str3,...)  
3 {# `0 n( c! o6 p3 W  x& R! f! }返回str等于其后的第n个字符串的序号(如果str没找到返回0)  $ y+ n! w7 f( n+ B, t( S  P
mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',2 S, t1 ~* ^4 t3 x+ {  M. B
'foo');  
, N9 R; H5 q- A: r/ U  -> 2  ) K& p) a! q7 K8 I( o
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
7 i. h# B0 E4 l0 X. T'foo');  
7 Y9 V. n+ K3 I& u  -> 0  ! ~; R4 @( {. g7 q" [! k

" e) o- P) u) M4 sfind_in_set(str,strlist)   
" J4 O1 h6 e9 X, B+ p# E9 N返回str在字符串集strlist中的序号(任何参数是null则返回2 [3 P8 W+ C; G
null,如果str没找到返回0,参数1包含","时工作异常)  6 V2 s9 j9 k9 \0 v% m! I6 v5 Y
mysql> select find_in_set('b','a,b,c,d');  0 N2 Q2 y# H9 l
  -> 2  4 ]3 _( F% T, G- L
   ( a& Q8 v1 F3 k6 Y2 t
make_set(bits,str1,str2,...)  / v1 c$ H6 z; i" X' [) |! l
把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应' ^3 y: b- x  {5 P
位置的字串选入字串集并返回(null串不添加到结果中)  
" |% g9 s: f+ H( cmysql> select make_set(1,'a','b','c');  
' h* d- K7 P1 n+ ]5 t; K  -> 'a'
, I( d4 A6 t$ F- U" Tmysql> select make_set(1 | 4,'hello','nice','world');  . C7 E! c. h3 L5 q  \
  -> 'hello,world'
5 x) J/ j1 ^  ]/ q. |6 Q0 Lmysql> select make_set(0,'a','b','c');  7 M& {- k9 N& P4 J, W9 x2 R7 T4 ]
  -> '' , ]. b8 m9 Z; k' F+ a* x$ d
" \; Q" o, R8 Y/ i) |4 Q+ s" |
export_set(bits,on,off,[separator,[number_of_bits]])   
5 Q* A% f1 c$ `按bits排列字符串集,只有当位等于1时插入字串on,否则插入
8 A9 I; v$ V) u: |9 S) Coff(separator默认值",",number_of_bits参数使用时长度不足补0" a4 m8 [# z; g* u9 j  R' j$ s* W
而过长截断)   5 H" `/ f4 V$ [/ p7 _5 G& E
mysql> select export_set(5,'y','n',',',4)  
( @. M$ H  n; C1 a; _! z  -> y,n,y,n   ( i9 ?6 @3 Y6 o7 ]: ?: _
% u+ {/ l% _- N7 c; B9 Q: g
lcase(str)  : k5 {. E* x4 O) n& m
lower(str)   
, {( c8 \2 K* W- o+ u返回小写的字符串str  
6 g. V! ~( }1 h( v' L( m6 Lmysql> select lcase('quadratically');  
5 T! {9 j1 e& R, @  -> 'quadratically'
9 h9 Q- a. Y" Z/ H' Y* t- p, q   & F. [& j0 i! {& b0 n$ k4 x' @& u( d
ucase(str)   
+ p, z* A3 Z" m. F$ R# `upper(str)  
2 z; D7 E' T# m: F. b返回大写的字符串str  : q) K6 q) Q9 j. A2 P! @
mysql> select ucase('quadratically');    w$ K( P3 [3 A4 s1 T2 R
  -> 'quadratically'
. N; I2 Y3 B6 n3 M6 S& p% Y * v4 `5 H) I9 y! K
load_file(file_name)   ( X1 @# S8 u0 w5 |: O- h
读入文件并且作为一个字符串返回文件内容(文件无法找到,路径: l& a1 u6 j' y3 h) ^- L( ~
不完整,没有权限,长度大于max_allowed_packet会返回null)  9 p# l  |6 h8 M& I) z% X
mysql> update table_name set blob_column=load_file
7 x: w; }$ N' y# c; B5 l7 L. T("/tmp/picture") where id=1;  
) u% h5 D; G0 S! G- i5 K ! w# ]; F$ W  y/ e. H1 Z
2、数学函数$ B/ S$ g% d; ~, P1 u4 m
abs(n) ' O' ?! r" b6 U6 x% G
返回n的绝对值  $ O9 q. F2 a9 ?* |  w
mysql> select abs(2);    ! A) C% i! ?5 }0 l) R- b2 U
  -> 2   
: c, q- A4 ]& B1 g: X2 ?mysql> select abs(-32);   
4 H/ q0 o# k5 M9 a( ]4 r1 n  -> 32   
( {/ H, y: j/ A. T# \   
$ j: ~  i4 ]5 `. s, g4 vsign(n)  
7 |% f/ d# k9 e4 M, V# @返回参数的符号(为-1、0或1)  + ]4 b) R; U7 z
mysql> select sign(-32);   
, K0 I4 f4 C9 M  -> -1    . u6 y. {4 `, ]* T
mysql> select sign(0);   
. @5 `! ~! b: r  -> 0    3 B: ]% B$ c. G
mysql> select sign(234);    / Q& u$ v  o# \" N$ l4 u
  -> 1   
( U' b' J- g) w$ ` # P5 p3 Z# S1 [. c4 B, R( u) e
mod(n,m)    0 ?4 A# T* o- _1 O! s) p
取模运算,返回n被m除的余数(同%操作符)    ! v. j/ r/ _' O' t+ f' d
mysql> select mod(234, 10);   
( d. ?& h; m! Q8 A, J" A  -> 4   
; t8 S6 s, i% K! v6 S/ Wmysql> select 234 % 10;   
: L, ~, ?- l0 C' O9 Q  -> 4   
" b, Q3 A( M, Fmysql> select mod(29,9);    5 p% r# P4 D- N& B$ E2 ^
  -> 2   
3 v( g8 Q, U( s# y7 h* x
4 H  d! H, l2 \  f. Y: q# Zfloor(n)  
3 t1 E0 A: o/ J% V1 l返回不大于n的最大整数值  
. K7 k4 `3 d5 |9 @mysql> select floor(1.23);   
( y( E" p. T1 W+ r, _. ~  -> 1   
; X# [9 _2 Y' W" ~1 Y; ~mysql> select floor(-1.23);    ( x' {# A) r: k+ f
  -> -2    . W/ e% ~# o8 l6 `
" H2 `8 K# K4 ?" x  s
ceiling(n)  0 s/ i- c( G+ C+ x1 g. p) ?
返回不小于n的最小整数值  
6 d  r7 Z' N0 x: L8 Vmysql> select ceiling(1.23);    0 L( {4 b5 I! j% l1 h8 ]6 x1 L; z, j
  -> 2    ; C" C/ e' o7 ]$ E3 f
mysql> select ceiling(-1.23);   
9 O' L3 b; B$ c$ _  G/ |  -> -1    : a4 Q0 d9 x7 i! v  G; y$ i0 E

, b2 |" |3 q  ^  t4 c& |; `round(n,d)  
6 K; ?6 W+ c) Y0 X/ O返回n的四舍五入值,保留d位小数(d的默认值为0)  
9 O; p+ j& D$ w7 F. Lmysql> select round(-1.23);   
. Z+ n/ n& |9 S8 a9 {  -> -1    8 [/ n( t( }6 V, f9 d4 w
mysql> select round(-1.58);    8 k' {: r/ ^4 z5 n8 t
  -> -2    6 u7 r; m' P/ n' D* f$ v
mysql> select round(1.58);   
# I, |" z3 K9 ^  -> 2    6 C- _- P, ^3 H/ s: \
mysql> select round(1.298, 1);    ) n, C6 c" v2 U7 v: h
  -> 1.3   
3 M& q" P4 p; Q! q. amysql> select round(1.298, 0);    % I$ T3 Q, N; q2 W4 E$ N  K
  -> 1   
& Y* t, |( S) q; d1 M; D
( v! a* @% o6 D) l3 Vexp(n)  . l9 R2 }0 g4 ^! ]0 {
返回值e的n次方(自然对数的底)  * {5 \' F+ y0 k1 v+ n
mysql> select exp(2);   
' e" t/ v7 K$ x/ e" o3 t( l  -> 7.389056      I7 r6 L( J2 x/ k* q3 G& t6 l# V
mysql> select exp(-2);    ! H9 T1 `) M% }4 ?1 o, ^: H% Y
  -> 0.135335    * n  N' ~2 y7 V' @' V6 @3 I+ p8 v
8 f: |& k! R: `+ O
log(n)  6 M( t# w0 E( G( I5 Z
返回n的自然对数  5 [: F( r) f, y. z
mysql> select log(2);    3 q; c2 f5 @" k7 z( E2 y8 G
  -> 0.693147    + J9 P( R" c) G1 b
mysql> select log(-2);   
* X' P0 A5 I# K4 ~. _  -> null   
- l% Q+ E4 k0 {, K. B' N! x , N2 J) i7 z4 a* H1 b. n
log10(n)  8 R/ y, n7 p$ T/ k) J2 a3 A7 c5 ]$ b
返回n以10为底的对数  
9 S1 c2 T8 ]" n3 V) B: p6 }mysql> select log10(2);   
: X5 m: D9 k, q; {( g  E  -> 0.301030   
' O& |' n7 Y' W% Smysql> select log10(100);   
! L8 u' D: M" n& D  -> 2.000000    . b# h# M) f' h
mysql> select log10(-100);   
& y  w' [- {5 z. n  -> null    . K% x4 Y* h) N( f' Z3 d: b
+ ]# r7 G4 p5 _2 E, M
pow(x,y)    ; \9 {) b7 W) i) q/ c4 v( l
power(x,y)   
; A& H& R" U8 V5 _ 返回值x的y次幂  $ w: J, \- l' C9 l' O
mysql> select pow(2,2);   
+ _. ?5 P' C+ v# U% Z$ o  -> 4.000000    4 H) n9 d9 q: [
mysql> select pow(2,-2);   
7 I# C8 h+ O1 A  -> 0.250000  5 h  r3 v0 M# g5 w; L

9 T7 O3 X6 w  v& v; S) osqrt(n)  
5 h1 Y. t+ W" h 返回非负数n的平方根  ! [& w  j1 G: ^: F: z7 L
mysql> select sqrt(4);    6 g& O1 D2 y3 p3 O& h9 ?
  -> 2.000000   
; o1 ]' }' r. p( ], Lmysql> select sqrt(20);    ' E" E. \: M6 i2 w/ x0 O
  -> 4.472136   
& J8 K& r' h4 ]5 C ) a2 A# }9 b4 O, i/ F5 ^" y
pi()      B; k" a; k" X+ r+ [/ ~7 M
 返回圆周率   
! Y. [  u) g! ]mysql> select pi();   
, l2 h( U0 F  m, O# L5 k7 W  -> 3.141593   
! {) s$ _6 ]0 V; j. b  {* z 9 X; [, e2 _* [( \
cos(n)  
. G6 P' x+ f0 ~! X8 ^% i 返回n的余弦值  
. h" d$ v6 o  P% G  f7 s( x  emysql> select cos(pi());  $ U1 m8 U' [+ v$ j7 H/ M6 C# O% E
  -> -1.000000   
1 F4 S. n- D; ^* L
, A0 T+ V3 L# n# f4 osin(n)  0 i3 L' c( R. s
 返回n的正弦值   
- X- E' Y' T2 Q; u8 umysql> select sin(pi());    ; t) e6 Y) c' ^1 y: C: r
  -> 0.000000   
/ [  H7 F2 a2 o! B3 q) U ( R# D$ Z# S& G( Q
tan(n)  ) Z* t* |  s8 s3 e- J) j) e0 ?
返回n的正切值  
9 M5 |( {8 L- |, |0 ]: }$ w$ Gmysql> select tan(pi()+1);   
3 O/ c$ T* _: Z  -> 1.557408    0 B& D5 N9 V" n- Q( c$ H. M
5 W+ Z# q( g& V' J3 n3 d
acos(n)  * B$ K  Y; @3 I! ~8 K# x1 Z
 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  
1 [% c' z, C: ^: [mysql> select acos(1);    % F, a! ^2 J# H2 G; o
  -> 0.000000    + D. K: n8 N1 @! `: S& `/ m
mysql> select acos(1.0001);    & ]. o" I8 F" j
  -> null   
. P5 h6 A) s. Smysql> select acos(0);   
4 B' p- |+ X" e+ }) ?$ {  -> 1.570796   
, P! u+ K5 a9 R' o. ?( X$ m 9 j$ D& j" M0 X! e
asin(n)  0 t+ A6 z' T* j8 d5 T! [
返回n反正弦值  
9 Z. m: `: H% Q; z5 y/ D- r/ i9 ?mysql> select asin(0.2);    $ m& h6 a5 X/ i( `% a% T9 H" w
  -> 0.201358   
" z# H7 ^9 F7 p: z- Kmysql> select asin('foo');   
6 w" }' ~& K0 Y: u, I4 t+ k  -> 0.000000   
# v/ c8 ~1 e2 t, A, n & G! O/ J) I* c
atan(n)  7 ?8 L8 C/ C- o  E, U$ ]8 Z! {% n
返回n的反正切值  
( Q4 r/ c- |/ Rmysql> select atan(2);   
2 \$ `: u, ^4 X; G  -> 1.107149    " a3 i( W' l  E& R* c/ j* Z9 h
mysql> select atan(-2);    " `/ y' N$ d5 A# S3 C8 u% J
  -> -1.107149   
5 @7 b+ \. H+ b& o# o; d" D# U  Oatan2(x,y)    # z, E' m. ?" V2 S
 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  
) d& p8 R8 h8 v5 Q0 s" u+ _- A/ Pmysql> select atan(-2,2);    7 h, h3 Y/ I. M9 e: V
  -> -0.785398    1 m9 `4 S+ n0 V
mysql> select atan(pi(),0);   
1 i8 Q# t* ?9 X2 x  -> 1.570796   
; P- S: K0 _; @0 a" s; ^6 Q( M! H
3 N- a6 `* L6 @) S) T: o* @1 o/ M( V2 Rcot(n)  
* d+ c- P. }: ]3 B" o返回x的余切  & |3 S3 z& d. a. l5 k
mysql> select cot(12);    / F. M& z! \  A5 y3 b
  -> -1.57267341    " x4 I: F4 J% w" x0 F7 l3 T2 ]' k/ r
mysql> select cot(0);    - V4 z6 }' p* ~1 Z" p. U. u
  -> null   
/ d" M2 R, a4 P) _" r' N1 ?6 V
3 h. m3 m2 F9 D2 H; k" g5 d* frand()  
) n# @" d' o- @7 @% \- G- m3 N3 i( yrand(n)    
: a* _7 _8 ?4 C) D2 S6 M返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
9 o7 G3 W; q( G- F; B' I" r 6 [9 T& k1 T, g  R" h) I: B7 ~( c
mysql> select rand();    1 H" N! E/ L3 F  J$ P0 @! n
  -> 0.5925   
" O4 t' g$ z- \' A+ Imysql> select rand(20);   
! j4 ~/ c. d3 c$ I0 _7 w+ B  -> 0.1811   
1 x0 K! T% v" [1 M9 v. Y: Amysql> select rand(20);    % c7 m! |) m6 r' i
  -> 0.1811    ; e8 ~' U5 x. `
mysql> select rand();   
/ o* X& M. y0 U8 k5 j; s  -> 0.2079   
' ?( p1 l& ^3 f1 Tmysql> select rand();   
7 C( M$ Q" c& K1 W  -> 0.7888    6 q( R$ b* U* A' s! w
3 ?2 u- S! n+ P- t
degrees(n)  1 d9 B3 O2 D$ p. R& Y; O3 a
把n从弧度变换为角度并返回  * G3 r2 X3 N9 V4 _# J6 l/ h
mysql> select degrees(pi());   
$ a5 M( d% P  X1 y+ [  -> 180.000000    / v2 c$ [! i5 `0 z4 H

- T0 c0 P- B6 N2 Y3 rradians(n) , E$ x; f& j" @: h7 \5 R& ?
把n从角度变换为弧度并返回   
. F- t3 \3 A1 O- Lmysql> select radians(90);   
6 [/ G, f! ?2 @) \* Z9 f  -> 1.570796    4 \4 v$ `4 n6 `4 W. l* {. F, C9 i
5 s% C) @4 Q* C* a1 X- v
truncate(n,d)    & \* v/ r& T/ [1 _
保留数字n的d位小数并返回  
, H! R& {7 @; f" ~8 Umysql> select truncate(1.223,1);   
( Q2 {; R2 Q) r3 x5 Q) `- W  -> 1.2   
+ w# |5 y0 C" _/ W- Xmysql> select truncate(1.999,1);   
8 K7 ^. g( N7 q  -> 1.9    " S- x, ~1 A5 Z' ]" z! l  @& J7 R  G
mysql> select truncate(1.999,0);    8 ~2 X: q7 N5 o9 U+ j: w/ l+ B
  -> 1   
+ y: _' I- a0 z, Z9 i; p5 D
& t0 L$ N" d) P/ b+ ?least(x,y,...)   
' @" w% a: S2 }7 x) p: q* F返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
. K; |2 m- N* }: W" h( R1 S, W0 Amysql> select least(2,0);   
4 e3 e' j: X5 O7 z, w6 Q0 }, k  -> 0   
9 R5 H/ n) G4 K9 jmysql> select least(34.0,3.0,5.0,767.0);    & {1 S1 L! a, f1 p6 ~1 b
  -> 3.0   
& l& Z8 @; z$ o0 x* F7 wmysql> select least("b","a","c");      I) W( z( |6 ]: u* s
  -> "a"   
5 x" Z- O$ |5 B. P1 K + ]* [: e1 y& J, E7 ^) S( i& }
greatest(x,y,...)    + C, s5 _, y# k- l9 ^& D
返回最大值(其余同least())  
/ {; p/ t) R! Q+ e6 C) }& t2 n# P7 |mysql> select greatest(2,0);   
9 h# S4 _; X5 w& O  r  -> 2   
! j9 x- |- P+ P  u1 }) a' e2 xmysql> select greatest(34.0,3.0,5.0,767.0);   
4 \, r# n3 \0 S  -> 767.0   
* g) {# e* P9 ], S1 xmysql> select greatest("b","a","c");    # x1 _* ]8 X# r7 F- K6 H
  -> "c"     
: N4 o1 J) A! r$ A0 x2 |2 X, A! [
3、时期时间函数
5 {1 v/ l  `4 z' e) z7 n: n- b! |) Ddayofweek(date)    . r  H) `) ~0 ]: V/ C8 {1 i0 |
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
5 H5 Z9 w* U9 A: Z* n- ]! J4 U/ tmysql> select dayofweek('1998-02-03');   
  U+ Q( W& r, l$ T3 v% I" k  -> 3   
/ _% b( g! [, i  w' `5 H( c! O ! U5 c, \' g; O/ k' k
weekday(date)   
" C8 {: K4 \7 F2 e. L) R6 W返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 ! N, O' {# A( u
  
: l7 S. f$ w, L- t; ~5 b0 Smysql> select weekday('1997-10-04 22:23:00');   
% [! ?& j4 S" P% A! d- Q  -> 5   
; S4 W3 n8 k; k& e( ^* jmysql> select weekday('1997-11-05');    1 z6 y6 b; N2 L. e% _! G* K( ]% y
  -> 2   
; ?6 p- C+ o+ ?9 J
$ L: D/ Z: J6 L& \" ]. {dayofmonth(date)    
  f$ ?* x& n8 l9 d) D8 I返回date是一月中的第几日(在1到31范围内)   
: g8 C1 \+ B, Y. m5 s3 M, hmysql> select dayofmonth('1998-02-03');   
1 l5 D: F2 m* ?, X, D8 P  -> 3    2 A3 @9 B  @' H; @8 e7 I6 y

9 _, o! n! w& ~0 B2 K) r0 I+ qdayofyear(date)    9 C& Q  n& `9 ~* M
返回date是一年中的第几日(在1到366范围内)    6 F1 C. ^6 p& k
mysql> select dayofyear('1998-02-03');   
  ?1 _9 @( n6 }# c% [( ~: x2 K  -> 34    * ?3 T) v2 ~# S+ P: I; f% K9 Q# e
( r* R- {4 |/ @0 }; D' d
month(date)    . D4 [  |7 F! e: X5 Z
返回date中的月份数值   
/ M6 h" v5 R$ d1 j: r9 qmysql> select month('1998-02-03');   
$ d+ \& O9 s3 a7 N' n3 O  -> 2   
$ r- w8 }! R$ {& q; [. ^ 2 q% u7 f: W9 T+ K$ c
dayname(date)   
+ ?7 h$ v4 g5 i" Z+ {* V2 z返回date是星期几(按英文名返回)    T$ `( n7 F# c/ ]
mysql> select dayname("1998-02-05");    : g- F8 ?; n/ V8 h* I# _7 `
  -> 'thursday'    3 S2 A8 ]0 b7 t4 z' @/ `# s
, v, L) D$ K6 u: F6 c: w6 w
monthname(date)    
! R1 w5 d) X9 g& N返回date是几月(按英文名返回)  8 n: b! Y+ r4 e
mysql> select monthname("1998-02-05");    - l* G! o0 T& Y/ I2 P. U
  -> 'february'    ; _! D$ Q7 y3 ^' ~) z8 l
1 ]5 D" [& g/ d1 j
quarter(date)    5 q  F! i2 j2 z/ n
返回date是一年的第几个季度   
4 Y0 N) j7 s" ^8 v$ ~) `6 Vmysql> select quarter('98-04-01');    ; V2 b- V& \0 s* D8 m# P
  -> 2    7 \3 i8 N0 G$ b! w5 |' q
4 F3 L4 B8 O$ I* c# M5 w
week(date,first)   
0 }/ B8 K) A/ j1 s0 C返回date是一年的第几周(first默认值0,first取值1表示周一是) ?4 `7 s5 D# }1 O  B+ N
周的开始,0从周日开始)  / d# d3 s; K: ^2 c6 N
mysql> select week('1998-02-20');    - U4 E5 I8 S& q
  -> 7   
' x6 s; a. K+ O4 k% Rmysql> select week('1998-02-20',0);   
; r; h! p% U% R. c9 K( o  -> 7   
4 k% }2 y/ h$ S/ G" R7 dmysql> select week('1998-02-20',1);      O2 P' e: V' \, Z5 S
  -> 8      R% R3 f% a! A/ b) ^

  l! a- u& c' ~3 o. D+ U4 ?year(date)    & E# i. p1 D  v$ j3 F' |! @. h
返回date的年份(范围在1000到9999)   
: w# `; _( t$ ?! F2 Gmysql> select year('98-02-03');   
; o7 g: M0 ^/ q. _; x4 ^8 [1 m  -> 1998   
7 X" i6 Z* V8 A4 O" d& N 1 }+ M% k9 r2 }8 T- ~
hour(time)    
2 Y+ A  u. l6 m返回time的小时数(范围是0到23)     s- B, D( H0 @/ b% d" g
mysql> select hour('10:05:03');    " d- M7 u. l9 ]& e/ N( E! d
  -> 10    8 z1 U4 L/ T# V# V

" N6 o- v: w$ u$ G  J/ uminute(time)    0 ]; I& h  M9 o4 K9 l
返回time的分钟数(范围是0到59)      u9 Z3 t/ {9 Z7 l$ c  T) s# H6 l
mysql> select minute('98-02-03 10:05:03');    6 k# p+ g, V9 I1 g# @
  -> 5   
$ d9 U/ w  M" L& i! E8 x: ^. L 6 K) j& X& x0 d9 C4 k) r; T& Q
second(time)    
9 y3 j* [! Q9 G( P0 K% `# P' T( r返回time的秒数(范围是0到59)   8 N# |4 t2 T; i6 F
mysql> select second('10:05:03');   
1 j+ h% }6 g- |7 P% `  -> 3    / {4 f$ a* c- Q" w! s! H

0 ~8 A) n( h8 e) J4 u* bperiod_add(p,n)   
) w6 `5 Y) s1 U3 f增加n个月到时期p并返回(p的格式yymm或yyyymm)    7 ~% ^5 m: T, r. H8 l. C
mysql> select period_add(9801,2);    . d2 Y- [% t! k# ~) z3 D5 n* K2 n' b, p
  -> 199803   
( c# Q  t* M# ~
0 D. y5 I! _+ P+ k( X$ ?' E1 J4 Cperiod_diff(p1,p2)    & r: u8 b* B  z6 Y! `$ o4 C0 D
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  
9 Z  T8 x! g, E5 M* X, H: o6 O, N6 fmysql> select period_diff(9802,199703);    & K" Q8 L$ {- w
  -> 11   
( Q1 [! ^, `: e4 [3 z7 x
/ s$ A; z( G5 P; q! Zdate_add(date,interval expr type)  
, j. U/ ?" u9 odate_sub(date,interval expr type)   
9 `6 k  y! X" _5 w5 O8 oadddate(date,interval expr type)   
# R: }/ H  z( J5 D0 lsubdate(date,interval expr type)  $ F$ \4 R1 G# }8 h% Z
对日期时间进行加减法运算  
# G% E1 L- p7 ](adddate()和subdate()是date_add()和date_sub()的同义词,也
4 E8 P& R( o" V3 D2 u. Z可以用运算符+和-而不是函数  * P# {2 |. M0 S
date是一个datetime或date值,expr对date进行加减法的一个表
, _- g( V6 D) v# Y达式字符串type指明表达式expr应该如何被解释  
) N4 W/ ?% |! ] [type值 含义 期望的expr格式]:  9 M' l! G3 P  R, \, Z( \
 second 秒 seconds   
" }0 J  Z9 P* r- L# a minute 分钟 minutes    8 d* Z& d: O3 I' T$ d( D7 T- m
 hour 时间 hours   
' _- P$ U0 Q2 z4 Z. k2 E day 天 days   
, l/ j5 Z! |% w% T2 f7 K3 K month 月 months   
( X$ Q/ U. c" [  [; d% N year 年 years   
  X1 g) d. h* O6 k& J minute_second 分钟和秒 "minutes:seconds"    4 j0 {) t$ R+ O+ F7 H" s% F
 hour_minute 小时和分钟 "hours:minutes"   
. B5 N3 c2 M' g2 c day_hour 天和小时 "days hours"   
' h* Z$ @) A% o7 A/ y$ W" \9 |8 B7 D year_month 年和月 "years-months"    / G+ y6 H1 x+ I/ p$ y, @# H  A
 hour_second 小时, 分钟, "hours:minutes:seconds"   
* _) w! r' Y2 t9 S3 r; y day_minute 天, 小时, 分钟 "days hours:minutes"   
: P/ L" x% ?  n( ]+ a; j, y day_second 天, 小时, 分钟, 秒 "days/ Q: I4 l* l3 t$ v4 g$ y: G( T; X3 F& z
hours:minutes:seconds" $ `+ c; o5 V; Z9 v9 ]
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个. _2 m; i4 q8 x) y; n
date值,否则结果是一个datetime值)  ! E( }. q/ O% N! h6 Z
 如果type关键词不完整,则mysql从右端取值,day_second因为缺1 [+ }7 c6 P" \3 T0 }* l
少小时分钟等于minute_second)    X' K* E6 u  l: @8 @9 u
 如果增加month、year_month或year,天数大于结果月份的最大天
* Y/ L1 w! R. h% g. S8 l, G. ?数则使用最大天数)   
# Z% D1 S7 V. Gmysql> select "1997-12-31 23:59:59" + interval 1 second;  
* ~& @% H* `& h+ L) k, |! E
+ G% Q1 a2 I4 e) x( M# K  -> 1998-01-01 00:00:00   
% Q' I2 J# X; c) B4 }* G' }; Umysql> select interval 1 day + "1997-12-31";    / ]9 u# X- t% Q  ]8 j
  -> 1998-01-01   
8 ~) }3 r$ T1 B$ Dmysql> select "1998-01-01" - interval 1 second;   
7 C2 B: i/ V" y: `, m3 t  -> 1997-12-31 23:59:59   
) v: L* C" R8 V! ]0 [# f3 h$ _# lmysql> select date_add("1997-12-31 23:59:59",interval 1
8 W! c% r: l; Hsecond);   
6 F6 a0 R% i$ f3 [" V- Z! c  -> 1998-01-01 00:00:00    / A4 Y. v1 b) g& A) z, O! \
mysql> select date_add("1997-12-31 23:59:59",interval 1
" @; a- S6 Z& s% U) f1 |! B: F, u6 f' Tday);   
8 O9 {% x" n- L  -> 1998-01-01 23:59:59    , N' s1 ]- g& w
mysql> select date_add("1997-12-31 23:59:59",interval  \  c. k4 M7 l3 |- e# C3 ~
"1:1" minute_second);   
3 S. L, h* `& [+ t8 @- d0 t  -> 1998-01-01 00:01:00    9 E( [3 s0 f& \' m$ v" u
mysql> select date_sub("1998-01-01 00:00:00",interval "10 S- Q: U4 H! a
1:1:1" day_second);    : T# V9 w6 }* t0 v9 t/ ]
  -> 1997-12-30 22:58:59    " G; o( R$ h# e4 R1 W1 ]2 Y
mysql> select date_add("1998-01-01 00:00:00", interval "-1
# i. z9 R' e  Q, l6 J' S10" day_hour);  
% M; x. A1 x5 t' Y* G* u  -> 1997-12-30 14:00:00    " x& j' }. |1 b
mysql> select date_sub("1998-01-02", interval 31 day);    * k4 t% q, p* a6 K
  -> 1997-12-02   
8 g1 `* I: P1 A; B0 \mysql> select extract(year from "1999-07-02");   
: L( X1 }; }4 X' y; g4 b1 Y8 W! j  -> 1999    ; E- }, N9 H" R. d
mysql> select extract(year_month from "1999-07-02' ^9 T0 Y! C, b% ]* x7 N
01:02:03");    0 Z4 S/ R5 R2 |( m
  -> 199907    2 F- Z$ N3 o; Z3 E1 o
mysql> select extract(day_minute from "1999-07-02
3 O: S7 f6 S6 ?6 F" [  ?6 q7 `) R$ v01:02:03");    3 W) X( F: d) X0 S- A5 `" k+ ?
  -> 20102   
' M9 x& v8 v: D- [6 I # I0 f- c9 B* _0 e4 ?$ ^; U
to_days(date)   
1 S0 P7 m( {+ O返回日期date是西元0年至今多少天(不计算1582年以前)  2 y+ @) N" N! o, r
mysql> select to_days(950501);    2 e$ i/ O0 q! j' z
  -> 728779    # N0 Q8 t  I; B" A, z# B5 W
mysql> select to_days('1997-10-07');   
; L# [; k+ e; V" l3 f4 [  -> 729669    , ]* [, E; h0 U) {% F% n
  A) m/ B+ F) ]5 r
from_days(n)   
# `& o: t0 O2 t2 T: L$ n1 a) d 给出西元0年至今多少天返回date值(不计算1582年以前)   
7 K9 F2 s5 k8 @2 rmysql> select from_days(729669);    . v8 d' N6 ]) P2 Z' B
  -> '1997-10-07'   
1 _6 g8 b2 v% v2 b: X5 K2 y # W. p& W; {6 V7 n+ w$ Q* {
date_format(date,format)      L" y+ l/ d0 Q/ \8 \
 根据format字符串格式化date值  ( e3 _: v$ l. F
 (在format字符串中可用标志符:  
, j9 a% F. ?, P0 J0 n: T %m 月名字(january……december)   
( c8 }! K! e# @0 L: K %w 星期名字(sunday……saturday)    9 K, k0 B9 ?7 k7 c# E1 \! S
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)   
/ ?  z" O! t, Q1 S2 ]* m %y 年, 数字, 4 位   
) H/ ~' E9 ^" }) y( c0 n- C %y 年, 数字, 2 位   
4 u) k/ y6 a) r3 P7 Y %a 缩写的星期名字(sun……sat)   
7 P( s( y8 u6 c2 }: [6 C" V( B %d 月份中的天数, 数字(00……31)   
7 I1 h9 |) O) @ %e 月份中的天数, 数字(0……31)   
6 D( y3 Q0 I; E, B %m 月, 数字(01……12)      R0 C# M7 t  k" Q8 X
 %c 月, 数字(1……12)   
. V5 R+ B# Z7 V0 s %b 缩写的月份名字(jan……dec)    & x) U7 J% @& g0 b* |3 Z  g
 %j 一年中的天数(001……366)   
5 F7 a2 n" M! D0 Y: w) \$ P %h 小时(00……23)      ]) I! \( V. m1 r6 s' f
 %k 小时(0……23)   
" W" P5 t' r) L' y8 D8 y! D7 f %h 小时(01……12)   
9 ~5 [5 {) b. d( N1 j %i 小时(01……12)   
/ c- ^9 E% R7 D& e %l 小时(1……12)   
" `/ K) ~2 }! }" Q+ k7 ?8 W %i 分钟, 数字(00……59)    2 j: F8 S4 ]$ M" {# s6 f
 %r 时间,12 小时(hh:mm:ss [ap]m)    4 P( v  i; b% p, `4 U
 %t 时间,24 小时(hh:mm:ss)    ( U# r% B( H/ B7 e) `  ?* n
 %s 秒(00……59)   
. }8 @9 C) c' c+ h# ?4 |2 c %s 秒(00……59)   
( ?! ^5 E. j3 K8 b4 `8 r0 J; z %p am或pm    6 s; Z2 K4 C- h% C2 v
 %w 一个星期中的天数(0=sunday ……6=saturday )   
/ \$ W% d# W1 r# o1 N %u 星期(0……52), 这里星期天是星期的第一天      N6 X& `$ [6 S5 A
 %u 星期(0……52), 这里星期一是星期的第一天   
/ w* A0 S1 j6 J+ S/ d/ e$ v5 a9 b %% 字符% )  " v+ F3 m: M1 Y, }3 I' r% E; k2 X. e
mysql> select date_format('1997-10-04 22:23:00','%w %m %+ t7 Z- I, {! B* [% i
y');   
6 Z! a/ t% H- G" h# g$ O0 O! O  -> 'saturday october 1997'   
+ ?! i1 ]6 p; }, R0 _7 rmysql> select date_format('1997-10-04 22:23:00','%h:%i:%
% |6 V( C3 x6 u6 ]s');   
% N0 x5 s4 `8 `1 y$ v" S4 m  -> '22:23:00'    # p: l) y  u7 ~. f
mysql> select date_format('1997-10-04 22:23:00','%d %y %a  k6 ~2 ?, s  n5 U; j+ x( J# Y
%d %m %b %j');    + S0 b/ u$ _( m- L$ O# F# b
  -> '4th 97 sat 04 10 oct 277'    , s. n) p& O) I9 N. Y, b2 A6 ]
mysql> select date_format('1997-10-04 22:23:00','%h %k %i$ Y  A7 p/ z3 T8 k- Q) V9 a1 b
%r %t %s %w');   
$ V' F4 @" `, A8 n9 k) D: P! p* V8 C5 X  -> '22 22 10 10:23:00 pm 22:23:00 00 6'    7 L8 C3 ]4 H3 Z4 E: ~2 v. T

% Q$ u  q' ^# e/ Atime_format(time,format)  5 r3 n; `9 y9 n/ O$ B; N1 p6 ]$ X, M
 和date_format()类似,但time_format只处理小时、分钟和秒(其
1 x: A! E- @, Y( g4 A! S# u余符号产生一个null值或0)  % Z- y# @' \8 ]8 s; e* N; b* u

+ u5 E$ A4 Z2 }0 H- |+ F, Hcurdate()     - _( `2 l0 z' `9 Z9 k
current_date()  
; X7 m+ |" E# K% v, J 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所7 X6 n" d2 G* t  ~+ W
处上下文是字符串或数字)    6 g8 f  m+ G  p! h, b5 g, _
mysql> select curdate();    / m, z/ O* p" N6 d; _
  -> '1997-12-15'    9 t6 l2 Y. R) f4 \% z
mysql> select curdate() + 0;   
: g- z( @+ @( E. z9 M) b  -> 19971215   
; D, `; U$ n: _2 s. l& v# V) t & q( i7 C2 L+ j8 `4 w% k$ `
curtime()    : t, e. S+ d! m' W% Z1 [& l. S$ q3 b
current_time()  - o) H( I' `' M4 H
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
- l4 _# N: w5 b/ U下文是字符串或数字)      
) B7 T, `1 u9 B4 f# zmysql> select curtime();    - P  I% J4 G: G: ~5 Y' Y) v
  -> '23:50:26'   
* Q+ Z4 o3 Q, O' j& u- T/ kmysql> select curtime() + 0;   
* y! M" F4 }3 \+ `2 G& n, H' u  -> 235026    8 O/ k5 p  i$ q/ ~8 f9 z* @
" `  F# y& e6 d
now()    7 u, G# N2 L8 z' h
sysdate()    0 Z# Z) c5 O# M, n
current_timestamp()  
' [* e4 C- T, C5 D- f  F 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期+ D; k6 V- M2 ~# d% \% @1 m
时间(根据返回值所处上下文是字符串或数字)     # e7 ~: V8 l% r5 ?
mysql> select now();    + t) b0 X) j$ n; R: N
  -> '1997-12-15 23:50:26'   
+ Y- t/ }7 g" ~# p9 ~, m3 ^mysql> select now() + 0;   
& g& O, L. l: j/ l; [7 f4 j  -> 19971215235026   
( r5 F' f+ R+ ?' [1 I8 a
) p/ X2 V* W+ X, D0 Y5 gunix_timestamp()    - B1 K2 q: u' k0 ]' q
unix_timestamp(date)   
& C7 E# M+ c5 r$ z返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒3 w  y* u! W; I0 B, |$ w) V
数,date默认值为当前时间)  
% b9 [: W  M0 B& K2 X$ [2 a" smysql> select unix_timestamp();    2 k2 A& I4 W" j" j& Y
  -> 882226357    + C0 F+ @# {+ w% _" m$ K
mysql> select unix_timestamp('1997-10-04 22:23:00');   
* k, A" E* M7 u' o$ q+ d  -> 875996580   
2 Y9 k& a  f) P 1 P! B3 g* C+ _4 E, t, A: Q" P
from_unixtime(unix_timestamp)   
+ }* o' f1 Y" X! P. l& ?# I) \以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的
; Y+ h( X: @6 y' W; U+ M7 a值(根据返回值所处上下文是字符串或数字)     
/ M2 j- l1 q2 zmysql> select from_unixtime(875996580);    5 q: A% r2 T) @5 [, q& v& }+ k
  -> '1997-10-04 22:23:00'   
/ U2 O! l/ l3 c) gmysql> select from_unixtime(875996580) + 0;   
2 ~+ I* w* `7 X/ U0 O  -> 19971004222300   
0 O: s: d7 ^( F1 U" K0 W   n) A' r/ Y# j- h5 w1 r& @
from_unixtime(unix_timestamp,format)    9 N6 C7 p, B1 q& @, h
以format字符串格式返回时间戳的值  ' ?, C! c6 K+ p9 T* ~% X  A
mysql> select from_unixtime(unix_timestamp(),'%y %d %m %
0 _4 W/ C  Z# Z' Y& e" qh:%i:%s %x');   
7 l' y  f& I! M2 V0 X; W% L7 O* U  -> '1997 23rd december 03:43:30 x'   
3 d  ~+ D  p8 P5 P- c9 z& J. W. `
1 d& Y5 O/ d3 z/ M1 jsec_to_time(seconds)   
8 R5 B) Z. c1 F以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     " E8 E1 v! _, f6 ~% v, W
mysql> select sec_to_time(2378);    / @% m/ N' P' }' A) w
  -> '00:39:38'   
* \7 {" q. t+ s7 G2 q( t4 ^4 T, S1 hmysql> select sec_to_time(2378) + 0;    5 U9 E! z, L$ \! s8 R* y/ C
  -> 3938    # I1 `$ T2 z1 b) K4 ]
6 X9 C0 y* s* F1 t- g0 b% t. ?
time_to_sec(time)   
( J1 m$ q9 z6 m7 G5 a3 t返回time值有多少秒    3 z% Q+ y/ P) G( w5 A0 Z  `
mysql> select time_to_sec('22:23:00');   
# Z7 S  B* w. B. v. N) p  -> 80580   
$ s2 _6 L8 v, q* f7 g8 {mysql> select time_to_sec('00:39:38');   
' R- w  w, C* w/ U2 l5 V  -> 2378 1 ^; Z  a6 ~% ?

& u: N: v& I/ A% C转换函数
$ u. j7 o6 @" b8 d- {# S6 Ecast; u% w5 {9 u2 V! o: K! ^
用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]% U( [) e! x5 ~0 I+ V& s6 X) [
实例:select cast(a as unsigned) as b from cardserver where order by b desc;
9 Y6 ^2 O# R4 @0 Vconvert:
) g+ o# C1 V& p+ y1 l! H用法:convert(字段,数据类型)
8 C/ N* c% l! \. b& _实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
# a# X4 {, U& y1 e* K( [! i, N
回复

使用道具 举报

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

本版积分规则

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