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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数
! k4 v0 O; P1 }" j& J5 ]ascii(str)   
/ f) v1 `$ e2 h$ Z% P! T" v返回字符串str的第一个字符的ascii值(str是空串时返回0)  6 j8 h3 M, n2 C
mysql> select ascii('2');  
) W6 S: L# @4 E9 m  -> 50  % V! V# v8 o$ k! h
mysql> select ascii(2);  
$ O! |/ \5 h0 \6 T' p  -> 50  
1 ]- w7 b: D9 e" \' `5 pmysql> select ascii('dete');  
3 m! K, y$ i( p" D% W: S3 s0 p  -> 100

" O6 W2 r: S  l) R  Y2 S9 S  aord(str)   
7 R7 z$ ?% C1 w如果字符串str句首是单字节返回与ascii()函数返回的相同值。
% {# p1 s/ }% |( F) `- x) z 5 F. t& A% b4 S4 p2 [( d" Z. R4 u
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  ! S7 h# C2 r& U0 `
mysql> select ord('2');  % T: D+ X# R5 e) ?9 j7 l+ w4 P( |
  -> 50  
( n0 ^1 z5 B- e2 A   # x  U0 d' S2 a% f% U) k' w
conv(n,from_base,to_base)   + `- v  Z9 f- L1 ]
对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  " M1 }& l- S9 X# {- z% ^
mysql> select conv("a",16,2);  
( [! O5 d% z' u! k  }3 |- R8 p  -> '1010' 8 Y- V. q+ E7 T4 f2 X/ P
mysql> select conv("6e",18,8);  
  ~3 _3 k1 \. u  Z  -> '172' & g0 i* K  D  n1 t" e6 o; u
mysql> select conv(-17,10,-18);  
  \! u0 Q7 D8 k0 O" [4 W' b  -> '-h' , n( f8 V% d5 w- g
mysql> select conv(10+"10"+'10'+0xa,10,10);  # e* ?0 ~* [- @6 J$ t* Q
  -> '40' ( E! H' Y9 _9 ]9 ^1 {7 b2 h# s1 m! e
   ! y! ^  A+ S4 z. ^* [
bin(n)   , |0 I' w% Y- y) W6 Q
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
  t* c5 u- R2 l) `" Xmysql> select bin(12);  - h* U; \( L) ~
  -> '1100' . T& o4 |' U/ y& P! @

8 h6 f. @: `7 O  Q: yoct(n)   - o" |$ @) t$ w5 R' o! g
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
/ w' A  C1 Y" N  V9 `4 ^mysql> select oct(12);  
" E8 S7 q) K+ e0 X4 _+ A  -> '14'
+ A( c$ l% G% |- l7 S   6 i: z1 p( m: ^8 s$ J
hex(n)   
4 T6 [, P# V/ |- `3 g把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  
; a. y7 O7 ?: I& @% d/ z8 mmysql> select hex(255);  : l/ l0 i7 \  ]. u- G( X
  -> 'ff' 4 b* Z6 `$ y, k+ s2 A7 S
   
$ e" n8 `3 e$ Hchar(n,...)   7 L- D; K' x7 }* H& [6 y. `
返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   8 @9 l+ S( \& t& g
mysql> select char(77,121,83,81,'76');  
. k2 }* }* d; h: d  -> 'mysql'
1 n+ {6 _' o8 e1 u% h" @2 qmysql> select char(77,77.3,'77.3');  
6 h/ C& {, Z2 |  -> 'mmm' , G; w( J& c4 c& {
   6 o6 o' u5 G% X! s! m
concat(str1,str2,...)  
+ t& Z9 X: b. ]把参数连成一个长字符串并返回(任何参数是null时返回null)  
+ _# L, A+ L: i' W. w9 ~( g2 p9 Jmysql> select concat('my', 's', 'ql');  
2 @1 B2 o0 x- T# [3 ^, j. r' K  -> 'mysql' " g; W& j" r3 C! n
mysql> select concat('my', null, 'ql');  ( l. S9 u! N' D  f
  -> null ! K7 ~+ ?0 v- I: ?2 d
mysql> select concat(14.3);  & B, M, C0 c1 v: D0 k
  -> '14.3'
$ ]0 R, n7 N7 s; f" I $ `5 A' v3 M" A3 b( m
length(str)   
' a; X' S" {) s4 ~) u  a, A. c7 Zoctet_length(str)  
# a$ ~4 a3 G, Q/ A7 Qchar_length(str)  
8 l/ X/ W, X" wcharacter_length(str)  
; V/ A0 H0 U9 R# M4 ~3 G' U返回字符串str的长度(对于多字节字符char_length仅计算一次)
1 P1 {; I2 O$ H* ]+ Z/ S" fmysql> select length('text');  & y- T/ X% ~( Z" a4 x
  -> 4  ( ?! F/ {5 k& g: N1 g, w
mysql> select octet_length('text');  7 u3 _3 W0 Y" M$ m; A
  -> 4  ( ?9 r7 t& @& s, ]+ A

$ u  _9 N2 O! @/ n% r& mlocate(substr,str)   
6 O, l/ h( c5 F3 oposition(substr in str)   
' j- f- Z, Y, e! n8 H0 K) Y返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  # G7 r+ M# t: }3 G2 X7 X* u9 _9 {
mysql> select locate('bar', 'foobarbar');  
# D/ E( W4 _+ b& a  {, v3 w  -> 4  
0 {! e# W: D' ~mysql> select locate('xbar', 'foobar');  
( V' E8 S& t  K) m7 t* z9 h$ s* ?' B  \7 u  -> 0  + T- f+ d, |( L! s: E
      w( K! c& J0 a9 X+ s; u8 A
locate(substr,str,pos)
; v5 U6 I2 ]& x  U/ V& P返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  , q' B3 d& I, C
mysql> select locate('bar', 'foobarbar',5);  . c; E# p  C, i, [" ?" I1 Z
  -> 7  
% m2 H/ K6 H; f! q, z  G
* m8 O; x( G9 L4 Jinstr(str,substr)   0 d) b; M6 m+ `8 l3 F
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
  z) p- e6 ^" X) L. D( ?6 jmysql> select instr('foobarbar', 'bar');  * o6 V/ p' V: z! u& }
  -> 4  - h1 V1 K4 o) R
mysql> select instr('xbar', 'foobar');  
2 J' Q  F8 |2 G  -> 0   
" L( L) t% `& D  l. ]! v  U ' W7 O5 I( m) F5 b- `
lpad(str,len,padstr)   . `, l, [4 C  d3 B5 [
用字符串padstr填补str左端直到字串长度为len并返回  & j! t1 P2 O/ G, I* K: O7 K) o1 ?
mysql> select lpad('hi',4,'??');  $ T- N8 n) s4 ^9 U! y# W
  -> '??hi' % m' Z5 E8 l( A5 x0 ~; J8 _
   ; X9 r8 B6 m4 q, K8 |
rpad(str,len,padstr)   
9 j- j" s6 D. L" {用字符串padstr填补str右端直到字串长度为len并返回  
$ h3 J2 I3 H. ^: @2 F8 [mysql> select rpad('hi',5,'?');  0 E$ b3 M5 `' g
  -> 'hi???' 8 e" u7 L0 V5 v

% n9 T5 H$ A, y7 Z( aleft(str,len)   
: D. g7 y/ o" z2 f! i返回字符串str的左端len个字符  , F* h2 B/ |0 c  e- Y  L8 h0 o5 U
mysql> select left('foobarbar', 5);  
- u1 l: |# W3 a  -> 'fooba'
- q/ p8 ?" }$ L
7 u* }2 Y; {( nright(str,len)   ! \8 l* ]! t6 y/ I8 t- [
返回字符串str的右端len个字符   
. N0 v9 D9 O; J2 `$ i6 E# Dmysql> select right('foobarbar', 4);  
) s6 q- s3 p6 d  -> 'rbar' 2 c# }" J2 ^: ~

$ n' t9 _4 H; t7 Q* }' w  W1 xsubstring(str,pos,len)   
% n' T5 k- l6 L1 zsubstring(str from pos for len)   # \' q9 T; A, ]! r
mid(str,pos,len)   
8 M! c) F2 g. Y3 W" N+ q8 w返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  ) Q' I" U% o1 I2 d# r) ?# s
  -> 'ratica' 1 g( U' ~0 B" ?; p% ?1 N
, ]- Z5 O. F" o+ q5 R8 ?  l% l/ W
substring(str,pos)   
* m9 m% ]$ p: U5 G9 psubstring(str from pos)   ! y4 [, o, p* m5 T& b: x- }8 h3 v
返回字符串str的位置pos起的一个子串  
/ W2 S- C. _( w+ N. h0 {$ f" Jmysql> select substring('quadratically',5);  
- ^: |1 ]1 m3 S+ L) e  -> 'ratically' & p8 Z/ {5 y# N: S/ U* L9 x
mysql> select substring('foobarbar' from 4);  8 Q# \) s: Q# F& X: d* s; T3 i
  -> 'barbar' 3 ?% J. ]3 U/ L$ S

4 f, y9 h' O4 y- N* o% xsubstring_index(str,delim,count)   
( U2 Y( D1 \2 u) f: X3 |0 u1 }; Y返回从字符串str的第count个出现的分隔符delim之后的子串
% |8 v4 c! H" c- a  v(count为正数时返回左端,否则返回右端子串)  - N! t4 K. @; c4 ?7 n" L( `" L
mysql> select substring_index('www.mysql.com', '.', 2);  
4 J9 ~+ g. ]+ L: X& s8 v8 L" t  -> 'www.mysql' ) n" E0 X) i: z# c% H
mysql> select substring_index('www.mysql.com', '.', -2);  ) Q2 b3 x5 e4 d
  -> 'mysql.com'
' g; g" m# P! t# v# J5 _7 t
. i& h; r  M4 c' N+ mltrim(str)   
6 S) L3 S) X. m3 e. g* T$ `返回删除了左空格的字符串str  
* H* {5 V4 j/ F, L% F- jmysql> select ltrim('  barbar');  
' Z/ l6 p4 N/ H9 B- W+ e: V3 X# t  -> 'barbar' 9 b/ z0 a% C7 Z- c# @& l* v
4 c, R: Y, c+ B$ B8 ^
rtrim(str)   
2 J2 N2 T9 m# i9 R# B返回删除了右空格的字符串str  7 R7 i+ f" o# f; G% A7 }- Y
mysql> select rtrim('barbar   ');  
" X4 i" u1 B' J7 x/ d  Q1 q) I  -> 'barbar' 0 s. a$ T0 c, r. v- _: \0 l

: S3 a- \; K" O) c9 J& A; z3 Ytrim([[both | leading | trailing] [remstr] from] str)   8 ]$ [' K. c5 ~% S' t- ^
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
% `7 p  m$ t+ y' Hmysql> select trim('  bar   ');  
/ m  E9 z; r( e. z: D  -> 'bar'
$ B5 i5 `6 j/ l9 A  wmysql> select trim(leading 'x' from 'xxxbarxxx');  1 }& s5 N+ ~' v. V. S  Z) j
  -> 'barxxx'
/ Q7 i5 _* z" I; A) F6 j2 `, ~3 I& amysql> select trim(both 'x' from 'xxxbarxxx');  4 q: p& {$ N9 M) L' [0 v- J( o/ \
  -> 'bar' , g4 n4 F- j/ P. Z1 u( n
mysql> select trim(trailing 'xyz' from 'barxxyz');  : l6 o+ H# U- L" ?  l- B) t2 L
  -> 'barx'   Q3 b6 l- B" j

+ M4 ?" W; D4 N. E0 Ksoundex(str)   4 |" k9 ?- i. f2 O$ g8 G% H/ p
返回str的一个同音字符串(听起来“大致相同”字符串有相同的
* o6 @  K3 Y# \2 R同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  
9 E  V7 Y% u5 E( h# j5 Bmysql> select soundex('hello');  0 c3 Z0 k3 q6 R% @9 L
  -> 'h400'
$ H7 r3 t3 i+ y3 P1 Imysql> select soundex('quadratically');  4 u3 Q1 x4 V/ X, A! [
  -> 'q36324'
7 V% h/ W3 @. Q% x   
& P! U7 a2 }; u1 y3 {space(n)   
8 V* }$ A1 J' y, z返回由n个空格字符组成的一个字符串  
& L3 E8 S$ m) G" ~4 A5 r3 wmysql> select space(6);  
( r) i1 c! ?% Y. I  -> '      '
# H! m' R6 V+ o3 R6 ~3 ?   + A* V: m  Z5 ~8 k
replace(str,from_str,to_str)   4 N) p" i$ s! V, `* ]& R% r2 Z; w
用字符串to_str替换字符串str中的子串from_str并返回  
" j* ~" j2 O. x+ |mysql> select replace('www.mysql.com', 'w', 'ww');    r- C. x; g4 s1 L4 O) s, l( h
  -> 'wwwwww.mysql.com'
6 y  T4 C, p) m% j" }1 O# x: y ) y7 u! B, Q* m/ c8 n
repeat(str,count)   4 y1 a( t' x9 ~2 j" l* R5 S6 c
返回由count个字符串str连成的一个字符串(任何参数为null时
2 R4 X8 z! M/ d9 k返回null,count<=0时返回一个空字符串)    z5 }6 x( s. s" K, l6 [( P3 P
mysql> select repeat('mysql', 3);  6 {! J+ n% @0 T, [9 v4 W
  -> 'mysqlmysqlmysql' 1 N4 P. [( q% x) S1 C
   
. s+ T$ y4 l( Vreverse(str)   
: f, O5 E2 s& @( X+ V! Y  l颠倒字符串str的字符顺序并返回  ) j" p) L. f& R6 i' @5 ]# O
mysql> select reverse('abc');  
& j* D$ w' r- Q, W0 I" \, a1 K  -> 'cba' 1 `. |3 {! h/ h+ n

" L5 Y) s! t2 O( }! U% C% Y- Iinsert(str,pos,len,newstr)   * i) }$ K0 A% ^
把字符串str由位置pos起len个字符长的子串替换为字符串" K; c; D; R; n0 m; o7 V
newstr并返回  
: M# g0 b6 ^8 w2 ~! ^mysql> select insert('quadratic', 3, 4, 'what');  
( O) |" C4 \) t9 L9 Y$ _5 q- p9 h  -> 'quwhattic'
( O% I* Z5 G! c5 U % N! \& Q2 G" l4 `, C5 N
elt(n,str1,str2,str3,...)   9 J$ S, K0 R) a' M- j0 G
返回第n个字符串(n小于1或大于参数个数返回null)  ; t$ I0 t+ U( {5 M" E
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  
, n. q7 I" z( u: D9 S7 k% L  -> 'ej' ; V/ Z' V4 s0 u1 x) L$ d8 P# l
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  3 P% V5 u# F  V( ~" o- O
  -> 'foo'
# a  ~2 a4 |9 s" g
7 H: R, U+ w& }1 O# x. Nfield(str,str1,str2,str3,...)  
( W3 ^. L- K6 G返回str等于其后的第n个字符串的序号(如果str没找到返回0)  8 _" H) V/ D7 K7 d
mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
2 @1 {; T1 n0 o1 I3 S'foo');  * B; |. [/ W0 B, c8 ?( I1 s
  -> 2  
: t: V; {- i: ?) nmysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
' g' ^8 K7 k; `; D+ b'foo');  1 p8 h0 q4 U( p. w9 u# ?9 y  {
  -> 0  % p* w9 c8 W4 f6 i; Q  |

* H- x" f+ [3 b. P" Z4 R) n# j5 Jfind_in_set(str,strlist)   : G! W, J3 m( b' v
返回str在字符串集strlist中的序号(任何参数是null则返回
6 \9 i' X2 Z6 N. k: o/ Y2 dnull,如果str没找到返回0,参数1包含","时工作异常)  
% n/ x/ x3 k/ H, kmysql> select find_in_set('b','a,b,c,d');  6 ?: S$ Z. Y% _
  -> 2  % a2 X7 O9 V% G4 c1 u
   
/ g, f1 _  @& Lmake_set(bits,str1,str2,...)  , u" W  Q( R6 k
把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
( e# Y/ t4 u; D9 L$ z位置的字串选入字串集并返回(null串不添加到结果中)  
6 v, S/ ]6 _0 w# Vmysql> select make_set(1,'a','b','c');    d% M% m  H4 a. O: i; H5 I
  -> 'a' $ P: g4 k( y) ^8 v
mysql> select make_set(1 | 4,'hello','nice','world');  
+ L$ k! L. S0 U- G  [  -> 'hello,world' , k; t3 L4 H. P5 U9 f  a
mysql> select make_set(0,'a','b','c');  $ q( i. S- g) P! I7 ^/ C3 N7 e
  -> '' . c4 |+ U4 v1 C1 D; D3 |2 G& Z

1 Z1 n/ l9 m, i0 J9 i# W+ Uexport_set(bits,on,off,[separator,[number_of_bits]])   $ r* g$ b: f' F3 C  |
按bits排列字符串集,只有当位等于1时插入字串on,否则插入9 ]0 _( h' T' v, _" S7 _
off(separator默认值",",number_of_bits参数使用时长度不足补0
$ ~# }1 e" P% u: V$ E而过长截断)   ) v; v3 [. m, O9 D
mysql> select export_set(5,'y','n',',',4)  2 Q0 c0 C5 R% d% ^1 w
  -> y,n,y,n   
' G$ Y3 _7 b' B: Z
4 s4 K  S. y  q6 C! qlcase(str)  
9 `' o" G" _7 x( X2 klower(str)   . I5 O. g  R7 K  V$ D  ~
返回小写的字符串str  ' }+ e$ Z* u3 X" D- S9 t# M
mysql> select lcase('quadratically');  9 m. ?  D) a: _5 Y* ]" s9 N
  -> 'quadratically' . A- ?2 A# Q- u9 p
   
! g2 C% }1 A8 b3 ~' Tucase(str)   
7 e8 ~6 f' [6 r$ A; c$ S  jupper(str)  
2 y$ U4 t' h& r2 e, i" i3 |6 Q3 t返回大写的字符串str  
+ T% h& Q8 a8 m% @9 ]mysql> select ucase('quadratically');  
& e9 e, @: Y" ?' M" D4 q7 R& R$ ]  -> 'quadratically'
/ p) n) s( V! `) L$ j & G' V$ ]% T* J- E
load_file(file_name)   7 j4 S6 e2 S: C" B0 G# d0 \
读入文件并且作为一个字符串返回文件内容(文件无法找到,路径; @% l( n/ @/ _
不完整,没有权限,长度大于max_allowed_packet会返回null)  7 N/ W; P2 F+ W# j
mysql> update table_name set blob_column=load_file( y5 Z% w" A" @) `% Q
("/tmp/picture") where id=1;  ; Y3 I% a7 x7 ~6 @5 u+ q

: `- s! c3 i9 ?: L/ G+ R+ R/ C2、数学函数
) K/ b2 D1 @, {. Tabs(n) 9 F# l# b% E4 k* T$ ~' }: ]
返回n的绝对值  6 _) b' ^- P' C# t; B
mysql> select abs(2);    - q$ Z$ p  |' c) j$ v$ J
  -> 2   
3 r* ?" l( e) P! fmysql> select abs(-32);   
' b$ A) j  F8 I0 G( O" l6 N4 L4 h  -> 32      @* x4 z+ y2 K4 _5 H$ {2 x
   
4 G: Z8 a7 [  N9 E6 _9 U( |. v) i% [) Ysign(n)  ; s/ q% r4 q2 K1 C, Y
返回参数的符号(为-1、0或1)  6 t$ }9 X5 I4 J5 m$ L2 C
mysql> select sign(-32);    & {! _2 S" C. [; W) N* d+ L: o
  -> -1      i" b& N6 z5 k: n
mysql> select sign(0);    9 W1 m. ~% f4 t1 p& h) G3 L
  -> 0    * u. L( Q3 L) |# ~1 a
mysql> select sign(234);   
1 l, U7 t" k/ `6 J+ ^- y; {  -> 1    " e; T: h3 o+ a5 a/ z) K) {# e

. ~' y% Y' B% B4 C3 h6 m1 Qmod(n,m)   
' P/ @/ S/ p5 ^- _, _8 o1 u+ R2 X9 L取模运算,返回n被m除的余数(同%操作符)   
/ v. ?! m( Q* O$ n# ~mysql> select mod(234, 10);    ( _- g; Y2 S4 y) M# e2 W
  -> 4    8 P4 T/ ?/ k' ?5 f
mysql> select 234 % 10;   
& G* |. T4 ?. ]" q* z  -> 4   
8 I* N4 t5 ^$ Rmysql> select mod(29,9);    * y% g% L8 G' I# d' P
  -> 2    - s% q7 Z  H( n
6 I3 g) L; J- v  {3 B% A
floor(n)  : C0 I8 @0 r* A$ B5 n7 X- F2 ~8 n
返回不大于n的最大整数值    z  R3 X2 Z! x( O& t) j
mysql> select floor(1.23);    8 R: |* u9 ^( D, a: ]. [- N" h
  -> 1   
* v. a6 m& W/ T& C/ C& V5 ~mysql> select floor(-1.23);    - q/ u+ \8 G& T8 M3 k
  -> -2   
# F( }' W$ L: h9 q$ I: v
4 M8 @9 V/ @1 ~* ~ceiling(n)  
. w, O# I& K" Z  T. v' I返回不小于n的最小整数值  " \* s" D% P3 n3 X2 }
mysql> select ceiling(1.23);   
7 I: T, t& R" }; j" \  -> 2    - k* s7 X$ f/ F2 I
mysql> select ceiling(-1.23);   
2 E1 h) u" v( Y0 M& J- B! f  -> -1   
# n. u8 Y; _3 R% z" c7 `9 H: ]. y
, q" k/ e; {; ~" l8 Pround(n,d)  & }8 p$ T. {+ A) V' \
返回n的四舍五入值,保留d位小数(d的默认值为0)  ) ]. @% J9 ^) m: j, W1 I6 R$ A5 ?- R
mysql> select round(-1.23);   
% _+ v  Y; b& e  g0 p  -> -1   
" K7 X7 B! c7 W$ |# Cmysql> select round(-1.58);   
+ F! F) T( P+ }- t  -> -2   
  w1 f3 m5 i, s! P4 O4 ~2 Lmysql> select round(1.58);   
0 ?, H+ F0 b% X  -> 2   
6 e5 j/ p# H' a% Imysql> select round(1.298, 1);   
, A* O/ ?+ U7 A$ D, r  -> 1.3   
( `$ [* f# |9 p+ ]6 V0 tmysql> select round(1.298, 0);   
- q$ R; S) a& h, e& ?  -> 1    ! k7 ?4 g: p7 n" Z0 W- `! h  E3 a
. p. m) P! ?: D' K1 l7 N
exp(n)  2 ^7 C5 a8 o8 H; F! e$ G& q! B
返回值e的n次方(自然对数的底)  
9 n: E1 B$ |0 ?2 X6 Y) x* m$ L+ Z2 imysql> select exp(2);   
6 U( n! o: K4 Q# O8 {# ?  -> 7.389056   
% p3 s. @! l1 f8 U( A8 [+ @mysql> select exp(-2);   
  W1 _$ E7 w( K$ O6 A% X# h0 `  -> 0.135335   
  ^, U$ T! Z$ q! `. Q/ G
+ D. T- G, f* q1 G2 X( H- V* mlog(n)  * i7 E" P5 Q5 w4 {7 w5 K! A
返回n的自然对数  ) b6 l: M( A4 H  H
mysql> select log(2);    . B) ?1 O$ ^4 L/ L1 @9 n
  -> 0.693147    % u( `% o- A1 h) Y! U
mysql> select log(-2);    9 h! F) P0 ^2 T9 d# y, i# K- ^
  -> null      N/ J4 g( D$ W

  F* v3 S) Z0 {7 [" h7 B7 Tlog10(n)  4 K" y4 S" i6 `; c3 u5 m: s7 ]
返回n以10为底的对数  " {0 b7 U. h, H1 _" I7 {
mysql> select log10(2);   
/ x% D, ?0 _. r/ R  -> 0.301030   
% a& Q, `$ u6 t$ @/ O5 fmysql> select log10(100);   
* l5 D! K' }4 I* \  -> 2.000000    " ^# P0 c9 r9 \$ t" o1 ?+ E6 ]
mysql> select log10(-100);    % H, d4 r1 ?: y2 J( {8 Q- E
  -> null   
9 F/ }6 [% x7 W* q
$ J+ ~2 j$ _. z  y* ]- ppow(x,y)    0 \+ n/ v6 V  @8 k- P$ a) S
power(x,y)    - P$ y# A" R! E+ a
 返回值x的y次幂  
! k( t9 `  {5 O! b% |' D1 S1 R* pmysql> select pow(2,2);   
$ ^" e1 G$ n0 b3 }- }* t  -> 4.000000   
& ~& c( W& e8 o$ a' l" Fmysql> select pow(2,-2);    ; w9 \3 [5 {5 K0 I9 ^8 j2 v7 o
  -> 0.250000  
4 B1 l/ y! O& t+ o
$ R$ {2 b& z, A6 T8 Ksqrt(n)  
! E) X! f6 L* G2 U; x2 ^* r; l 返回非负数n的平方根  ' f" k& y3 x# c, |7 w
mysql> select sqrt(4);    # ~0 x. A2 `" H9 E
  -> 2.000000   
& F: b# ^& e4 v: G# X3 h8 ~" jmysql> select sqrt(20);    : E/ u: M- c( p+ g2 Z
  -> 4.472136    " ]! C; H& G# j5 x) ]2 t' k
) i2 Z( l" K' ~. e6 {, q' |
pi()   
3 w- `5 L/ u: ?* D% | 返回圆周率   0 x2 N% E$ `1 p9 F
mysql> select pi();   
, ?5 G5 ]6 u4 d6 K1 l& a  -> 3.141593    2 d* _: {4 N7 |% R1 s" j

, F$ O2 R. }" I9 I* u0 @) l) I$ zcos(n)  
% L6 L+ U! x2 I; G 返回n的余弦值  ( v" ~* q$ _$ G
mysql> select cos(pi());  - ]# g, R" p' u& }
  -> -1.000000      N4 I/ X" s- K: v

& z1 j6 I: p7 d" G5 b' t& qsin(n)  ( H5 d+ q0 p! Z0 X* f
 返回n的正弦值   ( E8 i1 T1 u; v. W  X# a  D
mysql> select sin(pi());      `- o% T2 l% _6 |1 L% c
  -> 0.000000    : R0 I( w5 `  E7 \3 l1 }& u. [& O# V
) v. \- t! u9 Z6 K+ ?0 E0 V
tan(n)  ; ^2 j4 e* h' f1 n2 e& W- X
返回n的正切值  - E5 L7 d; H1 H5 `5 A5 z# C; C2 P  B
mysql> select tan(pi()+1);    + `/ N' F+ P$ z4 N1 X6 b
  -> 1.557408   
+ O1 P0 A6 t( @9 M0 {% r1 j4 s ' l: n; b* V7 Z- {" V: h$ G1 V+ D
acos(n)  / K6 M1 l( b& D0 W, }
 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  " ?4 k+ B, t% S: R$ {# p+ E" A0 ?. m
mysql> select acos(1);    0 |. x4 j+ Y9 E+ W, j! O5 b
  -> 0.000000    6 L5 b& b( v; s' }
mysql> select acos(1.0001);    , r. ~1 e3 j' V' P
  -> null    1 J) e- W. B! p8 g1 f
mysql> select acos(0);   
6 h0 l1 C) s) P3 P$ C6 W- f+ |  -> 1.570796    # {7 F+ c& ?! `4 k0 E

3 ?- J. Y  C; pasin(n)  
1 U4 ]7 I$ X) T$ s" \' u! C8 \返回n反正弦值  
) B% u: r$ p$ m1 z; Tmysql> select asin(0.2);    ! O: U* u$ P! @  @3 f$ _6 z
  -> 0.201358   
6 `& A3 ]" o# z" B. M" Rmysql> select asin('foo');   
0 ?3 i( i2 l: j4 B  -> 0.000000   
6 l; }" a4 ^- t5 g7 Q' [6 { * _. q2 f, B1 o! J. b
atan(n)  
- \! r" b1 {6 B# v) ~! b返回n的反正切值  " J$ ?5 e( o# z( p1 f) ?
mysql> select atan(2);    * E  \9 ]* j! H0 r5 Z( j% I7 a, O
  -> 1.107149    3 y+ }' x6 p$ n, k
mysql> select atan(-2);    # ~3 J5 N3 B* z: @# k
  -> -1.107149    * y+ W5 M3 j4 |0 ~0 ]: W
atan2(x,y)    4 m; ~/ B6 m# y
 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  
3 U+ |: d  a0 N! Q& R' I, w/ h$ g* N0 H9 hmysql> select atan(-2,2);    # ]- P9 {2 L4 o6 W) y: i& \
  -> -0.785398   
* G+ W( L, D8 {7 C0 L+ tmysql> select atan(pi(),0);    : `" D1 k  t: x/ B" @
  -> 1.570796   
# M: g2 H& o8 J( u
7 Y7 z2 H9 h  h1 A6 k5 {cot(n)  
4 ]/ @# {$ n4 ]( [) b返回x的余切  
! D1 m4 I% x' |; N) C/ ^( i; {mysql> select cot(12);    , ?* {! G5 L$ I. q5 w
  -> -1.57267341    ) M  V  q' c5 }7 K( l
mysql> select cot(0);   
, Y) N3 S, ^+ V  -> null   
! H0 D# n7 n, T& ?$ Q) H3 H8 x* ~ # S" Z  ]: ]/ D" e6 A
rand()  % s6 N. i/ z: I2 J/ g
rand(n)    : x4 S  Z( k3 Q- S
返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值) ; y: l3 v8 I! y4 l7 a

8 q  ], x* ~0 i1 m) c- Kmysql> select rand();   
& K! |: q' y2 v( H8 K& ?  -> 0.5925    1 C& q' n1 l' G6 d$ g
mysql> select rand(20);   
3 ^' f/ O- T7 l" Y  -> 0.1811   
2 G( e; {' ]# l' }mysql> select rand(20);   
/ [) T6 s: D* X3 K# C' @  -> 0.1811    7 T/ a1 v7 Q1 Y4 S- j
mysql> select rand();    / F7 q6 Y6 C  ^! Y# s. c( Y  H6 S, q
  -> 0.2079   
- k# p9 u  {2 _6 Fmysql> select rand();   
% C! r' k' G3 H9 [  -> 0.7888    5 [' a; D0 g' o; p% t

" Q+ @( B. x) G" ddegrees(n)  - b" S7 O, x: f% J& a# h
把n从弧度变换为角度并返回  
& l1 J( ^* z9 tmysql> select degrees(pi());    6 N- Y" [' W- ^" m! W/ M
  -> 180.000000    * u# e8 l+ h0 O( @' V8 v

) d) P* J. c4 l2 J: I1 lradians(n) + o# t% H  b7 X; W
把n从角度变换为弧度并返回   
6 w3 G) s0 d& N% w/ ]2 F* kmysql> select radians(90);    + Y4 p# ~3 }( r, [0 z4 |
  -> 1.570796    & J! {( q; V. M- _6 d* G1 i  g
" ~8 m* Q: V  r: J* _& `; P
truncate(n,d)   
( h# o- z$ C0 ]8 e/ J) D. y保留数字n的d位小数并返回  
; ?  s7 F% M( w1 y. d0 y5 G+ kmysql> select truncate(1.223,1);   
1 _' O; T4 g9 O# \; k. r3 c  -> 1.2   
' Y& V; }8 ?" c3 Kmysql> select truncate(1.999,1);   
( ]4 T0 T% H4 h! ~  -> 1.9   
- C, C- x1 i, a- P( Vmysql> select truncate(1.999,0);    9 k5 y. ]: `: o+ `$ t+ R
  -> 1   
  b* W7 x0 H  H$ ]1 Q
8 u2 C, ]& j, p/ m4 |9 qleast(x,y,...)    4 G0 k; o0 K$ @' D6 \( ~
返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
" z6 ^. D4 ~4 q) K; ]mysql> select least(2,0);    # p: s0 S2 s* x+ i/ F% c4 W" i* Y
  -> 0   
* G* k. P3 U; R  P; A8 wmysql> select least(34.0,3.0,5.0,767.0);      B8 A- }$ m: \, b" P2 P% d
  -> 3.0   
4 A7 W+ u) P# I* ]mysql> select least("b","a","c");   
4 \+ P+ G1 M( M$ i" \6 k7 v  -> "a"    5 R8 x: n8 j# `2 n

$ ^3 N; i2 G/ L0 ngreatest(x,y,...)   
* l( D, y; M* D( y返回最大值(其余同least())  
! [$ ^% d+ V; J) B, Z! w2 z5 [mysql> select greatest(2,0);   
# T% W) p8 Y" j" _2 Q2 A3 w2 P- f  -> 2    7 I* k- c1 w" W6 }1 c0 l
mysql> select greatest(34.0,3.0,5.0,767.0);   
$ L+ J$ E2 T$ d5 R5 ~  -> 767.0   
3 ^" ?! j( s* G3 C7 |# f; f0 amysql> select greatest("b","a","c");      |- Z$ C1 ~# u! Q- e" i
  -> "c"     3 J- \" \9 [" H+ i  P
0 d' D6 O6 d$ ^0 J( R  [. _
3、时期时间函数
2 p" r1 {0 D! Idayofweek(date)    , y3 A8 F& v' i9 p
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
. N" h0 {1 C% U, Z5 a9 nmysql> select dayofweek('1998-02-03');   
/ H& s0 J' c6 z% h3 A5 {1 H7 ^  -> 3   
! H& {  Z# u8 z% q6 R
0 ~  D- P! t2 \! Y" mweekday(date)   
% N4 m( i  O0 _( S! G: f返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
  [( l7 i3 C5 D) O2 C# c! W  
2 o% G/ A: K0 T: v* Zmysql> select weekday('1997-10-04 22:23:00');    , ?) ~6 z4 F' [' v
  -> 5    2 Y; b+ X7 _8 ^9 H/ N! |6 M
mysql> select weekday('1997-11-05');   
. g9 o: r2 A5 [5 V8 v  -> 2    - y8 ]6 A- u5 w$ K5 n+ M1 E1 W3 x* x2 K* J

6 {; ?' Y) x! L! b7 V  Odayofmonth(date)    
: J6 g- @( m  Y4 M2 j5 i/ x返回date是一月中的第几日(在1到31范围内)    3 d; ^, h# U* q
mysql> select dayofmonth('1998-02-03');   
+ [+ W! a5 v8 U6 W! z% t- r  -> 3      a0 g; q3 i5 f! G) s" D/ L

$ Y9 m, f' f! Z1 }dayofyear(date)   
9 _  R7 h3 Q( ~* q9 p# i返回date是一年中的第几日(在1到366范围内)    ' y' f/ e: E$ F( C" O, C0 F2 k
mysql> select dayofyear('1998-02-03');   
* e: m: k: w/ J( k" `  -> 34    0 c& C8 Y. z8 y# |9 q% l

% n5 `4 G9 D% A# @8 k+ ]. ~  M9 g  Qmonth(date)   
. J' |$ c: V) G' ?4 j8 ]返回date中的月份数值    & M1 y3 X& V  i7 \
mysql> select month('1998-02-03');    . Q/ ?' y1 p* R' z
  -> 2    ! R9 w1 p) {0 N( q: J0 H
: b( z) v2 J4 N( T( Y$ D
dayname(date)    1 E3 i2 \& z! l& X
返回date是星期几(按英文名返回)  
) [! l; l! G) P9 J( U, dmysql> select dayname("1998-02-05");   
( Y. D* o/ U* o9 B% a  -> 'thursday'   
% s# }8 {* T+ ]4 \3 K6 z( ?" ?
7 o. s; E+ x7 p; ^monthname(date)    7 [9 O9 b' Q4 z5 N, U0 T2 N1 J8 T
返回date是几月(按英文名返回)  
1 h# k( ?1 }2 b$ G5 f: C8 v; Hmysql> select monthname("1998-02-05");    " W$ ]0 V' s" Q& V$ d/ n
  -> 'february'    3 n2 X# |4 {6 R9 _' \2 b

7 b- E4 k0 N. Y5 `: n* O. `) \" d- H3 gquarter(date)    / h6 ?1 z- ]9 `
返回date是一年的第几个季度    ; \! n4 g7 t) Z7 D+ ~/ f' D
mysql> select quarter('98-04-01');   
8 Q8 H$ q( F8 j  u9 U  -> 2   
; ^& t# w- t' i+ T3 y* {3 C7 Z & N" T' d  `# f. t0 z6 B, @" \
week(date,first)   
  s3 v# K5 q: N7 K) n& I) c* ~1 \  b: |返回date是一年的第几周(first默认值0,first取值1表示周一是
# ]( ]. e+ |3 }3 q/ C; P周的开始,0从周日开始)  
3 F9 N4 }; q0 ?4 A+ a$ lmysql> select week('1998-02-20');   
( O0 l$ P4 q8 w) J6 r* |( v  -> 7    / z* m; Q6 R# T4 u2 |& E! A% }
mysql> select week('1998-02-20',0);    * a* P1 ~0 o7 {
  -> 7    ! a, ?$ Q. o/ K. E
mysql> select week('1998-02-20',1);    / Q% t* K! A. T$ g
  -> 8    0 ~8 @: x. a7 r4 n* C$ X' n

- P0 U6 B- o0 E$ vyear(date)   
" \: G& Z: M& U2 ~' [: R" t, v返回date的年份(范围在1000到9999)   
, Y+ ^- t$ y5 W8 s+ }mysql> select year('98-02-03');   
; \! Q1 C. c* |- m; [; `  W  -> 1998    ! E% q  }& j- W' r1 m6 X

* \( A: v$ z- j8 Phour(time)    + Y) j3 I5 X+ I0 N/ w9 C
返回time的小时数(范围是0到23)   
5 \, b: F2 N' A# T9 umysql> select hour('10:05:03');   
1 ~9 y" F% b5 D6 I3 l  -> 10    7 I& z" K) E$ s) d3 Z$ q3 \1 `
  O  N( B! q, ]. [& M" g
minute(time)      W9 _2 X+ v) e- |; g
返回time的分钟数(范围是0到59)    - d+ f9 s' M' C
mysql> select minute('98-02-03 10:05:03');    / R, o# T7 w/ H& ^5 u( [
  -> 5    * M, z' V+ ^  ]# ^. o" p% T; z

2 w4 {2 g4 s" M5 z4 k4 rsecond(time)    9 M& Q1 p6 r# ~* t3 p7 V' E9 t
返回time的秒数(范围是0到59)   
1 Z+ c5 f6 Q* e( `$ ^4 Fmysql> select second('10:05:03');    5 t& K6 c1 n: e
  -> 3    ) N# c) I1 X) G; @1 @
$ {8 M/ C- s' y+ c# B" G
period_add(p,n)   
$ O  Y. O2 |+ N7 O* o增加n个月到时期p并返回(p的格式yymm或yyyymm)   
8 J/ |% h& v6 a6 |8 k$ x( l' L2 pmysql> select period_add(9801,2);   
  A9 D& x- i2 q" }  -> 199803    - Q! E/ g$ I5 ?/ V  A/ K% Y0 q

2 o3 O3 m( K% D6 j. t& [& h. C! q, ]period_diff(p1,p2)   
; x4 d  y/ g) T: L; J9 l: R返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  
' D. O- \1 `% c3 ?0 s* omysql> select period_diff(9802,199703);    / K7 o! r, h7 i3 c
  -> 11   
+ u- l+ z4 ]5 {) Q: Y1 [: l" h6 l % \4 I8 j6 d9 E) Z" _* E
date_add(date,interval expr type)  
; V7 g( S+ n9 a  L. D3 |! D; Idate_sub(date,interval expr type)    + O7 S  w) U# s' a& s
adddate(date,interval expr type)    ) ?4 X2 K) o7 K! u* e/ j
subdate(date,interval expr type)  * r1 ~" K) u, k$ Q" n- E6 A
对日期时间进行加减法运算  " |2 d4 r/ f# w7 [. ]
(adddate()和subdate()是date_add()和date_sub()的同义词,也
0 o# G$ G5 O8 X  t: }4 w可以用运算符+和-而不是函数    w# V6 @( O* C; |( z
date是一个datetime或date值,expr对date进行加减法的一个表: P% O- K" v) v3 N2 B  f
达式字符串type指明表达式expr应该如何被解释  
; n) i" H9 p4 l( d& ^ [type值 含义 期望的expr格式]:  
4 E, i: o$ H& O+ q0 h second 秒 seconds   
3 [3 A# L* f* G6 k6 u% O minute 分钟 minutes    2 f8 k1 t5 V- |9 e
 hour 时间 hours   
: D# k- i; \) G$ n, |6 s$ }  L* a day 天 days    " O9 e+ p5 f; N8 d: o
 month 月 months   
; r6 ?  A' }- a year 年 years   
" z" D5 T9 |" X" S% J8 f1 p minute_second 分钟和秒 "minutes:seconds"   
8 l7 H- j+ d* R0 e' p& X hour_minute 小时和分钟 "hours:minutes"    ; y. b& M5 x" J( V( c
 day_hour 天和小时 "days hours"    2 }6 q' V9 ~3 @- I& ~
 year_month 年和月 "years-months"    * ]9 \7 b( e  S! f( ?, l9 c5 m# A
 hour_second 小时, 分钟, "hours:minutes:seconds"    : \7 ]7 v  b; k" O1 ^  K4 b
 day_minute 天, 小时, 分钟 "days hours:minutes"    0 `( X: F( ?& x/ c, i; \
 day_second 天, 小时, 分钟, 秒 "days0 J) N. E: n$ R
hours:minutes:seconds"
% \; x& m  D+ i) ]5 z8 w) c expr中允许任何标点做分隔符,如果所有是date值时结果是一个
9 |" K# q  z( ]# H$ R' }0 xdate值,否则结果是一个datetime值)  
, ]2 I) Y) V. C' C7 W: F7 q0 d 如果type关键词不完整,则mysql从右端取值,day_second因为缺( o1 O: ^* |, o# d* `
少小时分钟等于minute_second)  
. }% k( \7 e3 {8 i( T8 C9 e 如果增加month、year_month或year,天数大于结果月份的最大天2 k6 R- H5 L/ ?2 R" ~
数则使用最大天数)    ( u2 \2 a" J) G1 A" H
mysql> select "1997-12-31 23:59:59" + interval 1 second;  
) g+ P. F  ^5 J& J9 f6 b5 A- q2 c2 q
* Z: _% F; r6 [) t  -> 1998-01-01 00:00:00    - b8 t" D! ?+ d/ e7 C
mysql> select interval 1 day + "1997-12-31";    ! S0 M; p+ O# u; I; b. g  `
  -> 1998-01-01    2 e" n: ?" X& |* i" Q; i2 ]8 w
mysql> select "1998-01-01" - interval 1 second;   
% F; l) n% C# V5 s. V  -> 1997-12-31 23:59:59   
0 ~$ [/ w) y+ M6 D# n$ B  |& f! Wmysql> select date_add("1997-12-31 23:59:59",interval 1
! |4 i- ?6 K  Ksecond);   
. i5 B" j8 `; x/ h; l  d) B) N8 R; c  -> 1998-01-01 00:00:00   
( L" ^8 P" `% S/ p2 N6 Omysql> select date_add("1997-12-31 23:59:59",interval 1
, x, `4 `" I6 Oday);    $ M* x1 ^6 E( N; i( U  x
  -> 1998-01-01 23:59:59    ) B& ~( h6 U- c7 e$ J; |3 {5 B
mysql> select date_add("1997-12-31 23:59:59",interval
* p% W- {( X& u+ @$ l"1:1" minute_second);   
3 i8 N0 J; A3 k1 ~5 {) i  -> 1998-01-01 00:01:00      X% L: ^7 @8 T9 M
mysql> select date_sub("1998-01-01 00:00:00",interval "1
2 s& k& v6 S# b& C1:1:1" day_second);   
# ^5 v( G4 i6 O' U  -> 1997-12-30 22:58:59   
* d; \( T: ^. o; N" S" emysql> select date_add("1998-01-01 00:00:00", interval "-1
. A) L* x& u+ d- p10" day_hour);  # K* I, B6 X: c$ X6 t  ?, i( l8 j9 y, U8 K
  -> 1997-12-30 14:00:00    2 p9 ~3 p) Z' ]+ T4 Z
mysql> select date_sub("1998-01-02", interval 31 day);    % X& ]2 P6 `& b. ]8 c9 z8 B
  -> 1997-12-02   
! v6 ^( ]# n1 ~: }1 y; r' imysql> select extract(year from "1999-07-02");   
5 \9 H1 ?: H$ X& q4 n9 i  -> 1999    9 U' f" _# S, a0 R8 H
mysql> select extract(year_month from "1999-07-02* r) p! W2 }2 M
01:02:03");    $ {8 N1 C7 x$ h* d% n% M
  -> 199907   
9 J) g7 ]& w2 L  Ymysql> select extract(day_minute from "1999-07-02
- \& Z; g/ V8 Y1 O' d01:02:03");   
& Q$ Q0 \. [  }" i( s/ F% k  -> 20102    % b& h- i- s/ Z9 Y% w7 u+ L8 j
2 B* h) I; Q$ f- f
to_days(date)    6 R7 i. W# C. o
返回日期date是西元0年至今多少天(不计算1582年以前)  
3 o3 s1 {8 \  dmysql> select to_days(950501);   
+ M# w& z, w# d/ y. h  -> 728779    % ~: j7 d, e" C- z* l6 C
mysql> select to_days('1997-10-07');   
3 y3 p# T3 F+ ]7 ^) A: H1 f  -> 729669    ( v% X; F9 S/ W9 {( V3 W
5 T/ F$ K; w$ [
from_days(n)    - R: H6 [, H9 ]4 R
 给出西元0年至今多少天返回date值(不计算1582年以前)   
6 {  c* ~  Y' G' E6 S6 dmysql> select from_days(729669);   
- D5 U% N' @; U: Z, W+ A; P- Z1 V# W  -> '1997-10-07'   
) |% Z. N3 B% i$ J! ^& J
9 J3 _  A- r5 ^# H/ h3 f3 Y; G+ Qdate_format(date,format)   
" `: j* L* R8 S" M& t; d! Y 根据format字符串格式化date值  
, y8 b4 s6 R8 B' a3 r' x. ~ (在format字符串中可用标志符:  ' _' l# u7 B4 z& K1 B9 k1 c! F4 f
 %m 月名字(january……december)   
, n, `2 W5 B# j+ S% W2 b' f %w 星期名字(sunday……saturday)    * ]$ n* O' h4 W" R! M
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    3 H# Q5 F; L+ Q) U$ h. S5 }( ?
 %y 年, 数字, 4 位   
. [# x# l1 x* s3 j/ @  H %y 年, 数字, 2 位    . k- P9 x( _; \
 %a 缩写的星期名字(sun……sat)   
0 m/ m" |- g0 q" P2 D %d 月份中的天数, 数字(00……31)   
) Q( G1 P1 M4 {8 n  r %e 月份中的天数, 数字(0……31)   
. \- I- D. A% i/ e, Q/ w" T/ H %m 月, 数字(01……12)    : D% G- Z/ A( H# f
 %c 月, 数字(1……12)    : v0 D, [& u3 A7 k  v
 %b 缩写的月份名字(jan……dec)      @% M( E  u- g2 F; Q3 X5 c! y) |
 %j 一年中的天数(001……366)   
* }8 g! C0 `; v5 z' ` %h 小时(00……23)   
' _% m# l, h5 ^/ {  p# b/ p% B %k 小时(0……23)      c  G' D5 n  V5 {6 L. Q
 %h 小时(01……12)    + J& b# r% X0 X/ V  [7 ?
 %i 小时(01……12)    & P. G* W9 f, c' h4 i# l
 %l 小时(1……12)   
: y- f. A; K) |, t; J; L# b5 y %i 分钟, 数字(00……59)   
, [, w! l7 S8 D% A" h* M/ \ %r 时间,12 小时(hh:mm:ss [ap]m)    - {  f1 e6 ^; `! r7 K: T/ G
 %t 时间,24 小时(hh:mm:ss)    # D" N! k6 o' Z* L3 Z
 %s 秒(00……59)   
( e: q. @# R- ]* M9 e; H' a! Z %s 秒(00……59)   
) d% M9 q' ^% F+ ?1 g1 k %p am或pm    7 |8 Q( E) n  E/ m' `2 v' I
 %w 一个星期中的天数(0=sunday ……6=saturday )    # `7 y  R3 \! P% \
 %u 星期(0……52), 这里星期天是星期的第一天   
- |2 d- C% k1 q! R* r %u 星期(0……52), 这里星期一是星期的第一天    # {$ L6 B- E2 r* c! r
 %% 字符% )  
, i) [' z% w, y4 H" Vmysql> select date_format('1997-10-04 22:23:00','%w %m %; A/ L2 E3 _" {; U- `8 P
y');   
9 Y8 T2 y2 Y" Z2 u" l, \  -> 'saturday october 1997'   
0 Q* ?. X1 _3 M* Cmysql> select date_format('1997-10-04 22:23:00','%h:%i:%
% x& }3 R2 w1 @5 J# r, q- gs');    , x8 h9 V% v: a* v1 ~
  -> '22:23:00'   
! w5 A8 _* F- `mysql> select date_format('1997-10-04 22:23:00','%d %y %a
$ `" u1 v0 R0 O2 T%d %m %b %j');   
, \9 g. M0 R3 d$ |" X# [$ @) \  -> '4th 97 sat 04 10 oct 277'    9 Y4 a. F  @: x% G% N0 m2 x
mysql> select date_format('1997-10-04 22:23:00','%h %k %i
/ W) j  D" Z' G. v% w2 c0 \%r %t %s %w');    + S/ ~; @8 ]  V: s( \
  -> '22 22 10 10:23:00 pm 22:23:00 00 6'   
+ o, V- g: _4 z9 g  ?- o 1 W, O% ?. H" k# }! e, y" J3 _6 K- a# y
time_format(time,format)  0 }  d  _) _$ K+ D% N2 C& }- K+ X
 和date_format()类似,但time_format只处理小时、分钟和秒(其
6 G1 ]& ^. S, [* B3 Q/ I4 M余符号产生一个null值或0)  
5 y3 |5 [$ B# X 2 H, ~* Q! X- ]2 @: B9 F+ @) S
curdate()     . d. @( M+ k. y+ Y. u
current_date()  " M) j$ m* i( n/ l9 r! A) v; O. Z
 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
0 Y3 {  P! W& X& @$ ]8 a& A$ d; g处上下文是字符串或数字)    4 w8 ^6 q  y" @: E1 ^3 c
mysql> select curdate();   
. n: s1 T5 c" y: U+ R  -> '1997-12-15'    5 s, ?; f, A- q! j2 d' Y
mysql> select curdate() + 0;   
6 `, Q, W# ~$ q" }/ N* N$ W  -> 19971215   
0 _9 D  [, Z# P: K4 G
: {% c- J$ R( a/ t$ X* Z% K9 lcurtime()   
* q, n: f; a: Tcurrent_time()  
$ f4 {8 x( G. g- a: p5 T 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
; ^" L' Q, r0 y4 m. ^. o下文是字符串或数字)      
6 z1 k! B, `, a$ {6 Zmysql> select curtime();    $ n: d, f7 P: _) @2 S
  -> '23:50:26'    : T5 R# U" ?- v4 J  P0 m6 X
mysql> select curtime() + 0;    . b, T8 |' p' D* }! K# S( n1 V
  -> 235026    + E8 K3 V6 J$ M; K% N0 I
, f0 p, |# X) o/ R9 _
now()    $ `: |  x' C7 b4 A
sysdate()    
; q/ T2 n4 Z4 _% l4 h! scurrent_timestamp()  
5 q: i) n" z: F 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
" R4 a% P) H  v  q3 V时间(根据返回值所处上下文是字符串或数字)     
1 D: G. V4 ^+ @2 U4 A1 {mysql> select now();    + p) N( p/ U4 U% F# C- a' f
  -> '1997-12-15 23:50:26'    . q% K8 F6 V. ^: `/ e7 \: H% s
mysql> select now() + 0;   
' V+ \' T/ E2 v0 j& W* f9 ]  -> 19971215235026   
$ p9 b( a' W: q) d) S. t* T
0 r0 H+ _2 l3 v9 q/ P7 _5 S6 wunix_timestamp()    4 ?9 m* {" t8 v* b& z- t
unix_timestamp(date)    2 K9 p6 L& Q5 n+ y: T( K
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒' W3 b6 Z" t# c4 d- \, E" @
数,date默认值为当前时间)  3 i+ M6 z! ^  Q) [' Q
mysql> select unix_timestamp();   
) E3 p( f% k3 c- c  -> 882226357    ! W# ]: a  g( _/ H5 w
mysql> select unix_timestamp('1997-10-04 22:23:00');   
, v" a1 e# k+ `7 F* y$ T7 `  -> 875996580    " @/ I- ^) H. U1 U
5 L3 y3 X% X; l
from_unixtime(unix_timestamp)   
( V0 F, N% W# v2 `) S+ A以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的
0 Q' i, k/ ?( {  d  X, q值(根据返回值所处上下文是字符串或数字)     
2 a& P& ~( G- X) tmysql> select from_unixtime(875996580);   
. _+ u. w% l2 ^; B4 o) b6 Y# o  -> '1997-10-04 22:23:00'    , j  ^1 ]. M, R8 y9 |
mysql> select from_unixtime(875996580) + 0;    / z7 E) ~" B5 ^$ z* a; c: V( @
  -> 19971004222300   
( z! t! Z8 q7 { , l' J9 a9 L7 ~. W8 H
from_unixtime(unix_timestamp,format)    5 ?/ F/ \2 e$ K; ]: Y; b9 o: O5 y
以format字符串格式返回时间戳的值  , h  N  Y8 Q) V  A# @2 W7 _" d
mysql> select from_unixtime(unix_timestamp(),'%y %d %m %
# C# I3 u& C% U- G8 ]9 eh:%i:%s %x');   
) ~4 T9 Q" k! p: b* `, N7 b! X, d5 B  -> '1997 23rd december 03:43:30 x'    , f7 c" n1 }9 O. `; t

  z( Z3 [+ q3 ], [( W( ~6 \sec_to_time(seconds)    2 y" |. M* n0 s: k' ]3 W
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     0 t& w6 l& X' _: N* m& S3 R
mysql> select sec_to_time(2378);    9 m  t- N1 s& a+ j. F. ^
  -> '00:39:38'    1 c* o) I! e& Q
mysql> select sec_to_time(2378) + 0;   
$ i- b7 K0 L1 R8 u! f8 \* @# z: V  -> 3938      o  O4 Q- n; P. y$ H: h6 X
) h- f, x' w7 ]9 ^2 L- U6 o
time_to_sec(time)   
# S8 w  m# o' l4 K( ]6 H) E返回time值有多少秒   
' Q/ i8 g( R) p" u/ X+ rmysql> select time_to_sec('22:23:00');   
- s7 D, x6 Q1 u7 r. ~! |) X( B  -> 80580    ' m/ }6 ?" k& R% c# F/ {
mysql> select time_to_sec('00:39:38');    6 y; }' K0 S$ o5 M7 N) W" r
  -> 2378 # ?4 W: `4 e9 J& T
7 O' C) p  q  [3 W. k0 ?- k0 q
转换函数
* Z# Y' ^) l7 lcast
+ i: {, \) l# ^8 q用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]! g" ^, Z9 z9 U& Q( y* J8 T$ x" i
实例:select cast(a as unsigned) as b from cardserver where order by b desc;
7 s0 D* \$ n1 @* m0 nconvert:7 x; X- ]% ]# j/ W( m1 k3 \5 o
用法:convert(字段,数据类型)! F6 I6 r/ y7 ]
实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

+ u+ Y% b. ~( S
回复

使用道具 举报

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

本版积分规则

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