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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数
/ A7 }1 r! y& v. |. c6 Q' ^; ?ascii(str)   ( k# c& A. F% g8 U! b
返回字符串str的第一个字符的ascii值(str是空串时返回0)  $ t+ r$ `, y: Z. j6 w( R  l# O
mysql> select ascii('2');  : U$ G- [, R" |& `: y& G
  -> 50  7 N2 z. r: ]) ]' J, N. z
mysql> select ascii(2);  
3 x0 M# H! h1 F0 U  ]( A0 U) Q) b7 n  -> 50  & c2 w' I# \/ ?
mysql> select ascii('dete');  
6 n) Y7 V. }" h* g: N9 C  -> 100
4 ~- D4 [& T4 f! ^
ord(str)   # p( s. O! j& E. }; i2 m2 U; _+ C8 O
如果字符串str句首是单字节返回与ascii()函数返回的相同值。
, b' t. f* M" Q1 e: L9 L  N4 D
1 s- K8 U) {% d, W) R如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  : s: T, S) w: Z0 u
mysql> select ord('2');  ) v  k+ y: p7 u- I2 f, }9 l
  -> 50  & w) b" G' s% _/ t$ O5 Q
   
, ^! I# L5 v/ H  W' e/ |conv(n,from_base,to_base)   ; r' I: A) a( I7 {2 f
对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
# P# H8 L8 y2 F; k* F& \mysql> select conv("a",16,2);  
0 T6 W4 s- F6 C, [0 P) ^  -> '1010'   f1 U2 `0 u$ ?( t: `7 T. H) y
mysql> select conv("6e",18,8);  
2 G! L% {( H, z7 T0 J; r# z  -> '172'
0 W  c5 B. F* V% H/ Emysql> select conv(-17,10,-18);  
' M" y7 ~$ w- O- f# g" b8 L' q! Z/ Y4 W  -> '-h'
2 ]- u$ ]! U0 j" p4 Nmysql> select conv(10+"10"+'10'+0xa,10,10);  % g, i# \% B! P* I1 v9 h  `  y
  -> '40'
* ~* F2 \( b1 A( v2 U   1 @/ {& K/ l/ V, f" U
bin(n)   2 R0 `$ ]0 K+ q# g2 v# p/ ?
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
& B: |, Z; {0 Z! y) R, [mysql> select bin(12);  1 h" u0 r. v: L
  -> '1100' / e' z1 W& M/ U
1 u+ C, G! g# ^0 s* X- J: Y
oct(n)   ) Y4 D( |% w) e) e' T. X7 }) J# u
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
. ^) A' G: f* [' ?, c9 Cmysql> select oct(12);  1 d1 e8 O3 E  ]9 O: `: X
  -> '14'
$ ], ^( O; m; h( t7 T) z: W: K   
$ D. z. ^+ ~; b  l2 u, \9 shex(n)   
% A) t7 c$ x2 Y4 O- L& h$ M- L把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  
1 r+ {1 w# ], S: F9 S+ c6 k* Pmysql> select hex(255);  * E$ n5 E  R0 M2 l9 F
  -> 'ff' 8 q$ ?0 s% |! q+ J+ Z2 X7 q# w
   6 G5 ~3 J1 n. t9 z, \
char(n,...)   % d* X! l) l2 i' b' v
返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   
) D) R0 w9 L- V1 `/ jmysql> select char(77,121,83,81,'76');  
2 q+ i3 A9 p& b& b! @  -> 'mysql' 1 c! i% H0 r& ^5 D
mysql> select char(77,77.3,'77.3');  
- v( X' i% E1 _  d* Q5 k& P% X" R  -> 'mmm'
+ B% m3 t! p: O   
2 O: s8 m+ y' ^2 g/ H2 Uconcat(str1,str2,...)   * p& ]0 T2 P. G1 P) b1 f0 f' \
把参数连成一个长字符串并返回(任何参数是null时返回null)  
4 U- I& b% G5 Z: x. O8 Imysql> select concat('my', 's', 'ql');  
, ^+ L- g" G! v' {+ y  -> 'mysql'
$ _8 I2 Q/ \0 T' dmysql> select concat('my', null, 'ql');  
: `/ v: d) T7 t4 @9 M5 S1 ?, E7 z  -> null
& _5 f. B5 R- {" h/ z: S! J: vmysql> select concat(14.3);  
( K) W4 y+ P' _  -> '14.3'
, ~. Z: ]* |/ t
, z+ l8 p7 h! f; h) Y5 c! l8 n0 j" |length(str)   
, i2 ?9 K% j9 {octet_length(str)  $ T. H5 p$ B2 q/ E
char_length(str)  9 _" O  l% b# h+ Z
character_length(str)  
+ M/ V2 ]  J. W7 _1 y返回字符串str的长度(对于多字节字符char_length仅计算一次)
; }  y/ ^! D6 ^' U: u# Ymysql> select length('text');  
8 z, B5 K8 a2 f) P* O0 J  -> 4  
/ f3 Z9 \3 \0 F# N" Vmysql> select octet_length('text');  
. s- }3 l  o' s/ p3 E  -> 4  8 f# Y% ^& U  f% T% h6 y5 \

/ y& l5 N2 ?! x: a) D, _, R8 V! a# slocate(substr,str)   
! Z- o; \( t. l( u' C* rposition(substr in str)   
* X+ E1 s$ _6 ^& H. ^1 b返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  - I) b0 {2 c, O0 A) M6 `
mysql> select locate('bar', 'foobarbar');  
6 C$ B! ?. ?4 Y7 V7 [  i  -> 4  9 ~  z: Q0 R) y. l* Z
mysql> select locate('xbar', 'foobar');  ; F. u7 W% w  M9 b
  -> 0  ; L8 W' L: ?; A
    " w% N$ n( N8 [% ^! d+ Z
locate(substr,str,pos)
; J  x( I5 y3 K返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
+ D  H" ^% J; G1 _0 Z2 ]* P% E  W- umysql> select locate('bar', 'foobarbar',5);  6 P" Y0 g: _; v( M6 q+ C9 i8 t- P3 y
  -> 7  ' g3 w9 b  B! `- `/ [
2 M1 j; ~/ p: Q$ }1 V
instr(str,substr)  
  o  T! r2 U* `$ o0 r4 I8 B. K* Y返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  : Z: V) v" {# p2 l# ]3 {
mysql> select instr('foobarbar', 'bar');  5 g) K7 q) Z7 l! Q# o0 [4 l/ g7 ]5 u
  -> 4  : L* B2 J8 z$ }* ?2 Y1 z" K4 v
mysql> select instr('xbar', 'foobar');  1 E. k* u! d% B4 [9 s) M) a
  -> 0   
