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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数  Q6 n; u9 a5 `  b* Y
ascii(str)   ; Z* g2 {4 Y' l" K
返回字符串str的第一个字符的ascii值(str是空串时返回0)  
; ~& T" B$ v$ v4 {5 E  Jmysql> select ascii('2');  
" T  I4 Z/ {6 I( A' R  -> 50  
, n) t1 Y  f6 ~, T( b# jmysql> select ascii(2);  5 a- U1 C4 o0 k  Z2 q# j
  -> 50  
* v% _" G, g) x6 e/ q6 s  rmysql> select ascii('dete');  
% @6 {; U) ]6 j  -> 100
4 V, X8 F& U* ]
ord(str)   
1 Z* U0 L/ c6 A2 E如果字符串str句首是单字节返回与ascii()函数返回的相同值。7 p8 k1 z( \7 x% [. L# f
' W# q2 W6 S$ Z3 j. H; {8 E. e
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  $ T3 L' D7 m0 k1 ^# c3 }- q' a+ e& g; `
mysql> select ord('2');  
% D; l" C1 f7 B' g9 G6 V1 g# U  -> 50    d. A% H! J1 M5 E2 \
   
5 e# `; g' k3 F4 K: iconv(n,from_base,to_base)   ) T$ A* ]! A0 Q$ p* p
对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
* V2 @" g8 F- G4 a5 X. a7 xmysql> select conv("a",16,2);  
+ M# J3 c* l$ ?* M$ ?* e  -> '1010'
9 r  M' M/ L' @mysql> select conv("6e",18,8);  / R8 F0 g6 k" b
  -> '172' 2 P4 ^& i: m( u% H6 K  O
mysql> select conv(-17,10,-18);  
8 E' ], v' S$ k3 i9 q( `  -> '-h'
9 ^/ M5 J$ O4 H# Pmysql> select conv(10+"10"+'10'+0xa,10,10);  . U' h0 p- P/ p
  -> '40'
7 R' [- B: D, R1 K' u6 y$ r" M3 f9 l   
. }" G, x7 I$ N3 S' A" i8 ]bin(n)   + u9 O" j2 w8 a" ?5 p2 K* P7 o' E
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  # M. W# O- X1 k) {7 G
mysql> select bin(12);  
4 S2 g$ |6 }# n- c, O9 A  -> '1100' 8 e/ b6 Y( Z* m6 a* Q

  J. h0 b- c3 s" c+ Toct(n)   0 Q# v1 T! }1 }8 Y8 j: w5 f
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  , @" z7 v6 d4 b6 a/ ~2 l' U7 s
mysql> select oct(12);  
% x5 `9 P( S( e7 o9 w% j  -> '14' % {0 b  @$ g6 e+ q
   
/ D0 o( }' o! ?5 f6 xhex(n)   
7 E. U8 d; e- K把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  6 {% N3 B& A( z( q3 N( q& n
mysql> select hex(255);  # _4 x& P) d& x
  -> 'ff' 5 P, y( W) e0 y) p) M
   
5 }  A  e6 Z4 j: G4 bchar(n,...)   1 U! `* q  m2 p- i# r7 @  \
返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   
! W8 T8 D4 q- E* P; K$ ?mysql> select char(77,121,83,81,'76');  8 W0 d6 G3 P  }+ b
  -> 'mysql' 1 [3 K1 T& }% I) o. w; u! @3 p3 K( R
mysql> select char(77,77.3,'77.3');  
& |" g0 L. ?" v/ [9 N  -> 'mmm'
7 M& e3 v# r" J   " ~, g: P4 R# c
concat(str1,str2,...)   4 J! i, M) U* s% K3 B- o+ ]3 B
把参数连成一个长字符串并返回(任何参数是null时返回null)  
. c% r9 n; v3 Hmysql> select concat('my', 's', 'ql');  
9 _: a6 s# ^$ L6 u2 z; |  -> 'mysql' $ T+ v. m& g  y8 {1 K* j" Q
mysql> select concat('my', null, 'ql');  
$ J4 ]# @, D- Z* d  -> null
$ K, W8 e7 ^! Z( ]3 ?7 ~5 Umysql> select concat(14.3);  
0 Q! E& D1 w$ s: A1 w  -> '14.3'
0 w' I; D9 e' @0 t " S5 a% ?: _0 h- O2 D, G
length(str)   ' L( i9 p. Z7 |, g" K* U2 f
octet_length(str)  3 j! D. ?: |4 c; _0 |) y! B. \
char_length(str)  7 A0 |* q+ U2 I( X3 }& V+ x
character_length(str)  2 V. b9 q+ D& {
返回字符串str的长度(对于多字节字符char_length仅计算一次)
7 q6 w9 \. R8 D, Q' u. F1 smysql> select length('text');  / @0 I5 A( r1 m1 L: J
  -> 4  / Q, v9 F, z0 h
mysql> select octet_length('text');  
, M6 V; S) Z! H  -> 4  ) x/ \- \6 M( g1 u; S& G
' m7 E$ s: F9 ~
locate(substr,str)   
/ `8 Z( X) {9 B8 [/ l" K3 N8 e- Fposition(substr in str)   
8 u# l0 R4 h4 c7 J2 F  K9 w返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  9 F$ L( [8 H7 u. Y! s
mysql> select locate('bar', 'foobarbar');  
$ E0 g# j! \# |1 t  @  -> 4  $ L1 C! g6 h$ \5 M
mysql> select locate('xbar', 'foobar');  
. W: y# x# D) {! ?) X( I1 c  -> 0  * x2 X: v6 V$ y4 j3 Z* T
   
: Q# |: t6 ~: R# i& vlocate(substr,str,pos) 8 p: [, [6 }& @$ J4 M
返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
9 \2 [  n( I/ z3 Emysql> select locate('bar', 'foobarbar',5);  
( q( Y5 a2 `8 q# |# z& t. d* m  -> 7    O5 J  ^* u' v, v9 x" v
: L+ n- f' E# o3 B) p/ j: p* R0 s0 R
instr(str,substr)   1 K& x0 a: r7 R0 V
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)    Q- C& p5 U8 C, O
mysql> select instr('foobarbar', 'bar');  
# P9 P7 F6 E  r/ T3 L  -> 4  
8 c0 X6 L. L. H- e9 A" Pmysql> select instr('xbar', 'foobar');  1 `# S3 L% v! a* ]
  -> 0   
; w" M& W2 l2 X9 v' Y
/ ^) E0 E3 l! b3 w6 r8 j: @# |lpad(str,len,padstr)   
7 k! o0 ~7 x1 H( J6 W. e: s  [1 a用字符串padstr填补str左端直到字串长度为len并返回  / U8 b  f: D2 @. [0 w
mysql> select lpad('hi',4,'??');  
$ v3 W' A6 u+ H9 q9 L/ O" ]! @  -> '??hi'
: x5 X$ |% E# H  x   . d+ T6 n" d7 o' P6 U% c
rpad(str,len,padstr)   
  a( A$ I" a8 T! b  b1 J4 g用字符串padstr填补str右端直到字串长度为len并返回  
/ U3 ?, r, C! y4 V  cmysql> select rpad('hi',5,'?');  " w, z0 H) G6 P6 _$ A# g
  -> 'hi???'
( b" X3 w" h  d8 X& S9 `7 k$ \ 6 T" z' _( Y' h8 e
left(str,len)   
& d- D! [. F+ O. F7 m: R: {返回字符串str的左端len个字符  
+ d/ c; q- a5 N! r/ f' f- Ymysql> select left('foobarbar', 5);  
, j) X/ t1 {" W2 C  -> 'fooba' : g/ i& \- ^, B- L( ]9 ]$ T
, \# ]; f3 E1 \2 }; h0 T# Z
right(str,len)   
- u- z/ p' n0 u/ N8 R; e# l/ |返回字符串str的右端len个字符   
8 i% k1 \+ ]# z/ emysql> select right('foobarbar', 4);  / @: r/ b1 T+ {
  -> 'rbar' . Z! P+ @8 G$ G: U# J3 r
" i; {- K& \+ ^# E! S
substring(str,pos,len)   
$ W6 `+ k+ S# W# osubstring(str from pos for len)   
% @7 e4 Y! p3 x, m! j+ c: q# Cmid(str,pos,len)   
% l4 z- z  _6 J0 Q8 o返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  ( d0 p. Q, e- i) d& x
  -> 'ratica' % h0 u: J% @" A3 V( X
* j3 R. F$ O8 Z: B. o4 l
substring(str,pos)   2 o% o0 L% S7 }& p) Q
substring(str from pos)   ( K9 b7 ]2 e' i( y! N# p
返回字符串str的位置pos起的一个子串  
0 X' [5 T9 Z8 m( q9 Omysql> select substring('quadratically',5);  
5 b9 I. D& k- [: f! G9 N4 _  -> 'ratically' $ }6 F* n/ O9 \, b
mysql> select substring('foobarbar' from 4);  
+ U, Y# R. m, k& E$ ^  -> 'barbar' . [6 A7 [  E3 f+ c, x; l, e7 \; T
: m8 q% Y$ e" e  E3 d
substring_index(str,delim,count)   % J/ x8 H0 B8 H3 E/ q/ H
返回从字符串str的第count个出现的分隔符delim之后的子串
; h/ C- P; a* ]% i' @8 [- L+ G(count为正数时返回左端,否则返回右端子串)  
3 ~/ {3 q5 e6 D2 d) J2 s, U) zmysql> select substring_index('www.mysql.com', '.', 2);  
/ h2 O5 W+ [/ }. G4 m3 q+ P  -> 'www.mysql'
* t! A1 m: Y8 I6 M. ]! V# kmysql> select substring_index('www.mysql.com', '.', -2);  
4 I% I) i6 Y  q  B- N/ ]  -> 'mysql.com'
9 A4 w( r: W& f, C$ A' ^
1 `/ Z9 {1 E  K4 f* J/ v' G* sltrim(str)   
# Z1 b" J" x) l返回删除了左空格的字符串str  # @% H- ^# ~1 `. v
mysql> select ltrim('  barbar');  1 J7 Q: B. h) q4 N3 e3 x$ Q/ k
  -> 'barbar'
' ~& F7 D- |' l9 e - V' c- z+ J, u0 R, X$ ~8 A+ A* F
rtrim(str)   
1 L$ }3 H3 P0 W; {返回删除了右空格的字符串str  - v6 E. s& U, V6 R2 M
mysql> select rtrim('barbar   ');  
3 ^, R' l9 {6 k8 J  -> 'barbar'
, |# J" r' U  Y  S3 u0 C* l" ]
, \0 x4 Y" L. P# L# {trim([[both | leading | trailing] [remstr] from] str)  
0 \( j0 ~5 m( O4 j返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
' ~, p& V3 K' p6 g, fmysql> select trim('  bar   ');  
* F5 J9 m& w2 ~# \: i1 U7 X0 p  q  -> 'bar' . G- F( u* ?" n9 P
mysql> select trim(leading 'x' from 'xxxbarxxx');  $ @/ N4 Q* `3 t; s- W
  -> 'barxxx' 2 x. F" s/ \; r# C
mysql> select trim(both 'x' from 'xxxbarxxx');  
  \9 y: G& R5 n0 K8 G$ N  -> 'bar'
! y5 V0 X8 f' G0 @3 i/ M6 tmysql> select trim(trailing 'xyz' from 'barxxyz');  
  {  N) i6 o/ I9 ?  -> 'barx'
1 h+ c8 w; Z8 \& U, ~( x! l # ?6 X. q) W0 `' @
soundex(str)   1 D0 p( f( _. q/ s* I
返回str的一个同音字符串(听起来“大致相同”字符串有相同的
& e) N2 }. q% z7 T( f/ s/ H同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  - e8 g# u/ y5 Y$ r, u
mysql> select soundex('hello');  
+ I- C$ f  }# N9 n" \  -> 'h400' - z4 n$ D7 l" `) e
mysql> select soundex('quadratically');  
1 X$ Y6 h( R& {% o% y  -> 'q36324' " V  ?' g0 K/ F1 `. d; ?2 \
   " n) b3 K8 C  c5 o- b/ H
space(n)   
: ~* l9 {* U6 N2 j5 C返回由n个空格字符组成的一个字符串  
) e3 a1 L3 g8 Emysql> select space(6);  
& F  U/ Y9 z/ S( y5 Y  -> '      '
" ~% H+ y  f  `) A6 V) N   1 \% s! S9 d& |1 z  |; \5 j
replace(str,from_str,to_str)   
4 t) D- H8 f4 k用字符串to_str替换字符串str中的子串from_str并返回  4 H, o5 g# e( {
mysql> select replace('www.mysql.com', 'w', 'ww');  ) k) q( I/ Z% e: L/ L3 m; k
  -> 'wwwwww.mysql.com' , i) w* [6 K7 u& @

9 P* u/ j0 C! v# _- U/ D2 q; ^repeat(str,count)  
" O! `7 F( L; X( Z( o  |: I: G返回由count个字符串str连成的一个字符串(任何参数为null时
$ r# n( C  ~, r5 Y返回null,count<=0时返回一个空字符串)  , l7 {4 g' G1 R
mysql> select repeat('mysql', 3);  
2 w: k- p( _" t  -> 'mysqlmysqlmysql'
' _, O5 @) M1 y/ n) h$ V- S: `   ) ^* j; ^- f" L% J4 b: W
reverse(str)   2 I! l( T: N7 N; I: u- x# n
颠倒字符串str的字符顺序并返回  
( O9 \' f+ J9 zmysql> select reverse('abc');  8 M, x" D( E5 K  N
  -> 'cba'
6 T% ~! e+ M8 S, ^1 D6 E! @ - `5 u8 w3 }0 V! N) W
insert(str,pos,len,newstr)   + v3 x- Q$ H+ D( b+ L
把字符串str由位置pos起len个字符长的子串替换为字符串) u. u; x, p/ v* v" @
newstr并返回  ) d( c. l. D& t
mysql> select insert('quadratic', 3, 4, 'what');  5 G( J- u2 X. j' j+ |
  -> 'quwhattic' ! q; R4 F$ }8 o. ^; \
2 `3 D( i. K$ o& q
elt(n,str1,str2,str3,...)   
3 z: G7 R# n1 N: _8 {6 [+ \返回第n个字符串(n小于1或大于参数个数返回null)  
* z* e+ Z4 g7 \9 V/ V- y/ [' v. G0 |mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  & z7 D' f9 C0 Z" v8 Z0 P2 S: G
  -> 'ej' 6 A4 D4 @; R' a: C5 h
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  ) X; \9 S7 _; `& o& @! ^
  -> 'foo'
4 q/ m7 q) Q, t# Q1 R6 b
* O6 R) V$ V9 Q5 F; O9 Vfield(str,str1,str2,str3,...)  
- }1 c( N) W0 ?; c6 T返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
4 ^2 u% X4 Z- O$ r) `- f' m- emysql> select field('ej', 'hej', 'ej', 'heja', 'hej',$ W0 j& m$ r3 _: z
'foo');  & l8 o2 U# x" b" L) S+ d- t" h1 h
  -> 2  " v+ @* o1 |: S9 o0 k/ w, X
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
1 S/ k2 Q* P% f'foo');  # m4 ?! w4 D  K" _5 [* [
  -> 0  
& P% h. u  Z+ O' W+ O; t 7 b+ o: [4 i0 j0 G' I& n% Y, X
find_in_set(str,strlist)   
3 d4 P7 G& V+ ]0 c$ Q" r返回str在字符串集strlist中的序号(任何参数是null则返回* E- e0 W# v6 e! _- _9 f" g- Q
null,如果str没找到返回0,参数1包含","时工作异常)  2 ?( g/ r' \. i3 n2 C* C
mysql> select find_in_set('b','a,b,c,d');  + ?9 h% t: c( l$ C/ \* B
  -> 2  - O- D- b  D9 `6 t# k. k
   4 u, \  C3 V# q$ M9 e" q4 R) p
make_set(bits,str1,str2,...)  
0 z, G7 B" O/ M6 V# Z把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
, W+ K# [0 Z4 U7 ]; ~/ A& O. S位置的字串选入字串集并返回(null串不添加到结果中)  
  Z; V6 y* `  o2 V! Emysql> select make_set(1,'a','b','c');  
- r2 n  ?( ?4 h$ b1 h, p  -> 'a'
1 D8 P- P" c6 s6 g+ B1 ~( xmysql> select make_set(1 | 4,'hello','nice','world');  
7 R$ L: K+ K0 ^: |8 I; X  -> 'hello,world' ( a. u# Z7 i  t
mysql> select make_set(0,'a','b','c');  3 C. p$ j/ X3 P- [
  -> '' & v  {- s7 v/ h9 U
: p9 f: }  R; k& I) F$ n5 U+ c
export_set(bits,on,off,[separator,[number_of_bits]])   0 B+ p/ M; g$ i
按bits排列字符串集,只有当位等于1时插入字串on,否则插入  N8 R. C. Y' j/ e
off(separator默认值",",number_of_bits参数使用时长度不足补09 {, t7 }" J7 |. ?
而过长截断)   
0 m' [, m. Z1 h0 J4 Lmysql> select export_set(5,'y','n',',',4)  + \2 p7 M( w3 n. U
  -> y,n,y,n   
3 \4 n1 k6 I) w: D. _ * ^9 n. ?8 Y/ }' w# a
lcase(str)  
! P" `, L' }, N- y$ r2 Q: Xlower(str)   7 J% j8 ^* t( G: a* ]# Y# y: D5 m
返回小写的字符串str  $ n- f" F9 j- q& u( B' U2 p
mysql> select lcase('quadratically');  
! H) p( ]# ^  ]4 U  -> 'quadratically'
# F( k2 H, Y5 {0 V   
+ I& A' a6 v  [2 uucase(str)     A- A2 C- e( y0 U7 B! b8 S! L
upper(str)   5 \9 T9 |7 r& y. e
返回大写的字符串str  
+ W* O; e. Y5 v! d- [' lmysql> select ucase('quadratically');  7 Z7 V" {) P  N& W- s- a
  -> 'quadratically' * n7 J- N5 @& q; t6 L% R

4 ?' G1 X7 e/ S" a! J! B- kload_file(file_name)   
! R$ I9 G: L) x9 m读入文件并且作为一个字符串返回文件内容(文件无法找到,路径
, ~9 M; i, R+ q. o1 z% w+ i, C不完整,没有权限,长度大于max_allowed_packet会返回null)  
9 K0 W! F' v0 [, L0 L6 X' V6 b: cmysql> update table_name set blob_column=load_file
6 b# J' ]* W0 `("/tmp/picture") where id=1;  . |- D2 }; c: B  i/ K7 a. w7 E

, r" D  J+ z7 [5 x2、数学函数' y4 ~2 g) A- x1 x. B/ r
abs(n) " j" Z1 j9 Z# v2 s1 \
返回n的绝对值  # P+ |9 o3 `% ^3 y: `
mysql> select abs(2);   
' y5 y  i# B+ Y. I  f8 I) ^6 {  -> 2   
% x. `6 ^- S! |9 Zmysql> select abs(-32);    ) X5 O- O3 X' }; C; i, j. ^: X
  -> 32   
# a; p+ S; [" C& m* Q' s   
5 v8 z' B5 d% C1 t+ v2 V& H# G4 Xsign(n)  " W  F' E& n. L% J8 K
返回参数的符号(为-1、0或1)  
) D% V6 v9 S; l8 d! Amysql> select sign(-32);   
& u# w/ |$ v! Y  -> -1    * m, ?1 Q1 H; o* \; c$ x1 D
mysql> select sign(0);    + [  @+ v7 }% a9 a9 U, k
  -> 0    9 j# j* h* _/ [3 `0 `
mysql> select sign(234);   
6 J+ `; O' `! g2 o& P9 B' R* g  -> 1   
2 e) o: t$ }- c: r; G6 { . g' M: X; m  I+ s3 B
mod(n,m)    , Y! v* o+ o- |
取模运算,返回n被m除的余数(同%操作符)    3 ]) a& q: H7 Y! ^' s; y
mysql> select mod(234, 10);   
' q9 `$ G, y1 G0 D  Q  -> 4    4 y( E" J# {: B2 \7 G
mysql> select 234 % 10;   
# |8 A9 U  w2 ^! L/ D  -> 4   
+ |$ m1 @5 N* P4 H$ Nmysql> select mod(29,9);    7 L8 `3 r5 _' O# A  W
  -> 2    4 r1 ]. V* {' @( R2 r* |# k

; B8 t/ N2 |, R0 {4 Rfloor(n)  3 C  R. i' y1 U/ X- N4 o2 _
返回不大于n的最大整数值  + n; k6 g& G4 K6 F& Q# k- |  n8 I
mysql> select floor(1.23);    5 f3 m, E1 z( d" Q$ Z1 q; d" {
  -> 1   
8 I1 f8 f; }$ i* Hmysql> select floor(-1.23);   
' V$ _: S9 O5 I: c$ V% D3 c  -> -2    ! _. e' z/ f- N0 M

* ^6 R2 Q  ^& X0 r2 e6 M/ {ceiling(n)  6 F8 T3 B8 S9 B( ~
返回不小于n的最小整数值  
. H1 Q3 C: M' Y% m) j. S( p( _mysql> select ceiling(1.23);   
" F* ~$ A' u: o& E" q# O  -> 2    $ y% ~3 s1 w* i1 ^7 U! b
mysql> select ceiling(-1.23);   
& f5 L& j1 N6 S! F2 C  -> -1    ) |- b2 P+ s8 h+ S* N  @
0 x. [# o( @' R* |* m
round(n,d)  
1 \% Y; o' T1 }2 N返回n的四舍五入值,保留d位小数(d的默认值为0)  1 h. ^. [0 _: `" i; c
mysql> select round(-1.23);    - g% h' {* B/ N5 r2 n; F3 c
  -> -1   
( X/ L2 Z) V" ?* p* I! pmysql> select round(-1.58);   
8 S5 E* k6 Z+ a8 \. Q' h  -> -2   
% @% ]. R/ z1 A% omysql> select round(1.58);   
' j  q/ ?! B6 E  B, x* \3 G3 j$ O  -> 2   
7 e+ b- L) l5 G1 b; [mysql> select round(1.298, 1);   
3 U. Q9 {0 k' a% M% V2 l  -> 1.3   
- Z2 l4 j7 M3 w) ]0 u- N! rmysql> select round(1.298, 0);   
- Q8 E& _. y3 A  -> 1    + D; y% q6 P7 m# R5 G& z
* ?! T* k* [- L3 x5 p7 V2 I4 u% B
exp(n)  
6 U6 A' H+ n8 q* Q返回值e的n次方(自然对数的底)  
! R' L& @% \7 A. h4 w( R6 Vmysql> select exp(2);   
8 m: ?" A( ~: O; \* ]% _) U. V  -> 7.389056    6 z4 w1 J; e) ~, M
mysql> select exp(-2);    / }% W7 N9 w# Z; V
  -> 0.135335    + k0 x. O# P7 ?& [+ m; O
9 r* t4 G: i5 j5 e
log(n)  
7 i4 f7 P5 C  k$ z; C+ |3 x+ z4 z0 x返回n的自然对数  
4 t  Q$ B+ V3 Q* m1 X- C" w% K  fmysql> select log(2);    / |: D" k2 |' i+ |
  -> 0.693147   
; g" A. b' [* s$ L/ t4 `4 {( S$ hmysql> select log(-2);    % V* C" W. F: N0 [* Y  X& q
  -> null    # W, a3 N0 M  g, A2 d5 _
* ?5 t& R! L, r
log10(n)  1 h! X3 r+ @7 T# N
返回n以10为底的对数  # X: F. ^  c+ j
mysql> select log10(2);    6 D( b) F% s- E* N$ E1 w- ?
  -> 0.301030   
- z& J* a4 Q9 Z8 M4 i6 Wmysql> select log10(100);   
9 C* @2 O4 g( ~" _* v7 r0 F  -> 2.000000    ( D# o- K/ y, _. e
mysql> select log10(-100);   
+ R  v0 y) E9 E, ]% l. X) X8 @7 g  j  -> null   
  I# a) S! g. d- Z1 w9 C. k8 M
/ N+ E) s8 R3 s) C3 S4 N9 g) ppow(x,y)    . m. U" f4 m% Q7 D% g- [9 S
power(x,y)    3 X6 L$ ^/ L. a; f5 p2 Y2 F
 返回值x的y次幂  + k4 r! N% b8 b1 ?* r2 D
mysql> select pow(2,2);    ( t$ z* v6 T5 [  F, b: ?
  -> 4.000000    * o( J, i) m+ T# Z6 a- k
mysql> select pow(2,-2);   
) L& t: T' U4 g+ m2 @% @1 H  -> 0.250000  + r) c  \# I' W( R; f4 j% ^  E

* J3 C# ]! u, i! _sqrt(n)  ! S0 T9 z/ S4 x  l, X
 返回非负数n的平方根  
+ `) g4 a% e0 Cmysql> select sqrt(4);   
. a" b$ w6 }, r" ~7 e! G  -> 2.000000    ) ^2 f2 T) T- @
mysql> select sqrt(20);   
" p, C4 Q& [  ]) A) }  -> 4.472136    ' Q1 r6 F* n. G2 Y: l
+ t  m$ y  b8 s+ {( |4 x. R6 x, i, u# F
pi()   
5 J& V1 [2 F- ]1 s/ i2 q 返回圆周率   9 P& a" T  P5 t/ A; A
mysql> select pi();   
6 i, V9 x' f9 n& J' t3 b/ e7 X  -> 3.141593    7 D+ Y, P' h, h6 d1 s. c! o4 X
9 W" C0 O  J  j' T
cos(n)  3 _  P. r/ H. J- Q4 U
 返回n的余弦值  - [; P* o- Q* M
mysql> select cos(pi());  8 L! f3 O/ ^: k
  -> -1.000000    ! v3 U2 ~4 y2 O/ x) ]/ a
, @$ b9 I+ v" p* T; n
sin(n)  
0 G. ^+ @$ O: o8 E5 { 返回n的正弦值   
5 |2 C& ?  g5 j, o! I6 u' `1 V, Qmysql> select sin(pi());    2 v. H4 N% h) Y8 G) ]* {
  -> 0.000000    1 L: I+ z5 N* H' A6 i  D1 r4 _: P" u
. k6 S/ ?9 ^9 l% G/ b! R6 C
tan(n)  7 @* S9 w; H" g2 j, R( A% H# n
返回n的正切值  
4 m. i* [: t" r; H4 Wmysql> select tan(pi()+1);    ! A& q( S7 |: z' y( {! v6 _# ^
  -> 1.557408    ) w' V; c7 D. J7 P

; x1 h  L; e# H. s& h0 J) L# i  vacos(n)  * R1 Q; Z7 a* i! e2 R8 N
 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)    w# S$ T" l! p
mysql> select acos(1);    + D# z5 q# M5 W8 d3 i6 d5 d
  -> 0.000000    ' a" I& c" [2 [0 c: D
mysql> select acos(1.0001);   
( t" T' I2 |; M, Z- r6 C  -> null   
, b8 V, k8 l# F" }  H0 ^1 Bmysql> select acos(0);   
+ S$ E3 K2 s% H3 G- a( D; k  -> 1.570796   
$ ^( v- u: O4 F5 y- p
2 P4 d+ R' C$ M" \8 N0 }( u+ Casin(n)  ( }/ d2 \. X" {1 N' x/ Y! @7 W) s
返回n反正弦值  1 |  i7 l! v" W; J; v$ B6 A- W
mysql> select asin(0.2);   
# R: c# q0 i! C1 L2 K( u  G, W  -> 0.201358    9 s2 a) M8 N; F# Q
mysql> select asin('foo');    4 B* W8 c% \8 d2 b
  -> 0.000000    $ k; a; {, K, r8 t" T+ d; f
2 c4 n/ ~/ n  e* _8 @
atan(n)  9 o* Q) t0 r  k- v, _! |% h
返回n的反正切值  ) |4 v. n) k, i* d! r
mysql> select atan(2);    * O5 K/ C( a) X+ D  W1 K! R
  -> 1.107149    ) |  r; L+ m. g- _
mysql> select atan(-2);    % P% J8 h2 m! L* c9 {8 p
  -> -1.107149   
2 `9 Q. Q: g+ L1 v& |. ]* z+ latan2(x,y)    ) I7 ?5 B' C9 O  Q, u8 q
 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  
* P9 I0 \$ t! B9 n7 a! {  dmysql> select atan(-2,2);   
- I' @3 |3 d/ Q3 }  -> -0.785398    : K3 c; d5 W0 U* a  A' s) H, [& u  j
mysql> select atan(pi(),0);    1 I& D0 F  e  r+ e' A: i9 Q+ a
  -> 1.570796   
7 _& P' z# ~* L% Z
  }, S# `, ^2 X; D8 }) p' Xcot(n)  6 s: e3 I2 B! G1 P2 e/ h
返回x的余切  6 _# u' ?- P( N4 q. P
mysql> select cot(12);   
# G4 W5 Q7 N: k% H# W  -> -1.57267341    ( K8 [; c2 w, z
mysql> select cot(0);    8 j! M7 v* F6 u/ b9 x2 c; B5 M- w* D
  -> null   
5 m7 P; |# e0 H% j - }: d" z3 q7 h4 W
rand()  
$ g# i! `+ l* E5 I" v; l. }rand(n)    
4 ]7 Y3 `# T/ u4 O4 T( z& A& |返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值) & t. }% V  @( H3 L! L7 n

1 c3 V4 T& q9 I; ~5 |( c9 k9 e$ D! Omysql> select rand();   
7 }" o. E# Q6 t7 o; x) i/ [* C  -> 0.5925    8 l7 O; w9 w8 B6 {) g6 A& G
mysql> select rand(20);    2 f# s  a0 Q5 b
  -> 0.1811   
; p* B) T* j3 kmysql> select rand(20);   
$ ^6 a: [# B6 T5 q( q8 F  -> 0.1811   
& n4 B& f* I  d/ h2 Mmysql> select rand();   
; o. P9 H0 k* j' [* w# f  -> 0.2079    ! w' d$ ]6 e! H0 A8 E$ [
mysql> select rand();   
9 X+ }% F  R4 `7 D, _: R, O  -> 0.7888    6 X+ a  C: T3 w2 E+ P5 l
) l/ k! @- w; D" ]9 A% |2 |
degrees(n)  4 Y! T8 f; R9 v3 ^
把n从弧度变换为角度并返回  
: H3 J5 O0 l- Y3 fmysql> select degrees(pi());    9 f: K* t/ ^( s0 E( ^% r8 n
  -> 180.000000   
2 X& u* ~( y# Y. A/ c" R5 A8 B 1 w4 G* ]" l: f; {4 }
radians(n)
: W1 e& p. x4 {: E. Q! f5 J把n从角度变换为弧度并返回   
1 Q$ i$ j4 B6 K: Kmysql> select radians(90);   
! {- X2 ?6 z/ `1 w  U5 A1 T  -> 1.570796   
) A, A$ K! }( B. v+ j1 B3 e% @( |5 f" Y
truncate(n,d)    * i/ E0 F+ p& U) S) S. l
保留数字n的d位小数并返回  
" d) O- I6 C2 N+ u( n& k+ ~) zmysql> select truncate(1.223,1);   
+ n+ _- c# d9 p7 h! l  -> 1.2   
$ [/ k- }& R( X- a1 rmysql> select truncate(1.999,1);    / W8 j% B; ^) K/ h
  -> 1.9   
0 a, m2 P$ M$ ]1 cmysql> select truncate(1.999,0);   
: m$ a) d. K8 \1 x- B/ A7 h  -> 1   
( q2 [! G7 h/ v9 j0 H9 o; N# e 3 u2 {0 f4 v: Q; f3 q5 N/ n
least(x,y,...)   
3 @2 z/ n$ m" ^# \3 k返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)    e; Z! k8 L9 D( x
mysql> select least(2,0);    . f2 ?1 |& M* V/ x$ {% j2 E" ?
  -> 0    / o) I% E/ t1 o+ |" C& j, r
mysql> select least(34.0,3.0,5.0,767.0);   
2 W1 x8 S* D) y8 A7 S1 v  -> 3.0   
; f- p4 J1 w2 T+ t4 {# w% Amysql> select least("b","a","c");    0 b1 k' E9 `! q& T/ h9 A
  -> "a"    / d8 \  s. C5 n, G6 y) y% @

3 L* S& d2 f3 jgreatest(x,y,...)   
5 ^4 g8 @; Y; B; Y2 |! b返回最大值(其余同least())  # l4 t" e$ a; ]5 Z
mysql> select greatest(2,0);   
. J! s' F1 C2 j  -> 2    0 Q1 B: @! E$ H5 z% o
mysql> select greatest(34.0,3.0,5.0,767.0);   
" v- i! W) b& ~; \& o5 a0 t  -> 767.0   
  a. s9 p" w8 Amysql> select greatest("b","a","c");    # h. h, D3 T. T1 r- F
  -> "c"     $ d- O- F( _' J) z& }: e

& w  s0 K& b5 p- _3、时期时间函数
% j, Q/ p# N* z( g1 hdayofweek(date)   
4 d! W2 U8 r4 J2 V, z, \5 W7 }* o" n返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
" ]/ I/ t5 Y5 E4 Pmysql> select dayofweek('1998-02-03');   
% G! @% t  b( z  -> 3    * r: o) ?0 h: @3 w5 a
7 a% u0 y2 K" Y8 I/ x; I
weekday(date)   
- P6 L- T- J8 Q7 H( o7 q: p返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 0 g9 n  A6 \, E/ ?/ q* q
  
! \. {% C8 P, r" n9 ^8 W: h# gmysql> select weekday('1997-10-04 22:23:00');   
( S8 N; l! ?  W  -> 5    / ?% h" D1 z" ]* ]* q% g
mysql> select weekday('1997-11-05');    0 X) E, L/ }7 k2 x7 {, K' c
  -> 2    3 E9 n8 g  y, A! Q

2 h& h) ~4 N2 d3 \8 h  s4 ?2 jdayofmonth(date)    
. j% \+ f/ S: y  k返回date是一月中的第几日(在1到31范围内)   
* w; g1 ]; Y& p' q, ?: L! ]0 \mysql> select dayofmonth('1998-02-03');    & w2 r" u$ }; d5 _- X
  -> 3    + l" p, {+ A8 Z; _1 ?+ p- d1 Y7 ^

4 |1 k( W9 m( R# G4 Udayofyear(date)   
7 l. |) O& [) @1 n0 t6 }返回date是一年中的第几日(在1到366范围内)    4 `; J4 D8 v# f$ E2 V, n; N/ Z1 D1 c9 q# L
mysql> select dayofyear('1998-02-03');   
- j9 \  `6 v% t5 ^/ ?  l  -> 34   
# I3 x5 R5 m# ~# ^ / h7 ]* N: ^/ E+ r0 R3 ~  Z& V
month(date)   
6 F; i4 }+ f$ `# P$ q返回date中的月份数值   
( e0 F, }/ n. N1 S) Cmysql> select month('1998-02-03');   
6 d3 _# V, f; u% E: }7 a) L  -> 2   
4 j5 J8 L! u- d. J2 D) @  Z   j5 r+ {) j' |
dayname(date)   
  y# A- U( J2 g* H0 \  w" w- ]返回date是星期几(按英文名返回)  3 N9 @, M  U9 X% |+ z! H$ u1 b6 P
mysql> select dayname("1998-02-05");    - T- E- R* T6 z6 C7 u; O
  -> 'thursday'    + R9 P1 e4 L. h

7 p+ r, ~2 _5 e& v+ Rmonthname(date)    : R5 ]1 X# {- [& [: N3 r' F
返回date是几月(按英文名返回)  
! Q& F- W7 @8 V3 Gmysql> select monthname("1998-02-05");    ! a' z7 N3 _9 W0 x9 u, F
  -> 'february'    1 e% I& c4 e' r' j( y, x
2 a- k1 g8 H) D9 _" |  Y4 c
quarter(date)   
5 d% I& z" `3 [返回date是一年的第几个季度   
, h) |# o4 t9 ]mysql> select quarter('98-04-01');    + N/ I4 |4 [' I! c  Y
  -> 2   
3 L# v- b2 s& p* i( M, s7 j9 O
/ c2 j/ V  H2 [1 A; z: u, l  ]& ^week(date,first)   
0 `3 b( W' }8 J4 v返回date是一年的第几周(first默认值0,first取值1表示周一是
$ x9 K( D# e* Z8 e2 |- O周的开始,0从周日开始)  
: }1 o  A% `# ^: ^6 rmysql> select week('1998-02-20');   
1 ^2 \) v' X5 V  -> 7    ' P9 `  M( L$ ~6 I
mysql> select week('1998-02-20',0);   
* e) g# e( m3 M: X) ~0 l  -> 7   
9 \; N/ {9 D, l3 emysql> select week('1998-02-20',1);   
: u  k+ L5 E* C  j( H+ q  Z  -> 8   
: v: n: M8 `, D& f& q' I 9 m7 A4 T) s8 Q  q
year(date)   
' t0 v& P; L/ K# a返回date的年份(范围在1000到9999)    . _: V5 b/ [' {4 J7 ?1 `
mysql> select year('98-02-03');      w" y8 U  p/ g0 ~5 i. B& _
  -> 1998    . _9 N  M( v3 b/ G( A
# S: `5 c. o( A6 n
hour(time)    . q) U6 H) r( h: U
返回time的小时数(范围是0到23)   ! g7 n" R7 o: v9 l) X# H1 c: G
mysql> select hour('10:05:03');    9 C5 j7 B9 k! X* i
  -> 10    * h( J5 s* B5 A! r
' k5 ~$ R' ], o" K6 @
minute(time)    ' b" i) j4 P4 Y+ Q" Z/ i
返回time的分钟数(范围是0到59)    1 V! \5 I( X7 @9 [
mysql> select minute('98-02-03 10:05:03');   
* }8 c5 s* s: W1 b8 D  -> 5    - ^$ U, e" m. m7 i7 M

- {/ ]6 L( [- ^" B2 J2 }" n" |second(time)    ; {8 m+ R5 b% T
返回time的秒数(范围是0到59)   
5 R8 }/ o! a! O; t3 @0 vmysql> select second('10:05:03');   
+ p5 o5 {2 D; y% _3 W; A  -> 3    $ n5 {& _9 V' L# ~: u, }

" m2 M8 w3 s& Fperiod_add(p,n)    4 _+ `6 {- D' l0 T2 b
增加n个月到时期p并返回(p的格式yymm或yyyymm)    / m2 i9 K$ _6 k. d& L2 O1 H+ v4 Z
mysql> select period_add(9801,2);   
( E( S* D+ V, D% g6 h  -> 199803   
0 U. D: ?- x1 A* i; e1 Y7 T7 I : T2 `, X5 R) A: V1 q$ O' ]
period_diff(p1,p2)    8 a+ R6 ]: l: I. a# ?2 ?5 q8 O
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  
5 U6 j0 |7 q8 [. A; Smysql> select period_diff(9802,199703);    - M5 f8 g( h- s' ]. l
  -> 11    " f  p# |: e' s( k+ ~

# o% h% z( t- l9 x& C) I4 s2 pdate_add(date,interval expr type)  7 Y- H+ B  D7 b% U$ w) x
date_sub(date,interval expr type)    + p0 i& t* q( H" ~) E6 g
adddate(date,interval expr type)    " ]% L1 a  l' F; Z
subdate(date,interval expr type)  7 r: ?6 p5 v  f- X
对日期时间进行加减法运算  
! k; r( O+ q6 S. N: y* B  k(adddate()和subdate()是date_add()和date_sub()的同义词,也% y/ q* {2 h) ?( N3 G+ O
可以用运算符+和-而不是函数    M1 P0 \# W' n% y4 V; F: j
date是一个datetime或date值,expr对date进行加减法的一个表& R( K/ [/ I& R( z4 |
达式字符串type指明表达式expr应该如何被解释  
1 |, |% W% r1 D6 E; } [type值 含义 期望的expr格式]:  
' f+ Y! v& b' F" ~9 \5 v. C second 秒 seconds    . q  F# T3 R& N1 r, L; Q
 minute 分钟 minutes    6 `/ c# T4 q% J1 Q  r* q6 d+ H. Q
 hour 时间 hours   
" C% P9 C2 D( s9 c day 天 days    % F/ Z/ o1 o( v* M
 month 月 months   
5 a' v5 {0 z  j0 b4 } year 年 years   
$ T! {# j. K; c9 I minute_second 分钟和秒 "minutes:seconds"   
( Q. {8 d* i! f8 d: z) u hour_minute 小时和分钟 "hours:minutes"    # \% w9 z& O  f4 |  W' x+ T
 day_hour 天和小时 "days hours"   
7 b5 w0 y6 F6 _: S year_month 年和月 "years-months"   
5 B, `; ]9 s. ?- _; W$ `6 O8 G hour_second 小时, 分钟, "hours:minutes:seconds"    ; G# x' G3 w2 ]
 day_minute 天, 小时, 分钟 "days hours:minutes"   
5 [' t% y' M. s  a  y7 Y/ Z day_second 天, 小时, 分钟, 秒 "days
5 R2 _+ f! e# _9 @7 Z% m# o3 hhours:minutes:seconds"
# |( ^0 `3 d. ^. i. @, Z expr中允许任何标点做分隔符,如果所有是date值时结果是一个, N9 N9 _7 v' F- ]$ P$ a
date值,否则结果是一个datetime值)  
9 N  T  \  ]% b  t6 K9 Z: @: }: r 如果type关键词不完整,则mysql从右端取值,day_second因为缺+ _. @! W' @6 g. ]3 E/ E4 a4 u# o
少小时分钟等于minute_second)  
2 D* R$ x" \7 v/ t0 u 如果增加month、year_month或year,天数大于结果月份的最大天
+ M, q5 h, V, P6 I' g4 c  j. h( Z' I数则使用最大天数)    , t$ h$ u1 _4 [' H, V
mysql> select "1997-12-31 23:59:59" + interval 1 second;  ) o$ V1 D* k/ o$ @. t/ n3 f" j
: t. D: C- E7 U0 `% |. m) r/ f
  -> 1998-01-01 00:00:00   
6 [, h# ]6 M' M( _6 w9 Wmysql> select interval 1 day + "1997-12-31";    2 J) s  Q+ {9 \9 P1 E/ n. O2 L( {
  -> 1998-01-01   
3 b& x# e9 a  {! i( I; v% H9 Rmysql> select "1998-01-01" - interval 1 second;    0 b4 \4 R$ g% q
  -> 1997-12-31 23:59:59    ; }  I% O, G5 I2 U
mysql> select date_add("1997-12-31 23:59:59",interval 1
( u" ^) m3 B: W! B5 Xsecond);    5 a# T! q# w& G$ G9 `: z# D" ^
  -> 1998-01-01 00:00:00   
: Y  }! ^- q: \mysql> select date_add("1997-12-31 23:59:59",interval 1+ m6 x1 E0 P" K' A8 |
day);    7 h; ^) w4 M% a( V2 }% ~3 q
  -> 1998-01-01 23:59:59   
: U$ I: u$ k& n0 Y& \" jmysql> select date_add("1997-12-31 23:59:59",interval/ s, [- h5 k; C
"1:1" minute_second);   
! w: c! z0 z) s- B- N4 Z  -> 1998-01-01 00:01:00    ( e( u1 Y2 B$ t
mysql> select date_sub("1998-01-01 00:00:00",interval "1
1 o! {8 A4 J8 z% ^- e1:1:1" day_second);   
& u& P7 u. H8 \" r. m9 c) Y  -> 1997-12-30 22:58:59   
6 p% e; M2 I7 l. F  Mmysql> select date_add("1998-01-01 00:00:00", interval "-1
6 m6 y) U" G9 U- U4 E6 y/ z& }& I10" day_hour);  
& L8 z" u$ }# k4 r  -> 1997-12-30 14:00:00   
, {' G, S4 k1 h' V: fmysql> select date_sub("1998-01-02", interval 31 day);    & X) U7 f  n- _) t4 |
  -> 1997-12-02   
$ T$ G0 D! ]0 j; Bmysql> select extract(year from "1999-07-02");    ) \8 H& z+ b. f- G8 {) C
  -> 1999    / ^8 P9 f' A* t4 ^+ k9 ]9 K
mysql> select extract(year_month from "1999-07-02
/ ^+ P& w' V6 |8 b5 |- I01:02:03");   
  J/ J9 f( `+ G4 K$ S  -> 199907    / J+ j& ?, l* v9 @1 G: o+ z' z5 O
mysql> select extract(day_minute from "1999-07-02
6 _2 `7 J+ o. T3 I3 ?2 V  \: j  `) H01:02:03");    2 Z1 t; z# I1 t% v; I
  -> 20102    6 O# f$ B6 P: F0 m* X

( U( Y, [3 g0 e6 k4 Eto_days(date)   
6 B, F0 `' p- d0 G4 R返回日期date是西元0年至今多少天(不计算1582年以前)  
! g- G  M* G, l. z2 E( f0 |$ Xmysql> select to_days(950501);    & L+ _5 T6 @, V# g: ~* A9 p  _2 x$ q5 T
  -> 728779    5 M+ ?% J! }, j
mysql> select to_days('1997-10-07');    5 Q6 s; R$ x9 i% B: `- {1 k
  -> 729669    " U1 o( e3 ~3 H: Q' O7 a) m0 G+ q9 j

; V( c' B9 B4 K; A7 C% u  lfrom_days(n)    + {' Y$ W* I' q
 给出西元0年至今多少天返回date值(不计算1582年以前)   
. K8 w3 w5 |% Y5 @" Wmysql> select from_days(729669);   
1 P# Y) v+ B' {; p  -> '1997-10-07'    ! V* _1 ?/ @; B0 |! l  ?  J

6 Y- U! v  Y7 T1 X) Gdate_format(date,format)    7 ^; ]! F* t6 A& w; M6 S; k
 根据format字符串格式化date值  ! x. l; ~" I0 p) ~5 B  I) Y
 (在format字符串中可用标志符:  
  [' }. e- Z/ c( _7 { %m 月名字(january……december)   
- ]) y' Q* i+ z7 B% x8 z4 x) V %w 星期名字(sunday……saturday)    8 ~  Z# p3 q, s2 [
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    # f; N$ C( T$ w& c1 p
 %y 年, 数字, 4 位      d$ H7 |4 g3 L7 k2 N" c4 h
 %y 年, 数字, 2 位   
- V3 w  B9 R; e5 C$ f. G; y %a 缩写的星期名字(sun……sat)   
2 h1 c+ W2 d2 m1 ^ %d 月份中的天数, 数字(00……31)    4 w- i, C  ]$ L; x% ~; p- d
 %e 月份中的天数, 数字(0……31)   
) ?  {* g* N# |) T: k %m 月, 数字(01……12)    : w% h$ o0 Y5 W7 \1 t6 H/ i: A: k. I
 %c 月, 数字(1……12)    7 n! p% r2 j/ h& K) N  y, Z2 l
 %b 缩写的月份名字(jan……dec)   
4 Q6 y/ [, y6 C$ v( V; m3 o %j 一年中的天数(001……366)    ! r+ u& X2 n1 T+ V/ j
 %h 小时(00……23)   
6 a0 @: @. C0 M+ b %k 小时(0……23)    + x; l: e" t, W+ }$ l- |* @
 %h 小时(01……12)    ) {& Z# N  @& d; E
 %i 小时(01……12)    ( T  t( V* h2 L+ e
 %l 小时(1……12)   
2 H( V2 H( `2 Q# K" o3 y: v %i 分钟, 数字(00……59)   
5 g3 e& N* ?3 ^4 Y %r 时间,12 小时(hh:mm:ss [ap]m)   
8 a, K$ I" v& n, ?+ g %t 时间,24 小时(hh:mm:ss)    2 }2 f& O' I& a
 %s 秒(00……59)    # v) B4 w, e( O/ t
 %s 秒(00……59)    # C: p, r: `8 g8 v% R4 O1 r6 |
 %p am或pm    : q: U& ~6 R+ k2 k( R- x2 [
 %w 一个星期中的天数(0=sunday ……6=saturday )   
* [* C& _! H- n6 }2 ~ %u 星期(0……52), 这里星期天是星期的第一天    1 b4 T( H* U+ x0 S
 %u 星期(0……52), 这里星期一是星期的第一天   
, P# z3 X7 s/ _! f" m4 w %% 字符% )  
. `0 L" o- t4 B' m3 @mysql> select date_format('1997-10-04 22:23:00','%w %m %
" h2 Y' a- k, d/ W9 my');   
: `; e3 X  y4 n& u4 E9 L3 m  -> 'saturday october 1997'    8 u% [9 r% H8 w4 A2 Y
mysql> select date_format('1997-10-04 22:23:00','%h:%i:%
& ?: e2 a/ R/ T" S/ J1 ts');   
0 n5 d" A; d8 P2 u# p( y  -> '22:23:00'    7 Z1 M0 @2 Q; x' P
mysql> select date_format('1997-10-04 22:23:00','%d %y %a
, ^7 w/ H! f. F4 D# E- x& y%d %m %b %j');   
& a8 h: m: ], Y0 H  -> '4th 97 sat 04 10 oct 277'   
( a# N1 S  D( U4 umysql> select date_format('1997-10-04 22:23:00','%h %k %i
- i1 l' m! a6 v+ j% U%r %t %s %w');   
- Z6 |8 c. ^  D. s* D4 [8 o  -> '22 22 10 10:23:00 pm 22:23:00 00 6'    + T: D9 `" q9 [3 y& z) [* s
* v' A, f; I' z& l( k1 m3 @* F
time_format(time,format)  4 O0 X* Z" E6 }; e' A, _
 和date_format()类似,但time_format只处理小时、分钟和秒(其$ H5 _. z7 G  Q1 t( G1 u4 F
余符号产生一个null值或0)  3 ^. I: v$ p$ G2 f
' A3 d0 A5 v8 a( i5 q( q( E
curdate()     
4 }8 S4 E9 W( Z2 o4 K. E! }current_date()  6 s; N9 d( ~. X
 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所3 G5 k- i+ e3 q) l" ^% `) F8 f8 s
处上下文是字符串或数字)   
# I7 v8 U3 @$ J& Ymysql> select curdate();    0 q8 ]; V! B, T
  -> '1997-12-15'    $ \0 v" A; V( E7 c, `
mysql> select curdate() + 0;   
: ]3 V, h3 ?5 P+ S& u+ c( K  -> 19971215   
) W9 C3 A: B9 g6 Y  f5 u
+ L! Q( j) K% e6 u5 i% gcurtime()   
8 K: H* u( b3 i9 I9 Vcurrent_time()  
, f$ O" L6 @( e1 a$ [- Y, i; D 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
; p" z- A8 G1 \) L5 X下文是字符串或数字)      % K- I& K2 s& \5 q) R
mysql> select curtime();    1 p3 C& b* {: x5 R+ w, R4 a
  -> '23:50:26'   
- h3 [& d# j- fmysql> select curtime() + 0;    % y" E; |, D5 Y  V/ K* b
  -> 235026   
$ H5 X+ T8 K% ]3 d) `4 f . v& w( S8 r, C! K  R; D* s
now()    
1 ]' ^3 W0 }. A7 [sysdate()    5 y4 G" Z; \9 P2 J
current_timestamp()  % j" n4 o3 a9 T! g$ g  z
 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期: y% o  X: w: j+ {) _1 j( Z9 A3 [
时间(根据返回值所处上下文是字符串或数字)     ! ]1 O3 j, w& y
mysql> select now();    0 s$ U* s- J7 Q6 C, g
  -> '1997-12-15 23:50:26'   
9 _% ?- _# |- Z! b5 g, emysql> select now() + 0;    ; s) \# a! ~* r+ t8 h4 p# W% H+ b
  -> 19971215235026   
# m& B' w9 B+ J' M$ |
$ P  v, @! r4 S+ z, }! Eunix_timestamp()   
/ O& A$ a; D: Q) ?. M! t! Y5 yunix_timestamp(date)   
) E2 k0 @9 M2 g& p, i1 f/ b返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒5 y5 ^* k5 `5 f  l6 i
数,date默认值为当前时间)  
# i& B! L- ?2 l& o+ B" Lmysql> select unix_timestamp();    1 ^* w% Z# x( d  S/ |
  -> 882226357    % M8 C. f/ R/ Q8 l
mysql> select unix_timestamp('1997-10-04 22:23:00');   
- m2 P" R/ n; T/ `8 ~5 `( v  \  N& V  -> 875996580   
. T2 ^7 ~9 P( ^7 T/ Y
  @: h( E) ]# Lfrom_unixtime(unix_timestamp)    - y% t0 Q1 X0 D; X
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的# d. g; d. F! y8 l, h
值(根据返回值所处上下文是字符串或数字)     
: D* a: `4 o1 y% y! x6 Pmysql> select from_unixtime(875996580);   
) C3 F7 r- K# p6 q4 q, B  -> '1997-10-04 22:23:00'   
+ \. h! S: o* U5 j; x4 @4 mmysql> select from_unixtime(875996580) + 0;    ) }1 Z8 L4 |9 X# ~4 U% j
  -> 19971004222300   
! v, Y. B+ w0 Z% Q   t$ c. y# S/ d2 R: S
from_unixtime(unix_timestamp,format)    7 R, R2 H, k- V2 N) Z/ ?
以format字符串格式返回时间戳的值  
9 k5 u) d* c+ A2 Q" Cmysql> select from_unixtime(unix_timestamp(),'%y %d %m %* F9 o8 I" r: W
h:%i:%s %x');    / H' z2 {* J8 A+ _& N) f1 k
  -> '1997 23rd december 03:43:30 x'    0 B' Q3 h+ \) m; }: M7 {

, p! ^7 e: ]) O3 z6 n& W; \: [sec_to_time(seconds)    ' P" u3 }) z" j
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     / W$ N& O8 b6 ]8 V7 u
mysql> select sec_to_time(2378);   
1 V2 r, a  D1 T3 ?3 B  -> '00:39:38'    - m# A: E8 l  \+ x
mysql> select sec_to_time(2378) + 0;    * ?! U6 b( t0 Q9 m8 n' {! Z& T
  -> 3938    ( k5 E; `( c) K& G0 H, E9 N

% B* {% T* ~/ T: U7 T. E2 [time_to_sec(time)    % j5 L3 d* e& P! z9 C) I
返回time值有多少秒    ; {3 A. n4 F5 K1 R2 J
mysql> select time_to_sec('22:23:00');   
3 G$ G  R& `: C, c% W1 h9 W  -> 80580   
& `7 P) ~9 u2 Z" n, Tmysql> select time_to_sec('00:39:38');   
; l; i8 Z! l+ \) V. ?" m% I4 J  -> 2378
, W% t; o2 b& b
9 D( U, L5 Q: |; `5 v& u) g转换函数$ a; b' h" P4 `* y( Y9 K
cast: r# s9 P! s  }2 j8 \: p
用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]
/ y& n& t' k: g4 ?0 a% h实例:select cast(a as unsigned) as b from cardserver where order by b desc;
/ _% ]9 Q4 D8 }# `  Zconvert:
& n1 q- k9 _; T: e2 T& i$ h用法:convert(字段,数据类型)  K; h% ^* T1 g" s4 R. O
实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

/ o) [1 r$ V! ]$ g3 X
回复

使用道具 举报

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

本版积分规则

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