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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数& V3 l. H1 M7 }/ z* C
ascii(str)   ; d, w8 Z- ^% ?1 T# u
返回字符串str的第一个字符的ascii值(str是空串时返回0)  
! X! t5 h* |# u6 |mysql> select ascii('2');    Q2 t5 t( R5 ^7 d$ g/ }" l, S% Z
  -> 50  
0 E0 ]- j. K0 o' Xmysql> select ascii(2);  ' \* u4 O, s& p; D8 ]$ L( O
  -> 50  
) S+ ^& s; n4 E3 n5 d4 v- emysql> select ascii('dete');  - M' n$ N& O* p5 i
  -> 100
5 Z' a6 ?8 S8 T4 w( ^
ord(str)   5 J/ ?. g  x  Q  u/ p7 }: q" W! n
如果字符串str句首是单字节返回与ascii()函数返回的相同值。) |! Y5 D. M: p3 T' `7 t
6 B8 I9 c6 }6 t2 O. K. f4 S9 d' e
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  $ r& E* u) T8 Z6 R
mysql> select ord('2');  6 g9 W* s) Z; c+ @
  -> 50  2 J6 R/ e; p% u$ L% S- ^
   $ W. C% q7 v4 @+ i  z) M
conv(n,from_base,to_base)   
2 i1 `+ r, `+ N% L对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  6 j! O# |' @# j8 z2 j$ z. C
mysql> select conv("a",16,2);  
: e; ?: w) N1 E+ ]& A& u' Q  -> '1010'
5 ^* I4 B: v" Y- N9 F* |mysql> select conv("6e",18,8);  & W! f" i6 i1 m" |) t: k4 i
  -> '172'
0 {& {, [9 D7 [" E% wmysql> select conv(-17,10,-18);  ( ?  L1 I7 r- q# }# L  f) i2 o" ]) N
  -> '-h' 8 S% x' t+ `. D
mysql> select conv(10+"10"+'10'+0xa,10,10);  
6 [2 }. T7 Z; O9 B# Z  -> '40' ' h' L5 j% B7 L: b5 U
   
: Z0 {" `$ F+ v' ybin(n)   * i* t$ Q. z3 C2 D, q4 B4 Z- |
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  2 |% e4 s+ z, J" Y/ z
mysql> select bin(12);  ) U3 [& h/ c* q4 v7 V9 B0 Q
  -> '1100' 6 l" l# {. y; J/ ^

$ {" \: c3 @, soct(n)   5 W1 Z" }- B/ e
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
) K4 s7 Q' }5 ?% w6 o4 \$ |8 _mysql> select oct(12);  + ~# f' w! ~0 O* T8 F) E8 S
  -> '14'
& T, X! v/ N2 z, F2 z   
- C( h( L" ^* L5 H! b3 s6 xhex(n)   
$ L$ R+ V, c' H把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  7 i' U- z$ o) n3 w0 l; X0 O
mysql> select hex(255);  " X( K+ }/ @3 s* _* N
  -> 'ff'
" }% g3 U7 K: S9 z5 B% v   ; m: D. p' u$ _
char(n,...)   
& |6 P$ }3 a, [6 j返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   
6 T( N5 L. p6 J1 s2 Xmysql> select char(77,121,83,81,'76');  ; d0 v9 \! y  {! ]9 j4 f
  -> 'mysql' - L4 |5 X$ z8 o& r
mysql> select char(77,77.3,'77.3');  6 s( V' b5 V. ]% [2 C
  -> 'mmm'
: D+ n4 e8 I) D/ w7 R) y# n2 v   
+ F5 x. Z+ Z; a! f2 p8 R6 A5 s+ yconcat(str1,str2,...)   7 Y- ^" l/ e9 n7 Q4 K
把参数连成一个长字符串并返回(任何参数是null时返回null)  
4 j6 h5 w" j* d2 b5 m& Q# [mysql> select concat('my', 's', 'ql');  0 h, a! J$ |# d7 e. D* z
  -> 'mysql' + f7 ]6 x% N% ]# c: R# X4 R
mysql> select concat('my', null, 'ql');  ; c1 `5 G- m8 Q2 x0 }
  -> null
2 N6 }" B9 G4 u2 Gmysql> select concat(14.3);  
  u7 w; L6 O0 }, E  -> '14.3'
8 R" c- L. U7 I5 \% o
* R  n6 X: X2 S+ M0 x2 Ulength(str)   8 p! f+ j; C" Y  D( z8 B# x; t
octet_length(str)  
2 }. I/ ?) |  {' ~$ Kchar_length(str)  
2 r* q0 J  p5 C, M5 J, D7 u) Jcharacter_length(str)  
3 K" n" a! b* M  W返回字符串str的长度(对于多字节字符char_length仅计算一次)
0 j9 h2 K8 A2 `- S5 Vmysql> select length('text');  
  ]6 \% f1 G6 ~. ]  -> 4  
/ S' C( _7 m, @mysql> select octet_length('text');  
! X! _! k% Q" e, J( ?8 b  -> 4  ' G/ w9 m) |3 w. E. o1 k8 l% d
! m4 V" V' b8 z2 ^% L- @
locate(substr,str)   % f  d1 N2 R: D# G) k
position(substr in str)   
0 \+ k6 R2 |2 B" w. i) M# H; u1 Y返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  ' ]+ H" C: A3 Q0 Y6 j
mysql> select locate('bar', 'foobarbar');  
( `$ \  X! ~9 Q- {. h0 L  -> 4  / {6 l' A" b- v5 |2 l
mysql> select locate('xbar', 'foobar');  3 k' m4 `  M/ F! @0 s. @& }
  -> 0  ) V. `. n) `% Q/ T
    # Y, q, q6 f! F. ~  ]