9 G3 g# p; X2 o7 w/ O* P" @
# R( w1 m$ T3 Y, _3 V  nlpad(str,len,padstr)   , ~3 N/ K# t1 v% Q  j+ E) g6 Q: ^
用字符串padstr填补str左端直到字串长度为len并返回  2 S: s, W3 m- K4 X1 Q2 H1 `
mysql> select lpad('hi',4,'??');  
4 a9 b2 q9 t( c4 {( _! P  -> '??hi'
- ^7 l8 r3 G7 V  V' u0 D) b     f; r1 }- n2 X7 ]! L) M1 C
rpad(str,len,padstr)   : _4 I  b) e* N1 K; a2 K
用字符串padstr填补str右端直到字串长度为len并返回  
2 D7 q  Q; m# u3 I& e0 Wmysql> select rpad('hi',5,'?');  
; b' c* Q2 h* L& a+ T' c  -> 'hi???' - Y2 W5 {2 r: [1 I

4 b4 B6 K. j) p/ h9 M/ D7 Fleft(str,len)   
9 h9 L- L0 D% h) M. A8 }; w返回字符串str的左端len个字符  1 y9 J$ r5 l; L1 ], w# ~& l
mysql> select left('foobarbar', 5);  
- J% E( l! Q2 M& `1 V; R  -> 'fooba' 4 _$ i% o$ a) t

7 J( n  d' Y: E' _  _3 dright(str,len)   
( H& a1 Q6 F. H- S" z# Z返回字符串str的右端len个字符   
, T6 j- J" C. S% F: Fmysql> select right('foobarbar', 4);  ) ]& M) s7 f9 Y$ f' r
  -> 'rbar'
* m% J0 S5 U/ c/ y 1 K0 q" n# j& E; v
substring(str,pos,len)   
) c/ }) t! h) o. fsubstring(str from pos for len)   
) e# s* e8 j) d$ |& wmid(str,pos,len)   & u% L7 n! }) c- l3 }6 P, L: F3 \
返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  & b' w7 g3 I" t7 L6 ~
  -> 'ratica' * O5 d! J1 \, c% r% q
