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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数
, x, _/ _2 r0 \+ Nascii(str)   % Q! d- g+ n: f3 K
返回字符串str的第一个字符的ascii值(str是空串时返回0)  / j; V; O) _, L: i# m
mysql> select ascii('2');  4 A$ a6 ^8 g7 T# B
  -> 50  
4 z+ L; E6 L- f( Xmysql> select ascii(2);  
1 V- c+ j% x* t. p) B8 W0 _  Y  -> 50  ( H" q7 l' K7 z* r
mysql> select ascii('dete');  
) K; h2 x2 a2 ^' v" R  -> 100

& W0 Y4 D2 y; W6 e0 ^6 I' Rord(str)   - J. X$ p4 @& D! H* y
如果字符串str句首是单字节返回与ascii()函数返回的相同值。
' h# L8 l# H- _: l . a( M1 O) `/ D) h$ w4 k$ l
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  
! Y7 I! c* k( W! i2 ^+ f% xmysql> select ord('2');  
; A% n. j/ g! x/ c) {( [  -> 50  
( F: F: ?$ T' T) c4 O) M* m/ g# i   ! s7 P  L; R- \( O
conv(n,from_base,to_base)   7 _0 r5 K5 `0 l0 U4 q
对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
! B4 x3 l; ]# O0 O' D4 q7 |$ omysql> select conv("a",16,2);  7 _8 w7 c# g$ d  d# ]
  -> '1010'
1 O* N: b% `. T: Q! Y4 r  Wmysql> select conv("6e",18,8);  $ }3 c8 ?7 Z" }+ Q" {- k0 O8 F6 q
  -> '172'
$ h  y0 H" Z( n$ y" U7 Y4 pmysql> select conv(-17,10,-18);  
7 q: [# K* o1 T. O  -> '-h' + P. G1 P7 h/ p9 q/ l, g! u
mysql> select conv(10+"10"+'10'+0xa,10,10);  + }7 n- o5 p1 [: c' ^; j2 t  s
  -> '40' ' A' c. O: k' l' }& F
   ' R9 q0 X: n, ~% O* p3 N- \+ ~3 u) z: E
bin(n)   ; z- P, W# J0 b' u5 e+ s
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  7 x2 a1 t: H9 W) r/ I9 F
mysql> select bin(12);  5 A9 n& L! ~7 u% z& i
  -> '1100' ' @0 z" m8 s" }  Q: R
& Z  E6 w* z$ s- j" F* z
oct(n)   % m9 i* }% i4 E5 q; A8 _" L8 L
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
+ Z( @" P6 l9 X- jmysql> select oct(12);  
. Z0 a7 ^9 _) G- L- g  -> '14' 4 A& G1 J( M' \3 I
   1 C1 [0 o( V" m  O* P
hex(n)     `9 C9 `& t' ]/ f4 @
把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  # O9 K7 x0 S' g( u- v4 b. p, `- m& O! ?
mysql> select hex(255);  
& u, o: P: f1 ^) U9 a! M. o0 n  -> 'ff' % |* n" t( t2 }% x# |; w
   
/ }' D- {( d; C  w+ [) e# u3 Fchar(n,...)   1 ]. _/ Y) ~; V7 d# C' v: L
返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   9 }. S, i, w3 F/ d9 E5 ?, P) T
mysql> select char(77,121,83,81,'76');  " c# {, R6 o* H# P7 K7 O) A
  -> 'mysql' 7 k+ O  P5 q9 `7 D
mysql> select char(77,77.3,'77.3');  
# H# l0 ]4 C3 u6 `  -> 'mmm'
  B: M) _5 V8 X   8 p% t  v/ `) t, ^7 J5 h
concat(str1,str2,...)  
& Z) l6 V; T0 ~. a8 L3 C# E: t把参数连成一个长字符串并返回(任何参数是null时返回null)  
' |: d0 S$ t' z) J3 I7 [mysql> select concat('my', 's', 'ql');  $ U. Z+ {; e6 d
  -> 'mysql' % w7 j& r8 j, A
mysql> select concat('my', null, 'ql');  1 g. T* l  h; }4 e& u3 q) X
  -> null / n, H6 _; Y( x9 P6 [7 h
mysql> select concat(14.3);  3 P; B( Y  ?3 y% \( C/ [8 p
  -> '14.3'
' n% p- q1 c; [ 7 P  [6 ^. }" W& ~- g7 |
length(str)   
3 u' J' R9 L3 v1 coctet_length(str)  
" ~0 ^6 ~7 L+ X: G: P9 ^" pchar_length(str)  ; A% e( d6 v1 v" [" h
character_length(str)  2 b  _% e# W7 P, c
返回字符串str的长度(对于多字节字符char_length仅计算一次)
5 ]: U6 ^  n* v4 Gmysql> select length('text');  
$ ]0 K2 J+ J# }6 F  -> 4  ! w, L# ?1 @7 y" v( D$ J) U
mysql> select octet_length('text');  
4 q3 {' r. R+ P  -> 4  
6 ]* K  o# _- z0 ]0 ~& S# X . ~5 d$ j+ C2 W( p" q2 v
locate(substr,str)   6 p! p) G( F; j1 B/ [
position(substr in str)   
* h; Z$ o; j. b3 o9 q$ W6 S返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
4 d; _. Q# q$ h/ U( G& Emysql> select locate('bar', 'foobarbar');  
3 j) H9 a! q: Z1 K& X  -> 4  
2 i. l% V8 I& bmysql> select locate('xbar', 'foobar');  
- d$ F! o9 \; I4 E9 W& w9 k  -> 0  9 Z; W1 ?! i# `5 v) m: h
   
: L. t/ l# e" u* Q# Elocate(substr,str,pos)
$ @8 b4 ~; Q: }6 r7 \' Z/ q$ E' z返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
: t0 E& \+ M& fmysql> select locate('bar', 'foobarbar',5);  
9 r" x  l2 O1 \  -> 7  7 X* D# J# Q( {1 d5 G, r