locate(substr,str,pos) 9 U. f, T( `3 c! p8 e6 K
返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  , p0 S# @$ I+ _2 l# C, A( i2 s
mysql> select locate('bar', 'foobarbar',5);  - G4 j% w0 d/ K0 U; @5 \# U
  -> 7  
' x9 w0 ~% G0 h$ Z; s& @- L 2 d- M  C( p) j* ^
instr(str,substr)   & I, m' V" f& E3 K. }
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
$ E1 v: O% \5 m+ f7 n( [8 ~mysql> select instr('foobarbar', 'bar');  ( T. W) g: {! w; E
  -> 4  
1 X* T/ Q5 p" g( _: f( g  _mysql> select instr('xbar', 'foobar');  
( ^: S, c0 G# {$ T# ~2 |! B# f  -> 0   
9 R2 S, f, b. ]) t% N/ O5 g ! Z9 S6 E* Z. ]) o6 L& m# B1 {* B: i
lpad(str,len,padstr)   & H/ A8 b" f( v  Q! G
用字符串padstr填补str左端直到字串长度为len并返回  
$ |4 Q; B$ _8 y. Y' X& bmysql> select lpad('hi',4,'??');  : X7 F6 {, T* D/ `; H2 k
  -> '??hi'
; q; J' o$ [) g3 @1 a' N   
! J& h! ]  l. r7 u; Q* qrpad(str,len,padstr)   
! w: _- g4 W1 N9 M& T用字符串padstr填补str右端直到字串长度为len并返回  8 K. B/ X8 S  h, o3 H( q
mysql> select rpad('hi',5,'?');  
6 G* Z* |  `& S  G, I  -> 'hi???' ; x6 i7 B7 h6 N

* \( `4 f" {( T- yleft(str,len)   
: e! Q0 C. Y& l+ M  T8 s0 k5 d返回字符串str的左端len个字符  ) l3 p  k; ?' m4 ?9 X$ p
mysql> select left('foobarbar', 5);  
4 h* @2 q  ]" m( j' h- z  -> 'fooba' 1 J2 d3 S' _- H5 C5 ~/ T$ T
" Z3 U7 p0 P* e
right(str,len)   
1 m& a. |9 c8 R$ ]# `8 V% w返回字符串str的右端len个字符     e2 {1 g: u3 e9 }4 a7 N$ Y
mysql> select right('foobarbar', 4);  
& W+ }* C7 j7 r0 y  -> 'rbar' 0 a3 |: g  ?  g: W! y
1 R0 G* @+ u, R
substring(str,pos,len)   
+ J/ M& ]& H1 ^$ X+ Psubstring(str from pos for len)   8 L0 ~4 `$ s7 D) @- v9 v/ ]# e. z
mid(str,pos,len)   6 I" R" X' f8 c" u/ M! s
返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  5 U# n% k- W1 e/ ^* L
  -> 'ratica' ! Y/ J! {9 ?+ }: A/ m3 c% {
/ t" W1 x* i# ~% \% {8 C7 F, W5 N
substring(str,pos)   
& c, x7 `( X- G% `  O* Q! J  Ysubstring(str from pos)   
+ c( X4 t/ l8 s. _& U返回字符串str的位置pos起的一个子串  $ ]/ A5 J- |5 s+ C5 ]' i
mysql> select substring('quadratically',5);  
% |' `+ y1 F8 }5 S  -> 'ratically'
( O0 y- D) d4 N2 G0 t1 xmysql> select substring('foobarbar' from 4);  + |% j8 X- Z  h7 |
  -> 'barbar'
8 R: L, w- \8 l9 W5 y3 ` 5 Y7 s8 e: B) N
substring_index(str,delim,count)   
$ F7 o- m% K5 h* n( Q) Z- e返回从字符串str的第count个出现的分隔符delim之后的子串
8 Y6 j; A2 G* |% F0 a9 E(count为正数时返回左端,否则返回右端子串)  . }6 n& q1 W" U5 l4 Z; D8 w
mysql> select substring_index('www.mysql.com', '.', 2);  
# h; u- h$ {- _0 A# b8 ?& d  -> 'www.mysql'
& |9 I; L' `5 Umysql> select substring_index('www.mysql.com', '.', -2);  - x8 R  R1 ~1 u* [2 H
  -> 'mysql.com' ; `8 D" }; w  l+ L% F& O

1 l' S. S* D, d/ ?ltrim(str)   
6 }2 @5 w; v) F, ^& c返回删除了左空格的字符串str  
' I# b- ~: N+ n+ x, Umysql> select ltrim('  barbar');  2 ~. S1 j. ?8 e
  -> 'barbar'
. \8 h1 c% G0 K" t3 R$ W
" K$ W' T" t) }" m3 Krtrim(str)   / T0 l, b. _& M* ?# c) V8 B+ `6 X
返回删除了右空格的字符串str  ' l# k' ]# E0 O0 r+ c6 `
mysql> select rtrim('barbar   ');  
; t, {2 {; \/ l. q  -> 'barbar' 8 D1 @- h1 D1 ]% T2 M
8 U) Q6 n' i% w; J6 A3 f
trim([[both | leading | trailing] [remstr] from] str)  
% H& f; H# W& T0 }6 e# Y返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
' [, L* @- q% G& Jmysql> select trim('  bar   ');  . Z! J; _+ {) |* [6 r0 U6 ~' L
  -> 'bar'