8 m6 s; s. |! b$ r1 I
substring(str,pos)   & C0 p9 Z4 n7 U; L& C
substring(str from pos)   
/ d6 w* I  n  j2 b# F4 G2 k# o5 ~返回字符串str的位置pos起的一个子串  " b& t3 k' F) W, B0 s
mysql> select substring('quadratically',5);  
' `' e% ~# Y  r, n; `) B  -> 'ratically'
( ~* D" f" E' M1 e7 Umysql> select substring('foobarbar' from 4);  
5 n: F; O! I# k. a4 Q  -> 'barbar' 5 V4 T( Q3 u) ?
; v+ y% |( L- H& Z
substring_index(str,delim,count)   
5 t+ W/ Y( m! }6 i* ]% U9 q- W- u返回从字符串str的第count个出现的分隔符delim之后的子串5 e6 l- G" @+ q' c
(count为正数时返回左端,否则返回右端子串)  + t* ^: T& |; D; d8 t
mysql> select substring_index('www.mysql.com', '.', 2);  
# m5 _1 X# M4 e$ ]% e2 u$ a9 J  -> 'www.mysql'
3 ^& Y/ G7 R* q0 B8 h# w& |mysql> select substring_index('www.mysql.com', '.', -2);  
/ m. Y4 C3 t, A; A% l1 U7 G7 D1 D4 ]  -> 'mysql.com'
) Y, s- |2 N2 e) Z3 G& g
/ f/ C8 M2 y( D" altrim(str)   
& r; l, [( M3 a6 v7 i/ [% R5 w" X: q返回删除了左空格的字符串str  
; d% D$ q% E! M' Kmysql> select ltrim('  barbar');  0 F5 ]! O0 K% f% h/ \2 i
  -> 'barbar' ! \& i+ K) b5 a4 r6 F& Y
% i* c& s3 v9 h' C5 U/ [# o
rtrim(str)   7 F) U) Z# j$ ^' b
返回删除了右空格的字符串str  
9 ?1 [/ U2 j  U: e5 H6 E0 Hmysql> select rtrim('barbar   ');  
0 k8 X/ t6 W( r* K7 y$ E2 e3 t  -> 'barbar' ( w8 X5 N# l8 H

0 |5 m& V* i/ xtrim([[both | leading | trailing] [remstr] from] str)  
: q2 P9 Y: e4 U& U( x  Q返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
8 ^8 b9 g) M, c) b  z& m6 j8 @mysql> select trim('  bar   ');  + D) [7 @' ?9 \1 }2 O3 C
  -> 'bar'
9 O0 q% o9 `- ^+ v# rmysql> select trim(leading 'x' from 'xxxbarxxx');  
0 s% S% V0 P6 X. S& G7 l7 M& C  -> 'barxxx' & \6 ?8 L+ [: O
mysql> select trim(both 'x' from 'xxxbarxxx');  
$ c& |7 }( X3 g! a# ^  -> 'bar' 3 M, P' m& V7 A+ E% t* g) q% @
mysql> select trim(trailing 'xyz' from 'barxxyz');  
! Z& ~5 U; v7 O  -> 'barx' 2 Q$ x2 C* O  f: O

4 W; ?1 C" t/ A* |' Ssoundex(str)   
7 }9 v1 \1 R& p* I返回str的一个同音字符串(听起来“大致相同”字符串有相同的
0 i8 [$ b* G- F" N* K同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  # e  \* d: b; f, ?+ M( C& J2 C
mysql> select soundex('hello');  8 p/ y4 f  l1 V5 x% q
  -> 'h400' . O' J: y; X$ d9 K6 H* i0 _
mysql> select soundex('quadratically');    S9 h7 u5 o9 y$ Q
  -> 'q36324'   f+ C5 [# E" X
   8 j1 g# w, k5 k5 j' M
space(n)   / c% F* C6 S' J1 _' I0 G6 \
返回由n个空格字符组成的一个字符串  ( g. A. ?7 t1 F0 ?  N5 X" p
mysql> select space(6);  : N4 X& d4 T, v2 @3 r& ~
  -> '      '
3 E# h  S- L* e" n7 j   
9 x$ u- [- B6 o& Z6 Greplace(str,from_str,to_str)   
  Q" W9 t/ V8 U' A" H用字符串to_str替换字符串str中的子串from_str并返回  / T% r* q- u) K$ ]  ?; Z: w
mysql> select replace('www.mysql.com', 'w', 'ww');  ) _& ]8 i  d: O$ n$ \" |5 W
  -> 'wwwwww.mysql.com'
4 {. `3 S# q* n) r  _7 \. u) q' G) _ + N# J  d9 J5 @; f
repeat(str,count)  
" a  N/ H2 [: E9 A4 ]返回由count个字符串str连成的一个字符串(任何参数为null时
) C& Y+ U% W$ I9 G, o  H: H返回null,count<=0时返回一个空字符串)  $ \% O8 ^9 ~% X
mysql> select repeat('mysql', 3);  " m* u; a2 p" [! X( b
  -> 'mysqlmysqlmysql' ! \  r! l  i, ?- w  X
   
4 I, H6 [" B; n% L" w; T# Areverse(str)   / h" s1 ^  U  S- |' G! o
颠倒字符串str的字符顺序并返回  
2 K" J, X* O2 ~6 _6 o- X' lmysql> select reverse('abc');  7 j. n) ?1 ?: N% K8 e( Z
  -> 'cba'
) Q8 i6 s9 O/ j 7 H& R/ \9 s- d& ^  u! Z
insert(str,pos,len,newstr)   4 ^' w- u/ k* Q6 C( U# a# z
把字符串str由位置pos起len个字符长的子串替换为字符串
: V1 |" l+ P0 c8 [) [, Anewstr并返回  . }9 v+ J9 ?* b! {, v. l+ V
mysql> select insert('quadratic', 3, 4, 'what');  & J+ ?: D: ~2 Y6 r1 j# V) \
  -> 'quwhattic' 7 G& w+ X6 U# s& v& g% ^) r
4 w0 t8 ~- v# y4 ^1 q( u! v
elt(n,str1,str2,str3,...)   5 ^( J. ^9 c  D! Z4 d' a" ~8 W9 t
返回第n个字符串(n小于1或大于参数个数返回null)  
5 d$ |% M& E; k5 T+ D+ _6 X  T  R! I' w9 @mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  : R4 K$ E0 m- U  X3 C" H( d
  -> 'ej' ! X$ t& t+ f3 f6 Y- M% k
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  + b; H: e3 ~8 R) l* D% K% q6 G# Y
  -> 'foo' 6 O, {9 I  c* q; V- B

: H/ t1 {$ z6 C3 o! Gfield(str,str1,str2,str3,...)  
, j5 \# }! G% D8 U: A2 V9 H* n返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
7 \6 ^" I0 C7 H  K. k/ Hmysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
1 K: G8 b! S; T'foo');  
1 F0 f3 W1 Z" a  -> 2  
9 J# m* T1 m/ {6 @  {2 cmysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
7 k. y* P! [5 j' I( s" d7 |'foo');  9 @* A9 _7 L5 r
  -> 0  * H- q" I, F2 a5 z* R
) G2 G& b$ N& m7 o# P7 h% Y
find_in_set(str,strlist)   
- @$ T, I5 G) B; Y1 p返回str在字符串集strlist中的序号(任何参数是null则返回
1 H& t+ P8 U/ ^  ?+ p3 y$ G) I+ |null,如果str没找到返回0,参数1包含","时工作异常)  2 @7 [6 t$ ]* p- J
mysql> select find_in_set('b','a,b,c,d');  
4 S2 @& b' \: C! Z' Z0 U$ q8 I. Z  -> 2  ! o, M" k3 y+ v) V. h) d0 T& |, N% g
   4 n" ?1 d* m  R" E1 ?$ K
make_set(bits,str1,str2,...)  " W; b  K( g) x; c; ^/ A% t& [3 b
把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应' w, A9 b9 H3 y; p' M# R
位置的字串选入字串集并返回(null串不添加到结果中)  0 w( S7 A! ?! b( X2 P2 m4 @
mysql> select make_set(1,'a','b','c');  6 _  r3 f5 R) E8 X5 S7 G0 A$ F! a6 k
  -> 'a'
8 q1 L! h5 W, I% d; [+ G) F, @mysql> select make_set(1 | 4,'hello','nice','world');  
; L) S: |% L5 K$ G  -> 'hello,world'
, n: x* Y0 Y( \. U0 Q' Emysql> select make_set(0,'a','b','c');  $ B/ _/ D8 F& E% N5 W5 [( Z: M
  -> '' # U7 S0 |9 g% e. W/ S$ q
1 U7 g' C0 X% \1 M2 e
export_set(bits,on,off,[separator,[number_of_bits]])   
/ ^8 _7 X9 h9 U" h; p按bits排列字符串集,只有当位等于1时插入字串on,否则插入
  o. L  ?1 d  m1 j) f# O+ poff(separator默认值",",number_of_bits参数使用时长度不足补03 ~0 b; i" l2 R" c# v7 q5 R0 p1 {
而过长截断)   # k( k! Z7 P) I( V6 s/ ^
mysql> select export_set(5,'y','n',',',4)  
7 m" Y/ p; k3 p- r7 |! S1 f* c  -> y,n,y,n   & m+ f7 b3 z! |- m& U
& f9 M6 y( u2 @  L0 b6 [' Q% I$ _
lcase(str)  8 B  t) w2 d  J- m
lower(str)   
5 M5 J0 V+ S6 {! H" P; g返回小写的字符串str  
  F; c# b5 T7 I% w; y8 Xmysql> select lcase('quadratically');  $ ^; U  U1 y# A, E$ A9 B* t4 F
  -> 'quadratically'
$ {$ l$ t( C# S, A. ]( ?   
# i% k, C( f, N: Q& ]6 W8 hucase(str)   1 Q, O2 x4 V2 T  R: o. ~
upper(str)  
0 b$ x, J- f! `- L0 @9 u) o返回大写的字符串str  
( n  P# ?6 k  ^- bmysql> select ucase('quadratically');  
& z7 x  J8 Z* v7 T  -> 'quadratically' ( P4 ^. @5 Q& p

4 f+ g7 s" d( q4 j2 }load_file(file_name)   
" `1 U9 n6 R8 ~# J7 a# x* ]读入文件并且作为一个字符串返回文件内容(文件无法找到,路径% L# D) L1 |! P6 c" E* A0 d. I1 r
不完整,没有权限,长度大于max_allowed_packet会返回null)    ~% r" j0 f2 P+ ?
mysql> update table_name set blob_column=load_file8 {( B% _/ i1 V- P$ I
("/tmp/picture") where id=1;  
4 l# _( f7 M* [' O+ V# s
# M. _- @" t0 X# K3 r7 t2、数学函数* D4 n8 D$ X. w' L9 J# n; ~
abs(n)
. I8 a1 t. P& Z7 Z) I9 c6 t3 y返回n的绝对值  
+ P6 Y# f* P9 _  Q; H  N" E7 [& ]5 Amysql> select abs(2);    2 x/ q1 G. |9 V7 ^
  -> 2   
& `! w2 x. L* J9 H! n$ U! Mmysql> select abs(-32);    . m- z; H5 K! ^
  -> 32    3 t  a/ N, L& A4 w9 y
   
  |& l4 c  D8 W( C# T7 G: isign(n)  
' j* [) y- A6 v$ ~2 N3 c" B7 d1 [1 y返回参数的符号(为-1、0或1)  0 z0 y; H/ Q5 y/ F* s
mysql> select sign(-32);   
% f+ d4 e# g9 m6 N  -> -1   
, P) A6 m' y! C, n, u$ [4 j4 Ymysql> select sign(0);    9 Z" X- u: s; c0 M+ Y
  -> 0    , ?, ^- B+ c. ^" g  G+ D
mysql> select sign(234);   
* z: Q, ]" \1 B4 ?0 _, @  -> 1   
& E% i/ N- W8 _. w  v' P4 i6 Q( B% W
* ^- S$ F/ n& X1 ^% {, Umod(n,m)    4 V1 T! J7 q. a( B1 k
取模运算,返回n被m除的余数(同%操作符)   
6 K9 d* v3 Y8 z0 p3 b* @: b) j3 Umysql> select mod(234, 10);    ) y- h8 ~; q% I0 E0 x3 W
  -> 4   
  `) M6 [, M" x/ gmysql> select 234 % 10;   
2 _; i: [! Y- M) {* @/ y  -> 4   
0 \* ]4 m- V, ?# s; D5 j& ?mysql> select mod(29,9);    ) R. v( Y2 E, e) u  I" s
  -> 2   
$ ?9 G$ \* a, O8 x- `6 E) l  B  N 1 U9 @' V2 J8 A% K! E
floor(n)  ; m, J1 @: V9 x, Q8 D8 a
返回不大于n的最大整数值  . J5 h$ \2 S6 D
mysql> select floor(1.23);    + q  s/ d- R" J! y6 q
  -> 1   
4 \7 V! i; G; zmysql> select floor(-1.23);    ! t# Z+ E2 o1 |7 ]9 U( w* X
  -> -2    , M' W0 Q: x" P. B0 c* j6 c" o
. i( _' {4 ~9 _
ceiling(n)  
$ B+ r/ @& n5 H. Q, S% W6 o1 ~返回不小于n的最小整数值  ) I' `# F3 F4 [4 b- Z% G
mysql> select ceiling(1.23);    - u0 A" n4 c( a2 b- k; a
  -> 2    # |  j. j/ V- E/ t' r+ l
mysql> select ceiling(-1.23);   
# w3 w6 B8 v- |. E' F9 K! L  -> -1    2 ~: k$ S, U6 w! L+ Y$ u  h% q
  r2 r. p" G- {3 r9 p3 M* f
round(n,d)  % b) B0 k( A3 H4 {1 M' \1 o- @0 b
返回n的四舍五入值,保留d位小数(d的默认值为0)  # z  |5 V, A- H1 m
mysql> select round(-1.23);   
: ?  ^6 C7 }. f) E# N  -> -1   
" \+ R1 }( g4 j( [5 e% Lmysql> select round(-1.58);   
4 h% \" C0 D% h0 Z  -> -2   
4 p# P7 Y7 w8 w3 fmysql> select round(1.58);    & d: ^. X( @9 E$ v$ p5 ]8 D
  -> 2   
, W: N9 D" g8 R3 W7 E5 i' vmysql> select round(1.298, 1);    - J+ K  Y0 Z) f! B/ @
  -> 1.3    * y# g% `1 t0 v5 Z! }2 \1 ]3 o& U; m
mysql> select round(1.298, 0);    ) @. t4 o" I3 |, a( L: k( Q
  -> 1   
) T5 u5 j+ `& ?4 j" a
! o9 h+ C) B/ G) p" D4 \exp(n)  ' b* Q8 R" ^2 i# X1 }5 w
返回值e的n次方(自然对数的底)  
  q% M0 }7 N2 V5 J" d, Omysql> select exp(2);    1 f. U- m1 }; o9 ?2 X4 ^6 ^
  -> 7.389056   
, M: D/ ^! A+ A+ hmysql> select exp(-2);    7 H0 V0 _/ H& ~3 y" i5 p
  -> 0.135335    ( X5 e( n0 p; ?  t5 F
' D* u3 K- m% G1 e9 Q& ]$ V3 W8 A2 H
log(n)  
# f" j7 J$ q1 e返回n的自然对数  2 G' z+ h7 C# ~4 x4 i/ o6 [
mysql> select log(2);   
/ e2 T' ]' _# ~1 O- N0 q8 z  -> 0.693147   
% ]" p9 c! N# Q% K0 e" J6 Qmysql> select log(-2);   
6 G3 C* y# ~- f8 n  -> null    $ i- }5 l" @7 b9 U: n% O

5 u0 Y) p3 w) e$ g( i& o  Slog10(n)  
. u! p7 i9 R9 s7 |* P返回n以10为底的对数  
7 X( h- e0 G/ S0 gmysql> select log10(2);    3 f( O. \# Z7 X2 U* \7 o4 U
  -> 0.301030   
6 Z7 i7 k1 B: j$ Mmysql> select log10(100);   
6 u( ^6 r! i* p  -> 2.000000   
. [$ b. Q3 i0 J2 |6 ~# |& emysql> select log10(-100);   
1 \8 b, R5 z0 a. m" z' _( A  -> null   
" S/ V3 P  f. v) G 8 L3 j5 A0 T0 D$ {2 K
pow(x,y)   
1 V2 \* f8 E. v2 i/ X6 b4 Vpower(x,y)    3 z# n* U$ W2 P) I& y/ d
 返回值x的y次幂  
2 x8 V* X' s* q$ D- C1 m9 Wmysql> select pow(2,2);      _: f9 f) [& U% K+ @
  -> 4.000000   
* s% Q/ Y. P- V! M# Vmysql> select pow(2,-2);    ) |$ f0 l/ b* k
  -> 0.250000  
$ l( x* n! u4 S1 f0 B% e; E: g/ n/ m
. u! J2 Z, j) q: I4 jsqrt(n)  5 \2 D/ y; n6 H  n3 G' C
 返回非负数n的平方根  
3 f9 C& ^3 e" b7 xmysql> select sqrt(4);   
' D$ {8 c* P! ^2 g; s" k7 l2 l  -> 2.000000    - }3 S9 n% l: Q& T$ w+ h
mysql> select sqrt(20);    , w! Z( n7 Q/ Y+ I2 [, j
  -> 4.472136    ! r$ N1 o, S4 ~5 g! E1 {

' X/ _* s- f, d& Ipi()    ( \' E3 t( G4 @
 返回圆周率   ' S2 b4 Y  z" c
mysql> select pi();   
6 p7 N& L0 B1 B- u& g/ \& U  -> 3.141593    ( G+ M; s2 E' x% v, p# m

2 T" P" x/ M) Q9 ^! n$ x5 jcos(n)  8 |, j' U4 w+ q- _3 S# k! w
 返回n的余弦值  1 h$ F0 ^; z8 k$ f2 R1 h- i" g9 P9 k
mysql> select cos(pi());  6 ?4 Q2 F( V* i+ o2 I1 t
  -> -1.000000    + l3 Q& K# r7 {  K! x
* p9 |& ?  k# o' ]2 k; }
sin(n)  3 E; i) E/ l/ C; ^2 G7 V% z
 返回n的正弦值   & t: B( S4 f4 E) w/ y
mysql> select sin(pi());   
( N7 O6 F/ J9 x4 a  -> 0.000000   
6 C0 w$ T# d2 ?" A% S4 n
9 p1 F& f5 M2 g- K3 K4 Itan(n)  . n) a) i1 j5 ?& I5 _& L; w$ Q
返回n的正切值  
  |- h( n7 z) P* t  O% X3 c. kmysql> select tan(pi()+1);    6 Z: ]/ @- D' [- x2 ?% H& O
  -> 1.557408   
# U  \! ]7 @" k. j0 C ( t& L  x/ Z3 e- W5 P1 u
acos(n)  
5 G; Z1 ^% h8 R8 m% f3 t2 c 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  1 Y2 Q" L% ?6 o% R. w6 u
mysql> select acos(1);   
7 A3 m6 S$ ]6 C, W& h0 V  -> 0.000000    & b9 r/ K: z9 W$ l0 F/ P
mysql> select acos(1.0001);   
7 e. [* N' V% n) w/ k9 F% v  u2 u  -> null   
& I8 M" G' @  Xmysql> select acos(0);    ( b/ k- y6 ?# N7 e* j& h
  -> 1.570796   
# j1 ?" H; k# @$ Z1 ^% R
- t/ d$ ?; D7 c! Gasin(n)  
) x7 ?) E/ l, U0 R+ ^返回n反正弦值  
/ C; {3 W) U7 e7 J8 K7 emysql> select asin(0.2);    ( i& d: d, ~: M+ P0 w
  -> 0.201358   
8 z) G  n2 v7 `7 hmysql> select asin('foo');    2 F) w  `% X2 ^5 i
  -> 0.000000    0 E/ A8 `9 ]  p1 o