" J& A# s8 b1 G( h2 Dinstr(str,substr)  
. w, D. _  L$ I+ m, W: \返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
5 y9 j7 `4 A1 ~' N/ k" h: G; ~mysql> select instr('foobarbar', 'bar');  ! ^0 o; ~3 Q1 J
  -> 4  9 G% n$ |. m$ ]8 D/ ^3 l
mysql> select instr('xbar', 'foobar');  
' T" I+ w% s, k' H4 c  -> 0   
% z) v- `" K- a6 L. g7 i 5 |% K3 s2 b4 A2 y* ^5 g
lpad(str,len,padstr)   * A  Z9 U0 M) w# D9 x4 O8 q
用字符串padstr填补str左端直到字串长度为len并返回  
: i: B+ [+ r" Wmysql> select lpad('hi',4,'??');  $ U$ i$ U. ~4 C; E# c) E% m
  -> '??hi' 8 ^* M! a2 r  d
   
) p# ]8 O+ W% w9 U- X+ T+ o+ e2 p& A* krpad(str,len,padstr)   ! b$ C7 H$ h7 B5 f! r8 q
用字符串padstr填补str右端直到字串长度为len并返回  7 P$ w5 ?, I; x9 W
mysql> select rpad('hi',5,'?');  
( {7 x- [- ?9 `  -> 'hi???' 0 X, V8 W. Q$ u) W" Y' ?& e
$ C2 l$ b% N, c( @
left(str,len)   
' B  z! q6 a8 u3 E+ b! p' I返回字符串str的左端len个字符  
# B, I$ R& B& P6 a& U& imysql> select left('foobarbar', 5);  
$ z8 I0 I8 V: ~* k4 Z2 D9 l+ D  -> 'fooba' . ?) }0 r7 V4 ]) c/ s# _* A

0 g8 F2 S: e6 c  bright(str,len)   
5 K1 F: u& u! J! z/ P7 P( M) [0 q: o返回字符串str的右端len个字符   0 A* |% s" i" \$ k6 G: D, B
mysql> select right('foobarbar', 4);  & F; V3 b' i2 O) s) k
  -> 'rbar'
, M# B) w% p; @& G1 w) ~" x & h1 K4 U& E# d# a/ E9 ]* `
substring(str,pos,len)   
: ?0 ~9 K* a; U1 v" \substring(str from pos for len)   
$ C( v  o3 T" R) e5 I; F  g# Amid(str,pos,len)   1 J* w, e$ u3 A: c: I) a2 Y
返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
, D! ?* a6 Y+ l$ h/ }  -> 'ratica'
! S" q2 q5 O: r! n( `, K
$ E# x' i2 f3 V* W: @substring(str,pos)   * b7 l' S4 G1 p' r/ F
substring(str from pos)   : F  f) {1 Q% t1 z/ [) S
返回字符串str的位置pos起的一个子串  : c2 r: s: Z: C& M
mysql> select substring('quadratically',5);  3 P, r1 L7 u( @' o' t) X+ F' t/ K
  -> 'ratically' 0 q5 ^3 v0 F3 T% E0 l& `% j% \
mysql> select substring('foobarbar' from 4);  3 a! j" N$ Q  f8 n
  -> 'barbar' % Y" j, L  J3 e  |: ]

0 H; `+ c2 O  p4 g; i* jsubstring_index(str,delim,count)   
3 O8 p6 Z% A$ \; B返回从字符串str的第count个出现的分隔符delim之后的子串! ^! C* }" ~- Y* O
(count为正数时返回左端,否则返回右端子串)  
8 I. n% j/ {" [( O; I# nmysql> select substring_index('www.mysql.com', '.', 2);  6 e" O5 H! Y* {- u
  -> 'www.mysql' / [: D0 _% v. p# N1 R: G
mysql> select substring_index('www.mysql.com', '.', -2);  : i# K. Q5 K! Y$ @
  -> 'mysql.com' 9 [5 v& B1 |/ N& c# j8 k

: q! C- }* d9 m! j  @6 ^ltrim(str)   % w9 _( D  a# V$ T3 J- n5 E/ Y
返回删除了左空格的字符串str  & ?! D; _2 T2 o, r& ]4 h9 F
mysql> select ltrim('  barbar');  
" d/ A  M  ^3 ]" ]0 F2 ?1 G  -> 'barbar' : Z$ v' X) z/ [1 c) I

6 ]2 h. P& c" l: B- }( }. v8 ?0 Zrtrim(str)   + {  p  S) w) l" \1 C& a
返回删除了右空格的字符串str  & j2 y6 W) @5 m5 v' L
mysql> select rtrim('barbar   ');  
2 E/ A9 s/ @. S  -> 'barbar'
2 X/ e9 o: [$ Y
+ c+ T* z8 b9 C$ ktrim([[both | leading | trailing] [remstr] from] str)   9 \0 r6 ^$ ~0 Z( u! `
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  $ V) y) l# F, O" R2 _5 n
mysql> select trim('  bar   ');  
/ l" {6 M: @  _/ j  -> 'bar' 4 T) c6 C: Z8 ?4 C% [" l" }
mysql> select trim(leading 'x' from 'xxxbarxxx');  * M4 J0 `& H1 [
  -> 'barxxx'
7 x( ?, |* P  H" Mmysql> select trim(both 'x' from 'xxxbarxxx');  7 q4 t/ r$ ^% J1 z
  -> 'bar' 0 o" n3 W" }3 I4 {9 M- O% O3 |
mysql> select trim(trailing 'xyz' from 'barxxyz');  # [; E# c( [5 U# }
  -> 'barx'
: R5 d* b7 a& H! l
8 x/ E  Q, A- F& _; Xsoundex(str)   
9 s9 S# S9 n1 F/ U$ H: _返回str的一个同音字符串(听起来“大致相同”字符串有相同的$ G! z  u* M( O; I! {1 L' W
同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  
6 ?; n* q" t3 K7 @+ u* {mysql> select soundex('hello');  
( H) m+ ^9 P9 s3 _& x  -> 'h400'
1 W, k! v# E# ^$ d  ?mysql> select soundex('quadratically');  
$ q# O) H  i! E: {0 H  -> 'q36324'
  G6 v( P: {; ^/ d( [7 Z3 a% z   
" u9 z& \# G0 ^# K" q9 G0 Ospace(n)   
) Y0 ^6 D# Z! w8 M% E返回由n个空格字符组成的一个字符串  
, I1 o+ }, _; d4 E) ?1 vmysql> select space(6);  
, T* X" V! T* Y, R, W  -> '      '
5 m+ ]9 g/ z( m' h   
4 S& \+ ]0 v3 i4 _0 F! M& `& |replace(str,from_str,to_str)   5 C3 N6 J9 G8 S$ @0 [+ l* U
用字符串to_str替换字符串str中的子串from_str并返回  ; T% V( s' x& N
mysql> select replace('www.mysql.com', 'w', 'ww');  # [, i: U- ]0 W$ ~9 U: @% q$ {
  -> 'wwwwww.mysql.com' " c' |' C! ~4 o6 U  m

0 T5 s5 f# ~9 y1 Mrepeat(str,count)  
0 w# W8 ~2 l: @8 T4 G  |$ V% U* j返回由count个字符串str连成的一个字符串(任何参数为null时& G# W0 V. |9 K
返回null,count<=0时返回一个空字符串)  ) {' I8 I6 F$ ~5 S
mysql> select repeat('mysql', 3);  7 r8 j+ H' e& C& m! t' i0 p7 @' \
  -> 'mysqlmysqlmysql'
+ }4 W% }9 ^% Q   ! f5 \/ w* E8 R# W5 c0 B. o: V5 O& F
reverse(str)   
( }3 G; E+ Q# b& ]- U, m/ h颠倒字符串str的字符顺序并返回  
( X* F4 J- Q! Cmysql> select reverse('abc');  
( h+ K8 y- g# n4 z/ h" e# A  -> 'cba'
4 C2 d) I2 Z0 }( Q
+ F( S% v# ~- A5 k; P+ w) o) winsert(str,pos,len,newstr)   
7 i* ^( e+ k3 i% q把字符串str由位置pos起len个字符长的子串替换为字符串) i" C# z2 C0 y  C
newstr并返回  
) b$ }6 H2 E! W; k6 P- ]mysql> select insert('quadratic', 3, 4, 'what');  
$ L# q/ v/ s# r/ h0 p( _1 d  -> 'quwhattic' & Q, e: U) M) I) Y
5 o- E) g+ {" O. S4 X6 L( R6 A
elt(n,str1,str2,str3,...)   % ^3 k. p1 g$ C7 C: L1 J* f  W: t
返回第n个字符串(n小于1或大于参数个数返回null)  
% u0 k) m  R  e4 p; C6 rmysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  
0 j, a" U' g: G' ?7 Q, }# q- d( K  j  -> 'ej' 2 z4 N0 i' G9 u% o( Y
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  9 {- @6 F7 T9 ]& h  G7 l, {7 j7 T6 [& s
  -> 'foo' . y  |% A; Q! g4 e" J6 b! T

* z; P6 }  o7 O  q/ d& ffield(str,str1,str2,str3,...)   ( q- |7 ]- ?* q( W* C
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  & Z0 V6 c" H" [0 @9 _/ E2 m
mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
- O) I2 c; q% ^+ I. ^'foo');  , o( ^7 U  B! j( D/ ^$ n6 f
  -> 2  7 h( t0 N: Z# P+ O
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',* T: a5 S. P/ p- b( J# a; _3 Q9 K- u
'foo');  2 i6 W3 `  e' T
  -> 0  - }  W' O  r  M) i/ K

" p. M% u4 i# ]find_in_set(str,strlist)   
$ v4 O9 f6 {7 v6 F2 j" ]返回str在字符串集strlist中的序号(任何参数是null则返回
: @# y. c# d0 n7 X7 dnull,如果str没找到返回0,参数1包含","时工作异常)  4 ~+ w0 ~' r  V  Z
mysql> select find_in_set('b','a,b,c,d');  
" G9 c: x, x' N4 Q! U2 G) T  -> 2  $ I5 f# q' c# z# @& p
   
$ w5 l5 P3 `; Y9 l4 e$ B0 X& ]make_set(bits,str1,str2,...)  7 V: B" ^* a6 C
把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
" f* d0 k& z. h" _位置的字串选入字串集并返回(null串不添加到结果中)  $ a' x7 L5 x" d) r7 ]; h+ i
mysql> select make_set(1,'a','b','c');  / [3 T: z8 M  S; Z# l
  -> 'a'
4 ~3 |+ w0 d6 Q3 S! U! z5 W2 P2 a. Omysql> select make_set(1 | 4,'hello','nice','world');  
( p) I% g- ]% O; v+ I' G  -> 'hello,world' ) U1 x" x) P& m8 L  d  h( I4 `
mysql> select make_set(0,'a','b','c');  + k& G4 B0 i) b8 A! r- @
  -> '' # {8 Y3 C0 N- s4 q( G
2 K/ |) I( A3 w7 |% f" P- T
export_set(bits,on,off,[separator,[number_of_bits]])   7 [% N' L0 c. _7 g, v6 W1 [, p
按bits排列字符串集,只有当位等于1时插入字串on,否则插入, M3 X! O8 P5 ?; Q; \
off(separator默认值",",number_of_bits参数使用时长度不足补08 Z) E0 L5 L8 \
而过长截断)   
: D2 R2 n: h* [$ O* k/ X/ T# s2 cmysql> select export_set(5,'y','n',',',4)  + e. J$ Y/ Y9 R+ z! C
  -> y,n,y,n   
/ z3 F' \" w8 E, }! A5 u7 p' o, y; k4 f + T8 i8 n4 G  I+ D
lcase(str)  % I3 o  ~, E  u  x
lower(str)   
) [8 I! Y( O0 p1 }+ w2 T4 e返回小写的字符串str  . t  R$ D  p' X$ r" z- M
mysql> select lcase('quadratically');  
9 n: p' W) d5 X3 _# W$ V  -> 'quadratically' 5 F+ z0 {( L) ~! L+ \0 n) P
   ( F4 M& M1 I2 s" k. J
ucase(str)   
* w' s5 T' Z7 eupper(str)  
/ k$ b5 N+ P/ M* x+ f返回大写的字符串str  , z* V; {2 u, Q* i
mysql> select ucase('quadratically');  & t2 ?: O9 w; n/ p1 j/ `! O8 V) H7 e
  -> 'quadratically'
" x# U$ H$ _2 c/ z2 g6 d% m  x ) e$ B2 d% r. B* B5 [
load_file(file_name)   2 y1 ^( \6 K4 H% g% k4 L
读入文件并且作为一个字符串返回文件内容(文件无法找到,路径
6 W7 z* h6 ], H( Q! j+ D不完整,没有权限,长度大于max_allowed_packet会返回null)  5 A. ~7 s8 c) F
mysql> update table_name set blob_column=load_file
4 j$ M, z8 K7 p. L6 V$ e: b4 ~("/tmp/picture") where id=1;  0 d: C. t# g) l
7 ~' v; W; B+ W7 o7 h$ \6 t2 c! b/ E
2、数学函数
) Z) {8 C! C  f* `! z% Qabs(n) 9 r4 w2 }+ r7 e7 _
返回n的绝对值    w; f9 g0 J* a
mysql> select abs(2);   
* B% m( s0 y5 G  -> 2    * @  u# ~7 D# s% v
mysql> select abs(-32);    8 B8 W* C, g; C( s
  -> 32    + @. F2 @9 O5 l
   , q+ n! G% D9 }  |% M0 f5 z
sign(n)  
1 Z* }/ _- p* E+ I返回参数的符号(为-1、0或1)  9 K% g$ m4 Z4 i) [, X( d# w
mysql> select sign(-32);    ) V' f$ E+ H2 ]* G0 V
  -> -1   
5 h; e, i4 {7 H9 D: P: B* G* s) Emysql> select sign(0);   
) ]! r4 `9 `5 Y; {  -> 0    $ Q/ J. B0 h$ P, L$ F' Y+ z) [
mysql> select sign(234);    " o* s1 P7 @  a0 U
  -> 1   
0 M! e& u5 ^3 T. r/ W
  F3 P. l7 S, b" A  I8 Z( G! i( zmod(n,m)    , J% o. h' V7 t
取模运算,返回n被m除的余数(同%操作符)    & d6 y( P/ p/ }- c
mysql> select mod(234, 10);    ' H" J! M, P! `# Z4 I. A' e
  -> 4   
5 z8 N) t' ]/ r8 I4 U5 hmysql> select 234 % 10;   
9 h% J3 e' [& q2 F. o9 x  -> 4    # L* }1 O4 F" H+ P9 A3 Z
mysql> select mod(29,9);    . ~3 J' }0 v* k6 k7 L
  -> 2    6 E7 Q& X/ v1 N; H9 u- ]

' _# ^9 n( g3 s& h% dfloor(n)  + l/ h4 |. g; W7 N
返回不大于n的最大整数值  ! B% f3 r& N" [/ M
mysql> select floor(1.23);   
0 I; u% y# v6 B2 ~! Y  -> 1    # T# m# f: p& P& z( z9 ?9 M
mysql> select floor(-1.23);   
9 G. ~% r" m7 e8 ?3 d2 w7 B  -> -2   
, e) p2 e' y5 D9 U6 \4 N
* C3 I9 I# U/ F) ^( }* z1 L  Uceiling(n)  % V# V% ]: K0 Q1 j9 d, s
返回不小于n的最小整数值  : A1 U+ d/ Z& e# z4 Q
mysql> select ceiling(1.23);    ) I& z9 D% ~7 z/ K9 B/ L( k
  -> 2    9 q  I4 H2 g+ \1 u7 ]* L( z
mysql> select ceiling(-1.23);   
. ~8 B0 Z; @+ Z+ o  -> -1    : i0 s5 Z# I  F6 F' \& N

, l& x  ~. M: E- ~* qround(n,d)  - W0 r' w2 V/ r* o6 ~2 B# }" i+ ?
返回n的四舍五入值,保留d位小数(d的默认值为0)  
& w; J. G# K2 S: u  n0 {' rmysql> select round(-1.23);    ' ~: T5 \  G' G: a
  -> -1    0 U& C+ B" o% @/ K* C: \  o/ I
mysql> select round(-1.58);   
0 E, `! u$ m- @, G* D  -> -2   
% n1 q% ~/ Y+ y% h# Hmysql> select round(1.58);    3 n( M0 F) h7 v9 ]& A
  -> 2   
, G* r% ~/ l' _0 ^  o. Xmysql> select round(1.298, 1);   
) d6 f3 l: G+ p& C" H$ X  -> 1.3    * \; \' h1 V" J' D( k
mysql> select round(1.298, 0);   
4 n" e2 y) b  t4 T% I/ @9 n. I  -> 1    + ]4 i" C6 ^  G) ~+ ^

1 M5 o* b" U" ?  Q/ uexp(n)  : L8 F! b* {: G( P' o
返回值e的n次方(自然对数的底)  
, Q) o/ U& O, j7 M" k* [9 amysql> select exp(2);   
; P+ r) a1 C( V& }* R  W  -> 7.389056   
8 `. b8 ~4 s7 {mysql> select exp(-2);   
& w% n6 H$ j6 a+ W' x) X3 M  -> 0.135335    / N0 z+ c3 _  G  M4 [+ k+ D

, p9 A' v8 ^$ clog(n)  
( ]2 t1 U4 l9 l3 G7 a返回n的自然对数  
" a' `7 ]1 J/ G: |! N' v# Rmysql> select log(2);   
. `  ^# ^6 }: n5 o, O# {  -> 0.693147    % F4 Q  t/ g& W
mysql> select log(-2);   
# a0 K) I2 K2 |( O5 H, O  -> null   
3 K3 d; N8 T0 r' E5 o: V. }8 L& t9 P
3 G1 m' f  s; Dlog10(n)  * a* ]. U$ k( F
返回n以10为底的对数  $ }4 Q+ l) Q# y; W/ A/ m
mysql> select log10(2);   
3 J) S5 X& @; t! m( W3 Q  -> 0.301030   
! x6 n' ^! O# Zmysql> select log10(100);   
1 y, ?5 I4 U( ?  -> 2.000000    % m, J4 O1 L0 I3 n( N- n: z
mysql> select log10(-100);    ) U; p* m/ H, @7 _$ d
  -> null    0 H  {/ i7 n# H  M4 q, e

1 @8 y) z0 m4 u2 T8 a. g# N/ spow(x,y)   
' p( x* Z0 g8 w7 Kpower(x,y)      W  @- }% E3 Z2 g8 ^
 返回值x的y次幂  
# h0 y( C# O* Cmysql> select pow(2,2);    1 y/ z9 p' r$ B- q( v; y8 a5 q
  -> 4.000000    + q4 q  L' F2 {4 M( v/ f
mysql> select pow(2,-2);    ' I" E) i4 E/ {: p" w
  -> 0.250000  
0 ^- _0 X# i! @. a1 F) o& C' }' s  k. N0 i8 f0 r( S
sqrt(n)  
+ j, A. Y* O) [& A- F/ S3 d2 i& } 返回非负数n的平方根  
: E6 Y5 a- F$ u8 j) `% O& B1 smysql> select sqrt(4);   
9 [' y% g+ N4 U: ~. U  -> 2.000000    - W* t6 }4 y3 r6 R3 x- e/ r( @
mysql> select sqrt(20);    . [, d' [% z0 W8 O: g' f+ f
  -> 4.472136   
& C8 L) l: _5 W! X3 @7 K
9 o" y" h( M2 S8 ]pi()   
: ]# J/ [# A) Q& h+ O 返回圆周率   
- e$ b) B) [) E2 o% n5 qmysql> select pi();   
* y0 l; O3 B: V  -> 3.141593   
' ?& x/ G; b6 H& ^' M3 _/ H
& z! h* r/ `1 r" ^8 E( rcos(n)  
* X. _8 l+ l2 U6 g0 l8 |5 L 返回n的余弦值  
- \- s2 p! N) j. N3 zmysql> select cos(pi());  - ~$ h# D2 |" [. l) |7 e
  -> -1.000000    ) K5 v: M8 g6 S  x

* i2 v0 ^8 H6 O8 j  Nsin(n)  & M( s! m: \' L2 O5 S
 返回n的正弦值   
( R' N0 M0 {! ]mysql> select sin(pi());   
# n/ @4 M' m- U% P& P( ]1 \  -> 0.000000   
7 _" A; Q- k5 _6 y( |. u7 i" i . b7 L- F# a; t% o
tan(n)  3 g- b& f/ Z8 U% e; p7 C9 D& T
返回n的正切值  
( o  \% n" U* Z5 J1 E4 ymysql> select tan(pi()+1);   
" \# B) n) t; Z. E2 U* k  -> 1.557408   
6 P+ q$ u, o: f" a4 b) l8 A4 \% m. k + A6 l& q8 X8 c8 [: [
acos(n)  , j8 o% b, q; {& t" j' f: P
 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  ( I8 Y  w7 d4 }& l" O$ a
mysql> select acos(1);   
" q+ L' J+ T3 X7 k/ o  -> 0.000000   
1 H& L' r# U! l, W6 k( xmysql> select acos(1.0001);    : E1 X. _3 A( t/ C
  -> null   
5 ~" o9 D* z1 A* [: w4 umysql> select acos(0);    8 ?; Z7 d  x2 C- \( r
  -> 1.570796    7 F2 a/ E$ J. P2 s9 a& z" g

- g) t3 C0 d7 x! n; P) rasin(n)  - W* }+ W! ]7 \. M4 G
返回n反正弦值  , X' L+ v& w/ X5 a$ w5 k0 g0 \
mysql> select asin(0.2);    3 e* f# j' P* k; B( k
  -> 0.201358   
. C# P" |( V/ ^mysql> select asin('foo');    ' k5 l+ B8 x& a/ q; H
  -> 0.000000   
2 Y* {9 J8 F% s# T) h% j, v
! t( g4 u6 k- `2 eatan(n)  ) r: W2 s* m, ~4 R6 c* g) ?# ~
返回n的反正切值  * [  ?2 M9 W8 D) \# T, ]' B3 ~) Z
mysql> select atan(2);   
( M; G* j: N4 W5 f  -> 1.107149   
7 C& N% h- J+ P  V) c$ g( tmysql> select atan(-2);   
1 W, k# b1 D- _5 j  -> -1.107149    & c( [9 b6 d% o+ `9 [
atan2(x,y)    - Y; J- E) c8 j/ x+ l
 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  
