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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数, _. [% k) C# }( v1 ~
ascii(str)   # s4 L% Q! E6 m4 |) h& G: I
返回字符串str的第一个字符的ascii值(str是空串时返回0)  
# W8 P( C' d- x( e; ~mysql> select ascii('2');  
) _* H2 l$ @( H: L  t  -> 50  
. E* B( D" g# M9 @8 s. C. d# emysql> select ascii(2);  
2 p: K5 A2 }+ m* |) r7 b  -> 50  " u, f* r* w4 _7 B  b% [* O& C9 t
mysql> select ascii('dete');  # S5 }/ @8 Z& q' m
  -> 100

4 U$ l' }. C3 b, G% F$ Lord(str)   : q- N% M; X6 ^4 G7 K# R* R
如果字符串str句首是单字节返回与ascii()函数返回的相同值。: B7 P/ q/ P/ Z% v2 B

3 f/ h. Q: e' j) {如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  7 I) s) C% b+ h
mysql> select ord('2');  
+ Z8 a" m" s- K) C! A- |. ^# E  -> 50  4 `* k" c  Q2 k* Z
   
, t& j2 Q" Q+ o( M2 B6 g- D. Iconv(n,from_base,to_base)   8 ]6 S3 |- g! \" B( j4 B, _- ^
对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)    p7 r, ~6 t3 u! i+ Z
mysql> select conv("a",16,2);  
% W/ F9 d( ]# N6 r8 b: p( v% @6 r4 `  -> '1010' 5 l2 Z+ r1 N) c
mysql> select conv("6e",18,8);  4 w' |5 x5 [3 U" w  A2 S% r& U& B
  -> '172'
+ z& _( m( C% g( zmysql> select conv(-17,10,-18);  1 {' O  a7 c7 T, h
  -> '-h' ) u1 W  _+ i' K6 ^0 A' r8 A
mysql> select conv(10+"10"+'10'+0xa,10,10);  , h2 A; x' ~; n' h
  -> '40'   w: a$ V# ~4 E& a5 r
   . m, q, z" w1 M  D( @( m
bin(n)     b# H3 D5 f/ |+ Y4 y' c& ?
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
5 Y) d, X4 J7 C$ [! N0 S+ K7 bmysql> select bin(12);  ) V, @  }; k0 r) ~0 t
  -> '1100'
4 Y  E3 b4 K) G 7 a6 R. Q, @: n3 _. M% S( L" k) k
oct(n)   
. B: l4 E0 C! x# D$ n% R把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
; V- p, X5 K2 ]4 q$ Rmysql> select oct(12);  
% \$ P" p8 n7 e8 N3 }1 C8 z  -> '14'
- j0 R& ?) l/ Z5 [   
# ^* N3 [. E& }' L' d! G# X* @& @  Thex(n)   
5 @7 k. `$ n2 a0 r4 m- E" x0 p把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  
$ P2 ?! n( F* h3 Ymysql> select hex(255);  " |( t1 r0 h9 o5 _8 p
  -> 'ff' " I& c1 Y: g4 M  m
   
0 S/ ^9 o- L- p- J3 jchar(n,...)   * z, ~: s, R8 F6 t$ p. i
返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   - E7 P1 D  T* t( }; d6 ?7 a4 M
mysql> select char(77,121,83,81,'76');  
5 I; W$ m- v) S! v' p. _" w" G  -> 'mysql' + [: B( U9 G% c, q
mysql> select char(77,77.3,'77.3');  
) k6 p. n; e* {; D& k  -> 'mmm' : n9 S- @9 [0 J5 C, a
   4 k& A0 _( h9 q+ _/ {  ]
concat(str1,str2,...)   / D% m0 z  Q4 X+ a5 ^& B- @* m& n. |& d
把参数连成一个长字符串并返回(任何参数是null时返回null)  
) e4 n  R( t4 l& g% |mysql> select concat('my', 's', 'ql');  
% b. L  _" C; H5 o  -> 'mysql'   M0 M0 M& n, R' k& Q4 Q- n
mysql> select concat('my', null, 'ql');  
/ Z9 ?* ?6 c3 C3 \- S+ V$ q  -> null
3 L3 F$ R4 x" a0 B+ B$ Bmysql> select concat(14.3);  1 [# C7 Q% w6 X8 w$ q* U
  -> '14.3'
7 O1 |' @9 J( H- {: A , n! f7 C. {+ e8 K7 E
length(str)   
0 U, ^0 L0 c2 o; Q8 roctet_length(str)  
% B$ r9 ]" |& k, R* m& E! l1 kchar_length(str)  # a4 g  `" e5 B+ E9 a" L
character_length(str)  2 v' T2 E- y; M; S$ o- o& g% ?' W' ]
返回字符串str的长度(对于多字节字符char_length仅计算一次)
6 e% z+ V7 g. |* Cmysql> select length('text');  ! D- \& A$ |( V" t9 H2 L
  -> 4  * R$ L) v' p: }2 X8 Z. B5 D
mysql> select octet_length('text');  * X/ e- i1 ~* G8 w
  -> 4  - U  ]6 R5 Z& N! ^  U. I
: r% N, @1 G0 m
locate(substr,str)   
: S7 U' |9 @  p9 Q! oposition(substr in str)   
- x5 x! a, h* S5 B返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  9 Z. Z% }2 \" l0 O  m/ O
mysql> select locate('bar', 'foobarbar');  ) N: e) |1 P! P& p$ R
  -> 4  
+ S, K# R; u$ Z: \" smysql> select locate('xbar', 'foobar');  0 S/ ]5 M2 y/ B
  -> 0  