7 M% e" u& r$ t2 C8 Q4 Ratan(n)  
3 E; c2 D" v% S: J返回n的反正切值  9 y1 q* |. Z0 D; J5 v
mysql> select atan(2);   
6 [6 X1 F) y0 r" G/ C7 V  -> 1.107149   
: b' r0 y+ n. x( q/ O. Zmysql> select atan(-2);    ( K& L4 V; L% g0 v. N5 g
  -> -1.107149    5 S& s; b# B, c6 U3 b: B
atan2(x,y)    7 r5 l3 j& m- Y3 o- `
 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  2 b' v! I) N0 }0 \- a, m
mysql> select atan(-2,2);    , u7 z) }# D1 \( I
  -> -0.785398   
  ?% Z4 _. F" ~: g: o6 Umysql> select atan(pi(),0);   
! C% Z6 T4 R; G% B; N& L7 A8 {  -> 1.570796   
* ^3 U6 ^2 }. c# D" {4 d
! f7 p0 g+ F. s1 K) I) \cot(n)  
+ K# Z% R1 _  C# X* H; z返回x的余切  + K+ l1 R* m  |$ P
mysql> select cot(12);   
* r1 y9 O  M. w6 \  -> -1.57267341      [3 f+ a2 `& o' u5 a# O. M& ~8 L
mysql> select cot(0);   
! V' |7 b' T8 H* g8 [, H, E7 D7 Z- i+ H  -> null   
5 P6 E: ^- |0 f. e3 o. z
  p3 d6 z. C1 u+ ]* L+ Krand()  5 _" ^2 u' ]. K