4 k8 ]3 H; Q% v% l) [mysql> select atan(-2,2);   
: L4 r$ {% Y6 q  -> -0.785398   
; f  R) D5 V& l& m- ?1 s! Amysql> select atan(pi(),0);    & K+ a( ^- g) u6 Y. _
  -> 1.570796   
! M7 N' t% }' V" {# Y' Q2 e5 F4 R0 e 6 G3 ~; O/ ~$ i0 r6 S
cot(n)  # |) q( X9 Y' F
返回x的余切  / Q, N; J( r$ f; R* g
mysql> select cot(12);   
6 ]8 ~2 b! m# T& Y9 _" w  -> -1.57267341   
4 Z$ `# a' ^1 H4 R3 ]+ \! E. i1 o# \mysql> select cot(0);    5 r5 B( g0 x; n
  -> null    ' M2 q. V5 v/ m
( ~  l! L5 K) w& a
rand()  
" ^/ y) n1 z# V5 C6 K- Drand(n)    
) y; d6 l( g' M: O2 J% ]返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
7 y' @9 J- g2 t7 E
+ |9 Q( ]' ?. D: b! H( I( P: xmysql> select rand();    & D* a0 j! e3 e. R% R/ Y# N
  -> 0.5925    0 U! i) g/ ?: }/ z% D5 Q  \
mysql> select rand(20);   
6 Q$ P# ~7 A; ^* N# j( G  -> 0.1811   
/ k+ I8 C3 ~& a! X' Imysql> select rand(20);   
! S  E, Q. X3 Q+ g' H9 U1 J7 f  -> 0.1811    + r' M4 R  R6 ]" f% @- Y/ y! b
mysql> select rand();   
' ?* R2 o+ X1 i1 g. I  -> 0.2079   
: Q9 @# i- |  R% w6 Wmysql> select rand();    ! U5 e; U! L2 s$ q6 F# V0 i$ z! W
  -> 0.7888    ( O* }% n! T) M
& m4 A3 T1 O5 n. w% c) [/ U) F
degrees(n)  
4 i7 a) ~* n3 \% k2 k把n从弧度变换为角度并返回  
$ T, R/ n0 l) c( _- jmysql> select degrees(pi());    & ~, k' ~8 A; q; W
  -> 180.000000   
% D% a2 K; P; ~( q; D; F5 [* O
( h* J/ U$ W* w' Z. V, ]radians(n) 5 |; F/ m' a, W# G# I* R
把n从角度变换为弧度并返回   
- ^# P4 P. l# u) @# Gmysql> select radians(90);   
7 i9 \( U8 Z! C$ o) Y  -> 1.570796    2 Q5 r8 W1 Z! M& p- S, |

9 d) V& H+ e3 K( Rtruncate(n,d)   
' v6 B  {- ]+ o) O6 W保留数字n的d位小数并返回  ( v: Q- ?/ p$ @6 ]# ~0 J
mysql> select truncate(1.223,1);    ) @* {- N5 W$ ~1 ~" H. R
  -> 1.2    ! c' r7 m. E5 d
mysql> select truncate(1.999,1);   
/ d% v- k+ o; [& O( @  -> 1.9    % i7 y! b& Z3 S- C8 Z  h
mysql> select truncate(1.999,0);    9 o! b+ u8 h& b
  -> 1   
$ p, B1 B) y3 W( @+ v # K$ n5 y! Y! ?  L2 `2 c1 H( w, r/ H
least(x,y,...)    2 r, |4 @, t' O: c
返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  ; ?" o0 w% a7 T8 \
mysql> select least(2,0);   
; e5 g8 p9 V- J0 M' H5 \* ]/ k  -> 0    $ X1 a- D! E' l( ~( P6 F
mysql> select least(34.0,3.0,5.0,767.0);    + ?) R( w& M8 v
  -> 3.0   
! J8 t5 x5 n( S2 umysql> select least("b","a","c");    0 J( u7 D. O+ y+ G8 ]9 g9 p$ b
  -> "a"    ; z. A6 w/ U  g: L0 y, m/ E
5 a/ ~# e  o7 m6 F$ P- C' b8 _
greatest(x,y,...)   
$ B7 ]" T5 T" D返回最大值(其余同least())  ! O9 P0 P9 N- B  l. v6 g- r
mysql> select greatest(2,0);   
8 X: W- F5 V. T, f9 k+ z  -> 2    7 ~9 [6 i: t9 M% c1 s- U1 c
mysql> select greatest(34.0,3.0,5.0,767.0);   
8 G! \, F- x5 U# X# i: m8 |' c  -> 767.0    1 j' L8 H# E6 i" u4 i
mysql> select greatest("b","a","c");    % ^. y% ^* b5 M5 C+ E. D  x" E5 B
  -> "c"       f6 T  d! i! ^7 |

; P5 r5 b7 P* O- s& Q- N3 C; v  O3、时期时间函数
  ~3 B9 d) ?7 a. F; {. \+ R8 Sdayofweek(date)    ) b. z& O- ~, I, K
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  1 I1 z* B* W2 W; u4 ?
mysql> select dayofweek('1998-02-03');   
$ {5 [, |9 h; E- p9 X1 W9 r  -> 3    5 m  A8 h# x  P7 R) B& D& ^

8 F* \: r9 e4 Sweekday(date)   
0 {% G! P" x! {' u- C) `返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 4 d6 O0 M; Q6 @; C+ M3 k' E
  5 U7 j0 B  G3 l- O0 @& a1 F
mysql> select weekday('1997-10-04 22:23:00');    ) `+ h$ T$ Z3 s& E. e! X: g0 |. t  _
  -> 5   
% L$ [8 c0 I1 e; ^0 i9 kmysql> select weekday('1997-11-05');    1 e( b) Z  @; z' N
  -> 2    # G& b; A$ X0 }

0 p6 _* `  c; Z8 `# ~5 r% F6 d: F. xdayofmonth(date)    
/ A6 U8 ^4 H& k1 D0 ~* {返回date是一月中的第几日(在1到31范围内)    # V! H6 M: _6 z0 z  t& ?4 N  Y, W
mysql> select dayofmonth('1998-02-03');   
1 X7 w% K6 v& n; |1 a. |+ _  -> 3   
) s; N$ Y4 ?, G& L9 a9 [3 `0 q 6 F$ g+ U5 \- }4 U' k
dayofyear(date)    2 J8 E" ?% [, S* {! E
返回date是一年中的第几日(在1到366范围内)      v/ t3 i8 M9 @* w$ }* K2 f4 b: G! u
mysql> select dayofyear('1998-02-03');    3 M. U# s* N9 w. G$ U8 m' t1 P( j
  -> 34   
9 p6 _( D& n' `2 y0 ?: N4 x
7 S2 e* T+ s. Q) \1 e6 Mmonth(date)   
1 M3 V, p5 u& L% C# g$ C返回date中的月份数值    ) W. Q" V" _% ?7 @$ G3 D* l
mysql> select month('1998-02-03');    ; i" e% j% |: q7 \9 ~2 F6 W
  -> 2    0 O7 p- d/ M. z2 Q2 [
+ G: v; c( F8 k  U9 E& a: m; W8 o& F
dayname(date)   
. N8 E5 `8 L% Z* G) g% m: ~返回date是星期几(按英文名返回)  
- ?- q& X5 ]) |: m4 z$ D9 r, C0 Cmysql> select dayname("1998-02-05");   
; K: W! I) s+ U( |  -> 'thursday'    ' {7 g3 L5 ^# H& c  b
9 Q: }. h* J% |% T
monthname(date)    
* |! y* {; d- H+ V6 t" K- ~7 @返回date是几月(按英文名返回)  + q8 Z8 k# K! H2 H6 Z  R& e
mysql> select monthname("1998-02-05");    7 o+ i' x! z+ s1 A. J$ ^1 L
  -> 'february'   
: g/ o# Y* C$ Z3 [% n
* d* z8 D) C+ kquarter(date)    % ~  c& m8 c7 @5 {  S+ e2 [
返回date是一年的第几个季度   
3 t% B2 _7 H) G0 T, Hmysql> select quarter('98-04-01');    5 T& t0 x$ }9 _" p! P( N2 a
  -> 2    " K7 F3 V. \$ a7 a2 _, e' Z6 g% N

( h. v! U# K$ Y% J3 Q7 rweek(date,first)   
* V" ?2 x# P. T6 w返回date是一年的第几周(first默认值0,first取值1表示周一是  I; z. A/ w: U9 {2 Z' A) d) S, _
周的开始,0从周日开始)  
& E- b& B) c  f5 V  Z! dmysql> select week('1998-02-20');   
  ]: t" T! ^1 [: v4 g: h' m/ r. H0 |  -> 7    3 a8 ?$ f6 O) ?6 {
mysql> select week('1998-02-20',0);   
. [+ m$ O9 l6 X; D! _8 Y  -> 7    ! f* H5 |. O* }
mysql> select week('1998-02-20',1);    * K  N; }% b5 A; i5 u8 ~& F3 t
  -> 8    2 \$ W. R% n7 S$ b% Q+ i

7 D8 T+ h, ?0 i( V6 k! @1 cyear(date)   
, a/ e$ p' k) @6 |4 ]: y返回date的年份(范围在1000到9999)   
/ V- y& W: k, v- }mysql> select year('98-02-03');   
7 b, w' X* x5 t. ?1 n  -> 1998   
; i: M8 l8 J6 O4 s0 ]8 b$ ? 8 i' Y; @: V0 Z
hour(time)    / L! s6 A' [2 s* b  f
返回time的小时数(范围是0到23)   6 M" l3 [4 I, _
mysql> select hour('10:05:03');   
6 h5 l& ?' `# H  i7 c  -> 10   
( b* ?# ?5 }0 v* |
! _5 _6 v) p- y' c/ sminute(time)    4 y& U. K% h6 w1 I; w! }, _0 z. O
返回time的分钟数(范围是0到59)   
( p! ]; M* ~4 ?4 R4 r8 K2 Hmysql> select minute('98-02-03 10:05:03');   
6 k( y( L% [' R/ g- K! @* L  -> 5   
6 r+ m% _' t' U , Y! w3 N! {' z- D
second(time)    
8 s/ z2 O+ k9 ^, `. g返回time的秒数(范围是0到59)   
0 M* I- p; U/ w. h8 Y' umysql> select second('10:05:03');    % ~4 S2 x" M# b$ r
  -> 3   
6 V2 @( B5 G1 \
# _" q$ ]' D& eperiod_add(p,n)    & I2 L: h) Q  B7 h  f
增加n个月到时期p并返回(p的格式yymm或yyyymm)    : O$ }5 ?; S6 b
mysql> select period_add(9801,2);    0 X5 E+ X) n' P1 `) ?+ Y- k
  -> 199803    $ Y6 l3 Y1 E; j1 Y  z  B" v; J

- @6 G* G" T: t2 Z) Y" Kperiod_diff(p1,p2)   
1 K  k4 ]& f3 F$ [  t返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  4 |8 M' _* V* W. c6 I& U0 `& {
mysql> select period_diff(9802,199703);    % N  D+ X% x2 t$ H; l4 b! M. D; H2 j- X
  -> 11    - V" I- B% K7 d, [  a: _

, G9 v+ Q4 e7 i) ?( w  d  Tdate_add(date,interval expr type)  
* u* `" C% N  c7 W, }6 Idate_sub(date,interval expr type)   
- X* L0 G8 r0 l, |0 H3 hadddate(date,interval expr type)   
1 p" a7 C8 p* z6 Q* Asubdate(date,interval expr type)  0 ~2 F! J& {9 K' B0 T
对日期时间进行加减法运算  
' h. ?; r9 _: N; k: b: n(adddate()和subdate()是date_add()和date_sub()的同义词,也
- E) Y" I! [, b8 w. N1 P可以用运算符+和-而不是函数  . l# x. }- ]- [  b* c3 n
date是一个datetime或date值,expr对date进行加减法的一个表) u0 h0 \6 S3 [
达式字符串type指明表达式expr应该如何被解释  
! Z1 y' g& K9 Z6 O" j [type值 含义 期望的expr格式]:  
& @* u/ d* j- [$ y second 秒 seconds    " Q0 U1 ]% E' b$ L" n; [" @
 minute 分钟 minutes   
8 m& ~, k% i6 v hour 时间 hours   
# u. y5 `; N+ _3 y+ `% ~: y: b2 R day 天 days    7 @1 i* b& {5 ?  s2 t% Y4 A
 month 月 months    0 D( B6 @0 V/ u2 {( B
 year 年 years   
; x6 U6 c$ ?2 f/ C9 R6 o0 o minute_second 分钟和秒 "minutes:seconds"   
2 R/ @8 D/ p5 N6 i7 b( z* l hour_minute 小时和分钟 "hours:minutes"   
- U* `5 K! X7 Y8 W) | day_hour 天和小时 "days hours"   
0 j8 L- X6 L/ {8 t/ m+ q year_month 年和月 "years-months"    8 y! c( b0 }+ I0 t; v
 hour_second 小时, 分钟, "hours:minutes:seconds"    4 [. F: G7 `' }: N+ k
 day_minute 天, 小时, 分钟 "days hours:minutes"    9 s( a9 J& x  G. V# i* S
 day_second 天, 小时, 分钟, 秒 "days' M* F# E/ x% x+ ?
hours:minutes:seconds"
" |3 T% x0 K/ Z; K4 ?7 b* A0 S" Z expr中允许任何标点做分隔符,如果所有是date值时结果是一个
4 x) c! j4 o& q2 s  Z. l7 Sdate值,否则结果是一个datetime值)  % n; i2 T& u9 a* f9 n$ z
 如果type关键词不完整,则mysql从右端取值,day_second因为缺5 v, A# v- d' e+ H( @
少小时分钟等于minute_second)  
. G( N8 O  k& j/ T# A! H 如果增加month、year_month或year,天数大于结果月份的最大天# Z! A# @. F3 |/ U) M( n# t. Z+ c
数则使用最大天数)    0 ^$ X3 F1 ?6 V
mysql> select "1997-12-31 23:59:59" + interval 1 second;  ' Y3 P' [. r# a9 y$ D  }
$ h% s& p6 X8 b( S7 |* A
  -> 1998-01-01 00:00:00   
& z% k( o, S+ {6 imysql> select interval 1 day + "1997-12-31";   
2 S: }; U6 {# p; u1 i; _  z  -> 1998-01-01   
# w5 s( X1 x/ Gmysql> select "1998-01-01" - interval 1 second;   
2 ?* C8 G, A2 B) y! P  -> 1997-12-31 23:59:59   
* {' Y( g" L% C. I8 Q0 D, v+ vmysql> select date_add("1997-12-31 23:59:59",interval 10 N6 M8 @. p7 W( u1 T+ q# f
second);      D2 [5 ~" K9 h  X6 y) w9 T
  -> 1998-01-01 00:00:00   
: o0 t; S! Y4 {6 `. Xmysql> select date_add("1997-12-31 23:59:59",interval 1
( g5 R# S# k+ j1 O, O( dday);   
7 r: v3 |+ j1 X7 ?9 H  -> 1998-01-01 23:59:59    8 T  k1 ]  Z/ A; U. S
mysql> select date_add("1997-12-31 23:59:59",interval$ L3 m( |7 b4 |: N
"1:1" minute_second);   
  W; g7 C" o& m% i" n4 R  -> 1998-01-01 00:01:00    ( K4 [, M8 {: \
mysql> select date_sub("1998-01-01 00:00:00",interval "1! k! s9 T" K2 W' t( B
1:1:1" day_second);    0 K. G. l2 M2 v
  -> 1997-12-30 22:58:59   
  |6 A* N1 @) w' Z0 mmysql> select date_add("1998-01-01 00:00:00", interval "-1$ D) E: F3 @- C
10" day_hour);  
5 r; H2 o( V. }( T- N1 C$ E  -> 1997-12-30 14:00:00    ( Y! V" @/ l  a& V5 p7 `- p- {
mysql> select date_sub("1998-01-02", interval 31 day);    : R# f* |. C, `8 C4 `7 w  ^
  -> 1997-12-02   
: v7 R/ f' \) Y, N2 w7 l- omysql> select extract(year from "1999-07-02");   
* J. U  r& o" P7 I  j  -> 1999   
; K& t1 ~3 z0 y$ A  Q$ e) K# }3 Kmysql> select extract(year_month from "1999-07-020 o  }* y( V6 o1 a/ r7 P
01:02:03");   
- o: ~2 A3 _) r, D  -> 199907   
8 X/ M+ s& ~, q; \# a  Hmysql> select extract(day_minute from "1999-07-02
/ w7 k4 I. w. D: a6 Z5 T# f01:02:03");   
$ U  @4 c: t2 O9 ~- T  -> 20102    ' J( a( M! x2 ]

! e5 \6 P9 d8 W5 [4 Pto_days(date)   
( M% {0 v( [% `* J, b  b返回日期date是西元0年至今多少天(不计算1582年以前)  
) D* w# Z6 x6 r8 G, R: R4 Vmysql> select to_days(950501);   
& v( y1 ^/ T! V/ `( d1 t6 _  -> 728779    # T5 c! q1 Q6 N6 T/ R
mysql> select to_days('1997-10-07');   
' e+ r. y- ^' H  -> 729669   
/ H9 Q: k3 ~+ `5 ]/ f
6 l! B" {/ S: g" Y  pfrom_days(n)    7 _8 p9 u5 Y; H, a) b! e: _  i9 P
 给出西元0年至今多少天返回date值(不计算1582年以前)   
5 N! T; y  m! ]% a# X/ l0 pmysql> select from_days(729669);    ! }; A7 |, S/ h6 e; h5 G' E+ H+ W
  -> '1997-10-07'   
' M2 G% a. O4 P8 A: u8 z5 n8 ?
  [( G9 J% b$ d0 d; h! W8 u2 gdate_format(date,format)   
" C$ g$ M$ Q) t0 w2 m 根据format字符串格式化date值  1 {6 r3 z+ v% Y$ }5 n; I8 e/ {
 (在format字符串中可用标志符:  2 Y( `" H+ Z$ W9 n
 %m 月名字(january……december)   
- G, h  ~8 I; {0 I2 b4 O9 h& w %w 星期名字(sunday……saturday)   
4 s5 \6 N  D# V" [* A5 r8 }' i %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    7 Q0 H" Y/ c) _3 `) H
 %y 年, 数字, 4 位   
9 `6 b; @3 ]4 H; p: Q' @+ y3 ? %y 年, 数字, 2 位   
/ ^/ X& t% j8 Y; z- F %a 缩写的星期名字(sun……sat)   
# E' e$ }- b5 e: P4 t, j %d 月份中的天数, 数字(00……31)   
- J- y, Q( V8 P* A% c %e 月份中的天数, 数字(0……31)    5 s7 m" U* |, p4 K+ ?  f
 %m 月, 数字(01……12)    ! e6 m  d  L; P  V2 G4 k
 %c 月, 数字(1……12)   
. I' H- |# A) H2 _( _ %b 缩写的月份名字(jan……dec)   
3 U9 u/ s. |$ }. x0 P: J %j 一年中的天数(001……366)   
- U7 v% F, J' T( V %h 小时(00……23)   
2 J5 l8 S% m! x  V" v8 J$ q5 ] %k 小时(0……23)    6 s  ?; @9 G  K- P
 %h 小时(01……12)    8 ~3 H, z- m" l- i3 W( w
 %i 小时(01……12)    6 J) H: H- i. D' A, M: }  L
 %l 小时(1……12)      A+ f' [5 O# x6 Q- R( i6 P
 %i 分钟, 数字(00……59)    - E4 b5 {# j: S' ?
 %r 时间,12 小时(hh:mm:ss [ap]m)    2 }5 W4 A0 l) I7 {0 }0 M1 E
 %t 时间,24 小时(hh:mm:ss)   
# o+ O% K  S, a  _- ]: @( n %s 秒(00……59)    * K4 T0 V" q- c6 L+ ]6 o" S
 %s 秒(00……59)    * I# M/ [% @5 Z3 m
 %p am或pm      q" T7 g* j9 R- H$ v5 N$ Y
 %w 一个星期中的天数(0=sunday ……6=saturday )    ' L  S% E$ t) s# j7 L3 ]* Z) O6 L* t- X
 %u 星期(0……52), 这里星期天是星期的第一天    9 V5 P. \. a7 _) l  a0 {
 %u 星期(0……52), 这里星期一是星期的第一天    " g0 t4 d6 ]9 N& U- f$ d
 %% 字符% )    Y. N+ [9 I4 C0 `
mysql> select date_format('1997-10-04 22:23:00','%w %m %
8 T$ g. X3 j9 C: X1 d- Q& G4 By');    / j7 m9 I# n3 N4 ~
  -> 'saturday october 1997'    $ N& F6 v2 [9 z
mysql> select date_format('1997-10-04 22:23:00','%h:%i:%
6 S& S3 e% M( t0 \8 _  ms');   
6 P# g/ L& }8 m  -> '22:23:00'    # ?( F, b8 h8 Y/ Q% K5 S
mysql> select date_format('1997-10-04 22:23:00','%d %y %a
0 E4 ?8 h6 `9 @9 z%d %m %b %j');   
9 b8 O3 s- S% y& B  -> '4th 97 sat 04 10 oct 277'    . x2 n; U  g9 r! K1 p
mysql> select date_format('1997-10-04 22:23:00','%h %k %i
5 o% H" l% L1 x! y. r%r %t %s %w');   
4 |' s6 r& E) x0 G3 j9 y; \2 I  -> '22 22 10 10:23:00 pm 22:23:00 00 6'    # J+ N) ?9 O# Q' z$ B
$ O' q" X) N: k1 k
time_format(time,format)  
# l  A  @) ?1 \' m# ^& B: z6 C- b 和date_format()类似,但time_format只处理小时、分钟和秒(其
( X' ^; l& U3 Y* z6 n* Z余符号产生一个null值或0)  9 R* A3 N7 @6 R+ E* f$ p2 `

7 l- i/ `9 h6 c2 X4 mcurdate()     
. a3 z6 g7 J" S% h; B/ e3 ecurrent_date()  8 q6 P1 b1 B% [7 Z  G# f& E2 t
 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所+ s7 H+ [' ?) P( u( _9 ^
处上下文是字符串或数字)    5 v# E0 ~8 Z" ?6 g  f- a+ y
mysql> select curdate();      C! Z; A* v9 G. P* C+ a+ `
  -> '1997-12-15'   
) `: K8 T+ ~! {) [3 \$ Q7 ]% Z2 smysql> select curdate() + 0;    - c  N1 b7 X9 x' w
  -> 19971215   
# z. s8 I" i( a0 A4 D( U " v- x, n- [9 U# u
curtime()   
1 f" p; G' p" q  S, w# Jcurrent_time()  ' \  y7 p7 a& p/ ?; m5 Z% w* E
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上: _" k; c! L% Q. k
下文是字符串或数字)      # U- K8 r* \: ~) ^7 \' M
mysql> select curtime();   
; }6 ]3 F$ P' U) r; A9 S& N  -> '23:50:26'   
8 t6 }7 L% `) Y7 B2 q; ~& C+ _mysql> select curtime() + 0;   
: J% F; o6 ~: F$ p5 M4 K) c- Q2 S; n  -> 235026   
) s( o8 J; [, ]; }" @8 ~" g" ~
. C; ~8 }# u; Lnow()    / x. ]3 n$ W! s9 M
sysdate()    + W* y0 {8 Z! K9 v# @8 ^) Q: U
current_timestamp()  / A. [$ \. w, O
 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期0 M9 Q4 D7 O+ _! v$ D) W9 D, Q/ P
时间(根据返回值所处上下文是字符串或数字)     
3 d1 j, W% q" o' a$ O7 T: _- {mysql> select now();    % K" U1 r7 U& L% r1 b' |
  -> '1997-12-15 23:50:26'    ) R' |: c0 }7 ?: g/ |4 O
mysql> select now() + 0;    , j7 A. U4 A' m! Q' N
  -> 19971215235026    " j9 O7 _: q% \- H6 c, X; W+ f* B

6 Y$ S" k% B1 J$ X9 v7 [; Zunix_timestamp()    0 N4 }& Q, U, j( X$ H4 }; l+ q
unix_timestamp(date)    % y- v$ O5 k& l- T7 @
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
) G2 d8 q* \8 o4 z数,date默认值为当前时间)  - m7 D: U" L9 r* I9 n6 p
mysql> select unix_timestamp();   
7 ?& ~/ ~( d$ |, L  -> 882226357    ; O8 Y7 A7 a5 D6 m
mysql> select unix_timestamp('1997-10-04 22:23:00');   
3 O8 m7 y3 p: Y4 ?; {! n, W' @  -> 875996580    . `( t" Z" D, G6 W
6 ~/ U( o$ C: x$ q
from_unixtime(unix_timestamp)    # H$ `: ]3 O3 ], N. r( D
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的, y9 r9 g' Z0 o& [$ P8 M8 ~7 o
值(根据返回值所处上下文是字符串或数字)     & R# R0 w- g( m) H
mysql> select from_unixtime(875996580);    4 W2 D- S1 p! m/ X4 y
  -> '1997-10-04 22:23:00'   
& p1 k0 W7 o: B1 y, M4 Ymysql> select from_unixtime(875996580) + 0;   
, q" s7 ?: |" l; ]' l* L  -> 19971004222300   
. S  @, k: z, I' E ! V$ i) H/ U$ r# H7 ]4 [  f
from_unixtime(unix_timestamp,format)    
4 k* u8 C* W5 K0 k6 g, Q) ?  W以format字符串格式返回时间戳的值  
6 [. R9 T8 l7 k$ X4 o" \mysql> select from_unixtime(unix_timestamp(),'%y %d %m %! _" ?* V+ X, @2 X, t
h:%i:%s %x');   
& U4 ^) c8 }4 P& Z  -> '1997 23rd december 03:43:30 x'   
& C. J8 {6 B! W0 Z1 v 3 s0 ^; b0 U3 P1 s6 O/ V9 j
sec_to_time(seconds)   
9 D1 v5 y2 ~4 `+ h$ [( e. z' ]以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     6 w0 {; d2 J& L+ J7 e9 H
mysql> select sec_to_time(2378);   
' R' K$ T; B+ ~0 ^: F% q  -> '00:39:38'   
1 O# i, c) Y; I# gmysql> select sec_to_time(2378) + 0;   
7 O9 z7 Z3 Y2 m1 O% J  -> 3938   
1 ?5 e6 K! t' Q/ H3 K" k
1 ^" [1 @4 o6 Q; b- A& wtime_to_sec(time)    , Q8 q! `; G# O1 r7 X/ \+ S( p
返回time值有多少秒    " u" [" A- M3 t3 w9 _5 H# Y, R
mysql> select time_to_sec('22:23:00');    + I7 j! u7 H# h0 V# C
  -> 80580    8 l0 C, e( B  k3 H
mysql> select time_to_sec('00:39:38');   
9 b. N1 {2 k) v% ^  -> 2378 ; m0 z$ N5 @  k; d2 J- s* l- l

$ [  M2 K4 [3 F4 X: j转换函数
  d  m/ {) N/ p; M# Lcast
; i4 Y  @' P* ~" }用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]) H" V# y/ O/ ~; c/ D3 ^
实例:select cast(a as unsigned) as b from cardserver where order by b desc;# c  K/ A4 s3 _" F* S
convert:
8 o8 f& O% w( T, ~) S0 Q5 M$ E; V! ~用法:convert(字段,数据类型)
: t  F  ^' E, `% D& S实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

* b3 W* S4 O# b8 m  F9 a6 K
回复

使用道具 举报

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

本版积分规则

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