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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数2 e+ w' d4 V7 y# Q) c7 t  Z
ascii(str)   
: h" y3 `) {5 s6 M6 [1 |# ~返回字符串str的第一个字符的ascii值(str是空串时返回0)  / h! [) f3 g* l8 X/ `& @
mysql> select ascii('2');  ( u' N) T2 j$ ]/ l
  -> 50  
9 p/ {# V5 w8 e' \mysql> select ascii(2);  
9 T) g6 E% A5 A2 P  -> 50  , I) w) Q0 I" F
mysql> select ascii('dete');  . w: ~2 b' Y; P+ r
  -> 100
% M8 E2 f) P- d* |. V
ord(str)   
5 t: j- D7 r8 H如果字符串str句首是单字节返回与ascii()函数返回的相同值。
( x# \( s  M3 B" z/ H  v6 ? , `9 m+ `" M, _' M" q3 [1 V
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  1 j# |; s( W' e) Y2 t: d1 o# u
mysql> select ord('2');  ; E8 q5 C8 C0 K  x
  -> 50  $ G; ^2 q( b7 t5 c
   % P- U! p1 N/ v- P: C
conv(n,from_base,to_base)   8 _/ Y! {$ r; \7 g2 B6 \2 T
对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  + D  T$ L  @/ o7 n
mysql> select conv("a",16,2);  
$ N6 H, k' x; R  -> '1010'
4 i! t8 i3 S7 e0 u) L4 Y# ^# `mysql> select conv("6e",18,8);  
, G5 e) \1 q6 F2 b! \; ^% u0 [7 W: L  -> '172' & K" V; P% C. \/ I3 D, O) s
mysql> select conv(-17,10,-18);  
3 v9 n6 {4 x, J  -> '-h' 2 A5 @! m+ B4 e6 o6 m6 A8 o
mysql> select conv(10+"10"+'10'+0xa,10,10);  + h6 k( T3 W( j# r9 J
  -> '40'
& |9 s7 U# D# F1 ]   
1 {# i2 l% W( y" Gbin(n)   5 ]* G1 N5 V8 q# s5 A
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
' y  [( |9 k2 m& ~- xmysql> select bin(12);  - f- a2 z& E( g
  -> '1100'
; f7 A% g$ `; ^1 h+ E4 Z
+ H, i7 T; N8 L: t7 o5 l8 Loct(n)   
" w2 g( O: m5 x' x$ x把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
& d3 u, h$ A$ K4 Dmysql> select oct(12);  7 u) |/ M4 N% r7 c
  -> '14' 9 G- U( S6 K0 x
   
8 r) @4 A! G. ?2 n' ^hex(n)   $ X  h$ ?9 u, J8 q  Z
把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  
; Q4 D0 E) K8 o1 Vmysql> select hex(255);  
! p2 {) a( f6 n3 I  -> 'ff'   u6 w% [! ?. F( d/ S
   - {) \1 w. O0 a- B2 m
char(n,...)   
2 E! n' Y. f9 M0 D0 A& ]# n返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   0 U) [% P4 i& K1 m/ \% w  C! e
mysql> select char(77,121,83,81,'76');  5 a+ H4 ~+ ]9 n- b
  -> 'mysql' 2 f1 j- x9 d7 H' p* V0 k
mysql> select char(77,77.3,'77.3');  * q9 w- K, b1 V& Z; i
  -> 'mmm' 7 _1 h1 q% d1 G- l
   
/ h# ?& T7 o+ ]. p2 y" `concat(str1,str2,...)  
% \3 `" S* @( k( X7 Q; ^- [把参数连成一个长字符串并返回(任何参数是null时返回null)  * y' [! H) n, b3 a6 H$ C# V
mysql> select concat('my', 's', 'ql');  
1 \3 X: E! L' {/ _8 r  -> 'mysql'
! g& c& Y; c/ t$ l! B: c* ]mysql> select concat('my', null, 'ql');  0 h$ t- `* Q! n
  -> null / s& j+ Y$ y. v0 v
mysql> select concat(14.3);  
  ]2 }. e+ @8 X! d1 Y9 ]  -> '14.3' ' a  B. |) {) [2 ]2 x0 Y
2 o% \0 G+ d4 B! K1 r
length(str)   $ p9 x& P) C' V  m5 f9 N" r5 l7 [
octet_length(str)  
$ W4 H! |2 p& J8 r3 ~: Kchar_length(str)  + K6 c( n; u: ~: W
character_length(str)  8 G; N# E; W# J$ ~6 e
返回字符串str的长度(对于多字节字符char_length仅计算一次)' O- X; e3 M7 s6 p0 Y2 t
mysql> select length('text');  
* h* ]1 e, O' V. a. [  -> 4  & T' L3 p) Y$ [
mysql> select octet_length('text');  
: x3 @& b, ~: y4 K9 }  -> 4  
( Y. q# r6 Q5 X& V0 a2 c5 r. H
; ]+ ?4 W$ v  M8 E3 ?4 J: ~, {locate(substr,str)   : `4 ^, D/ i3 \- P" `
position(substr in str)   
  I6 U. @" I- E3 P8 z1 O返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
- s1 M4 c: _! y& @" Vmysql> select locate('bar', 'foobarbar');  : P3 R5 Q+ h, I9 |4 }" k
  -> 4  
) }$ d; E. T+ R$ V, e* L5 K% Imysql> select locate('xbar', 'foobar');  
. L# O7 D' b3 H: g& }5 c  -> 0    i% V! y; k% K1 C5 q, G
   
# O# y# U, j) f5 Z6 P$ [locate(substr,str,pos)
2 ]$ `: S  H' y2 I  p返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
* a$ Q$ [5 n5 x- i! Omysql> select locate('bar', 'foobarbar',5);  ( e; b3 F$ K5 O+ h( J- S
  -> 7  
4 h  n4 H" |+ R8 X' B/ ^! H, V9 h
8 N+ Y) _8 T% |$ H3 kinstr(str,substr)   2 Z8 w- ]* g9 \$ P# O
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  ; W5 g2 a( j/ k; A6 W* I1 X0 s
mysql> select instr('foobarbar', 'bar');  . k' p' O5 o0 M& X
  -> 4  
8 `, X/ T) @( }+ H9 P' b% G2 Hmysql> select instr('xbar', 'foobar');  ) J* u6 H( F) c' b0 H% J
  -> 0   ) Q( `, O% v9 X; {6 U
* d0 S! B0 U2 `- X' A8 W0 V
lpad(str,len,padstr)     t1 b, _/ L- j: F; g: e
用字符串padstr填补str左端直到字串长度为len并返回  
4 }3 B! x  x+ p  y  x& L6 ymysql> select lpad('hi',4,'??');  
; u- T. w) f5 t8 z  -> '??hi' . B3 R& q+ S4 V% \/ o' Q8 \
   " X" W6 V2 \# }: k* j* a5 i