rand(n)    
) y2 \* R: ^+ J2 P3 L返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值) / ~+ @* I! T, X. Z) u" y6 k+ J2 Q
4 g' }+ l  B: `% t2 |4 c9 n" Y
mysql> select rand();   
" e, |8 T6 q- F) E- q" r% F  -> 0.5925    % a5 d+ W& r% Z& M* f
mysql> select rand(20);    - [" @/ P& b! ?
  -> 0.1811    . a" K  P" Q' `) C
mysql> select rand(20);   
3 D6 ?" s1 d. ]0 {; Y' Z  -> 0.1811   
$ A- w7 W3 k+ P6 ^) G3 w3 L5 Rmysql> select rand();   
' _+ u; @3 M- L: ]- ?7 G  -> 0.2079   
1 p6 Y+ Q- ~6 }/ A6 h- ]mysql> select rand();   
, ~' Z( @( X3 A( i  -> 0.7888   
9 H1 |) A8 k- D; M4 j1 N9 n- W 4 h  t2 i4 k5 V
degrees(n)  2 f/ c# A) w! i6 z) @0 m
把n从弧度变换为角度并返回  
: R7 n! `2 ]2 Q0 ~6 t6 Imysql> select degrees(pi());   
# w, R2 m& {1 I  -> 180.000000   
+ u' i6 l& u! a$ q  \$ O/ G5 J 7 v" s# [, E. ^- A$ [
radians(n) ! E# q( l. {2 c' x
把n从角度变换为弧度并返回   
2 ^0 ^* r! [& p5 E4 _" [9 ]! b* hmysql> select radians(90);   
0 `& X" ^* j8 {4 l  -> 1.570796    ' U$ V# E6 {* A6 _2 {1 p

0 {" P& a' Y3 T3 z, G0 ?8 gtruncate(n,d)   
/ l3 w5 J. e& `/ u! P: B" {# o保留数字n的d位小数并返回  - n4 y8 o3 W; i7 S% X
mysql> select truncate(1.223,1);    4 k1 B" n* {, L1 p- M. @+ Z
  -> 1.2    4 j& @" p5 [# o+ R  V* P) K
mysql> select truncate(1.999,1);    % }  i7 B5 N6 [+ d5 O. d7 _
  -> 1.9   
9 ~# a& T1 m0 x- {) \mysql> select truncate(1.999,0);    1 U! j: u4 i& f
  -> 1    # x& g8 V5 j: `3 R1 p

* \9 h3 v, G# d0 @$ R/ k! x+ @least(x,y,...)   
9 S) F! x. b# @& T返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
7 c$ j$ q+ C* l: z  H. k' j& Emysql> select least(2,0);   
+ d7 H' e+ C" G4 a5 P1 ~% R  -> 0    : b& l8 A1 n3 o
mysql> select least(34.0,3.0,5.0,767.0);   
% S  j0 m( G9 i  s5 C" @  -> 3.0   
8 U* |0 R* p  h7 Nmysql> select least("b","a","c");    0 n3 i- `) l7 Y: j4 E1 s5 W! O. Y6 h" A
  -> "a"    . L; P5 o  v" F, Q. F; k
  o4 h- @$ c5 e
greatest(x,y,...)    2 }6 q3 f0 k; Q: B, K: q
返回最大值(其余同least())  ; t3 R5 ^# R1 _. d0 m  k9 ], w
mysql> select greatest(2,0);    1 b+ @( m  k# k# |* T
  -> 2   
/ J0 _( F. I% Amysql> select greatest(34.0,3.0,5.0,767.0);    ' Z; R7 P: N2 F) ?3 [8 v
  -> 767.0   
+ Q1 }, z4 D+ S% k5 xmysql> select greatest("b","a","c");    3 r- d$ g' A+ j, {0 t7 u
  -> "c"     . z  ]4 x9 g: }. \0 i
4 v+ v" P& Y( |- P" C9 j
3、时期时间函数
7 U8 Z% k( w* m7 L" o; Z# n+ Ndayofweek(date)   
6 L7 l4 G" o/ A返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
- H2 @9 V0 n+ H. ^" T7 Q/ vmysql> select dayofweek('1998-02-03');   
3 X: x/ b. g4 X: Y6 F  -> 3   
3 e' q4 H7 F9 T& G" t- v3 ^ ! r. y% b' b( r1 X: y
weekday(date)   
& P$ R2 h" v1 k. L' `返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 $ H) U) Y# Z1 g2 L
  " B& x5 a/ |7 O( D% O- M