( }! M+ M0 U+ ^" r+ X' [: s6 w   
" O5 O8 m& Y2 i* d* Alocate(substr,str,pos)
+ w) r3 U, [4 [+ J0 G返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  / X) q& G1 M, f, Y) R4 }
mysql> select locate('bar', 'foobarbar',5);  4 ]( q! d& o; _/ \2 ~: a7 x
  -> 7  6 {2 ^7 A* J2 g2 O

9 U; o5 D$ j  Y/ {( f9 ninstr(str,substr)  
6 i: }  ~* u% a3 i6 x  j1 w1 o返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  / T1 O) i7 c6 f
mysql> select instr('foobarbar', 'bar');  
' X0 x1 t6 |/ i* D5 h0 @# I: @" P  -> 4  3 Q3 @" R6 c5 ?: J
mysql> select instr('xbar', 'foobar');  
& ?* L$ j6 D0 K9 P1 \  -> 0   
3 ?+ [5 x) m! O0 ^$ \5 X2 [! C, t 4 D# u/ c0 l* @" |
lpad(str,len,padstr)   & |2 I( d: k4 ?
用字符串padstr填补str左端直到字串长度为len并返回  % z( L+ I5 W) M& q* ~
mysql> select lpad('hi',4,'??');  
# ^* m; Z* h8 J. b! N5 q  -> '??hi' 6 o# H1 `( U9 i4 f5 I  \! y* M; p  I
   
: e8 j; G+ q! x9 v5 T( vrpad(str,len,padstr)   
" {+ [+ h) x1 `) C4 X用字符串padstr填补str右端直到字串长度为len并返回  
1 A. K5 c6 [- f8 h8 h! @mysql> select rpad('hi',5,'?');  ; o3 f( s+ q, t2 k' K
  -> 'hi???' ' z! A/ q& f; Z6 p  e- y0 _+ L& f0 I; T

& p3 z, X9 e5 k* Gleft(str,len)   ! _* U3 G5 y& z
返回字符串str的左端len个字符  
  I, {; P* Z! R4 [5 c) l. n% umysql> select left('foobarbar', 5);  
8 d( N! C& u" E) K: J  -> 'fooba'
+ m: A9 @1 M6 L& t0 i
( T% v; ]) L/ l  L/ z9 C* s5 I7 Cright(str,len)   
: V& Y7 S' X/ ^3 q0 X8 X( m返回字符串str的右端len个字符   
3 n1 P9 x; O1 {9 \: ~1 U, \' qmysql> select right('foobarbar', 4);  " N5 K! l$ ]+ i# s4 {! w  \
  -> 'rbar' ) T# W0 ^. X0 `" x2 n) ~

' {$ [. p8 r" m+ ?; {substring(str,pos,len)   
/ p; O$ S3 r( J9 g7 l7 |" p" Msubstring(str from pos for len)   
' z! u. z, g( r+ bmid(str,pos,len)   
6 f5 `. a5 M8 b返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
7 u8 {1 R8 p  w3 l  -> 'ratica'
0 w( q2 J: C0 C& G, O" R
) c4 p" p% l* R6 gsubstring(str,pos)   ' H  f7 K; T# |3 p5 I* c  o$ P  d
substring(str from pos)   8 c0 L8 [# R+ F  Q/ C2 Z+ M" a1 ^
返回字符串str的位置pos起的一个子串  " s6 G* o/ T3 C1 u
mysql> select substring('quadratically',5);  . j8 \3 C! d. J( w; L
  -> 'ratically' 3 ]3 s0 C1 R0 Q  y
mysql> select substring('foobarbar' from 4);  
6 l. D$ r& b4 Q/ i- W- {  o9 G  -> 'barbar' 6 ]; D$ Y2 [. w0 M  D; D, Q

8 B$ T0 O8 Q9 x3 c1 g# |substring_index(str,delim,count)   
; b1 ?( e5 w9 X. A5 L" |: Y返回从字符串str的第count个出现的分隔符delim之后的子串: d6 w4 E. e7 D; D# K% x$ C; @
(count为正数时返回左端,否则返回右端子串)  
! c2 `+ B! E6 a8 @; [8 Nmysql> select substring_index('www.mysql.com', '.', 2);  % F! P$ W  i* K0 Z  t' b, w  v& a
  -> 'www.mysql'
9 S$ z" j# j+ x1 n1 u* cmysql> select substring_index('www.mysql.com', '.', -2);  $ H' x# C* F' N- T2 x: c
  -> 'mysql.com' ( v8 X% F/ U& H% i6 S3 w
% ?+ J7 d/ w; M# G2 E" E+ y
ltrim(str)   
9 ^% l- L( ]" e, g. o5 ~5 w; D返回删除了左空格的字符串str  , z  E! @7 H$ D9 b
mysql> select ltrim('  barbar');  
2 t, W6 G" L( R$ ]2 p  -> 'barbar'
/ r2 }# J$ x- Z
& j7 {& B, t! A2 Z& Irtrim(str)   6 \, b4 v: c% ~) l9 ^6 x* f0 z
返回删除了右空格的字符串str  1 [# `( }: n: d8 q4 M
mysql> select rtrim('barbar   ');  
' X2 P' ], I* D; E6 F1 h  -> 'barbar' 9 A( I) H& X! K0 s' Z

5 E* `5 ~- ?; c& T3 G' ctrim([[both | leading | trailing] [remstr] from] str)  
( N+ M% Z( D$ q. Q) f返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  8 x. ~1 m5 |, V
mysql> select trim('  bar   ');  # i/ _) i& r2 L6 h9 E6 \, \; f2 N
  -> 'bar' 3 R* n; q/ l: K/ }8 G$ b
mysql> select trim(leading 'x' from 'xxxbarxxx');  & S) t5 p4 q1 m
  -> 'barxxx'
* \0 D  n$ g% v3 g4 s& x6 Smysql> select trim(both 'x' from 'xxxbarxxx');  
3 S3 y+ x' h0 k8 l- w6 n9 i  -> 'bar'
, Q1 G. z+ @; G4 l/ Q# lmysql> select trim(trailing 'xyz' from 'barxxyz');  
/ x9 u2 L3 z$ q- l" B6 E6 K7 m  -> 'barx'
$ x1 W7 E) ?1 y
* ]3 Y& ]. z8 \" b( Y" G, P0 ]soundex(str)   
$ y. g5 _7 `1 o( i8 Z$ B1 G返回str的一个同音字符串(听起来“大致相同”字符串有相同的
- `( ]1 `4 s7 F9 }同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  # t0 ]. w1 `, o
mysql> select soundex('hello');  
; b, h" e; F0 u9 c; S  -> 'h400'
  @9 v! y1 B; Y- a1 u: D  F' q1 qmysql> select soundex('quadratically');  
  q& P- {4 g. ^) O# n% d6 O- \  -> 'q36324' + r: p+ P7 y7 D1 Z0 [/ |( z! d
   
$ k( D, N; k+ z1 ?9 Mspace(n)   
: T' z2 O  d2 Q6 U3 \1 x返回由n个空格字符组成的一个字符串  ; F: X  G$ X  d& l
mysql> select space(6);  
3 O  W! O6 I; O5 T: V  -> '      ' " K$ g8 X- ?7 m3 }0 H; Q( h
   
/ b# O! Q1 ^+ Greplace(str,from_str,to_str)   
: w  p8 v  G. Q. H1 p用字符串to_str替换字符串str中的子串from_str并返回  
8 }' V$ k) o+ gmysql> select replace('www.mysql.com', 'w', 'ww');  
) T! O8 r: T5 ^% u% {) g. R* F2 j  -> 'wwwwww.mysql.com'
, W% S+ }" m0 [0 ]' V6 F , J+ f/ d2 q& m4 q" T
repeat(str,count)   ) D3 k& z) P3 Q
返回由count个字符串str连成的一个字符串(任何参数为null时
. b( g$ o$ P. u返回null,count<=0时返回一个空字符串)  
2 v* P: Q4 }5 T: R. o. O8 Z# @mysql> select repeat('mysql', 3);  % R% T3 u* W0 m8 I
  -> 'mysqlmysqlmysql' 7 K! r$ ~. Q. j- p5 \1 c6 B- f* U
   
5 e" `' A/ l/ ^3 c$ Oreverse(str)   
/ s* \+ Z' Z, ~" L颠倒字符串str的字符顺序并返回  
, }1 ]" }2 [6 Bmysql> select reverse('abc');  
  P" L* K# Q0 w3 Q% \  -> 'cba'
' p3 `* l% n' P* M " L- o% ~' n, e. x$ a5 f
insert(str,pos,len,newstr)   
9 ~/ |1 Q! _# o2 \7 [7 y" F把字符串str由位置pos起len个字符长的子串替换为字符串; S/ H6 w5 _6 i
newstr并返回  
  k+ v3 w; _6 [* r# N6 J& rmysql> select insert('quadratic', 3, 4, 'what');  
& W& D( R! \% e  -> 'quwhattic' . r/ ^9 `3 n5 A+ h4 q
4 v3 |; c. ]; Z
elt(n,str1,str2,str3,...)   
* O! f. ]8 b+ r3 y返回第n个字符串(n小于1或大于参数个数返回null)  ) E' w. b- \/ x$ h
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  
( ^2 ]; s# }( \7 z# c: [& @  -> 'ej'
8 m; c& a) z7 Q$ J/ T- Bmysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  8 @! O+ T" r- S, [9 ?
  -> 'foo'
% ~  j" Z% P1 i3 k* I0 F " o  ~% J3 m# l' t+ e) ^
field(str,str1,str2,str3,...)   ( c2 W% h* G$ a0 e0 J
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
3 V2 E5 X5 h7 T( mmysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
( b3 g) ^0 l# }'foo');  
: X0 s: l* K. c. j. J. y  ~  -> 2  " A0 L2 x" w3 K+ H. Z) I
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',/ l0 r; C9 B6 d" S! [! t
'foo');  8 v; e5 @% ~5 G" {
  -> 0  
$ c9 }; _2 `! q  |: }: ` ! h$ S' O- _5 ~9 A
find_in_set(str,strlist)   7 h# g! m! B; R8 E" Y0 {8 M
返回str在字符串集strlist中的序号(任何参数是null则返回
- i' l) i1 N( h5 `! onull,如果str没找到返回0,参数1包含","时工作异常)  9 z+ z% e; i9 `& e, n7 N( H0 E- y
mysql> select find_in_set('b','a,b,c,d');  9 {  E# @% ]0 |* G- o
  -> 2  
, L4 g0 U+ r& B# D' o, y9 ?   ( H9 C+ K4 j, U- P# g4 Y
make_set(bits,str1,str2,...)  . B* w' K8 }1 q$ ?9 |6 R* t1 y
把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应! ~: z' d; ^0 V( e- H
位置的字串选入字串集并返回(null串不添加到结果中)  
  D6 B+ a! N. Q5 r5 {mysql> select make_set(1,'a','b','c');  & h# X7 y9 |. p( V+ q( \
  -> 'a'
$ S  [( l% N- {# @/ n& Hmysql> select make_set(1 | 4,'hello','nice','world');  0 U7 _9 @/ s1 G7 W
  -> 'hello,world'
% t, ]( \2 a9 f# {mysql> select make_set(0,'a','b','c');  
. V7 G, A/ E& S, o9 Q3 U  -> ''
, I2 {# n! z2 B  } 7 w( r1 b. y* y/ l
export_set(bits,on,off,[separator,[number_of_bits]])   " @6 B) ?: l( D
按bits排列字符串集,只有当位等于1时插入字串on,否则插入
9 l8 l. ^; W) H. M# Noff(separator默认值",",number_of_bits参数使用时长度不足补0
: j3 f1 n7 u  ~! ^0 M) c而过长截断)   . M4 b7 n1 g5 [, N$ k( d+ B6 ]8 `
mysql> select export_set(5,'y','n',',',4)  
6 V" d4 H7 X4 E6 `  -> y,n,y,n   
2 ~# I) {" ^' f+ o/ H/ V5 i) \$ K
2 R$ X; h7 s4 U. O; ?lcase(str)  
, g4 j+ b9 f! ^- i+ z3 J2 X& J) Plower(str)   
8 o. Z: Q3 r, ~# e- Y; l返回小写的字符串str  
6 z7 B7 G0 l8 U/ Zmysql> select lcase('quadratically');    [( e! K8 a6 H
  -> 'quadratically' # e& }- x5 b8 \4 a) c: e0 f
   
( W4 e" r( o5 g) hucase(str)   . q4 W7 M$ q# @, Z  ~
upper(str)   ) G" h8 I' o3 G- w7 B
返回大写的字符串str  
  X% S2 n: a5 b0 Imysql> select ucase('quadratically');  
- [& l) _- f# ?2 r  -> 'quadratically' & H; A" @0 |# F$ s( ^
* i" ]6 ^8 H9 T' g
load_file(file_name)   + n$ p# ?: Z* @) r9 v) ^- I8 c* I  o
读入文件并且作为一个字符串返回文件内容(文件无法找到,路径
# R+ J" f2 v) n/ ?( w" q( e2 V不完整,没有权限,长度大于max_allowed_packet会返回null)  1 x6 b0 O* {: G$ _
mysql> update table_name set blob_column=load_file
' S, X; M* X' v* k! Z1 N# d("/tmp/picture") where id=1;  
2 B( f' @- K  T% p+ z4 c4 E
0 Q4 \. K  `& T" Q2 B1 M0 I2、数学函数
9 [4 {) m! @# T) F4 n3 \& @" kabs(n) + {' {0 T" F$ A( c$ ^' ^  ?
返回n的绝对值  : f9 r1 T( H$ y
mysql> select abs(2);   
  @  r0 O! A0 _+ V0 k  -> 2    5 j/ T3 x! M3 w1 B' [
mysql> select abs(-32);   
+ N* z, A; j3 p/ ~/ B& O  -> 32    7 H3 c. r! _9 M
   
+ K2 B# {3 ?* x. W: u7 Ysign(n)  
- n! V. f+ J, R! F6 |/ T: B0 H返回参数的符号(为-1、0或1)  1 s5 j! c, F/ s. I7 h1 @( j6 u$ L
mysql> select sign(-32);    6 v( s" O2 d: V+ n3 S: a
  -> -1    # w. v5 v" o4 _( N' Z5 v& W
mysql> select sign(0);    % {  ?- Y$ F; |0 m) t
  -> 0   
& t; e" R0 H+ w5 ]mysql> select sign(234);    * z. a- \$ l9 _1 c+ T
  -> 1   
& B8 D" y) k4 X/ m3 g 0 X+ h& [) [8 E
mod(n,m)   
4 r  W- U' D( e* n! J5 K# r, R: S取模运算,返回n被m除的余数(同%操作符)   
  ^& n7 W9 Y- L9 K0 Qmysql> select mod(234, 10);    2 o1 t" a  Z& X! V3 R
  -> 4      z- ]- \% I( W1 ?+ }, w
mysql> select 234 % 10;    * c+ a9 m3 f+ h( X6 Q* A: o
  -> 4   
2 E4 U6 g+ w8 B2 o, J1 ^( A! mmysql> select mod(29,9);   
" j0 ^8 I: _6 E: h. ?* Q5 G. v  -> 2   
& v( w. X, Q  ^4 \8 q9 V
; [; C0 _9 E  C. s  @floor(n)  
! f8 _+ U4 a. C返回不大于n的最大整数值  * p: C' W+ Z: I) R5 U9 @4 o
mysql> select floor(1.23);   
6 |( U7 ?: L, o4 L. G  -> 1    4 U* F: h5 g$ _1 z$ n3 H5 q
mysql> select floor(-1.23);    - z7 G' n3 b1 @
  -> -2   
7 s/ ~: k4 O. g. w  V, a + K+ |+ U5 S+ c, F0 R$ x2 ]
ceiling(n)  
* ^- h7 S5 Y1 _! e8 \返回不小于n的最小整数值  3 n# U# w5 T! U+ \  N
mysql> select ceiling(1.23);    . k. [2 ^$ z' N6 G; A1 G6 H6 ~
  -> 2   
& {; Y$ m# o, k2 Wmysql> select ceiling(-1.23);    % j/ X2 L! x' I
  -> -1    4 S9 d) |" [! s& b

2 o* ]( D; \# Y/ ^6 _% nround(n,d)  # n$ m4 Y  b& d% L$ q
返回n的四舍五入值,保留d位小数(d的默认值为0)  
& ~* ~( g1 j" P- N8 h0 {mysql> select round(-1.23);   
' a* |6 _  p! a8 K- u  -> -1   
  f" @. a1 a% |" z" ~) Amysql> select round(-1.58);   
% k  k" x6 {  \& O8 j  -> -2    ' N2 N  q" J7 K$ t2 a- N- ^
mysql> select round(1.58);    % B% B9 G8 U& A( x6 i
  -> 2   
0 C7 D& Y3 }: n( Y- Q+ Fmysql> select round(1.298, 1);   
/ P/ @4 _% d7 z4 N3 `! Y- a" r  -> 1.3   
% P" A4 E3 [8 {& gmysql> select round(1.298, 0);   
$ o  F( C0 h5 ~& C" I  -> 1   
1 z  T* A# |0 d ! y& x1 e/ Y2 [) z+ P
exp(n)  ( R9 x$ o" V8 }( L; _2 `- H% e9 ?
返回值e的n次方(自然对数的底)  
# Y! q4 |; J; `# D6 bmysql> select exp(2);    ' E1 I3 \) r- n' S: e& y" P
  -> 7.389056   
) r" C) V* c. `mysql> select exp(-2);   
$ V- }  t; u3 w& |  -> 0.135335    ' _8 N4 ]. x9 q1 ~* J
8 `' q3 {! Z& \. N2 o) d2 F+ t1 b
log(n)  2 w3 G7 k' ?5 l5 u
返回n的自然对数  % b' w* s3 h  L: E2 C9 h
mysql> select log(2);   
6 Y! _: |0 B6 k( g  -> 0.693147   
. l: ]2 w* i$ g4 I4 mmysql> select log(-2);    9 h" y) e' J4 M! ]
  -> null   
- B8 j2 I5 y, \ / G. @; j! A$ j4 ^. a! }4 T5 ~
log10(n)  
' q5 C7 D/ K0 g) h" d" V! v* O  K返回n以10为底的对数  
# {8 E$ A/ `: T8 A  Jmysql> select log10(2);    . G% W& F* U; _  u$ X4 J
  -> 0.301030    3 D6 i9 z$ r/ \+ g% x6 t. C1 ^* Y
mysql> select log10(100);   
# @/ T. `$ y% [. n& l8 Q. e: V  -> 2.000000    ) P% s" m; K6 ]
mysql> select log10(-100);    9 z6 L  X$ X3 w0 o+ \
  -> null    2 `5 e7 a0 f" E% G

4 f5 j  Z$ s( Z, Q/ T3 R9 ypow(x,y)   
0 {4 T* m  v8 B& L/ i- D- |power(x,y)    0 \; e6 V' T& x
 返回值x的y次幂  5 U2 b: J  w6 P0 L6 n  F& M
mysql> select pow(2,2);    6 _+ b! k+ Y! W' Z$ B! j
  -> 4.000000    ( [8 P9 K6 ]8 k( `' f) a
mysql> select pow(2,-2);    7 @1 k1 a0 w: J  O0 S9 V8 b
  -> 0.250000  
- j  Q, n3 L! c6 R" D/ I! X/ r" [( b4 k* [
sqrt(n)  3 ^+ [8 e* M! A4 D  Y; w) T( E
 返回非负数n的平方根  
2 A& v. F( K2 N2 I; W. t* H- tmysql> select sqrt(4);    ' Z" H9 C' O5 C* y1 J8 R5 }' Y5 x
  -> 2.000000   
; Q. ?2 A; N) E* v! \) C7 amysql> select sqrt(20);   
! g, }4 l9 N. e% H" c5 f* m* h6 s  -> 4.472136   
( ^& }% {1 r" Z, E+ M3 i6 { * t4 I9 d! ^5 r1 h
pi()      K& _4 f0 |, f
 返回圆周率   * y1 j# v/ R9 I) v" v
mysql> select pi();   
' R0 W+ }) c2 d9 _  I& `  -> 3.141593    7 ^, z) ^- Y  g- \' ]

: O; }- o* U4 F" w* fcos(n)  
/ o* P6 _9 y5 E- o7 q, @ 返回n的余弦值  ( c; X9 h( t: l) b2 J
mysql> select cos(pi());  # A0 A/ i# u! {7 K: k5 \
  -> -1.000000    % x2 E. u/ a8 Y+ u/ U( d) ^

- Y! V( X2 S1 c& E" q% Nsin(n)  
) J9 [3 T- P1 F 返回n的正弦值   1 b2 O* Y4 X& M  [, \- y
mysql> select sin(pi());   
' P: L7 ~, D! l9 P7 C  -> 0.000000    ( @9 B* b- C2 o/ N! e
# M& o( ]' Q5 i( l% j4 p
tan(n)  7 E$ r' l( B- U# d& z+ W, E) O
返回n的正切值  
% Y/ Q' d( S0 h4 imysql> select tan(pi()+1);   
* \8 Y3 k; }- z' s  [2 C  -> 1.557408   
; @% q" m1 t! s. w) _# Q; h
( S) ]7 b2 k# [( @8 y. _6 S# Zacos(n)  ! `5 y! P6 j# \- u% [; t
 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  ! u. x" J% i. F( y' \& Y
mysql> select acos(1);    ! |6 {' R  ?& Q- {8 i
  -> 0.000000    0 A/ E6 u  O4 p# G
mysql> select acos(1.0001);   
- L& ~+ q' W3 m. }$ W: F( k  -> null   
, t8 S8 J6 \6 ^5 W1 f! p0 i2 n" hmysql> select acos(0);    9 j8 ]  R: n  F
  -> 1.570796    & G* ?- g: a; b& E
' c. \) x2 s* E' q- G3 U2 E# D5 ]
asin(n)  
+ p8 _! {- L8 {: t: F1 O2 P返回n反正弦值  
6 [& Y# A; q) {) |& qmysql> select asin(0.2);   
+ Q3 w, F  ]5 P  -> 0.201358   
4 {* t5 ]$ M4 o" Mmysql> select asin('foo');    5 y/ _/ |& z, e) v8 x+ s3 v. w) a
  -> 0.000000   
& e# H6 y+ E( x% k+ h3 {
& o+ m6 w8 G% K+ p3 \) b3 R1 ^0 a, Fatan(n)  
( _3 L: [, S/ L* ]$ b$ k" d返回n的反正切值  
* F: K/ x$ S  p9 s4 wmysql> select atan(2);   
' x; I$ K, i* w) G8 R  -> 1.107149    8 D( g2 A! a( E% t' A7 M, ]% U
mysql> select atan(-2);   
) b& e/ H. ?9 n) g  -> -1.107149    2 ?" q3 y# K& D) q; K- F
atan2(x,y)    6 S) ?( ]+ R0 Q# K
 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  1 K9 s9 V0 D* M4 `# L  w
mysql> select atan(-2,2);    ) {9 f, X- M) l5 p
  -> -0.785398   
% B( u8 m; Y7 t  T' K! zmysql> select atan(pi(),0);   
6 [5 f& Q1 |5 L* {) k  -> 1.570796   
$ J5 X5 P& [8 |1 N- { 0 J% J$ h  E! b2 n3 A: b
cot(n)  
) v( W' D* @$ j; B( R6 z返回x的余切  
+ O" e; ^: l3 @3 _1 Amysql> select cot(12);    * [- ?* G1 Y# N" e& Y( b
  -> -1.57267341    4 W( y! }0 N3 r: R" P# G
mysql> select cot(0);    ' E, P) u5 J% D# f
  -> null    $ {8 n* _; z4 a7 s6 S
3 {' L* `8 x9 \
rand()  
/ \! I2 m4 H/ q* x. ~0 g2 irand(n)    
9 o% ^5 r0 P1 K0 m3 E! r0 u$ J返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
& y+ P& h5 z6 E1 i& p* S+ p 0 _; z: L& S7 a1 |* V1 w$ d8 s
mysql> select rand();   
# x4 l, D/ ~* A& d' t  -> 0.5925   
5 C! Z  ^: ]/ \  cmysql> select rand(20);    + b* ?* |0 a& w7 e
  -> 0.1811   
4 V- Z  K  Q' R/ o- P0 b0 tmysql> select rand(20);   
' ^! J0 Y, b# ]$ C: ~  -> 0.1811    1 P% G8 v- o( C; Z
mysql> select rand();    . n; k5 L% b* @. O( c! B4 y( s5 [+ A
  -> 0.2079    ' @7 E7 G+ E( C! y
mysql> select rand();    # o7 b6 R" L' L& w/ z
  -> 0.7888    ) \8 V) W! h% b* _

) ~& _# }/ b0 y; _; {degrees(n)  
- _5 j5 X, z/ S把n从弧度变换为角度并返回  # P, G. v" g0 f7 ~
mysql> select degrees(pi());   
7 ~& n0 r0 E* C7 e+ _$ Q" ]  -> 180.000000   
" C3 O1 }) ~7 l' o8 _6 v , f" [9 ~! ]# `" s8 t# V
radians(n) ! g' _& U$ K" E) n) G
把n从角度变换为弧度并返回   
$ S* h! t3 A- q* Amysql> select radians(90);   
- H; z" |9 j0 G5 J  y+ y  -> 1.570796   
6 Z2 s9 _2 A  H& O0 _1 @9 C
3 s  J/ ~$ f8 Q. o( dtruncate(n,d)   
) T0 w% g" B( k保留数字n的d位小数并返回  
+ V8 R6 n) g/ t& T/ \mysql> select truncate(1.223,1);    ! [- y% m* v% d3 O1 w* w
  -> 1.2      q8 _9 L* I: q+ X- e
mysql> select truncate(1.999,1);    ) `/ ]/ s0 Z0 c; l, D
  -> 1.9    ; a& d% n! a% V" k% z
mysql> select truncate(1.999,0);    / a. x/ Q0 a1 ~$ H
  -> 1    + w9 D  G. |; r  A% |2 }$ S
# j$ d% y4 {' A, i+ u
least(x,y,...)   
6 ]+ ]3 R1 R* C0 O2 x返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  * W% s: y4 P, U4 X; T+ o6 J
mysql> select least(2,0);   
8 ]% _7 z" S$ I: ^  -> 0   
* _3 F$ N9 s6 b6 `$ jmysql> select least(34.0,3.0,5.0,767.0);   
; S* x# _% B, q1 H  -> 3.0    - y& B5 h) S. H
mysql> select least("b","a","c");   
5 j3 K8 p5 m2 k# h/ ~& m  -> "a"   
' r- W% u9 \/ b / d/ a- v+ i1 y% z" o
greatest(x,y,...)   
. a$ Z0 X6 {7 C6 p& u返回最大值(其余同least())  % e3 U, Z0 r# V: q  y6 K
mysql> select greatest(2,0);   
0 M3 ?' X* F/ {0 u2 v* m; F  -> 2   
6 A5 F( C# o  q. o$ D$ O& R. d8 u: g- Xmysql> select greatest(34.0,3.0,5.0,767.0);    ! O" C" C9 T6 [* y$ a
  -> 767.0    * E3 ]( N+ c; P. W
mysql> select greatest("b","a","c");    ; r. f8 x0 e- Z5 `& `
  -> "c"     ) @: ^$ Y4 L. C( y% q# i

$ ]- O9 E/ K- v3、时期时间函数 . g6 k3 ]# j  G. v, d6 t
dayofweek(date)    + ?6 r% [" S: T4 P; u, T
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
4 A# y1 J  R- smysql> select dayofweek('1998-02-03');    - A6 E* b' R( }  _/ y  t
  -> 3   
* l7 `3 k& ^. W) G0 k$ E 1 X8 E5 [  m5 g- m
weekday(date)    7 w! }$ _- h0 _  B  l
返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
! m' K2 U8 h/ ]0 w7 V1 n$ p  
( `. D4 |  L2 {% E( Dmysql> select weekday('1997-10-04 22:23:00');   
' p- ^3 Z# S! ?( Z: e3 _  -> 5   
9 ?* c8 C0 f1 ^5 k/ j3 |. L7 Pmysql> select weekday('1997-11-05');   
, k# o* e6 C! d) D2 \0 m, X. ]  -> 2    5 G& a3 [+ Q6 Q$ f/ m# w
$ M7 V4 I: M7 g4 a$ Y* ^
dayofmonth(date)    
3 U4 \2 n" E, A9 f  Q1 M- e% E4 _' `返回date是一月中的第几日(在1到31范围内)   
$ b0 F+ S1 Q5 b' j. hmysql> select dayofmonth('1998-02-03');    $ g  E& U) I% q
  -> 3   
3 P' S: t; E. X& W; @! E % [" Q# d% h" [8 ^
dayofyear(date)   
, L% ]0 N6 M6 g6 X4 i3 P返回date是一年中的第几日(在1到366范围内)    # a, }* \2 ]# e8 u
mysql> select dayofyear('1998-02-03');    ) U% A( ^( j, v- ?" }$ O1 C
  -> 34   
5 C& g; J$ u& k
. e0 \% f9 O  d: O  |! H; }! ~month(date)   
  {! q4 s3 r! _7 |) x返回date中的月份数值   
6 X3 q2 L/ p0 o/ omysql> select month('1998-02-03');    7 R$ E' W) g5 S6 x8 O2 C
  -> 2    % T- x6 |8 g' P
9 T. W& r% E7 P5 y; ?$ t
dayname(date)    , ~3 N" {; M7 m9 v
返回date是星期几(按英文名返回)  1 M( A: \- W+ a/ p3 i2 J
mysql> select dayname("1998-02-05");    $ `9 o/ V# l" n7 C( C1 {: V
  -> 'thursday'   
5 X, v+ R% {% G+ D  y3 c& F) Z
- i4 y. _9 m3 C; H7 b7 Emonthname(date)    / W. s% G! w& @, _
返回date是几月(按英文名返回)  
! U, Z/ U3 ]9 X6 f/ umysql> select monthname("1998-02-05");   
3 y0 L( @1 ^8 [; }& p  -> 'february'   
' n$ g% [5 y. K0 d/ M8 d. h, y & O: u/ W& x5 t9 X
quarter(date)   
. [& a/ F' ^% J3 L返回date是一年的第几个季度   
8 ^" ?- D* X: R* K- Dmysql> select quarter('98-04-01');    $ C9 p; u6 v6 V) x8 A
  -> 2   
; |, n; r3 C$ [ - ?. I! S! u# d
week(date,first)   
! M3 O9 u( t  N; ^' R返回date是一年的第几周(first默认值0,first取值1表示周一是
1 X4 _7 _" _: B: M# E: F周的开始,0从周日开始)  % b: V" \! }. H: _( G( x
mysql> select week('1998-02-20');   
, [; S8 C* a- f) T; K6 f  -> 7   
8 q! Y" s% X3 ]- Jmysql> select week('1998-02-20',0);    % J2 |8 q1 ~8 B5 A: ~0 W
  -> 7   
) c0 m' }% S( ?0 f" g+ fmysql> select week('1998-02-20',1);   
! ~# A/ Q- X0 \4 x5 t1 Y$ x( @  -> 8    2 ~" J+ R# Z3 B9 ^5 j9 U* r3 R/ o6 C

1 ]7 u& K( s6 B. s4 o) s9 V- Zyear(date)    ' u" V* D. S( \
返回date的年份(范围在1000到9999)    9 p2 n7 x) Y7 x* I8 v# ~% [) f
mysql> select year('98-02-03');   
) \' I4 [! F* p7 K1 w  -> 1998      s6 o! f% b2 A. u
' m7 p, |. @6 M
hour(time)    ) [6 T9 X$ Z! f% \/ J
返回time的小时数(范围是0到23)   2 ?* K9 O" i8 o5 U4 B6 ]
mysql> select hour('10:05:03');    8 d; |0 ?! m( z% G8 `
  -> 10    7 i' y( E' t8 R5 h( u
. E4 [, M6 }/ H6 q
minute(time)    : Y  Q- H! [; h4 K* \1 |
返回time的分钟数(范围是0到59)    4 o" I+ O# Y# K9 X: n9 J* `) S( o2 a" q
mysql> select minute('98-02-03 10:05:03');   
- r' d3 s, n1 l6 p$ A: }  -> 5    * S, L$ Z9 Y9 v1 g2 C! z* W: ]% N

+ _8 n% o) V- E) r+ K. v: osecond(time)    . ~7 S3 M" {& L% A* `: g- ~3 D
返回time的秒数(范围是0到59)   
" d) |3 o- E) }: \  m' Umysql> select second('10:05:03');    & n! b& P& ]& ?4 c" _
  -> 3   
8 }7 d3 g; f* x
8 \- M. @5 ?! h7 Z2 T8 L  A( w+ Cperiod_add(p,n)    $ X$ z" t0 ?- ^! {
增加n个月到时期p并返回(p的格式yymm或yyyymm)    7 N; m6 k7 \2 u
mysql> select period_add(9801,2);    * M9 D/ K3 V9 s8 F8 P/ I/ ^
  -> 199803    " k+ j% U$ u  {3 i7 u# z1 ~3 z# K' [) _! X
3 J% j4 C2 [! Y0 k* O$ @
period_diff(p1,p2)    " H+ t8 r) P7 ]1 v/ }4 o
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  ( T3 J! C) I! c8 N+ w
mysql> select period_diff(9802,199703);   
3 B! E4 \( K- g8 w0 m4 Z6 {$ g( M* Q  -> 11   
( l$ h- m- n) J: a: @0 w1 T $ C) j8 `- O  J7 o$ J6 ?: |
date_add(date,interval expr type)  2 p0 y3 \3 \( k# o! I/ i% ]+ G
date_sub(date,interval expr type)    1 H7 F$ [# h) S
adddate(date,interval expr type)   
  M% @2 K0 ?; X% ksubdate(date,interval expr type)  4 w# v, K6 t% y7 f
对日期时间进行加减法运算  
+ t6 [0 ^! t7 q# h(adddate()和subdate()是date_add()和date_sub()的同义词,也5 M3 r3 H% Y. O: |, [4 l8 O, |; k
可以用运算符+和-而不是函数  9 ]  y- p% J6 ]0 Z: Z
date是一个datetime或date值,expr对date进行加减法的一个表9 W$ g; J8 r5 z- W$ C$ v
达式字符串type指明表达式expr应该如何被解释  ; w/ Q. x5 [1 G
 [type值 含义 期望的expr格式]:  
" V1 C  b% V- x4 W1 f& J second 秒 seconds   
6 m' M1 F( _) X* @& _0 l& P minute 分钟 minutes    " Q, P7 r" Z# {$ _
 hour 时间 hours    9 f- m0 u( U" [4 m8 V7 ]; a
 day 天 days   
3 |: b8 \2 V1 H( o7 ^2 D+ x month 月 months    ! Y% g: H9 R8 w
 year 年 years    & n2 B% s/ T' R" O3 I
 minute_second 分钟和秒 "minutes:seconds"    6 [+ m( V# R$ w. ]5 `& P' A5 m
 hour_minute 小时和分钟 "hours:minutes"   
) m& |& a: h2 f4 D* t) F day_hour 天和小时 "days hours"   
+ h1 O% J( {* e, F) r2 F  V& v year_month 年和月 "years-months"   
9 Z, s. O, a3 p" M3 J4 d! H/ ^ hour_second 小时, 分钟, "hours:minutes:seconds"    5 I2 o, L7 \, G3 D- I1 N2 `
 day_minute 天, 小时, 分钟 "days hours:minutes"    * E" z7 T# P5 s: X+ L
 day_second 天, 小时, 分钟, 秒 "days
9 F5 c/ ?9 q2 U! t- T) chours:minutes:seconds"
. I( K1 k# z7 O3 n2 p expr中允许任何标点做分隔符,如果所有是date值时结果是一个; e& R- R2 [- W/ ^' a7 e2 u
date值,否则结果是一个datetime值)  
) m8 Y! O) q" ^5 \2 ?9 _ 如果type关键词不完整,则mysql从右端取值,day_second因为缺
, l! c! k' j& R: E少小时分钟等于minute_second)  - J' e2 ~, z, w1 Y' z/ ]
 如果增加month、year_month或year,天数大于结果月份的最大天
: s" [) Y* c/ b0 F- L) n4 Z9 s, p数则使用最大天数)   
+ S+ \% {3 n. s/ ^" n- v, Cmysql> select "1997-12-31 23:59:59" + interval 1 second;  9 m4 d: }* b9 d7 k
6 |2 \; B  d2 t. p3 @+ U
  -> 1998-01-01 00:00:00   
( E( {9 G6 w6 T9 Z% R! j, u' rmysql> select interval 1 day + "1997-12-31";    ( o( U) ^% _! @6 I0 w
  -> 1998-01-01    : U/ o' T0 {) K$ n1 J
mysql> select "1998-01-01" - interval 1 second;   
+ v# V" Z) I* o6 y, R+ Z: k  -> 1997-12-31 23:59:59    % Q' k5 Q/ ~0 L0 ~8 d2 Z( g- D
mysql> select date_add("1997-12-31 23:59:59",interval 1
5 d# S; J3 u- P2 D0 B% m9 Ksecond);    ' V( F- D0 Y* n0 C1 Q
  -> 1998-01-01 00:00:00    2 d1 a  D/ _5 `8 Z: @
mysql> select date_add("1997-12-31 23:59:59",interval 1% n* d' E: a+ U
day);    + Z9 ?# I$ X. m0 w- c9 ]) }
  -> 1998-01-01 23:59:59    , E* Z7 A+ w% U+ w9 c/ Q* z
mysql> select date_add("1997-12-31 23:59:59",interval
5 F7 I/ Z7 F# i0 B$ R' N  p"1:1" minute_second);   
& B! H, |" u9 p$ h9 ?  -> 1998-01-01 00:01:00    0 V+ Q( c. Y# b, C0 `& |, v' e& G
mysql> select date_sub("1998-01-01 00:00:00",interval "10 \1 Z) c4 K( K4 c( {+ @3 I& `& k
1:1:1" day_second);   
1 s( ]1 J* X$ M5 }' H, Q  -> 1997-12-30 22:58:59   
0 p) l, `; d$ q# U1 wmysql> select date_add("1998-01-01 00:00:00", interval "-16 Q1 ~4 k1 T0 J+ z3 W
10" day_hour);  
; @% P) z% J1 G( Q) n; f  -> 1997-12-30 14:00:00   
2 |- X! B) ^" k5 F( n% Rmysql> select date_sub("1998-01-02", interval 31 day);   
/ p! U, \8 z4 |3 U4 \% X% H" |  -> 1997-12-02   
# o* p) H$ V0 [8 X4 [0 S5 Vmysql> select extract(year from "1999-07-02");   
: ?+ j2 s; p6 R, B" c4 m  -> 1999      y8 d: r* ^$ O/ W$ I9 q% M: q
mysql> select extract(year_month from "1999-07-02
+ V1 q+ {- l) j7 F, f# v01:02:03");    # U8 ?6 Z& c  m6 P7 d' n
  -> 199907   
; ?7 w: d0 n# o. n' }' [mysql> select extract(day_minute from "1999-07-02) ]5 d0 K7 M5 R) k% R1 N( R
01:02:03");   
' E. u5 u; D8 p2 ?, t: ~3 s- I  -> 20102    ' Y/ Q) \) t; k; H+ d1 w4 q, Q
) N0 ]9 J; n) s+ Y: F7 d
to_days(date)   
/ A2 G: y) J" L1 X3 s+ n  ^返回日期date是西元0年至今多少天(不计算1582年以前)  
" U$ W) ]) A% G! cmysql> select to_days(950501);    9 s: c1 e; o$ K3 E/ M. W
  -> 728779    ! |3 W. ?- ]' E1 w. h0 b3 g  l( t
mysql> select to_days('1997-10-07');    ) k4 Q2 i, Z2 A) `0 D
  -> 729669    5 N" L. b( F* }9 F# V3 q
8 l6 Y/ \  T8 Q+ A: o
from_days(n)   
) h8 }: @! ]6 U 给出西元0年至今多少天返回date值(不计算1582年以前)   
. |  M5 v* y0 J8 Mmysql> select from_days(729669);    $ W8 X! m2 x4 f
  -> '1997-10-07'   
% `/ A3 Z; G, C6 W, l
3 D5 d2 N- p5 H, ^2 p  zdate_format(date,format)   
( y0 ~9 |8 c+ R+ d+ p5 g2 n- `, A 根据format字符串格式化date值  3 X7 w( Y; }  ]2 j! M# L
 (在format字符串中可用标志符:    W3 z) ]. ~% W6 {
 %m 月名字(january……december)   
- Q7 C( Y  i6 Z; i( l %w 星期名字(sunday……saturday)   
2 @- u3 g( ~: \3 b+ w. S* B9 C %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    6 `0 X: |4 e/ d% _5 I! ]
 %y 年, 数字, 4 位    : W' L$ H* `3 X( N# U0 ]5 c' p
 %y 年, 数字, 2 位    ' X: H5 r3 }' A0 A7 V, y
 %a 缩写的星期名字(sun……sat)    * j) ~  {# L: v' [
 %d 月份中的天数, 数字(00……31)    % g4 d4 j2 Y/ y, O# M. m8 U0 Y3 a9 v
 %e 月份中的天数, 数字(0……31)    + X4 D0 O' Z; z- o- @1 F1 v
 %m 月, 数字(01……12)   
5 _1 }% E- v" z* U6 J) b/ u0 U %c 月, 数字(1……12)    % x( \, i* [( E9 z& q2 l, H% H
 %b 缩写的月份名字(jan……dec)      a+ s; F. W1 E6 t- @- ]
 %j 一年中的天数(001……366)   
$ H& r: M6 X, W; | %h 小时(00……23)   
- }( f0 R/ s0 S %k 小时(0……23)    9 n# n) {. h' h- G6 A# [+ x) B- n
 %h 小时(01……12)    & }4 a1 ]/ g7 ^" p0 X' [. w
 %i 小时(01……12)    ! s* o8 c% I4 o9 M5 o. C  b
 %l 小时(1……12)   
3 N: Q0 n! \3 u2 j+ a. N/ {2 E %i 分钟, 数字(00……59)    1 u, O. v1 W* f; o$ q6 D' [, Z- u
 %r 时间,12 小时(hh:mm:ss [ap]m)   
7 ~# L5 y) y2 ^! d* x %t 时间,24 小时(hh:mm:ss)   
: h6 R# d4 H8 z1 e8 N %s 秒(00……59)    4 [" n6 `1 b* R
 %s 秒(00……59)   
4 ?7 S) Q, u" A5 E& R* e0 R %p am或pm    7 a( x& g( N: d
 %w 一个星期中的天数(0=sunday ……6=saturday )   
# v0 s4 g% |2 L/ H" T %u 星期(0……52), 这里星期天是星期的第一天   
3 N! v) E7 S1 }$ W' g; n2 q %u 星期(0……52), 这里星期一是星期的第一天   
& _) E' B: N% F8 U" }( ~1 { %% 字符% )  8 v8 f. n2 G7 R. o. N6 ?9 A
mysql> select date_format('1997-10-04 22:23:00','%w %m %
  ^1 H; N0 K2 I* o( Sy');   
8 Y% b! q# ]6 r' G4 b& m  -> 'saturday october 1997'   
# d6 [4 R1 @/ Vmysql> select date_format('1997-10-04 22:23:00','%h:%i:%+ c& S$ L" i" t5 N
s');   
5 p, M. K, P& @3 A  -> '22:23:00'    " b5 Z# C2 W( n. T3 H  f
mysql> select date_format('1997-10-04 22:23:00','%d %y %a; R3 Q3 r" B) M: W  [+ i4 D
%d %m %b %j');   
& q* H' X/ ?# T. C  -> '4th 97 sat 04 10 oct 277'   
/ R. t! w% E* ]" D- F& `mysql> select date_format('1997-10-04 22:23:00','%h %k %i
# K& N1 ]4 d. r9 H! j5 b%r %t %s %w');   
* Z5 u  X  i# l4 n& b) R. `) e1 f  -> '22 22 10 10:23:00 pm 22:23:00 00 6'    % _1 R2 {1 I7 |  ^) h  z

! C( D' \+ |$ X  e& I, n/ ztime_format(time,format)  
7 n0 T' `- A" l& n 和date_format()类似,但time_format只处理小时、分钟和秒(其- c2 c8 c1 [( ~. G
余符号产生一个null值或0)  : G& v) \1 s5 S$ W% S7 s! y# n
3 E- b2 L& ]1 c
curdate()     
: m6 [( l3 C* M) k, A8 Hcurrent_date()  
' h# t. a+ {" m 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所; ^$ [" L$ ]$ ~3 s$ U
处上下文是字符串或数字)   
8 o4 t, @- G, e2 U# Q' _7 |; m7 F- G5 f( tmysql> select curdate();    ) ~! N  [" f2 y  V+ q$ k
  -> '1997-12-15'    : K* y; G% O0 O4 S, ~3 t- _) U* q
mysql> select curdate() + 0;   
8 T, t2 B; s) }8 T" e4 U0 f& v# o  -> 19971215   
3 E) \7 u" Q" U5 q" E
! q+ x3 i7 ?) b9 N( m8 Rcurtime()    / N1 U( k8 S  X% I: T6 U/ q6 r+ k
current_time()  5 v% F5 R5 F9 c* F, O* [5 Y8 D
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上5 C' P6 Z, E+ o! z4 b; H
下文是字符串或数字)      5 q4 y$ c( ?; _
mysql> select curtime();    % [/ T& H8 o" x- S3 [- f
  -> '23:50:26'    + G& P9 U& U" m$ A& b7 B5 A
mysql> select curtime() + 0;    4 b: _: t" A4 J3 L" C2 G3 m- a
  -> 235026    # N# d4 F4 H/ D* ]! X: j
% R# i6 N# G% h& B
now()    2 W5 N0 ~5 J$ \7 ?
sysdate()    - q) n: \* F) Y% r  J8 o
current_timestamp()  
; ?0 |: P7 J% m. A$ R+ m7 V 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期- \6 W' d- ~) k; O' x5 x" |) c
时间(根据返回值所处上下文是字符串或数字)     2 W6 f) j# H: X/ d! \5 W/ T. g+ y+ a
mysql> select now();   
  W/ b# a4 r. ~# ~4 n+ K  -> '1997-12-15 23:50:26'    - f& p7 d$ ^- R" n. @
mysql> select now() + 0;   
2 h& V3 ~7 h3 k- t0 n8 o  -> 19971215235026   
  Q  L* M1 Q6 {! `$ s
  ^- e9 s- ]8 ?unix_timestamp()    . k# f% w6 {, O& Q& Y
unix_timestamp(date)    9 x; l) ^+ ]1 z% x3 s+ ^
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒% {. C( [( K1 O- C
数,date默认值为当前时间)  
3 E# Z# h3 a* u$ W  imysql> select unix_timestamp();   
1 @2 v* i$ ]! d  -> 882226357   
1 I$ v. n* d( F" G% A- B: kmysql> select unix_timestamp('1997-10-04 22:23:00');    8 u$ R) x/ `* @% L, N
  -> 875996580    " J( }( _/ B; a7 D' w
! z; n+ E) x- S6 r2 q, D8 ]& l. S
from_unixtime(unix_timestamp)    % e7 I% x7 O1 D" B
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的& L) w# a4 D! C3 [, d/ n$ Q3 ~& b
值(根据返回值所处上下文是字符串或数字)     * B$ G# A/ j0 c5 n+ _/ ]
mysql> select from_unixtime(875996580);   
) f8 |. s6 w- G7 h  -> '1997-10-04 22:23:00'   
: k% k: |+ P  |1 Y% ~" {2 Rmysql> select from_unixtime(875996580) + 0;   
4 w$ L7 V% t* F8 s3 @" Z  -> 19971004222300   
: y+ q8 W3 ^3 w4 V& X ; s$ G1 J. [( `& x, h! x$ n5 _
from_unixtime(unix_timestamp,format)    / z( b9 ?* G4 p% R" ^4 `& d7 {
以format字符串格式返回时间戳的值  % L8 d, y- N; V8 k+ N
mysql> select from_unixtime(unix_timestamp(),'%y %d %m %
9 D9 @7 W9 z" T2 H& oh:%i:%s %x');   
0 G5 Z. C# o, O( l' E, I" \  -> '1997 23rd december 03:43:30 x'    % ?  v) ?) H! ]/ a* _3 L

# u+ _  y/ [( Xsec_to_time(seconds)   
! b) V3 Q  x7 s* A- d# F- Q以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
4 I6 D. Q0 v8 Mmysql> select sec_to_time(2378);   
6 e: c; c, Z; A3 M  -> '00:39:38'   
; p. C) V: k+ Z/ T7 m$ xmysql> select sec_to_time(2378) + 0;    : d* b# B! M* S" X0 _# D
  -> 3938    4 H7 p. G0 J- P3 G- I6 j" u7 r
* U8 m6 I+ |1 R) K# q" H
time_to_sec(time)    " d; Y9 y1 k& Q- `0 F0 O4 z
返回time值有多少秒   
7 Q* U# O) J8 G; I' F; a' v: amysql> select time_to_sec('22:23:00');    " _% B4 ~0 p& ?; b4 {2 \3 H$ T
  -> 80580    . \6 V! b; P4 R6 Y; h
mysql> select time_to_sec('00:39:38');   
6 W9 o5 y: V, `& b1 Y) e  -> 2378
$ X& m( N. k& w( E
9 s8 C/ h+ i! [0 d/ Q转换函数
0 J5 v0 ~. H3 i/ m. Kcast  g& `9 S$ W6 F6 [( X
用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]8 G2 Z# n" O$ p
实例:select cast(a as unsigned) as b from cardserver where order by b desc;
* ~: C9 p. s: ^2 d0 F" yconvert:9 y4 v; r7 y4 J8 Q
用法:convert(字段,数据类型)4 M6 D; ?& @  o9 z  g3 b! s/ n
实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

9 F- ]8 B2 E+ h1 N
回复

使用道具 举报

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

本版积分规则

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