rpad(str,len,padstr)   
8 i: V, n/ `" n, X& w, X用字符串padstr填补str右端直到字串长度为len并返回  ) ^# _0 R0 X: d' A' Q( q* \
mysql> select rpad('hi',5,'?');  ; e  n: `9 z( `/ e8 o) A; w- S/ A  s
  -> 'hi???'
1 Z) z8 N) l# X, A$ Q ; I9 h; w# z9 ]% B9 P6 X" p
left(str,len)   
# a# j8 Q6 K% h/ X" ^返回字符串str的左端len个字符  5 s; e! o7 R/ A0 ?
mysql> select left('foobarbar', 5);  0 l+ O& N  B; L& h5 L- M) x- x8 k
  -> 'fooba' / l' p: o" T7 c! M% r

9 L2 f9 ]9 O" D5 w* }( mright(str,len)   2 O( [" p% n* B3 d: x
返回字符串str的右端len个字符   3 D! B+ w1 {8 x6 w1 p8 a7 [
mysql> select right('foobarbar', 4);  
4 r9 ^' o- z1 ~& x* i. [! ]  -> 'rbar' + l: H- v( u: c; P' U: G

( j( M% @. Y+ hsubstring(str,pos,len)   . q! v' P  M6 I: E5 q" n' q
substring(str from pos for len)   . A& j1 o" r$ l
mid(str,pos,len)   
, r: J6 S% n6 M返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
4 W, K! U6 e2 [  -> 'ratica'
" Z5 ?! m( [5 e# O
2 O* ?7 Q3 U& ^7 qsubstring(str,pos)   
. @9 H: i$ W. B7 m* X, `substring(str from pos)   & S: v7 i0 G. C; U9 f$ i1 Q4 S$ y( r# |
返回字符串str的位置pos起的一个子串  # w$ e: ?  q1 O3 @$ J4 |
mysql> select substring('quadratically',5);  # S+ F. h8 _2 z& U% Z
  -> 'ratically'
6 u" j4 o1 Y1 u2 q; S* Wmysql> select substring('foobarbar' from 4);  2 T6 ~7 Q& Q7 d6 {8 r$ Y& c2 K
  -> 'barbar'
, E$ l% T' ^# ] # g; L7 K( N9 ]: U7 c! g: \
substring_index(str,delim,count)   : V" f: d+ [2 O1 t2 v
返回从字符串str的第count个出现的分隔符delim之后的子串) ]* e9 O( H( h5 x- K
(count为正数时返回左端,否则返回右端子串)  + D  A. E% `! ^' H* o2 Z
mysql> select substring_index('www.mysql.com', '.', 2);  
7 c. n1 T* s' R1 d9 C# ^1 I  -> 'www.mysql'
, R* |, ]' _* ~$ bmysql> select substring_index('www.mysql.com', '.', -2);  . }, x5 q: g3 r# i( W" ^3 w0 ?$ Y
  -> 'mysql.com' 0 y6 L$ `% Y- C. t" j

8 ]6 c: d3 ~- Y- {ltrim(str)   
& ]4 L7 Y2 ?9 [! p" T3 |. J返回删除了左空格的字符串str  
! a0 F. O) g9 q8 m! z) d2 v. cmysql> select ltrim('  barbar');  
- w) \0 g4 k! k* I9 V% q% K  -> 'barbar' 9 u0 W7 P1 S% {  P- U3 H* E- B- [) m
0 a& l9 x5 u$ D$ n, u+ m3 g5 [
rtrim(str)   
' V4 p/ a9 N4 M7 ]返回删除了右空格的字符串str  
) D$ ?" \, f2 z3 S1 g- Dmysql> select rtrim('barbar   ');  2 F. m& I/ c! ?, M2 Y8 v
  -> 'barbar' # u+ @5 Q0 j. F' c, L3 G; p7 m

2 {; y5 L# Q" [7 v) btrim([[both | leading | trailing] [remstr] from] str)   $ k" s! e* q+ x  e1 r
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
; }$ J/ s; b/ w5 I7 Cmysql> select trim('  bar   ');  
; f- s# K* j+ q9 g" \' j  G# L  -> 'bar' 5 y1 O4 J8 v% P6 b4 n# {
mysql> select trim(leading 'x' from 'xxxbarxxx');  
" t* j1 K. }  U  h- E  -> 'barxxx'
8 m' K: H3 V4 p) B* |mysql> select trim(both 'x' from 'xxxbarxxx');  
  f0 w  I1 b$ L# T$ u  -> 'bar' 5 R! M' ^, I, z
mysql> select trim(trailing 'xyz' from 'barxxyz');  
. c& e9 L3 L$ D6 d- r- I7 F  -> 'barx' # _8 U' @" v8 V5 J
, z9 i& D3 A3 j7 k% {
soundex(str)   
$ l* M. D- \) \9 J$ \' `" l4 x返回str的一个同音字符串(听起来“大致相同”字符串有相同的
8 [" a/ J0 G6 C9 b' M同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  9 T; C$ K; u# K: A/ l8 a. V$ i# X/ B
mysql> select soundex('hello');  
. I) q2 b: Q& _! [- R5 m% l  -> 'h400'
) f% G) J9 W. y9 I1 }mysql> select soundex('quadratically');  
, R3 E2 \) J3 v  -> 'q36324' ! e5 c/ B; V4 L
   
5 w: k. l' V$ L7 P2 bspace(n)   ; j" o% Y! [, l% ~! Y- R# H
返回由n个空格字符组成的一个字符串  4 ], z6 A. l2 \; `6 m
mysql> select space(6);  
- E+ Z6 y7 Z  _3 s* ^$ D) ]  -> '      ' ( [. ]9 j% Q7 x6 O% g( F
   
5 \3 U2 l6 x' zreplace(str,from_str,to_str)   2 i3 C3 L2 k/ `7 y$ Q/ L
用字符串to_str替换字符串str中的子串from_str并返回  - w0 C3 P8 ?* [! S2 L& Y
mysql> select replace('www.mysql.com', 'w', 'ww');  4 k0 U, H7 l, B1 v2 D6 p6 x
  -> 'wwwwww.mysql.com'
$ D# f! g* o; S; f3 i$ P( p* C 3 g- t- b( f& K/ s! t. f
repeat(str,count)   ! f1 [5 s# }( U% A* O& N2 H. h
返回由count个字符串str连成的一个字符串(任何参数为null时
- I( {+ K3 ^3 ]# {9 z' Y返回null,count<=0时返回一个空字符串)  7 \  _$ M: l/ ]4 T
mysql> select repeat('mysql', 3);  ) j1 l; v( U8 R' a& i
  -> 'mysqlmysqlmysql' : ~3 j$ [. ?5 g2 I2 Q2 S8 k2 c& ?
   & Z1 D2 v+ j/ p7 v" |0 T; _3 C* R
reverse(str)   / m. }% Y1 s! C! p
颠倒字符串str的字符顺序并返回  1 {, y" O  S- @5 ]( Z
mysql> select reverse('abc');  
! K/ v" k6 q! a: c  -> 'cba'   x( M  h$ E" M4 W2 ?
3 C9 |% M3 y; l- ^1 |2 Q
insert(str,pos,len,newstr)   ) d; G& z9 ^; I) F* H
把字符串str由位置pos起len个字符长的子串替换为字符串+ z+ I, R1 G6 |: `% {
newstr并返回  
/ M; m  V& v7 e: }3 G* e' k2 ]mysql> select insert('quadratic', 3, 4, 'what');  
% v  p6 u& V- \) ~1 Y. _  -> 'quwhattic'
+ M7 k1 S) z, Q  Y. s) X3 F
0 q9 J6 m2 m# v% felt(n,str1,str2,str3,...)   
7 l- ~" E5 R6 f( |返回第n个字符串(n小于1或大于参数个数返回null)  
. p4 N* r2 y. z2 `/ P) L6 lmysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  # l4 O* ]6 s! I5 N% t* e
  -> 'ej'
$ u6 \5 \8 W& Pmysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  
' h9 y5 r+ q! _( K2 H* @' U9 O  -> 'foo'
9 `% \, R( V! p3 E 5 G- H+ e+ k) ?7 Z8 m
field(str,str1,str2,str3,...)  
) R* c" V9 ]  k, `& p: k# M返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
5 p3 c3 ]' K, J4 V6 ?mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
0 K6 S; }' h3 N8 G& r'foo');  1 G9 c& |# M4 h+ K0 p
  -> 2  