mysql> select weekday('1997-10-04 22:23:00');   
' G3 d" U/ ^( h& l7 K( o2 b  -> 5   
  o6 n. F( s* o0 _& o/ M  ^mysql> select weekday('1997-11-05');   
2 Y1 y9 x4 g. O  -> 2    + r: l' h9 l3 t4 j, c
7 `5 o$ }. i; c, K9 L7 K: E9 ~& A
dayofmonth(date)    
8 @# {7 Y4 O/ E返回date是一月中的第几日(在1到31范围内)   
! T" f* H6 \+ D9 F+ O; j9 L* p- ?: Gmysql> select dayofmonth('1998-02-03');   
6 Y5 t2 g+ J) x7 U  -> 3    , f+ k6 `4 \* e
1 ^; V: m( `  j+ Z
dayofyear(date)   
5 [5 g% K1 n& C- x% `$ {8 q返回date是一年中的第几日(在1到366范围内)    ; t  K! y. z) B# n/ n2 M
mysql> select dayofyear('1998-02-03');   
$ o: H4 s3 R( t" s% {& ~  -> 34   
) a. K" Z& T# D2 }  ] * U$ N; w9 [3 J7 E
month(date)   
9 ]+ ]( R& i& y! Q7 {" [返回date中的月份数值    9 O" F0 w5 i5 Z$ @8 R
mysql> select month('1998-02-03');    + `, s& m' a5 L
  -> 2    % l% U1 b' N+ Y. z
6 A6 b2 R8 {0 b- }" E5 @- _
dayname(date)    & o  J( i, c4 _: p" C' v
返回date是星期几(按英文名返回)  3 s9 B2 s/ i1 @# w0 S
mysql> select dayname("1998-02-05");   
1 ]& I, z8 U7 M  -> 'thursday'    2 t& G3 ^' r$ p; m4 I! q

8 D% d2 j: b9 z" t& Bmonthname(date)    " j! _4 d( D! _1 x0 k8 d: _
返回date是几月(按英文名返回)    N8 B" W7 ?* F0 y
mysql> select monthname("1998-02-05");   
: e- B) y0 F' S  ]% ], L  -> 'february'    2 R* n9 k! h& N" [0 ^

/ d, Z5 g+ N& T3 i/ D  P" B5 N) X- I1 Bquarter(date)    ) ]/ }! c, w0 Q. t7 I& T
返回date是一年的第几个季度    0 k. P( U" L5 d+ k8 I( K
mysql> select quarter('98-04-01');    ! C; K+ x0 ~5 V5 e) ]
  -> 2   
$ B2 c, W6 X4 i/ h# N6 I
0 y  Z% d, {$ i3 x) K$ k, Lweek(date,first)   . I# r- S, _: y/ ~
返回date是一年的第几周(first默认值0,first取值1表示周一是
0 v8 W( M& L; D3 F: P周的开始,0从周日开始)  ) W% p9 s0 Y# G: b/ l. J$ o* I6 Z
mysql> select week('1998-02-20');    - ~! E% n+ v2 H( c, p) \
  -> 7   
* X" a& T2 ?+ g% N- M5 Gmysql> select week('1998-02-20',0);   
# x; t  m$ }. d  W: c3 D3 Z5 _  -> 7   
6 {$ h0 B6 n8 L0 B* V- L$ o4 @mysql> select week('1998-02-20',1);   
3 R. R& u2 n( ~1 \  -> 8   
& j5 c( q* |: N3 T; `6 M ! {  J. K" Z. G. k' q, L% f
year(date)   
7 |% o4 S9 `; u  f) u返回date的年份(范围在1000到9999)   
9 a- s0 T: E" _mysql> select year('98-02-03');    ! n) C( A1 C4 }# [; B2 d
  -> 1998    2 F4 N& @1 H2 [) ^) u2 _4 K
1 a" m& U: V/ ~
hour(time)    * q; g9 A. x# l) A$ \
返回time的小时数(范围是0到23)   
; W. H- A; K) I7 e/ f$ J: Hmysql> select hour('10:05:03');    ! [! L( q5 i. h, s
  -> 10   
. ]7 [& n% `3 G: J9 | ) [( Y8 E: _5 Y( f
minute(time)    ) ^+ ^  I9 l+ u6 F/ S
返回time的分钟数(范围是0到59)   
7 r9 O* v2 r4 b" h$ zmysql> select minute('98-02-03 10:05:03');    0 r# E, d  N$ `2 _! W
  -> 5   
0 T0 y. s) y6 h; G) A' m2 @
5 i: U$ D! O6 M: e4 g) z5 Osecond(time)    
! [* H) d1 b1 f- W9 r* \+ y返回time的秒数(范围是0到59)   
+ ?5 B6 i" T* l/ g4 |# S9 r! vmysql> select second('10:05:03');    ' x$ ?/ u% R$ T; y3 K- N) }7 i
  -> 3   
# r7 T3 [. I1 h5 B   s2 m& L9 `& R; ]- {
period_add(p,n)    2 h' y( h! S7 ^9 ^' I
增加n个月到时期p并返回(p的格式yymm或yyyymm)    ; p7 n2 L8 a( S
mysql> select period_add(9801,2);   
5 K$ B  k* l8 _4 l/ K  -> 199803    ) j& m4 x0 S/ A7 q+ c, _! \7 g
5 M$ t% z* r# H3 V: R4 a6 S
period_diff(p1,p2)   
  R# s- v. L. j返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  " K3 c; k; v  [; H8 V$ H
mysql> select period_diff(9802,199703);   
6 v0 F: k. {) j  -> 11   
, {2 q' a7 B! H) c( E9 m2 p
# {" ~) n& Z% m' ~8 W# I- p2 M* Mdate_add(date,interval expr type)  
! |9 ]3 k! T" K% m7 ?4 kdate_sub(date,interval expr type)   
  a. B4 @8 m0 c2 ^6 H) cadddate(date,interval expr type)   
9 r( ?7 g" `/ ~: u; \4 Lsubdate(date,interval expr type)  
6 Z8 I. f7 ]8 T; e! n对日期时间进行加减法运算  ) R0 N, F) e+ ~$ O# a
(adddate()和subdate()是date_add()和date_sub()的同义词,也+ K) ~6 l: _7 d1 P+ K+ x
可以用运算符+和-而不是函数  
  ^3 ]6 [' m& i7 h. o( f/ Kdate是一个datetime或date值,expr对date进行加减法的一个表
: u) E, R2 y8 x" R5 {  s4 R# z2 _0 M7 f达式字符串type指明表达式expr应该如何被解释  / Z5 G2 O* Y  [
 [type值 含义 期望的expr格式]:  
  P5 t$ J1 o6 M6 ?0 W) f second 秒 seconds    $ i% x4 q' d2 S; B* N9 [5 k
 minute 分钟 minutes   