6 W$ y6 }1 O) U( B6 Emysql> select trim(leading 'x' from 'xxxbarxxx');  
# G, d$ E) x9 T* n- l  -> 'barxxx'
! h& x, k% v, @5 Dmysql> select trim(both 'x' from 'xxxbarxxx');  - g, E5 {' ]# _
  -> 'bar'
( B+ O" D3 y2 T; q  ?9 imysql> select trim(trailing 'xyz' from 'barxxyz');  , A) I$ t8 g& {0 @/ A; X
  -> 'barx'
9 }! H+ O  K& b7 A, w 1 S. r. r0 }# _+ D0 u7 R
soundex(str)   ; j' e: t8 W  E; B7 [, Q
返回str的一个同音字符串(听起来“大致相同”字符串有相同的
( Y# B& h4 Q3 r" O! T$ O同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  8 w8 V% k0 _( [. V# q
mysql> select soundex('hello');  
# J2 P; Q9 B6 u8 M: o  G' V0 \  e6 K  -> 'h400'
- v2 r- a! v7 amysql> select soundex('quadratically');  * X+ M$ Y: Z% f
  -> 'q36324' / ~0 s, J, c( b/ W5 O0 X
   
3 f! y- ^! l+ @8 Y% P( I6 wspace(n)   3 l7 a- o8 ]5 [
返回由n个空格字符组成的一个字符串  & ~- y, @# L1 t
mysql> select space(6);  
' Y0 w! v0 w1 \  -> '      '
3 r) l" w9 s( ?- T1 \   
& C: M4 A: c  F! Wreplace(str,from_str,to_str)   
; G4 R7 [8 Z2 ?( S. a, A用字符串to_str替换字符串str中的子串from_str并返回  
, h7 `: Y. Q9 G/ D* x! |mysql> select replace('www.mysql.com', 'w', 'ww');  
& E2 u, O7 u# O" F1 @% ^. j9 O  g* S  -> 'wwwwww.mysql.com'
: y$ d, K8 Z2 j0 K3 z) M3 P4 Y
5 M* ]  o- J* Y9 W, ], |- S. nrepeat(str,count)  
' [5 |$ r% Z% z( Q4 }( e2 X- E返回由count个字符串str连成的一个字符串(任何参数为null时% v$ }; W. L! O3 V+ x
返回null,count<=0时返回一个空字符串)  ; e+ {& B- p' C8 K9 D. m# M& s
mysql> select repeat('mysql', 3);  
( s# q, e. N4 r+ f7 j: G0 s7 F9 v  -> 'mysqlmysqlmysql'
$ k/ x! A3 y4 ]8 E   
6 s+ N1 \! ]/ u7 N% L- ~* Kreverse(str)   ( F8 X# B: g. j2 s0 R
颠倒字符串str的字符顺序并返回  . H/ b- }  p9 G% t" @( j
mysql> select reverse('abc');  + T" v' ?2 F# U$ H4 [2 W7 p
  -> 'cba' 9 J- T9 `$ y( d* C/ L& O' l

9 H3 H; [$ c) Y/ uinsert(str,pos,len,newstr)   0 f( w" r5 F, g" x8 v
把字符串str由位置pos起len个字符长的子串替换为字符串8 ?$ N" f9 {! _9 O2 C
newstr并返回  : U+ e" h- x* [
mysql> select insert('quadratic', 3, 4, 'what');  - Z4 p* }7 {8 b& n: |
  -> 'quwhattic'
& e* Y$ B" o5 _4 p, h
8 e& g( U* W( V) zelt(n,str1,str2,str3,...)   # |  M/ \- x" U4 r, t
返回第n个字符串(n小于1或大于参数个数返回null)  
" a% e8 B2 }5 s. i* ~mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  
5 g7 V+ O- H! W; e& X3 L  -> 'ej'
. x& b2 e# A; [: w2 A- cmysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  # P3 d# v0 V$ u% N2 z! Y
  -> 'foo' % n$ E: b" `, z  i: W

$ q2 Y2 J  y/ x9 t  Ffield(str,str1,str2,str3,...)   $ ]: {1 Z3 b! [% W+ a, G, a  O) a+ s
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
$ h2 X2 N* t1 l6 zmysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
" f- `0 H" x- i) K0 a'foo');  
! O' Z/ h" [/ m% M  r! E6 `4 I& j  -> 2  2 @" \+ F8 w2 x; E3 N
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',- @/ X% {* o8 U  f; x6 R- S
'foo');  
2 O5 `' u7 C/ F; c  -> 0  
  Q5 b  f& y7 Q
4 p; |8 h- d$ W! {4 X4 Kfind_in_set(str,strlist)   
! d) J' I, x" X# s$ A返回str在字符串集strlist中的序号(任何参数是null则返回( K. W) g+ ]9 ~' C8 U: x
null,如果str没找到返回0,参数1包含","时工作异常)  
+ ?6 t6 M6 D! ^1 ~: U" Y# jmysql> select find_in_set('b','a,b,c,d');  
+ N$ A( j2 l/ s  -> 2  
7 Q) {  h( L7 e; c   3 h  d3 a$ c9 A
make_set(bits,str1,str2,...)  
7 T  m# e3 E0 o9 d/ F. V) B: ]把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
; K3 U* B8 V; Y位置的字串选入字串集并返回(null串不添加到结果中)  
  u% g8 g& n5 t( c! Z* M2 S# ]mysql> select make_set(1,'a','b','c');  $ |8 u; g1 X, [3 Z" a# E# L# m
  -> 'a' , g3 g# y. M  X* c  C
mysql> select make_set(1 | 4,'hello','nice','world');  2 @4 {6 P* Q- W9 s& a  |
  -> 'hello,world' 9 z$ m; r6 A' T( b3 B
mysql> select make_set(0,'a','b','c');  6 R+ b2 l, z6 g9 a, F, ^( B
  -> '' ' {$ y7 X' C5 D, S# K

; \! N% [$ }8 Q# P' Eexport_set(bits,on,off,[separator,[number_of_bits]])   ) v: K! J/ T. L4 L, K
按bits排列字符串集,只有当位等于1时插入字串on,否则插入+ e5 j+ E1 G0 Z
off(separator默认值",",number_of_bits参数使用时长度不足补0
( M6 s8 T% N, W! b7 N而过长截断)   9 B' Z7 v- T  o9 K) \
mysql> select export_set(5,'y','n',',',4)  
  ~' a3 A# M' i; a' p  -> y,n,y,n   
2 Y. i! H- h) _( U% l. U
6 U+ V# o4 }, u6 w, I, X5 {lcase(str)  
% `5 j  |+ @5 B2 Blower(str)   
" J# P8 p4 t7 Q2 ~* J' q( P( q返回小写的字符串str  
1 v6 F9 g/ G* D8 I$ g' _! ~mysql> select lcase('quadratically');  
" \  k, h8 e4 z+ g  -> 'quadratically' & i0 `* W  j% v8 O" A
   ; f( ~1 @4 g$ U4 U& {) v" D0 Q
ucase(str)   
3 K2 l0 I1 N  n- ^7 j8 L' P! eupper(str)   0 z9 g* Y2 j1 p' K
返回大写的字符串str  ( _7 N8 k/ {$ n1 l1 l. N) b
mysql> select ucase('quadratically');  * O6 Q6 Z4 ~; e0 \4 T
  -> 'quadratically'
/ A* X0 s) b/ \! v( {/ b# ?
7 I: `0 i5 K. u' n! f3 Oload_file(file_name)   ! O0 l( \$ b( O$ ]& h  c" v
读入文件并且作为一个字符串返回文件内容(文件无法找到,路径
" S5 C% L. }. Q/ M* F不完整,没有权限,长度大于max_allowed_packet会返回null)  
0 C. l5 g" Q' |4 ^4 ]! x: w. r' b& Rmysql> update table_name set blob_column=load_file' |$ L# R  K8 _5 Z8 y0 c1 W5 g
("/tmp/picture") where id=1;  
1 b: g( a$ V! u, k; l/ w; E
, k' L8 `1 ~! Q2 v* h6 X6 A0 N2、数学函数
$ T0 m% O  g8 M! ?5 r5 o# Uabs(n)
% ], _. t' ]+ M" d4 ^3 l返回n的绝对值  ' U( Z9 V/ _, E" K! @% l9 V
mysql> select abs(2);   
+ b, X( E7 X+ W" K  W  -> 2   
" A# q( l. i, a0 T6 v! _4 jmysql> select abs(-32);   
. \. q' ?4 x+ i0 l, n  -> 32    ) d) w" ~; K/ x% e: U1 g: q
   6 J$ E4 e0 Q, {7 k/ j, B. u) X
sign(n)  ; v6 i* X6 }+ H  f9 O
返回参数的符号(为-1、0或1)  : \/ ?7 F4 F8 {2 e: z, v. L* h
mysql> select sign(-32);   
  W1 C. W! o0 i  -> -1    7 u# {% h3 {: Z2 u) [6 S2 C: g# \/ @& g
mysql> select sign(0);   
( T1 _& ?- |' L9 L  -> 0    . R: b# p. S2 k) Y
mysql> select sign(234);   
) U+ \6 x; ~1 b2 |4 R/ W. W  -> 1    3 g# W' h; ~3 W, H
5 E4 @/ X* i5 n: T* ^
mod(n,m)   
9 D4 o- }" ]+ f9 j, {; r0 ], h取模运算,返回n被m除的余数(同%操作符)   
8 k& B) f0 D1 Q, N" tmysql> select mod(234, 10);    % m" K  l( G0 G9 f, I: F8 v
  -> 4    6 @6 p4 v, ~6 f5 L  n; ~/ `
mysql> select 234 % 10;    5 t: A) O; v5 I+ h. \! g: `" L
  -> 4    ; x' g  z( r; @$ N2 c
mysql> select mod(29,9);   
' [8 [. t" `4 B# a* E, ^  -> 2   
$ _" u7 H/ k( ~! D" Y 1 ]- |' @3 ]: i  q% E; d3 j
floor(n)  
" @: K! p9 E7 c! n' n返回不大于n的最大整数值  + ~- p, E' r2 u4 f" B
mysql> select floor(1.23);    ' Y+ }! a7 R3 v
  -> 1   
: j  g- [- w- H" F) Qmysql> select floor(-1.23);    $ B$ w  ~1 p4 l
  -> -2      K  \3 {2 o5 i( G4 `

1 l4 B/ a; m3 c7 Q* X/ fceiling(n)  
0 w7 j0 h2 g9 X+ t, C返回不小于n的最小整数值  9 f+ m8 c$ e. h
mysql> select ceiling(1.23);   
/ c" O+ u6 {& Q' E) E+ q* N  -> 2    3 b" _& I" d0 x9 Y. p
mysql> select ceiling(-1.23);   
6 i% r) A! [, Q  N+ w; }, P/ j  -> -1      I* l) a; C2 |( B& b9 V
6 J9 R2 |3 e/ Y6 D  `& n6 l- X
round(n,d)  8 Q5 U, w: B+ u
返回n的四舍五入值,保留d位小数(d的默认值为0)  
4 J* e- a9 D5 Z  ?+ Ymysql> select round(-1.23);    0 o0 x1 _& s. X$ `  C3 B" n
  -> -1   
5 ?: m4 s+ l( Y; j( v7 tmysql> select round(-1.58);    , Z( v) G) F8 o' Y6 O! ~
  -> -2    8 v/ j/ x! e: X1 D
mysql> select round(1.58);   
. D. L  P5 H( J  -> 2    * F6 U  A+ k0 G: t
mysql> select round(1.298, 1);   
8 [" ~2 ?4 K: w+ Z3 z  -> 1.3    / i* b( A4 h/ s$ s' \9 n
mysql> select round(1.298, 0);    # n- C, B4 a, t( j  o
  -> 1    & g. T/ ^7 E2 h9 e! d
7 E6 E5 J9 r# z4 [; h
exp(n)  # P8 S. U# b1 h
返回值e的n次方(自然对数的底)  
/ U0 F7 Z  D& D$ M2 Zmysql> select exp(2);    ( X! X! g; t" o" ]8 f
  -> 7.389056   
9 S0 N) T! a$ j& r' r. rmysql> select exp(-2);    4 N3 H6 W" |$ u2 j/ p( c; u- b
  -> 0.135335   
( i# R0 N+ v  ]1 e
' {8 F  w4 e# G! R9 }" H( jlog(n)  
- {! Y3 C5 i- x' ^5 m% q& z返回n的自然对数  
% G& [! k. w; smysql> select log(2);    * h. x% t/ `0 @5 I+ ^) W: [8 M) @
  -> 0.693147      J; f9 V( t( R0 L+ b; O) H
mysql> select log(-2);    # {# S. N7 b0 @  Q8 b
  -> null    . u0 J# R/ w7 O3 \5 w" V( g

0 q7 f9 i( y$ g+ Xlog10(n)  
8 A* N5 E7 n: G3 ~+ ^; I返回n以10为底的对数  
. i! Q5 I1 H4 ~3 [  ]8 L+ w0 f5 `0 Omysql> select log10(2);    ( u( A& N1 f9 t& p
  -> 0.301030    : u% c# l  C' C! S5 @
mysql> select log10(100);    & t5 j: c( p" E
  -> 2.000000    / p$ G$ Y  M  a2 ]9 Y2 G" M
mysql> select log10(-100);   
, y1 D7 L2 g8 ?; k; R  -> null   
7 p& j( _* Z5 M  q6 ^
  l7 Q0 Q/ j0 npow(x,y)   
& J( K6 A) D0 }' _+ x, wpower(x,y)   
+ u' x1 l  m( ~ 返回值x的y次幂  
: M) l$ G) Q1 m# lmysql> select pow(2,2);   
  l& ~+ f) g1 e6 G  -> 4.000000    ; X# G0 j7 s3 g5 R, [7 n
mysql> select pow(2,-2);   
( e! v. J  a5 m) U5 J' Z  -> 0.250000  
! K1 j/ f1 [  v! V5 I+ y4 f0 E+ A
! p( E# P0 a3 ^) X2 S' x# }, dsqrt(n)  
' w1 F- a8 {5 a/ d+ `) s2 Z$ Y 返回非负数n的平方根  7 I8 ~) U' Q4 A$ I
mysql> select sqrt(4);   
, E, D# [4 A7 [) I% i# k" V  -> 2.000000    ( w# S0 t3 J) A3 U' D" J
mysql> select sqrt(20);    ) g; S, M' j7 J4 F8 X; r$ ]- W) w
  -> 4.472136   
% [% e5 N; L+ c/ T4 R / g! C# u. \5 L  W
pi()   
; F8 ^" b8 u1 F. g2 F 返回圆周率   5 S) k; E& u* \, {+ z( f4 U4 S9 Q
mysql> select pi();   
' a# {, I2 u6 h! ~  -> 3.141593      t- E3 @9 h& J
5 k5 s" K/ W* @8 @9 d7 x2 S, Y
cos(n)  4 E3 g, h- E- e
 返回n的余弦值  9 p. }" O& }+ a6 z( m* e
mysql> select cos(pi());  
8 |$ |* r$ y% S  h4 j  -> -1.000000   
2 w# s( j: ?9 L+ M. M 3 a7 ?, b) l) U& p$ x4 G6 A
sin(n)  1 f4 x, k; a) |6 h0 G2 B4 `. {) r
 返回n的正弦值   
1 E8 y) i- @7 \( _. dmysql> select sin(pi());    / g7 I2 u# W- Z9 z6 i, j1 X5 d* G6 \
  -> 0.000000   
" c% i' Y/ l/ i6 X6 N' O; o/ i
9 f# g& j% O8 P3 y# K* N. Atan(n)  
0 r0 X! H6 W, M0 l1 _返回n的正切值  
: z$ p5 ~0 X9 J' C, rmysql> select tan(pi()+1);   
' p$ }5 C/ E9 `* [  -> 1.557408    # Z' ]% N6 ^5 S! r# x' r4 z, i

2 W% I% s- P$ L# T) ]acos(n)  
" f0 t) X# F1 h+ c: _ 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  
# f# o9 G1 F* D4 q" o- Bmysql> select acos(1);    % _7 d& `! M( _4 T6 [0 V
  -> 0.000000    2 X3 }. \8 u; P  o
mysql> select acos(1.0001);   
- u5 u; B- ^$ S5 I3 W: K! q  -> null   
  c' \+ B& N0 p2 g, ~mysql> select acos(0);    9 J" l9 F9 n* \) n0 I
  -> 1.570796   
" |+ d6 o9 X3 o
) c  N( I! Q- [& Iasin(n)  
1 V) t3 m3 {* J# p; N8 ]! D返回n反正弦值  
8 v* U3 W* m0 a- s! q- S6 wmysql> select asin(0.2);    4 F4 v8 W; _) }! a# l9 ^
  -> 0.201358   
* |: Z* J# f3 T6 ~' nmysql> select asin('foo');   
. X; {# N7 i3 G) ~9 G2 p( w4 _  -> 0.000000   
( {9 B" I, I$ S2 M% h* _
/ t8 U8 @8 W/ ~# ~atan(n)  $ g! \, |" `6 B  {" m* z
返回n的反正切值  - }6 x% [! K# e7 A5 y5 T& `- Z
mysql> select atan(2);   
, Y, s, M1 Q7 G% W+ \  -> 1.107149    2 m/ Q7 {: ~6 k' h0 {* }* m
mysql> select atan(-2);   
% Y! P0 G8 T; O4 `5 a  -> -1.107149   
/ _: h% ]1 Z* i* m9 O* _$ Qatan2(x,y)   
/ d  }  f4 U+ A+ T$ ` 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  5 Y* {- u1 w1 ^4 v- I3 H8 q# _
mysql> select atan(-2,2);   
! f1 Q! b/ ]2 \  -> -0.785398    7 Z4 t$ I0 {, o- l8 |
mysql> select atan(pi(),0);    " X* P: s. I  a& X
  -> 1.570796    ' |8 U0 \2 I& @" G9 l
* x3 \* R  p6 c9 T! r
cot(n)  
" t% d7 u( J7 X: u5 U返回x的余切  
: V" h/ F/ n5 \& r: dmysql> select cot(12);    * P7 V1 g9 T/ U9 e
  -> -1.57267341    & C, w+ |5 H6 s) n
mysql> select cot(0);    ! P1 U, }) W" o! T% Q, N
  -> null    - i0 N- C' e5 \& N2 c7 S/ a
  X$ ?# L/ T: n3 X
rand()  3 [1 d2 M( \8 D. r  {. l. T
rand(n)    1 Z1 C' J( S% {
返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值) * X7 b/ P. V' O) ?. l) `* S8 p! E

' D: P' L! B5 ]mysql> select rand();    7 c6 f2 |. ]6 f& ]; t; ?/ _
  -> 0.5925    # c5 r0 b8 F  U$ F7 a3 \! q
mysql> select rand(20);    8 E. J# d0 h2 m$ d- o: W' e
  -> 0.1811    ; ~1 w: T! ]# ]& `% m; M9 F/ y
mysql> select rand(20);    * ^7 y- y  e+ m- s
  -> 0.1811   
1 L3 x7 I) u; k- X' Hmysql> select rand();    & F* X+ U; F: E6 q) J% E; W
  -> 0.2079   
9 [3 ?" t# q$ R5 a; m- C/ w' qmysql> select rand();   
# l( l8 [* j& b* P7 ~  -> 0.7888   
# {4 r; s" [) i2 o2 H1 Z, x; { ' _3 {4 i' d6 ?2 L: i4 F4 B
degrees(n)  ! _) `+ n% Q! ]- w
把n从弧度变换为角度并返回  $ T  v9 ]& }& H, w, P$ p
mysql> select degrees(pi());   
6 R; d! ?5 N9 p! c7 l  -> 180.000000   
$ q" f: J2 }1 o* m2 a( k% y' \ , x* ~  P5 G: f" `0 d0 c; N+ J+ ?8 I4 {
radians(n)
4 g9 M% J% i2 F把n从角度变换为弧度并返回   0 E; [4 y8 V4 H
mysql> select radians(90);   
7 g; b: f. H- O! A  -> 1.570796    . B$ z4 x9 V7 }3 P& {- W7 F
# n" x  N) L+ }4 S8 Q0 S
truncate(n,d)    ( F1 p/ |, m. T5 v- K* {
保留数字n的d位小数并返回  ' D& C+ J" O3 u- \8 [
mysql> select truncate(1.223,1);    " e' {0 g0 A: r6 {2 [, v3 F! f* \
  -> 1.2    ) A" l. `# M6 B, j
mysql> select truncate(1.999,1);   
9 K' m5 N2 W0 }1 Q% M3 Y  -> 1.9    & Q9 ~! V& W/ D* K5 q  n
mysql> select truncate(1.999,0);   
8 |1 c. A/ U: b- m/ O) i  -> 1    + e4 H  u+ [8 ^1 b- \

5 k) u" W0 g( jleast(x,y,...)   
, d" d0 ]5 d# @- n7 O/ O返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  / Q) |. Y  ^. r
mysql> select least(2,0);    9 v. z& V5 P: y4 }8 z
  -> 0    1 Z# Y; B- U" F! T) o0 u4 m
mysql> select least(34.0,3.0,5.0,767.0);   
  q3 a- U* V7 W6 r  -> 3.0    9 X) ?: Q. X  h0 w
mysql> select least("b","a","c");    ' V0 g4 s) N! Z# i) U2 t, y
  -> "a"   
8 q. [# A- i6 `7 q  l* z3 r ! I. T) o( n. j  Y9 H: ]. Y, @
greatest(x,y,...)      E) M2 V1 v4 D" Y; \
返回最大值(其余同least())  , |9 |; v1 m- W$ }2 o# P
mysql> select greatest(2,0);   
( j8 F& q) A9 {- ?& K0 T( p  -> 2    6 t% o9 P" }; ^  Q* Y
mysql> select greatest(34.0,3.0,5.0,767.0);   
$ O+ S: ]2 u$ @" o- z1 J' @2 [  -> 767.0    6 _" e3 p9 l" K2 D* v2 n, @
mysql> select greatest("b","a","c");    - [0 Q; n8 O7 y
  -> "c"     4 U& J  k# X2 U; ]

. k4 t2 d4 e* U. A. K, n# E3、时期时间函数
( V' }  e# {) @) a' ~3 F/ q  K2 sdayofweek(date)    * b8 M$ l. D+ X0 O# z8 E
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
* i3 [1 M# N0 W& R0 i2 S- jmysql> select dayofweek('1998-02-03');   
# s% K) z/ n9 E  -> 3   
6 p. I$ P, x3 L' t, t7 d 7 y6 a" q* J! X0 M, g$ H1 ~
weekday(date)    4 \# U0 d' x0 @4 f: w% T3 T
返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 7 M3 p+ k/ x0 z5 T4 N
  2 J) p: V0 a# G* `; X% S
mysql> select weekday('1997-10-04 22:23:00');   
, y; X$ K1 P# X% X$ t  -> 5    5 ?2 S# y" L3 B5 ~5 |
mysql> select weekday('1997-11-05');   
0 {: v5 d  U! x( Z- P  -> 2   
$ T$ w9 q; k0 j; r - B+ K8 Z6 [7 s
dayofmonth(date)    
: F* w  [& r/ Q" F返回date是一月中的第几日(在1到31范围内)   
4 B: O/ t/ |) m# }* s4 E2 b- W9 Rmysql> select dayofmonth('1998-02-03');   
5 N2 P+ O* g; o' z4 U) i  -> 3    9 C! R1 k1 V3 x4 v1 w2 v
; r/ i; R8 ?. w: ^( R. f1 {
dayofyear(date)   
% c; h+ U3 h  ]# G% U, n返回date是一年中的第几日(在1到366范围内)   
" A0 d/ }5 O5 v7 \( ]# Zmysql> select dayofyear('1998-02-03');      h" e" d; i5 h5 z! N3 r
  -> 34   
- ?* \$ E1 o! o7 J8 e ) s: ~# @* @5 Z, G
month(date)   
$ G. z+ p6 P' t6 u. H" ?* |返回date中的月份数值   
0 L3 P0 w$ b. W) ymysql> select month('1998-02-03');   
% i' M2 P# a2 d  -> 2    ( q" n. I- p% u2 r. M" w* H0 l  }

+ l; r. {* \& r8 Y# Bdayname(date)   
+ h5 V. \. ~* |7 z- E返回date是星期几(按英文名返回)  + R- k# |* I0 u  w5 S# G1 o: P, [
mysql> select dayname("1998-02-05");    # O" H3 k# b8 m1 C/ I+ o4 @
  -> 'thursday'    ! }% L- H" s$ c& T' G* l& v% U: }3 J4 D
1 @' |/ t3 f3 y- P4 U/ E- G4 \
monthname(date)    
: Z1 ~- W# H/ C, e返回date是几月(按英文名返回)  
/ L, n2 c  b' z" k8 a9 Rmysql> select monthname("1998-02-05");    2 F/ t/ T$ r3 x3 Y* E
  -> 'february'   
- Y  u6 C: o9 G% r& ?1 M
$ @4 ~: d8 t, uquarter(date)   
% Y# Y6 t: M% y* h: b. {1 A) c: A% t返回date是一年的第几个季度    1 g. H5 N: E. D
mysql> select quarter('98-04-01');    2 v8 O! ^/ n3 x2 F+ F
  -> 2   
) W" V' {$ t2 w% z 4 _6 m- Y: ?5 F* H
week(date,first)   6 G& n5 Z) {# ~& p" t+ X; z
返回date是一年的第几周(first默认值0,first取值1表示周一是
  d. c8 Q$ K, o0 r2 ]; ?周的开始,0从周日开始)  9 B9 f" I# C6 k4 z3 Q
mysql> select week('1998-02-20');    " }8 h& m- G8 y3 \$ l9 C- N  O
  -> 7    , B4 M9 |* S2 |: e/ v) n5 H; \
mysql> select week('1998-02-20',0);   
, P$ T, o2 j$ L0 }( m  -> 7    ) ~: O; m, _4 g  V" F+ Z% s
mysql> select week('1998-02-20',1);    ' ~/ Z5 v; k+ \& A# I4 F
  -> 8   
( J# Y8 E2 y7 x, x1 n 9 V* D4 \7 w* _, n
year(date)      o% X9 g+ h# @8 P8 H+ K; F% H& g
返回date的年份(范围在1000到9999)   
6 P( X. o- h: e' M3 \$ Umysql> select year('98-02-03');   
" g$ i+ B: Q* P9 C  -> 1998   
. `8 S8 c  H; [$ z1 q
( c4 x. ?% |- O6 D3 `- D2 @hour(time)    ) K1 F6 d" `0 e. w
返回time的小时数(范围是0到23)   
1 C8 `& ]5 B3 O/ W) r7 T. lmysql> select hour('10:05:03');   
0 }  B0 [+ @& ^5 M4 ]$ h7 K  -> 10   
# j" e' [( O" o
! R! g- s0 X5 [7 Nminute(time)   
' o6 I' h  I- D( {% T: |) T9 C, B8 `返回time的分钟数(范围是0到59)   
, @- Y% o5 W( Q- D% A: ?, Zmysql> select minute('98-02-03 10:05:03');    & A0 d  f9 h8 _" U4 Z
  -> 5    0 N+ W& g, S# _% a
7 `8 ?: l6 A; a3 a
second(time)    ! ^1 Q: f8 x( a
返回time的秒数(范围是0到59)   3 K' G& I$ S# `8 m) ~3 ], a* E
mysql> select second('10:05:03');   
2 D  [/ x: G4 o' J( ?6 j! T5 n  -> 3   
2 t! q! Q4 F: C4 A( O8 E 5 H8 ~- ~" ^  S: S7 n+ y# h% x
period_add(p,n)   
+ G1 d+ a- f& N' _' R  t% a增加n个月到时期p并返回(p的格式yymm或yyyymm)    . W, R( l3 w! s9 s4 {* \; x
mysql> select period_add(9801,2);    0 G. ^- w2 o  T4 g# C" C
  -> 199803   
. k- a3 l; }% {# }. o- g7 S) N
+ B1 Z& A1 E4 p% X  w- j- pperiod_diff(p1,p2)    0 v+ o  u: ^, R0 l
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  4 ^- n* p6 W0 R, w
mysql> select period_diff(9802,199703);    ( t5 o5 [0 \; r# t7 K# D. c
  -> 11   
5 m+ x) c" i9 t# c5 q# a " R% a9 l* d7 \$ ?7 G7 ]8 t( X
date_add(date,interval expr type)  . Y. I# U; y. R- C- y- i
date_sub(date,interval expr type)    7 R6 ~& m" X% t+ W1 D& |4 c
adddate(date,interval expr type)    6 G8 G/ O; f" P7 {: N8 j" ^$ D
subdate(date,interval expr type)  : I( o7 y7 c$ h  [* i) `  @
对日期时间进行加减法运算  
% Q, G, ?% m: L4 T(adddate()和subdate()是date_add()和date_sub()的同义词,也
  d) v* f# S0 n' e& k, A- ~" l可以用运算符+和-而不是函数  5 F0 _$ F8 r, t! P3 F6 I
date是一个datetime或date值,expr对date进行加减法的一个表3 I/ I$ _! N( C! P* \' K* X7 k
达式字符串type指明表达式expr应该如何被解释  
& u8 T5 k* C+ w5 H3 M8 l2 K [type值 含义 期望的expr格式]:  % r* ^( o" o/ s, g5 c8 `
 second 秒 seconds   
! i7 t( @. g3 ^4 I3 I- g6 W% ^ minute 分钟 minutes    5 q0 Z. [! S8 X" B! x
 hour 时间 hours   
9 W" _9 k  i0 V% g4 z day 天 days    ; V( u9 b7 k6 R
 month 月 months   
# h' h$ R0 v$ {/ C year 年 years    0 B3 B7 t& j4 Y+ Y1 [. m0 e3 |
 minute_second 分钟和秒 "minutes:seconds"   
# }$ w% T7 s' B5 v& g) | hour_minute 小时和分钟 "hours:minutes"    5 ]- U" T2 L0 D& y
 day_hour 天和小时 "days hours"   
& J1 `+ ~+ V; t! Y! p; U, \ year_month 年和月 "years-months"    % |# s" j% E6 y4 F  v
 hour_second 小时, 分钟, "hours:minutes:seconds"    * R' k( o' @: C1 x
 day_minute 天, 小时, 分钟 "days hours:minutes"    + V3 W4 N) [% \: \& w
 day_second 天, 小时, 分钟, 秒 "days
" N( Z4 n- m* phours:minutes:seconds" 0 v! I) g$ z$ \3 n
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个
& ^, g; f, V& m; f( |8 n) Ydate值,否则结果是一个datetime值)  # y0 F8 ?% i3 ^+ p; }) U1 E8 d
 如果type关键词不完整,则mysql从右端取值,day_second因为缺- C( l; W$ A' N4 @
少小时分钟等于minute_second)  
0 _4 A6 ^7 l3 {$ B4 p0 j 如果增加month、year_month或year,天数大于结果月份的最大天5 {% p4 h9 w5 V2 t) K
数则使用最大天数)   
. ^% z/ g1 p% s' _mysql> select "1997-12-31 23:59:59" + interval 1 second;  
9 Q1 Z: B# v- k+ K$ _6 N
; Q% t* |6 X4 a8 S+ [  -> 1998-01-01 00:00:00   
1 z4 z" V! n$ \mysql> select interval 1 day + "1997-12-31";    8 P4 }8 j" B5 n3 X5 m0 l$ v6 N
  -> 1998-01-01    , F1 g; M# l8 s5 z  F5 ?
mysql> select "1998-01-01" - interval 1 second;    5 P9 @7 ?0 d" m& I8 f6 P$ V0 C
  -> 1997-12-31 23:59:59    ) p$ n" w8 u$ F/ B9 j- T
mysql> select date_add("1997-12-31 23:59:59",interval 1
% p! h" C- _5 y7 bsecond);      U, v1 U% S5 l1 G/ _
  -> 1998-01-01 00:00:00    5 \# ^; ~0 v8 T' B
mysql> select date_add("1997-12-31 23:59:59",interval 1
4 c6 ^& k5 Y' n" `1 Sday);   
, ?3 f: b$ n- n: ~- H# R  -> 1998-01-01 23:59:59   
; U$ H( K+ J9 @  b: M: X: qmysql> select date_add("1997-12-31 23:59:59",interval
8 u/ ^' k- p3 {$ `+ W- b! z"1:1" minute_second);   
* U( ~  M8 a1 `4 @  -> 1998-01-01 00:01:00    # I  f" r) g1 m  z3 T9 T) h* W1 T" _
mysql> select date_sub("1998-01-01 00:00:00",interval "1# R/ v/ R, v$ A% E* f" V' L
1:1:1" day_second);      y9 U9 h/ i4 i( c. {: ]  V
  -> 1997-12-30 22:58:59    ) B' ^+ Q: w, P' |* h- g
mysql> select date_add("1998-01-01 00:00:00", interval "-1
5 [# @1 N2 T7 D" }+ J7 M10" day_hour);  ! ~$ m8 J* h1 I& n8 l, z
  -> 1997-12-30 14:00:00   
# w0 Z# h6 L+ q, B; h+ {. j' fmysql> select date_sub("1998-01-02", interval 31 day);    0 X. _) S' H9 `7 p3 s+ I) Q
  -> 1997-12-02    ( Q5 p6 ]0 S1 c) b+ [2 I& H, U
mysql> select extract(year from "1999-07-02");    " l. P/ U$ Y; W1 x% B1 t6 \
  -> 1999    7 t' i% r: ~* V
mysql> select extract(year_month from "1999-07-029 q5 L' t  k+ K' m4 M! s
01:02:03");    6 Z( i7 `7 _6 X9 J' N" i
  -> 199907    # j* E+ z& G2 H+ h# T4 t7 |
mysql> select extract(day_minute from "1999-07-02
( K4 F6 i8 d  o7 S8 ~01:02:03");   
' `1 x- P& S6 N. n' g  -> 20102   
* w7 ^3 z+ [/ t% h! @  P, Z9 |- _
: D- F7 I: o5 S9 Wto_days(date)    3 h1 I9 g% E4 S
返回日期date是西元0年至今多少天(不计算1582年以前)  
: d7 F+ k! J1 B! f1 l; _. b) v: Umysql> select to_days(950501);   
# A" [: b* ]- D; L# W  -> 728779   
9 Y8 y& @9 `2 X$ v$ ^mysql> select to_days('1997-10-07');    6 [2 `& u8 i! ?4 H, ^% [' [  E
  -> 729669    7 ^( @3 ^* m/ ^/ I& o

* x3 S. O( `! D) \! w/ Qfrom_days(n)   
; a" D4 ~. C2 x& p* Q" s 给出西元0年至今多少天返回date值(不计算1582年以前)   
' S! w' z' r: ~7 Q' I2 N- b( Z! Amysql> select from_days(729669);   
9 W1 _# c: T# w4 B0 E& m  -> '1997-10-07'   
+ L$ {- w/ F( \3 ~
& |4 g7 C7 z* Rdate_format(date,format)    % F0 D# o9 Z1 R* s  [$ [
 根据format字符串格式化date值  # I+ A4 C/ X5 g
 (在format字符串中可用标志符:  
" w0 Z0 U9 ?  R* v- |) s %m 月名字(january……december)   
4 J$ {- o6 ~# {9 k4 \ %w 星期名字(sunday……saturday)   
. ?5 T& g4 q+ W  b$ }6 E0 k %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)   
# c' p3 ~$ v+ S4 p9 B %y 年, 数字, 4 位    1 v7 h$ Z$ D8 h3 [0 D6 |' }
 %y 年, 数字, 2 位   
6 ^9 D5 a* b! u* L& k! a %a 缩写的星期名字(sun……sat)   
6 b% b/ y2 t; e# y %d 月份中的天数, 数字(00……31)    ! Q6 Y, K" L6 @% X
 %e 月份中的天数, 数字(0……31)   
" g' X6 m7 v" R( h4 d& Y %m 月, 数字(01……12)    & ^6 H" O4 E% h- G9 d: ~5 b$ o- ]' q
 %c 月, 数字(1……12)   
) R% l5 f. n" H) y1 X %b 缩写的月份名字(jan……dec)   
, j( ]) ]' M1 K2 v: V+ e( Q %j 一年中的天数(001……366)   
! A; d, a! Q( d5 U; M# z) l0 L  | %h 小时(00……23)   
! H' c; S3 I* H" \- d %k 小时(0……23)    1 L* j$ T# z: K/ K5 p
 %h 小时(01……12)   
* x3 J; B  @4 N4 {" S %i 小时(01……12)    8 c: e' p, W) c/ |# b
 %l 小时(1……12)   
/ t  c4 T* ?! V, X  _. b/ i4 x% N %i 分钟, 数字(00……59)   
* T0 u& B* B; Y4 I# ~! {) u: n3 \ %r 时间,12 小时(hh:mm:ss [ap]m)   
7 ]5 ?. Q  F- }% E9 V %t 时间,24 小时(hh:mm:ss)    $ i* }4 s7 A7 \8 W% {' c
 %s 秒(00……59)   
" @0 z1 M9 y; N8 N3 V %s 秒(00……59)   
( l; r9 O" C; w' h' k6 w7 F %p am或pm    3 q% r1 n8 O/ }1 a* j
 %w 一个星期中的天数(0=sunday ……6=saturday )    9 n" E' d, q( X  a% M/ C
 %u 星期(0……52), 这里星期天是星期的第一天   
9 u6 A4 b* z, i, u6 h" q %u 星期(0……52), 这里星期一是星期的第一天   
1 S; m" ~7 p( c: T/ z %% 字符% )  8 A- G. V1 M( W$ ^
mysql> select date_format('1997-10-04 22:23:00','%w %m %( R+ |8 ]/ ]7 @% u
y');   
! G7 y. T, H! N7 ^6 e  -> 'saturday october 1997'    ! ?* @, e; T$ `7 _7 k3 @
mysql> select date_format('1997-10-04 22:23:00','%h:%i:%
) S: ]7 [2 X, y* B5 c% x5 I! }! q+ Q5 [s');    $ G& f% Z! L" f* }) Q6 s
  -> '22:23:00'   
2 `0 j. _$ f/ c8 Q. vmysql> select date_format('1997-10-04 22:23:00','%d %y %a
) ]5 b) ^  t+ b6 Q%d %m %b %j');    " j- X' C& l# h, X! y( k
  -> '4th 97 sat 04 10 oct 277'    # ~: C3 M5 T9 k; J- G! |
mysql> select date_format('1997-10-04 22:23:00','%h %k %i0 j7 g8 I$ _, I; r
%r %t %s %w');    ! z8 {0 T7 }+ v8 O& y. x7 _
  -> '22 22 10 10:23:00 pm 22:23:00 00 6'   
  @: p9 \7 c' v6 r' z  `
/ ~) _7 R% q; z% N* h7 V4 }time_format(time,format)  
0 I' B8 W4 d( j3 f3 ~  U, t* Z 和date_format()类似,但time_format只处理小时、分钟和秒(其
' a% F3 \; a( G- P余符号产生一个null值或0)  4 Z- {6 T3 _2 y

" U- y$ ~  K7 K) M8 S, ^curdate()     
8 A5 Y% o3 {, M- S2 O1 hcurrent_date()  
* b/ M" @1 ]1 Y6 l: `+ l1 w 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
4 z& R- ?; F. z' ]" h处上下文是字符串或数字)    ( \5 ~/ V( p+ w# a- \$ O
mysql> select curdate();   
5 E  N  W; d+ w0 @/ j  -> '1997-12-15'    1 O3 O; L: J1 h) G: z
mysql> select curdate() + 0;   
& ?0 s9 q( n+ d! Y  -> 19971215   
+ j; W" }2 X1 J$ k6 b9 E , h) l& W8 }5 a+ [! e7 k) m; W
curtime()    * |( k7 j( H4 m8 x, h, m3 h  R
current_time()  
3 L# V5 y! w7 x$ d4 r% C 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
5 Z4 U& N$ O: i' U下文是字符串或数字)      
5 a; [7 L9 p' C: zmysql> select curtime();   
; N- h1 j) A1 t7 y$ Q3 U8 b  -> '23:50:26'   
! O% [4 s& ~# W, l* @6 r( K8 K, A. umysql> select curtime() + 0;   
" Y0 n8 \: X0 E% G  -> 235026   
$ y( T6 _7 `" u  u- Z2 ]8 ~
! T8 v, L4 z3 W8 V5 t; A, mnow()    * w7 O$ u5 J3 B
sysdate()    $ U7 h: A. R$ v2 M8 T
current_timestamp()    W, S! a& s" M$ x8 b
 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期4 r5 D6 I$ G8 Z' }4 c3 C
时间(根据返回值所处上下文是字符串或数字)     6 a( \* S7 O# n7 J
mysql> select now();    5 W  K6 n+ M; _2 ]. Y
  -> '1997-12-15 23:50:26'   
+ S5 X* E1 U+ F5 c& Z- ~4 n8 hmysql> select now() + 0;   
$ L& O- z: H" O. J1 }6 A* r; F  -> 19971215235026    * C' m5 I; f8 ~3 t. w! p  Y$ a
6 U) H$ P" |  G8 u  m+ u  k
unix_timestamp()    7 T" p( w! F0 k0 @+ J7 |" O' }
unix_timestamp(date)   
; h" }, x  F5 A+ M+ `3 r返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒* U" T; ?, m+ A# p/ f" d& U! s8 j6 o& U
数,date默认值为当前时间)  ! L4 ^. O0 D8 G+ ~) u8 \
mysql> select unix_timestamp();   
) P: N+ o: K: Q( s" o8 W  -> 882226357   
/ ?/ H0 |! C8 e' i) a; Q1 E. ymysql> select unix_timestamp('1997-10-04 22:23:00');    5 _8 n  L: N; S
  -> 875996580   
! _* x4 |- }" C9 C
7 u; g$ C2 m- x; r- K4 h8 Dfrom_unixtime(unix_timestamp)   
! V9 ?; X' W- A# s1 G以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的
' h; L% \; V0 d6 V% Y5 ~; p0 C% j7 m值(根据返回值所处上下文是字符串或数字)     
1 v, T9 s! P" a" t8 ~mysql> select from_unixtime(875996580);   
3 S& L3 i9 M' j- r; j  -> '1997-10-04 22:23:00'   
' R  A5 x: M0 U# Q, J, _! @mysql> select from_unixtime(875996580) + 0;   
, j! m5 p" H+ q4 E% k  -> 19971004222300    + |2 g+ s. B$ h  C5 |; N

- c5 d1 B% m" O4 m! }" D+ Wfrom_unixtime(unix_timestamp,format)    $ q9 p/ H$ w' r3 A. n
以format字符串格式返回时间戳的值  : {+ l2 o: ?: `4 h7 w+ Z
mysql> select from_unixtime(unix_timestamp(),'%y %d %m %
! u2 }, \8 R; V& p5 ah:%i:%s %x');    $ W% k2 ]! q+ B0 R5 H
  -> '1997 23rd december 03:43:30 x'    ; l6 W( {" Z! G+ {- ]

2 }$ |+ u, G! Z0 }sec_to_time(seconds)    ) f* r* b- m1 y. ?1 x# F* P- f
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
' T9 y& ^% H; N4 Gmysql> select sec_to_time(2378);   
. f) [6 b/ }, |: y  -> '00:39:38'   
, Y9 j. z! }' g6 C& D* z; y9 s' pmysql> select sec_to_time(2378) + 0;    + t2 A0 D- C. N% r- ]' D1 n$ e
  -> 3938   
* t" c; @% I1 l- e
, E/ p4 i! `) x/ D4 W+ Q5 l4 a, otime_to_sec(time)   
! {! c8 K) J! t6 b2 r返回time值有多少秒    ' ~% K, {: \3 f& Z1 P2 X
mysql> select time_to_sec('22:23:00');   
% p4 b( U4 d6 {/ {: P% A  -> 80580    2 g8 j) \. @7 z7 D
mysql> select time_to_sec('00:39:38');   
: G* h# }& e8 m' _8 R  b  -> 2378
9 _5 k8 X0 }- W # p. K& a% R7 u* L& V" X& _
转换函数
- ^( n0 |. r* q( g, n- Wcast
. o) t9 H5 h! `! m0 }用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]
9 r8 V3 ^+ u0 S% b1 |3 I% l实例:select cast(a as unsigned) as b from cardserver where order by b desc;
& d9 Z! j2 \. U+ u0 }convert:
7 |5 u! E9 o. I* F1 r& ?2 i用法:convert(字段,数据类型)
) x: l: `$ }3 ]实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
) d& N/ d0 H$ {
回复

使用道具 举报

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

本版积分规则

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