% z. s3 y( X2 }. R* a$ hmysql> select field('fo', 'hej', 'ej', 'heja', 'hej',4 a' }4 u; v8 y- k' S! J8 e
'foo');  # _' j3 A4 d; F- T+ v
  -> 0  2 |2 I; X4 q2 [' V% D

% \6 a& [$ W" Z& f+ B" Xfind_in_set(str,strlist)   
( a' B+ Y: t- t4 n返回str在字符串集strlist中的序号(任何参数是null则返回' W4 i- M# Z: V  \$ _9 }' T- t
null,如果str没找到返回0,参数1包含","时工作异常)  : @" {/ R% ]" v/ c
mysql> select find_in_set('b','a,b,c,d');  
" G3 _, m% O+ t  -> 2    j" r3 J4 H0 V3 D; M: M5 H$ P: J
   
2 E* l) n2 e: a1 t& umake_set(bits,str1,str2,...)  ( |' Y+ Q3 D/ b; w, ?4 f
把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
3 C+ Q2 }1 V; b9 F位置的字串选入字串集并返回(null串不添加到结果中)  6 z7 o& S  {8 y5 t: K
mysql> select make_set(1,'a','b','c');  
  ?, f" b! B" \# r2 K  -> 'a' ! R. j3 O! M, w+ X) P3 ?  C
mysql> select make_set(1 | 4,'hello','nice','world');  
& Q0 E/ v2 D* b  -> 'hello,world' 6 M3 D6 j, M3 e4 U
mysql> select make_set(0,'a','b','c');  " E# r4 r* `, r1 Y' j
  -> ''
# }: Y1 i5 W4 q( W7 [ # ]1 X7 ]7 Z) r7 Y7 B
export_set(bits,on,off,[separator,[number_of_bits]])   7 ?4 P0 `! d8 ^& m$ {6 O
按bits排列字符串集,只有当位等于1时插入字串on,否则插入
' {* Z) J  T  f' {; ?: y1 {off(separator默认值",",number_of_bits参数使用时长度不足补0
6 v3 K) u4 o, h2 y! U; t: g& Y5 p/ W7 V而过长截断)   
4 e+ C3 {2 w" X. L5 ~' f( jmysql> select export_set(5,'y','n',',',4)  6 X* e" H6 x1 M5 {8 y" P
  -> y,n,y,n   , d6 z3 k, z: k9 J- O0 T4 z# u. L( q
* }1 `' o1 r/ `% g4 {
lcase(str)  
) [7 x6 g. T3 \% w6 Elower(str)   ( I# H( k% {; d. {% t7 s
返回小写的字符串str  
3 r0 Q$ ^% ?% ]  d' ^, Zmysql> select lcase('quadratically');  
) r; ^2 h: C$ O6 V4 k  -> 'quadratically'
3 f5 R. s# ^1 Y   6 \, a3 }1 H& m$ Z
ucase(str)   $ L  T- A: c. E/ e' M  d6 ~
upper(str)   " T" B  B7 j& R- ?4 g9 {" S
返回大写的字符串str  
! Q) A& C2 _  m  emysql> select ucase('quadratically');  8 Y' V& W) P2 w: Q) a! u% G6 q7 b7 D
  -> 'quadratically' + i4 {3 d- e) j$ k' \9 \

4 D! g% }' N' ^! c) A) Gload_file(file_name)   5 A8 M" {0 T1 v2 s6 Q1 F8 a$ _
读入文件并且作为一个字符串返回文件内容(文件无法找到,路径# s& E. @  Y5 {$ {
不完整,没有权限,长度大于max_allowed_packet会返回null)  ( d" l* H0 e8 V0 G
mysql> update table_name set blob_column=load_file
" b* r9 {) F( |. b$ H("/tmp/picture") where id=1;  4 L6 p$ H" a% P; Z. d2 D

$ K' _6 G4 i% G9 U' B3 @2、数学函数6 V( w" r- l* [7 q, M- k* \
abs(n)   b: u0 X# w0 F3 |: N& q
返回n的绝对值  
/ w/ O4 [7 C, C2 {mysql> select abs(2);    6 g9 P* Y0 {. i6 n2 N1 B
  -> 2    " e) l1 x% {' U4 ^. b7 r0 _
mysql> select abs(-32);   
4 D9 j2 l! ^/ G" A* [) T3 S0 ^  -> 32   
! J7 |5 X0 @( w" ?- x' j   
0 [9 r+ I- R3 P  A# Lsign(n)  7 f! g) c, A/ b  T! R5 K
返回参数的符号(为-1、0或1)  , y" o. n/ D$ q9 T" j
mysql> select sign(-32);    , p! ^& b, v* ^% ~3 z* f
  -> -1   
- K, P6 ~: O, z- D7 A' a2 Y% umysql> select sign(0);    ( H# `8 I7 X& Q- J# }
  -> 0   
4 v8 J7 Y- p0 V+ Z* m( Q, x& d% emysql> select sign(234);    * N+ H" F2 S: W1 S4 s, E
  -> 1      Q0 f, c; b/ F8 w6 m: m
5 f# M% \% {6 Z
mod(n,m)   
  Y7 A  a0 @: m取模运算,返回n被m除的余数(同%操作符)   
; K5 v- p' O" i& R: `3 amysql> select mod(234, 10);    7 x) {% x' R1 I/ j, {% M
  -> 4    - t" j/ l0 g1 o( j" X8 c
mysql> select 234 % 10;    , g8 W) R1 D: Y; I. }) Z* f
  -> 4   
% t. I1 l5 w1 z$ J7 M* }' t: g# Jmysql> select mod(29,9);    ) o' Q; S9 l% P
  -> 2   
5 n. r8 M' ~* X 0 ]9 u8 Q6 d, \3 t# S9 U% a
floor(n)  
. T! Y2 S* H: z7 S0 X返回不大于n的最大整数值  
6 j1 @3 T: U( @' O& Q8 _5 nmysql> select floor(1.23);    & o* }& v6 r8 b, W8 X
  -> 1   
3 Z' y1 l5 z: T" T: Wmysql> select floor(-1.23);    & w6 G- O! a7 l; u" l. x: R8 ?
  -> -2   
4 ?. S) W, Q1 W
, z- D. h) ^- Y# pceiling(n)  
, \+ V( t7 N9 J+ X0 K3 \0 g返回不小于n的最小整数值  
  z8 Z  i$ m# \' ]8 Amysql> select ceiling(1.23);   
% q! x" c- y$ v* |  -> 2   
4 h  ]. o) t; q( hmysql> select ceiling(-1.23);   
' z; F9 A3 r' \7 f, p9 K  -> -1   
& _! R/ H# t1 f  g" Y % ]$ O+ s1 N$ n# M9 k" L. P5 m
round(n,d)  8 ]! E3 T/ }4 g- f5 m2 \
返回n的四舍五入值,保留d位小数(d的默认值为0)  
7 J  S2 @! o/ I6 }: Ymysql> select round(-1.23);    ( ^' K- R/ y4 l+ G, l" ?. W: H4 @
  -> -1   
( Y' \- S) Y  N0 z$ W  ]9 Fmysql> select round(-1.58);   
- J% F! i4 r) Q: Z  -> -2   
: h( \" ]$ b$ _+ w& X9 x/ G  Jmysql> select round(1.58);   
8 g  X- y) G9 y' q# n  -> 2   
# \, A' ^- B& l) q8 Z7 T/ s7 `mysql> select round(1.298, 1);   
* m( _4 |4 K3 P  [" J; j9 g  -> 1.3    4 U$ b1 S1 ~( e# Q6 `; ^1 c
mysql> select round(1.298, 0);    , t, e0 L* E1 d1 U7 @
  -> 1   
3 Q! `4 x# p; X+ d  a; }, z/ T7 m7 f 3 I5 B1 }3 z+ ?
exp(n)  
( T  ^6 N- \" C: ]; r, |' U返回值e的n次方(自然对数的底)  
+ N, b0 t8 B9 D, ^- Emysql> select exp(2);    : K/ h& h! ^7 y& _! G
  -> 7.389056    , A: V3 d- h2 v
mysql> select exp(-2);   
1 k) h5 }1 c" |  -> 0.135335   
. Y5 Z: L; `9 S- f& F' e * @/ Z, d: `; ]* u- r- ?4 w( \# S
log(n)  . e1 z4 Q+ Q% @5 _0 Y1 o
返回n的自然对数  - e: l* Q- p( G9 ]+ }
mysql> select log(2);   
9 S- W) j5 n7 r; x+ m  -> 0.693147    ! S! a6 ~# _# l" Z5 W
mysql> select log(-2);    % {! C' I  t: ^) n8 E. r9 m' X
  -> null   
) q5 _0 g3 z4 S' r
* {* B3 Z2 v! z3 U0 ~% Y2 B3 Alog10(n)  
' x* r/ K3 Z2 @4 k+ o返回n以10为底的对数  
) {  m( [0 m; M( Y; _  H6 N" imysql> select log10(2);    8 R1 S  l% m, R; H" T; a4 h
  -> 0.301030    5 {& P3 o5 A; g! N0 A+ L
mysql> select log10(100);   
/ w, h7 i! S# s  -> 2.000000    ! y- x3 Z+ @! u  A) O4 N
mysql> select log10(-100);    ; [2 x( {& A7 v# Y+ Z* h# V
  -> null   
6 ~& V8 s8 m5 k" g
% D+ E  K( t6 p: E4 Ypow(x,y)    9 B# F3 }* c. f: N6 }! j
power(x,y)    % m7 ]0 Z0 _" B: K5 f' U' z
 返回值x的y次幂  3 p& t) t9 `& q- t7 ~
mysql> select pow(2,2);   
# s4 N. ~' ~4 w  A  -> 4.000000    7 i8 z9 z5 |* o$ ]% |
mysql> select pow(2,-2);   
! N% J% n! }! }: T0 Z' ~( K" F, N  -> 0.250000  
' @) n  \) Q; e9 z
. q7 N' v6 P. q# n9 Msqrt(n)  . X, ?6 o. U+ `9 x3 }, U' |
 返回非负数n的平方根  $ D. P; O# j6 m$ K9 \5 w7 A$ O
mysql> select sqrt(4);      O9 B% U+ M2 |' J
  -> 2.000000   
  W& u/ F5 l7 G2 i) zmysql> select sqrt(20);    ; i6 r" \7 L2 g7 A
  -> 4.472136   
1 z% T' I3 }, W 9 J4 x' k! Y+ ~7 i% {# h2 Z
pi()   
; u8 n! @& Y7 Z4 m: Y 返回圆周率   
' Z1 w5 x8 a+ n4 {8 V3 Cmysql> select pi();    % d! ?' t( _" e+ @/ X' _
  -> 3.141593      ^7 ^+ ]2 k( l2 X2 e2 i. u

9 `1 A) k  Q  [) X0 w" P0 g8 W! p% Scos(n)  6 P! k1 ~/ l; w% z
 返回n的余弦值  1 ~: H, Y8 Z, [$ b8 k
mysql> select cos(pi());  
* q1 a( l0 `) E$ C4 A& B2 A5 ?  -> -1.000000   
+ g& `, X/ t, f. a ( f2 v3 {" f% {
sin(n)  - p1 Z% W6 k. z5 z  A/ z5 C4 x
 返回n的正弦值   
9 X9 {2 [) A( Qmysql> select sin(pi());   
! y) v- d; l+ S. X  -> 0.000000   
: ?1 \# N4 n! j8 I
) b3 g: N/ {2 X* Jtan(n)  * ~* p; @! ?0 _. U5 `
返回n的正切值  7 c' m% W8 w. B" x) H6 u, O3 U
mysql> select tan(pi()+1);   
3 x/ V$ x, i- {  -> 1.557408   
$ _' |1 |6 j3 o : ~) K4 ^5 A5 ]( F3 [3 W) h! |8 _
acos(n)  
4 w  L, }9 p, K5 z) S 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  
+ U# o9 m, P6 h- K  Gmysql> select acos(1);    & S6 j. G. w0 p( ?
  -> 0.000000   
* ^- F% S" M% |7 G" a+ d% `mysql> select acos(1.0001);    ' Q2 G1 J9 e8 X& a$ E$ S
  -> null    $ u+ J  v8 G; _% a% t) e
mysql> select acos(0);    % x5 x' d1 x6 j' e- W% q
  -> 1.570796    . @: U; o& P' ?$ v' q
  P6 g+ e' \- d, K- X
asin(n)  
* }7 m0 ^3 m; v5 R返回n反正弦值  
% B) ^- j9 N: W1 r' {5 [* r0 {$ Mmysql> select asin(0.2);    % X4 K0 `4 P1 ], g9 D
  -> 0.201358    / `" I( T; O' T% A
mysql> select asin('foo');   
9 F6 b) e3 c" [  -> 0.000000    + {. f5 @1 s, u/ y  [" m3 y6 w
! t2 X5 ]" S/ U- n7 G
atan(n)  & o5 ?  y; ^, S6 Z+ H
返回n的反正切值  
: i! F3 `  `+ s8 P/ nmysql> select atan(2);   
; t$ G6 V5 D  J  -> 1.107149   
. [" |  K' N9 \0 @1 s- e# G% Qmysql> select atan(-2);   
. G/ N0 u9 i6 X4 G) r  -> -1.107149    5 S; \  ?! L: x6 ~4 s4 @" A
atan2(x,y)      _, A- r' @8 C, K8 Y  R; t
 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  ( N8 ]! ?2 d+ @( ?- t
mysql> select atan(-2,2);   
$ u! ?  v& ~  x! r! s6 ]2 F/ o! I  -> -0.785398   
5 U: x, N1 O, @' m( l8 @& X7 p+ ~mysql> select atan(pi(),0);   
9 ^" w. w  Y" s; Q3 \3 P7 P  z  -> 1.570796    $ T7 u9 E2 }, Q
( O- `4 X& c5 I  B- X
cot(n)  8 f/ q* A' x2 f' G3 u$ D" ]
返回x的余切  5 \1 J  c' ?$ y9 F% j5 R
mysql> select cot(12);    0 e3 r% C4 X& i6 d( E' k& S( {
  -> -1.57267341    ; Z$ s2 r* r$ [3 E! G, w
mysql> select cot(0);    3 w; Y/ e: O) {) V9 P/ ~
  -> null    # e9 t* M  f% t0 _& Z
8 J4 |5 C7 s5 N* L
rand()  / m0 }8 `' E/ \/ a
rand(n)    4 U8 m$ \. {" f; i
返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
; V, `2 T2 v" Z+ C8 m0 T ( V- K# F7 G* U* T3 i& x
mysql> select rand();   
' g) y) J; `; h- \% P+ h# `; }  -> 0.5925    ! c. b2 |0 r- k0 S
mysql> select rand(20);   
; R7 g: t% v4 v8 g. {; y* `+ K' z, {  -> 0.1811    % q; t: i7 R7 J1 Y+ J( ?2 _
mysql> select rand(20);   
& \! z) d/ ^) S+ m5 p  -> 0.1811   
  C  ~# @- U& m( Pmysql> select rand();   
7 V* q8 g) I  Q  -> 0.2079    ) |) b( k. @1 n
mysql> select rand();    6 d/ S8 x' Q# \+ a
  -> 0.7888    $ @5 L  q' g. a
7 h9 I9 i; p3 D
degrees(n)  
9 E/ x# Y# o$ Y1 U5 n9 M7 P+ L# o把n从弧度变换为角度并返回  5 ?' F! F9 t4 y- r8 J! r
mysql> select degrees(pi());   
6 f) x! o2 [, H( E$ w. G  -> 180.000000    % g9 U1 v/ B3 T& W9 M

& g4 V3 X" c" l* M& W) I3 Zradians(n)
, I( f3 I0 n9 ?把n从角度变换为弧度并返回   ; \. e% ^+ J0 q7 O+ k
mysql> select radians(90);    & |  w2 u. S, ~4 u3 S" I2 u* t
  -> 1.570796    " H6 C. a4 @0 L$ k
; ^# O' K6 a& M2 A6 u
truncate(n,d)    2 V. W- x# f1 E1 Z1 P- K7 O
保留数字n的d位小数并返回  . }( ]; b9 U; n; b
mysql> select truncate(1.223,1);   
! e5 y$ A& q' z: q3 z  -> 1.2    # d2 D6 Q; g" h9 `/ r/ S
mysql> select truncate(1.999,1);   
$ l+ Z# f% y; I2 e! J! `9 g  -> 1.9    % i. D% X/ b% [4 @; Z7 u7 r4 z
mysql> select truncate(1.999,0);    ) M: H8 N4 C' ?7 B' j
  -> 1   
3 o& M% w) w( P( X) }; L, s3 P. p $ A  o; q# S, q$ i% C! b7 ^5 f- P' B/ K
least(x,y,...)   
# V+ N" O5 v: T返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
/ ~+ {9 [. Y* R( K1 |mysql> select least(2,0);   
: z0 r' D, T$ N) n' ~* B/ C  h  -> 0   
7 t% J- U/ J  Q3 ]7 b- wmysql> select least(34.0,3.0,5.0,767.0);   
  A: V2 i$ k# E5 N  -> 3.0    . ]: C% j1 ?2 t8 ?( H9 V0 l3 n9 Y' L$ u
mysql> select least("b","a","c");   
5 s5 @$ Y5 v* R0 p% m  -> "a"    & B4 L( i' @6 Q( P

6 @+ p9 S3 ~- b6 Pgreatest(x,y,...)   
# C' T4 H; Y& T返回最大值(其余同least())  
6 r( K6 U6 V& ?9 [7 Umysql> select greatest(2,0);    / b) b* n5 V' d4 Z
  -> 2   
( z: X6 K" O2 x* R& i. o0 smysql> select greatest(34.0,3.0,5.0,767.0);    6 L5 ?1 a! E. V, Q, m
  -> 767.0   
; V' l  _( N3 }5 `+ V4 [9 Tmysql> select greatest("b","a","c");   
$ ]% I5 b  I7 o  A% U6 P9 L  -> "c"     . _- K/ W+ X! W3 D/ `' J  j# n6 S9 ]8 C
& r3 {8 }6 ^; K
3、时期时间函数 ) o1 C9 X8 a5 B9 q1 i
dayofweek(date)   
4 V- Z& F& ~/ v1 J返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  5 V, b; I- W7 v( n  n* r, s
mysql> select dayofweek('1998-02-03');    , Q6 W& u: T3 D5 `" g
  -> 3    0 s+ M5 ~3 u8 u( _7 s# F( m  o

( `7 z  b' N9 i8 x  Dweekday(date)   
, D$ n& X( l' l. t. r2 {返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 6 n, i, w- l) g
  
, H0 K! X; U% T/ i; K0 cmysql> select weekday('1997-10-04 22:23:00');   
/ q6 [- Z7 I( s# p. N" W  -> 5   
4 F- u7 [4 e6 K3 l. p$ qmysql> select weekday('1997-11-05');    ; M! H7 g* U& q
  -> 2   
& g- X' l* v# |3 K( P0 t , S8 c* t: M' d2 F9 t
dayofmonth(date)    
9 }' J: R, F2 W+ I返回date是一月中的第几日(在1到31范围内)    * D: K7 W% a8 i; m
mysql> select dayofmonth('1998-02-03');   
$ f2 x0 s! h0 B- o! c  -> 3    2 d& J9 h5 T  ~$ g& ]; c: |$ ~- B- w! ]# c

- y; l6 M! Z7 y3 W% x$ [dayofyear(date)   
- |# f7 w8 v0 j- i& y6 I返回date是一年中的第几日(在1到366范围内)    ( S6 K/ d3 n: K$ A( w$ s
mysql> select dayofyear('1998-02-03');   
3 [) n, J8 w& f  -> 34   
" k" }. Z0 u; I0 j& w* Q ' n3 l3 W+ e+ z, M$ R) N4 K
month(date)   
1 O) P( F  Z1 Q! L( O1 C% p8 U( `6 A返回date中的月份数值    , r+ v* a( ]* S  t! P
mysql> select month('1998-02-03');    8 [9 ]( c6 X2 F
  -> 2    ( b) P3 Z% q1 u; Q

5 H( n/ D4 P/ F$ xdayname(date)    1 Y6 R% K8 w" g& L( J* f
返回date是星期几(按英文名返回)  
3 s3 t+ n' F9 T, W" A6 zmysql> select dayname("1998-02-05");    0 S) u& i* X  w
  -> 'thursday'   
* T0 E$ C% l  r* J0 A  ?
- w9 v/ g' l) j3 H7 ^6 k$ bmonthname(date)    , J4 B5 P: E. \
返回date是几月(按英文名返回)  
& U7 G/ ?2 n6 p# m0 _2 F) x- Xmysql> select monthname("1998-02-05");    ; n0 b; R$ Y0 [. J
  -> 'february'   
! f% }4 F8 S3 X! T! z
$ @1 m( L% u9 ]# O2 ?quarter(date)   
2 |( u& `* ^$ ^( V- |返回date是一年的第几个季度   
% n% X) u4 }% f. M! I! d8 ^' nmysql> select quarter('98-04-01');   
! Z+ S1 Q$ A# _, O  -> 2    : Q. v5 n& y  ]6 d* Z

* }0 }" P9 `4 lweek(date,first)   
/ Y1 U+ F' T, T: I/ U返回date是一年的第几周(first默认值0,first取值1表示周一是+ i. X$ q7 R/ y. O; f- r
周的开始,0从周日开始)    C: a. N' `! C8 |3 ^
mysql> select week('1998-02-20');    " v( P$ A0 G! w2 z# m! n1 ~
  -> 7    5 A* f# B& s4 J3 o. i
mysql> select week('1998-02-20',0);   
6 ^/ F% L/ {3 o6 q  -> 7   
. X0 T4 W7 q, Q+ tmysql> select week('1998-02-20',1);    # m- p  N& N* @
  -> 8    3 v! B8 G, n5 C3 ~
' P, S( W7 I" I. D
year(date)    ; g4 F/ g" ]. O
返回date的年份(范围在1000到9999)   
+ F! m& C) H' ~5 f9 e& Xmysql> select year('98-02-03');   
" h1 U+ @6 r! W3 k% J, e7 a- w  -> 1998   
- C- s, t. a- l* }/ D % R# |& G& q+ o: M3 t, D# R
hour(time)    
1 w. t. w1 l6 A* b  A返回time的小时数(范围是0到23)   ) ?" @2 M8 r1 Q9 X3 I5 ]: F
mysql> select hour('10:05:03');   
1 W; `. Z$ ^! N  -> 10      ?; C8 w2 a# }# k3 d

8 r, l) ?+ B" D/ `+ q! nminute(time)   
2 B# e( C. e6 G4 @: r/ t/ Y返回time的分钟数(范围是0到59)    % |& n  r+ J( ^1 ^% j
mysql> select minute('98-02-03 10:05:03');   
* U6 C4 J6 y7 K) q* }$ m3 K  -> 5    - I1 v+ Y4 a1 g! x
# h* \- b' o- ]
second(time)    
4 z/ g- D/ X9 V5 L返回time的秒数(范围是0到59)   - `# r9 T0 ^  k+ {# X
mysql> select second('10:05:03');    - |7 K) A& `$ M" P8 j0 C! p) J
  -> 3   
4 X  X) ~6 G2 b' n $ G' M- J; R+ d5 T2 L8 ]9 l$ P
period_add(p,n)   
3 ^( \, `' W: u5 h增加n个月到时期p并返回(p的格式yymm或yyyymm)    : M3 q% g8 b% M9 ~; P9 ]
mysql> select period_add(9801,2);   
! M% u1 p+ A6 {$ `2 q  -> 199803   
6 w4 l" ^  R3 j! E# |
5 X& f, y5 N+ n; t- a: n9 e+ T( }period_diff(p1,p2)   
. V% _  E4 q" k( A7 M4 F, f返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  : f3 a/ {* Z: a, Y/ Y8 K
mysql> select period_diff(9802,199703);    & R3 ?% \: N' k$ ]: C" F, i0 C5 h/ t
  -> 11   
- }+ Y1 \0 K/ c8 J' U
2 P! J" j  S5 ^0 }* |date_add(date,interval expr type)  3 e- ]2 Y3 s* P
date_sub(date,interval expr type)    9 n: X& J0 @4 J5 E+ R, h
adddate(date,interval expr type)    / X9 G* U# L3 M- O/ s2 U
subdate(date,interval expr type)  # K% R; V2 u5 t6 ]3 u
对日期时间进行加减法运算  1 t2 o% N0 B: ~3 u
(adddate()和subdate()是date_add()和date_sub()的同义词,也/ o: G; ^7 _! @9 [" D# i
可以用运算符+和-而不是函数  $ B- R+ F9 J' }: m  _8 T
date是一个datetime或date值,expr对date进行加减法的一个表
$ y) v1 C, d7 p+ u% {( |达式字符串type指明表达式expr应该如何被解释  
$ ]* @8 Q4 s& T8 i7 q [type值 含义 期望的expr格式]:  ' a  G) ^5 `2 |5 q: p2 o
 second 秒 seconds    ) C  v9 B" p! I8 Z0 U( T
 minute 分钟 minutes    * H, R/ G2 h2 ?% |: x! S
 hour 时间 hours   
. D6 q) v! @9 f day 天 days    $ u1 |" c) l7 B
 month 月 months   
! b, Y* i% W! w3 W7 z year 年 years    6 {, u. z4 O( L2 n2 p
 minute_second 分钟和秒 "minutes:seconds"   
: c1 z- X0 @: i4 n+ s" p$ T hour_minute 小时和分钟 "hours:minutes"   
% ~3 ?& h  n0 ~4 H  C* S$ ]/ ?. _# k/ P day_hour 天和小时 "days hours"   
4 K) }( P/ E5 s$ b2 h+ A year_month 年和月 "years-months"    - g, ?- h+ G8 [  X2 Q" b3 X6 ]; b
 hour_second 小时, 分钟, "hours:minutes:seconds"   
6 S3 U. E9 p" N' y9 t day_minute 天, 小时, 分钟 "days hours:minutes"    7 ~' [5 U5 _% w- |( a" @' w
 day_second 天, 小时, 分钟, 秒 "days
' F. t' q% I1 g# M! l% phours:minutes:seconds" 1 B4 S2 o+ T- G) F; x- S
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个
) u% v9 x+ M, U: G2 l4 Pdate值,否则结果是一个datetime值)  
% b* Z% y2 X, P  J  H$ _. [ 如果type关键词不完整,则mysql从右端取值,day_second因为缺
0 n  }& w5 ^9 v* m, G少小时分钟等于minute_second)  % J$ J8 P  D) _& F7 i! T
 如果增加month、year_month或year,天数大于结果月份的最大天
0 W3 {' d% {# I  u3 r5 e数则使用最大天数)   
7 r9 a7 p4 g2 n7 Pmysql> select "1997-12-31 23:59:59" + interval 1 second;  
0 T" H) _/ p, U$ Q. M
* h5 X( H6 o7 \: f9 B: h+ z- `1 A  -> 1998-01-01 00:00:00   
& M  }+ q  {0 omysql> select interval 1 day + "1997-12-31";   
' k1 T9 }' F% b5 x  -> 1998-01-01    % Y- L' d4 J# v* ]1 D
mysql> select "1998-01-01" - interval 1 second;   
) t  T# i$ p9 ~: e8 ^  -> 1997-12-31 23:59:59   
7 p# g0 {1 H( S: H/ ^$ Jmysql> select date_add("1997-12-31 23:59:59",interval 1
7 i0 {' o; p& g# Ysecond);   
3 G8 f2 [& }- F# ?- D  -> 1998-01-01 00:00:00    / ~) a! ^" E  S0 M/ ]
mysql> select date_add("1997-12-31 23:59:59",interval 1; U) P7 U# `% r: |$ w: Z
day);    + q3 c! C! N8 ^, Z/ n1 I
  -> 1998-01-01 23:59:59    ! f% Z4 ^4 m1 O; ^6 d
mysql> select date_add("1997-12-31 23:59:59",interval
/ y( j, T$ j+ N+ D! u"1:1" minute_second);   
( i! b1 Q8 f% c7 u2 p; |" z! R  -> 1998-01-01 00:01:00   
/ [% @2 f/ [4 y6 a8 c; ^' Umysql> select date_sub("1998-01-01 00:00:00",interval "1+ J/ j% ?1 P9 C2 P
1:1:1" day_second);   
( _2 l# w! @- _- @8 z  -> 1997-12-30 22:58:59    1 r: @$ Q9 d2 D7 i7 |- I
mysql> select date_add("1998-01-01 00:00:00", interval "-1
. H6 y% `  R- q/ q; i) d10" day_hour);  + i8 J+ M- ~! M% B
  -> 1997-12-30 14:00:00    5 }7 ?7 l8 t$ W) Q* {* O+ S; m
mysql> select date_sub("1998-01-02", interval 31 day);   
$ R6 B, y! }. J' r' E  -> 1997-12-02    4 Z- T7 n7 O0 a
mysql> select extract(year from "1999-07-02");   
7 f# G: U. V, b% J& L* J  -> 1999    ; h, Z7 ?: H: `/ O) m- k1 K4 _
mysql> select extract(year_month from "1999-07-024 v7 r) G3 |+ u
01:02:03");   
6 e% ~! m3 e' a& l, y" v  -> 199907    + Q& w' ?5 {+ W  B3 C8 t
mysql> select extract(day_minute from "1999-07-02
7 g( g# |. `) I& p5 `0 G01:02:03");    " K4 M0 Q( k6 S% W8 z1 y( I, a
  -> 20102   
: |) L/ {4 I% e0 V0 x" |* l
1 i; y, y( [: ]* u! Ito_days(date)   
' n0 D: d! G3 r5 F5 d, e返回日期date是西元0年至今多少天(不计算1582年以前)  
. Q' F( M6 K  m6 D2 v! _! `mysql> select to_days(950501);   
% z% ^: R4 F( l/ {' u  -> 728779    ) Q, Q# M7 N, ^+ S3 N1 c
mysql> select to_days('1997-10-07');    0 X7 o) L4 e/ ?' m: I9 Z
  -> 729669   
3 v* V2 H, }& e/ A% X
9 e" X9 w# V4 Z$ K" }from_days(n)    & z9 U! [+ R0 e" P5 d3 b
 给出西元0年至今多少天返回date值(不计算1582年以前)   
* X# Q; n$ U3 y; Qmysql> select from_days(729669);    5 f* ]' V' ^5 V0 N* C
  -> '1997-10-07'   
& Q+ |# P; n5 _( r0 c& B) ~
' i% z, o% l! B$ q1 t! ndate_format(date,format)    9 q) N8 L( A! Q: x; {, G3 q
 根据format字符串格式化date值  
! x% l; T  d2 z4 U0 q (在format字符串中可用标志符:  - o/ n& g( E8 {" n, w/ U
 %m 月名字(january……december)    ! x2 r  a8 E4 c, v
 %w 星期名字(sunday……saturday)    3 l, u6 |2 g- x: a+ l  Q' q2 g! Y
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    9 D1 a3 S& {( [3 B
 %y 年, 数字, 4 位      ?5 R* Y3 A7 ?! x9 x0 ^
 %y 年, 数字, 2 位   
/ G& M7 T0 ^( F/ I6 ` %a 缩写的星期名字(sun……sat)    3 i- y3 t2 H- o2 @
 %d 月份中的天数, 数字(00……31)   
2 l8 l9 N- q- n$ e1 N %e 月份中的天数, 数字(0……31)    8 d& p# |7 n! e; b4 K  X) g& }
 %m 月, 数字(01……12)    & |' N, Z" w  R% [$ y
 %c 月, 数字(1……12)    + g" r- F6 \; A" t& j- g+ W, S- w
 %b 缩写的月份名字(jan……dec)    / N/ J6 G+ e9 R  h: Q4 B# u* z
 %j 一年中的天数(001……366)    0 W$ D! ^* F4 j# h% u
 %h 小时(00……23)   
% [) {; i! A3 m %k 小时(0……23)   
# |% O$ D# y  [; f! ] %h 小时(01……12)   
# ~; j& E6 N& U6 S) e1 k4 f %i 小时(01……12)    ( J1 \& d- B- I2 n1 L
 %l 小时(1……12)    " X; F9 e8 ]  y* C: K, r# D9 V# ?7 A
 %i 分钟, 数字(00……59)   
& L, _  W( l- h- _6 T' d %r 时间,12 小时(hh:mm:ss [ap]m)    2 o3 a/ C) {: S/ p; F
 %t 时间,24 小时(hh:mm:ss)    1 x: y- e) N' ~  E5 x: l. _' w3 [
 %s 秒(00……59)    1 z0 X& S% S9 K9 V
 %s 秒(00……59)   
3 K2 a* K' {6 b( I5 |8 b %p am或pm    & I! ?/ a9 t! d/ v
 %w 一个星期中的天数(0=sunday ……6=saturday )    ( n: e9 v( F9 ?+ D8 y( _
 %u 星期(0……52), 这里星期天是星期的第一天    + [& j8 {' d: {  \5 r% F" y  h
 %u 星期(0……52), 这里星期一是星期的第一天   
/ w- C% a1 I$ E! w7 A2 v %% 字符% )  
7 r! g* {3 Y5 u  Z) }mysql> select date_format('1997-10-04 22:23:00','%w %m %8 O. B+ H+ j4 {) w1 j% ^
y');    1 _# J+ d0 o1 I
  -> 'saturday october 1997'   
& I9 k, ]0 X" r' f1 h6 @mysql> select date_format('1997-10-04 22:23:00','%h:%i:%
! y5 G% z8 C, K4 }' I, K& z) ss');   
7 J4 G: R6 A! T) I0 d  -> '22:23:00'    & P7 p* s8 N: Q. r! i; R7 o3 l
mysql> select date_format('1997-10-04 22:23:00','%d %y %a
; v. {2 @1 c. }" `% a%d %m %b %j');   
$ Q  ~8 ^8 T1 B' ]$ z/ c  -> '4th 97 sat 04 10 oct 277'    ' f! O" T0 j% z, u3 M. K/ b
mysql> select date_format('1997-10-04 22:23:00','%h %k %i* `2 u" h% v1 s
%r %t %s %w');    ) W# S) o+ v6 f" U/ l) i
  -> '22 22 10 10:23:00 pm 22:23:00 00 6'   
0 c* b, ^1 ~9 r/ B9 Y' l+ H
- ]' @* Z, N8 ]time_format(time,format)  
$ Z, h" Q8 F# ~( V 和date_format()类似,但time_format只处理小时、分钟和秒(其2 w; i! }/ S) K' @" @+ F6 B. d4 f# ^
余符号产生一个null值或0)  
. T) s1 F. J0 T# t1 K
/ C* K/ P1 w: O% e, G0 W  @curdate()     ' S1 `. U% D  @
current_date()  
* E% Q7 Z  d6 M6 ^8 _ 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所. j2 ?8 f  B6 L7 y( G: f7 W
处上下文是字符串或数字)    $ A" m7 e9 N8 `$ t7 K
mysql> select curdate();    # U$ |2 O) O2 s) u* W
  -> '1997-12-15'    % ]9 P1 d/ k( J7 d( y
mysql> select curdate() + 0;   
+ a& |. ]" z- a' z" z, o: T# I  -> 19971215   
9 r; [& K" L! U* [& H
( @. t$ N  ]1 lcurtime()    * J: {/ H% }3 R9 R
current_time()  
9 @+ O) H4 Y# k& G 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上" b  Y! g$ L, H: {
下文是字符串或数字)      
$ d) r2 E6 ?/ |0 H+ d5 `1 D7 A, Omysql> select curtime();   
6 M/ X$ Y  K' H8 |+ F# B  -> '23:50:26'   
9 N- z2 s9 S, W8 K$ A& ?: _* nmysql> select curtime() + 0;   
- g. y4 B( a& X8 [  -> 235026      m! O" R$ |" c; \6 q4 ^
% z; R0 a9 i1 s
now()    1 k3 V8 s. Z4 T! l9 x5 c( e
sysdate()    8 }/ Q1 Y1 R. s1 A; N  ~/ ]9 s
current_timestamp()  ' F& Q( r2 z8 Q% j
 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期1 m) J7 g- P* `3 ~; }1 _
时间(根据返回值所处上下文是字符串或数字)     
0 d  e+ L* D( {$ L5 n: y1 K/ [9 @. \- Xmysql> select now();    ) @% ~$ @" ?8 Y4 V" G
  -> '1997-12-15 23:50:26'    " X6 ]2 A1 ]8 @/ V
mysql> select now() + 0;    + W0 `( d( B- S. s$ Q% F% F
  -> 19971215235026    ! y7 m0 P/ ]2 ^' m

2 _# A9 a7 b4 u: E  H" l% Hunix_timestamp()   
/ p3 T. |( `- punix_timestamp(date)    ; a. t( p$ e, N) m/ r. R/ d
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒! F% o+ f" S; N- z$ V
数,date默认值为当前时间)  
' C. z+ z. e; J- T- x& D$ o% r9 r3 wmysql> select unix_timestamp();   
0 ]* i2 A. q# w, R. ^! _. {  -> 882226357    ( H- {$ K$ k& r+ g
mysql> select unix_timestamp('1997-10-04 22:23:00');   
3 |( X+ D6 L; t8 _6 Q  -> 875996580    : Z1 f, `  R, b. {+ a6 M2 y, e9 e
0 S- Y* F) K8 h$ `  H0 p/ C" ]& k5 B! X
from_unixtime(unix_timestamp)   
6 K/ U$ E# R3 B1 N! a以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的/ G% \$ q4 G% N3 ~, l
值(根据返回值所处上下文是字符串或数字)     
! `4 n# T7 k' X9 b8 n% [9 S6 Tmysql> select from_unixtime(875996580);    ) C" U* f% S8 v7 K6 |: ]
  -> '1997-10-04 22:23:00'   
0 B* }; c" R, `5 m5 q' V& k9 C) amysql> select from_unixtime(875996580) + 0;    1 C" o- |3 Q1 ~
  -> 19971004222300   
3 `8 Z% e/ n! k) @ 3 v" Z. f6 p6 _1 a3 N! c1 {$ O
from_unixtime(unix_timestamp,format)    ; s+ d6 q; `, [5 R0 p- P* }& p6 _
以format字符串格式返回时间戳的值  8 Y! `; N. u. a( J7 i( Z9 a  Q/ T
mysql> select from_unixtime(unix_timestamp(),'%y %d %m %
* y1 C, a) {& R# @5 Rh:%i:%s %x');    ; `( T7 `& ?# i2 @
  -> '1997 23rd december 03:43:30 x'   
! i/ g* I5 y1 R' `" Z3 o
" B: @+ M* }4 `- ~- F+ psec_to_time(seconds)    / V5 R0 H. g3 V; U
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
8 X) o8 G+ }, `# a, H% J* a$ b1 wmysql> select sec_to_time(2378);   
) }3 e# C; S8 c' H  -> '00:39:38'    + @! ~4 F+ P2 H' ?6 f' M; S& Y1 E! q5 I
mysql> select sec_to_time(2378) + 0;    . f( ~) M1 }& _# K' J
  -> 3938    6 p  k* T' k8 j+ `) S* H8 W, P3 u/ \
% h+ x1 t+ x' d: m. u( R  P) h% z
time_to_sec(time)   
6 r) L# {3 t4 ?# _* e, s" }# u* \返回time值有多少秒    6 I" e6 u6 B  q: M8 y6 R# M0 A4 C2 j9 C
mysql> select time_to_sec('22:23:00');   
) S2 t, N8 h7 B0 C% `  -> 80580    ! @% s5 d, P' @# S
mysql> select time_to_sec('00:39:38');    ' `6 V2 r1 g4 [6 |0 _5 {
  -> 2378
1 P% Y7 |9 H1 s. H3 t$ M 1 {& x, M4 u1 r  y' S0 |0 w8 e# |8 {
转换函数
0 u( u3 I; n% bcast- O4 G+ z: A- y/ c
用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]1 L3 F. L  |3 M0 y  z
实例:select cast(a as unsigned) as b from cardserver where order by b desc;6 [0 A, B/ Z8 y1 W" e; ^2 e! Q
convert:; E8 i/ b* [8 w
用法:convert(字段,数据类型)% r) D: w& U1 [( u; T2 ^! a; o& f
实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

8 ?1 M* j8 G! J0 j" I
回复

使用道具 举报

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

本版积分规则

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