! k, o: _- ?8 F1 {2 b hour 时间 hours   
* N8 F" u% O5 s  x# f day 天 days   
( r' m1 `. [+ ~* [ month 月 months    9 d' x% m; S% _1 P
 year 年 years    : V" F4 F4 W* R2 T2 l. F! q
 minute_second 分钟和秒 "minutes:seconds"    ' t6 x" T6 p: v- Q- {1 T
 hour_minute 小时和分钟 "hours:minutes"   
/ \' U: L+ p' J/ I: O6 u9 V, P# `4 s4 u day_hour 天和小时 "days hours"   
8 [- H. ^6 A" W% l year_month 年和月 "years-months"    3 r) _0 k# ~7 u: I5 Q8 }  ]1 `( [  h
 hour_second 小时, 分钟, "hours:minutes:seconds"    , ]2 u5 t' {; B1 R4 P/ \6 j
 day_minute 天, 小时, 分钟 "days hours:minutes"    + o9 |5 [9 V6 `7 V3 q. f. @
 day_second 天, 小时, 分钟, 秒 "days' G0 K7 o8 l+ I+ x1 ^8 Q
hours:minutes:seconds"
; P- b& a+ L" ?; _: N% V expr中允许任何标点做分隔符,如果所有是date值时结果是一个5 N* I) M: t* |! A3 v5 d1 Y
date值,否则结果是一个datetime值)  % Q, L" u: Y# S& r2 y5 H
 如果type关键词不完整,则mysql从右端取值,day_second因为缺  D) x- B$ |) s8 M& m4 W8 v- }% W
少小时分钟等于minute_second)  
  N7 D9 l- B& o6 X# H 如果增加month、year_month或year,天数大于结果月份的最大天
7 m0 u. q+ p; s- @2 M) v数则使用最大天数)   
4 B( @- `. b5 @# ~$ w4 B7 Vmysql> select "1997-12-31 23:59:59" + interval 1 second;  / j2 l  P( |2 w4 _. z# S) s

% a+ a6 D" i" }/ M; w  z  -> 1998-01-01 00:00:00    1 v% P- u' g1 U* E
mysql> select interval 1 day + "1997-12-31";   
# q% b( Q  A; k' f6 F  -> 1998-01-01      G, F. n4 r5 \" y# b. \7 F; S% y
mysql> select "1998-01-01" - interval 1 second;    2 R* A  q$ j& S) v. n5 r1 u
  -> 1997-12-31 23:59:59   
! z7 ~- r/ Z' h, K) Fmysql> select date_add("1997-12-31 23:59:59",interval 1
# B& W  Q3 E! C  N% B* k0 |9 S$ {second);   
9 ]5 A" b/ c3 s3 k. \+ X( j  -> 1998-01-01 00:00:00   
6 X& q* \/ P) R$ Cmysql> select date_add("1997-12-31 23:59:59",interval 1
" v# V. |  U! n! g4 a# ^# U! rday);    9 C. J( a% s9 n* V
  -> 1998-01-01 23:59:59      d5 `: T0 d+ Z8 y
mysql> select date_add("1997-12-31 23:59:59",interval
" x( s0 V0 T& I  H/ `( d' ^. d"1:1" minute_second);   
0 {8 @5 }6 k0 \) O2 x4 x  -> 1998-01-01 00:01:00   
( V# @3 C- \7 E# I. J9 Hmysql> select date_sub("1998-01-01 00:00:00",interval "15 `- ~2 B/ g: g$ I% ]/ u
1:1:1" day_second);   
/ w& Q4 k* e+ x, j' \1 ^  -> 1997-12-30 22:58:59   
6 j  L8 |6 C8 z7 omysql> select date_add("1998-01-01 00:00:00", interval "-1
* G6 R7 A  z/ L/ R  S10" day_hour);  " U7 R8 ]+ p* C6 \) R: y
  -> 1997-12-30 14:00:00   
* Z' f7 i' X9 c, P+ I3 _mysql> select date_sub("1998-01-02", interval 31 day);    ! H( l) r& h, }! n
  -> 1997-12-02   
2 X0 s' |! s% u7 N% Umysql> select extract(year from "1999-07-02");    2 ^% [, a! |2 l
  -> 1999    # s! c* Z- |7 b3 O
mysql> select extract(year_month from "1999-07-02
3 P" U+ x5 H' W01:02:03");   
3 R* b. K  O' |: @0 k3 d  -> 199907    - q+ \6 ~$ o" S/ A7 \
mysql> select extract(day_minute from "1999-07-02
) [5 X8 a) Y' ]  G) `* o! v01:02:03");    ( ^0 A  E5 w/ M& ]( ^
  -> 20102   
+ _% K% q' }* g7 e - _% c" v" c1 \9 f; A& d
to_days(date)    $ v: I: x" h# e, h( }! h/ Q
返回日期date是西元0年至今多少天(不计算1582年以前)  / j; ~+ ~" T$ J9 ^
mysql> select to_days(950501);   
+ j( Z% U# v& z  h$ f  -> 728779   
& w+ w$ a6 `5 N! S4 Wmysql> select to_days('1997-10-07');    % ?! R( h2 r) y0 c/ ~
  -> 729669    + B& \$ \) a6 w; ]8 k+ ~

2 K, i' ^# u. Kfrom_days(n)   
# F6 g! t' ]3 E/ [ 给出西元0年至今多少天返回date值(不计算1582年以前)   
# C- u+ M( g& X9 I( O6 [mysql> select from_days(729669);    # Z  w" t% n0 v/ u2 V
  -> '1997-10-07'   
: U) H6 L- P- E: {) K 3 J  y, {: Q7 J6 |6 c3 U
date_format(date,format)    7 a+ @& E% X5 e  N6 A
 根据format字符串格式化date值  
( @$ `* M1 l& J" w1 T$ ^2 b, K (在format字符串中可用标志符:  6 F* }$ r$ l& k/ e. N4 G1 j
 %m 月名字(january……december)    5 e$ j4 }" `9 ]' ^# X* F+ [( f
 %w 星期名字(sunday……saturday)   
: T& D' R0 z5 c# T2 Y$ t %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)   
# k- C" T3 `) S' t/ X% f, a- I9 y %y 年, 数字, 4 位    - r( H! i" e. p) X4 f0 x+ v2 ~7 w% h
 %y 年, 数字, 2 位    ; W( k, }3 }" Y! d+ Z0 q
 %a 缩写的星期名字(sun……sat)   
( _. Q1 P9 J# x( C0 m. b& z$ D %d 月份中的天数, 数字(00……31)    & q3 S5 V4 y3 T$ G) w, \5 @( }, J
 %e 月份中的天数, 数字(0……31)   
0 u4 M1 C3 m! f %m 月, 数字(01……12)    * p2 h8 _" q/ _; w. q
 %c 月, 数字(1……12)   
1 {) @3 \) H2 u; x% f$ X5 b %b 缩写的月份名字(jan……dec)   
, z# I$ ]: }+ l4 n6 f %j 一年中的天数(001……366)   
2 t5 v; j  F; e# R  p1 H" W! e( o %h 小时(00……23)   
# k* g$ J$ m2 }* v/ C& `6 ^4 N& L! J %k 小时(0……23)   
& N+ K. j) X1 r* F5 L" S %h 小时(01……12)   
! o. {1 N) n- \ %i 小时(01……12)    % j& e; S, w' W1 G
 %l 小时(1……12)   
& }) u" f; V8 F; o %i 分钟, 数字(00……59)    5 q9 w" G* T3 D
 %r 时间,12 小时(hh:mm:ss [ap]m)   
1 t% Q% H: p# w* F: c %t 时间,24 小时(hh:mm:ss)   
) B7 F0 f6 S3 t' |/ T8 M1 \1 c %s 秒(00……59)   
, ^0 F! n, t' }/ P2 { %s 秒(00……59)   
. n6 c" g  q; W! k- h! I" ` %p am或pm   
- T/ n4 `9 j$ k %w 一个星期中的天数(0=sunday ……6=saturday )    5 ^! r. u! F9 h8 S9 Z
 %u 星期(0……52), 这里星期天是星期的第一天    0 u" @$ n( q' E3 C0 N, Y
 %u 星期(0……52), 这里星期一是星期的第一天   
, i; D( y# i0 M5 ]5 J' Q %% 字符% )  
$ X' p' v1 ?# emysql> select date_format('1997-10-04 22:23:00','%w %m %- T  ^8 J# `2 f0 y! X5 V
y');   
( C0 g7 m( D4 l  -> 'saturday october 1997'   
) ?* h' o' i% Amysql> select date_format('1997-10-04 22:23:00','%h:%i:%
  S8 t& i7 {9 ss');    7 Z! W  F& c) K4 `. n! a. h. V
  -> '22:23:00'    8 w8 R# T; f: r9 n6 c9 @# ^
mysql> select date_format('1997-10-04 22:23:00','%d %y %a
  C+ e, t. {$ i%d %m %b %j');   
0 @% k3 |" Y/ c/ @7 s  -> '4th 97 sat 04 10 oct 277'    - a. A6 O: P4 S' k2 M: I  t1 e
mysql> select date_format('1997-10-04 22:23:00','%h %k %i; T, i6 A) n7 Q' Z+ H6 h1 w6 m
%r %t %s %w');    ' u6 Q: a) x3 P+ o
  -> '22 22 10 10:23:00 pm 22:23:00 00 6'      i9 j; z2 p* B; T/ d) v7 F' Q/ B

# g2 _, C" b$ m8 s& wtime_format(time,format)  1 e3 S' z' x5 W) W2 F
 和date_format()类似,但time_format只处理小时、分钟和秒(其
0 R; }. b9 p0 ]5 T; n8 C" Y余符号产生一个null值或0)  0 _: v1 T7 K, V0 ]7 U* h/ V

4 s$ t9 k& Y3 h7 l( b$ fcurdate()     
5 n" ~/ F) K  [( U6 n( c& B) [/ x, jcurrent_date()  
  D  m4 s0 b+ z: S& z8 J 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
9 z4 N8 b! V* C" k4 P: `, Z处上下文是字符串或数字)    : q& `8 u' g$ l, Y0 |, o
mysql> select curdate();   
9 X4 N& X/ J! `, V3 p' z  -> '1997-12-15'   
. o5 Q* C, l; Omysql> select curdate() + 0;    + l4 w% d" F. S) L2 l7 r
  -> 19971215    ! c, j) `* k" h2 T$ _

& f) ~. J" N. g/ jcurtime()    ' ~+ J/ [2 n, @  c, C8 q
current_time()  
8 J7 a4 P' e' x 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
  ?* c# s/ l! q4 r下文是字符串或数字)      
  H' V, {* K* [7 Q( e& d7 ~mysql> select curtime();    0 w! r- v' g, C/ D! \+ n# c
  -> '23:50:26'    2 U, a) a( T: E2 ?$ T
mysql> select curtime() + 0;   
  h2 o, P' M6 j0 C  G  -> 235026   
' T' o; R8 p& ^5 A" V( |( Z
- ]& P- _* Z$ ~1 Znow()    
. N  x7 [- S- \/ Bsysdate()    . ^. y4 D, }0 e1 g1 o5 {) h
current_timestamp()  
% F2 {8 W" v9 r) Z4 }( a 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期7 w% @" N- E! {0 z8 i8 D
时间(根据返回值所处上下文是字符串或数字)     
# i" m1 n* @8 Qmysql> select now();    ; d! Y5 e9 ^, v. M, b) G5 t
  -> '1997-12-15 23:50:26'    & |5 ^  t+ R8 v' s- B/ O# R, ?! h
mysql> select now() + 0;    5 T& [1 S) b2 I8 V' D$ C' w
  -> 19971215235026    # n  m+ j" k* ~6 F. s* E) x1 F5 m
' P; `; j) Y4 y; d& v  k8 x2 o
unix_timestamp()    / H# W% |( P7 }( W
unix_timestamp(date)    $ B7 S1 C" K! o$ N4 b/ _
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
1 l/ L0 T$ a$ I1 E2 Y1 j# C数,date默认值为当前时间)  
* F* I/ x. F4 m$ z  }mysql> select unix_timestamp();    8 w" E" I* s# C( Q
  -> 882226357    ! S! V' l; t/ V5 o
mysql> select unix_timestamp('1997-10-04 22:23:00');    * r  ^  D% n  m' ]1 A2 H
  -> 875996580   
. W* l. B8 |$ y8 f1 F/ P
4 J0 f$ W& }% J9 ?4 r% Qfrom_unixtime(unix_timestamp)   
% Q/ r0 {  F6 x0 @以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的  n$ g* Q2 W& B/ V, T- l6 _
值(根据返回值所处上下文是字符串或数字)     
, g9 b" _1 g/ ?: C  Jmysql> select from_unixtime(875996580);      C1 k1 p3 B: J2 I7 C" ~' {" o
  -> '1997-10-04 22:23:00'    ; f. X7 m  K6 l1 i# R
mysql> select from_unixtime(875996580) + 0;   
+ v( e1 m7 ?' B; K* ?  -> 19971004222300   
% M0 f7 n+ r& d+ p4 H# p
* V  k- W/ g( {* x: }from_unixtime(unix_timestamp,format)    
4 a! f0 p0 k- l# Y/ \0 n8 I8 H以format字符串格式返回时间戳的值  / a  Y( B. m) a  v2 V0 K5 F
mysql> select from_unixtime(unix_timestamp(),'%y %d %m %* s2 O1 q2 B9 F. `# @/ u7 h
h:%i:%s %x');    ) z% T* Y, B% ^1 r1 ?& ]
  -> '1997 23rd december 03:43:30 x'    ) X- Y# T' {& ?" q
( S, G3 l& M# U4 ~  w9 B9 J2 J- v
sec_to_time(seconds)    ' o, k  y- S! v: M' d0 I3 H6 e" C
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     - e3 e+ V: j' {& _
mysql> select sec_to_time(2378);   
8 r1 K7 X) I+ s) T- O  -> '00:39:38'   
4 A* g  B$ W7 Y1 ?0 Cmysql> select sec_to_time(2378) + 0;    8 `5 D, J' N$ A' r. c
  -> 3938    7 s% l( U  M4 a; {  E% d* X

9 _# F5 \! R& g8 s! ^$ e1 Xtime_to_sec(time)    . ^  V8 e- B' w9 t
返回time值有多少秒    - s- v, B' A: y9 C5 o7 s9 |
mysql> select time_to_sec('22:23:00');   
" P2 s  B$ N# C% E  C3 ^  -> 80580    1 E0 \, u9 L+ B, H
mysql> select time_to_sec('00:39:38');   
& P/ J( c4 w7 l3 F2 R$ w  -> 2378 % }* Y7 m( Y1 u4 H

/ g- H6 y  v' I1 P7 p  S转换函数
+ G( a% p% Y4 I) v  A5 s2 ycast$ \! r1 M* H% v: m
用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]$ E  l6 b' f0 f, {( {$ d( Q
实例:select cast(a as unsigned) as b from cardserver where order by b desc;
9 @0 z4 O; Z. dconvert:% f' d: Z0 P( Y& }5 @
用法:convert(字段,数据类型)5 R7 e3 P3 P( A+ A( B
实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
- K) w" L: ^% \0 F; [" b- o
回复

使用道具 举报

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

本版积分规则

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