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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
1、字符串函数
- \9 {& R  ^3 [$ N  J1 ]! mascii(str)   + }0 y9 l6 o. {
返回字符串str的第一个字符的ascii值(str是空串时返回0)  ' [5 y0 [7 v/ G9 m
mysql> select ascii('2');  1 n: p* L' E8 \% s3 C
  -> 50  0 u! R% L) `$ f( S4 M7 \
mysql> select ascii(2);  , M0 S. F1 k/ z& R3 M8 ]. a6 o
  -> 50  
% X8 W  i# x4 T9 z& V( E8 g! Xmysql> select ascii('dete');  
1 D! y1 i+ ^# C8 ~1 s9 |  -> 100

, B2 E# c% \' C: Y# x; Xord(str)   
, @3 U8 f% [! q" e4 _& l如果字符串str句首是单字节返回与ascii()函数返回的相同值。
6 M) z" ?5 N0 q. r) Z% ~
( Y' Z% Z9 r, F1 B( T, I" u* w2 B' g如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  
0 h$ c. T+ z4 H$ T3 E* K3 f. W8 Bmysql> select ord('2');  * @0 O: j5 B7 W
  -> 50  
3 K. W' ]7 Z( L- q* @   # H* ]. o' q5 G) C1 J; Q5 n* n
conv(n,from_base,to_base)   2 h: z6 m6 o# f+ _
对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
1 K; h# _  R; C5 qmysql> select conv("a",16,2);  9 E8 _, [* j& V
  -> '1010'
, L" X) D" ]0 P( o9 Q. b& bmysql> select conv("6e",18,8);  + J$ F/ L# q. r
  -> '172' / o5 A* f3 \: |$ V. X5 b: H, C$ W
mysql> select conv(-17,10,-18);  
/ g: D' d: X' T7 X% Z  X# B  -> '-h' + q# }/ J6 g+ f
mysql> select conv(10+"10"+'10'+0xa,10,10);  
1 n( }1 e/ m" u/ i. }6 A# m- W  -> '40'
2 l8 K' v  K2 B, S   ' ]' t2 i! I4 w+ w
bin(n)   
9 ?% O6 Y: I$ F! l3 L把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
5 H! k3 \, \+ ?2 H2 Z$ Y8 d: X3 Wmysql> select bin(12);  
: t- I$ j, Q6 ?; E0 ]  -> '1100' - b- ]" E6 u! m: y6 X( g" W+ G7 o3 x6 J
9 \7 E- m( }" n8 n( g
oct(n)   
; Y  ~! u0 |7 |4 l把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  1 g" r: f8 h7 |, F. J
mysql> select oct(12);  $ f& |4 G. i& P1 y7 A- |: {5 a8 k
  -> '14'
! o- K8 R( w8 r2 Y' A3 d% g   ( B. t) A8 n* h2 @9 b
hex(n)   
! |/ ~1 u, p; d把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  2 H, x* w7 j6 Q& v5 c6 F; x
mysql> select hex(255);  
2 c5 E+ u# |" U# E  O  -> 'ff'
6 s2 u( W* d! J8 _% E0 S) f- D  G6 a. ~   
/ R. t. {) U$ [9 l3 g9 bchar(n,...)   
- O, b1 P3 S" O# A+ U5 f7 H返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   . X; s& g' @8 w/ ?/ h  l
mysql> select char(77,121,83,81,'76');  
! x1 @9 X2 V7 `9 L% y3 _  -> 'mysql' 5 V4 u! M4 c# p4 j. t$ a3 Y, M
mysql> select char(77,77.3,'77.3');  
6 H, ]: H8 P- r7 X4 E' W  -> 'mmm' - e$ X2 F3 l- k: \/ ~* E6 B
   + W! z# y3 K, Q1 Z: y
concat(str1,str2,...)   * n5 r9 W9 u& C
把参数连成一个长字符串并返回(任何参数是null时返回null)  ; p) j5 F$ a" |3 Y
mysql> select concat('my', 's', 'ql');  1 ]# X# o% |+ f% ^( a2 S
  -> 'mysql' 5 v, Y; t8 g+ x5 |
mysql> select concat('my', null, 'ql');  & D# }3 v4 p. H0 X) ^
  -> null
/ t2 i5 V/ Z, ^/ y4 emysql> select concat(14.3);    A  w( ?* U& T1 |' [6 Q; B
  -> '14.3' ) E- w% ~4 N7 J8 J1 s1 Y* ]9 m

0 c) d# k8 a! B7 m  k6 I; olength(str)   ( G0 k) }# T/ B2 B, {1 c; J. A
octet_length(str)  
6 [4 w& Y. Y4 c8 n- _: ]. A9 a9 Xchar_length(str)  1 \. F2 @9 u9 x
character_length(str)  
& \4 g/ O# t- K  S8 q$ G3 g" ?返回字符串str的长度(对于多字节字符char_length仅计算一次)2 {+ P! n: ^% B: u. B* g
mysql> select length('text');  
$ o4 }1 ^' y$ B. a  -> 4  7 X6 _8 w( K7 s. M5 w
mysql> select octet_length('text');  / {5 ^% p8 r0 A0 P: `  b
  -> 4  ! q3 @  I4 V6 h2 B+ Z
, O1 B' J3 U4 l. O4 m( b; d
locate(substr,str)   
  j) E9 u. n( h' P3 L- `# ~" |position(substr in str)   
7 r2 V* ~# T6 w返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
7 O* ]# o3 a! ?1 n4 \6 G8 l& omysql> select locate('bar', 'foobarbar');  / _3 W5 p+ I5 F( I# M. f5 O8 E1 g
  -> 4  
, B# k! x$ B- ^+ |9 {6 a- Imysql> select locate('xbar', 'foobar');  ) j& n9 s7 `0 ]+ F" a0 J1 {: P
  -> 0  7 K, ?6 f/ ^& E
   
+ _) I% [4 H. h% S0 Z) slocate(substr,str,pos) ' S  B. b4 B" Y3 u9 y5 l
返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  0 G2 u0 C/ l) }6 m2 @1 K
mysql> select locate('bar', 'foobarbar',5);    R# V3 v, V' |( J" |; T- S* ]
  -> 7  4 B3 {+ |! v/ m" [* C

2 X% `0 ~4 {! Ninstr(str,substr)   & G0 H1 z4 h' j1 ^1 N: i. D8 S
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  ) a  T+ x$ f: F/ S
mysql> select instr('foobarbar', 'bar');  
2 U; Y- F2 m- o3 c) s  -> 4  
5 J- _3 ]6 i0 J5 z  a: h7 V9 l- Umysql> select instr('xbar', 'foobar');  
5 L. K5 b0 |$ E1 M% J- Z8 G5 N  -> 0   
* o" B& S, o( P  @6 [, ~# N% p
1 Z4 d0 T! y2 i9 Nlpad(str,len,padstr)   $ N+ p. n# P% i5 U$ \6 K
用字符串padstr填补str左端直到字串长度为len并返回  ; ]! q  c9 `  o, q8 Z
mysql> select lpad('hi',4,'??');  3 l) \$ B) w& i+ c  N( O
  -> '??hi' % `& |0 p& T0 b/ P5 K
   
$ ?0 u& s  A6 brpad(str,len,padstr)   . W* I2 p! y) q
用字符串padstr填补str右端直到字串长度为len并返回  
, o1 D. i6 D6 F" k( Ymysql> select rpad('hi',5,'?');  
  |/ ^1 `$ T5 o! v  [7 L  -> 'hi???'
0 Y* H% _2 a) j
) y8 g$ x  W9 }& fleft(str,len)   
& x0 U( ?8 v! L7 X) Z* Z返回字符串str的左端len个字符  
+ s- t2 O% |$ h. X9 n4 bmysql> select left('foobarbar', 5);  / k; {9 b' A7 J  B, s
  -> 'fooba'
+ {! `0 p: e' u& y  ^$ R
4 s5 P& C* @. N1 c& c' Wright(str,len)   
: M! _- ]4 M. z* h返回字符串str的右端len个字符   ! }7 Q  R; Z* i! `
mysql> select right('foobarbar', 4);  ' _  Y2 z4 ?3 ?3 y. v* z6 V1 t0 q
  -> 'rbar'
/ G' v3 U2 ~. S4 | ) ^. d& g0 \3 }% o, q0 @* ?. @
substring(str,pos,len)   1 P% O  R1 ~! [
substring(str from pos for len)   3 t. ]3 {3 |( L
mid(str,pos,len)   
# ~  b3 D) _5 E" R# D4 j返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
( f- [4 ^" R. z  r0 Z: r  -> 'ratica'
7 H: D  s! G3 \. T% e2 r + r+ ]8 q: g# t: h
substring(str,pos)   
5 V( ]- d* e& E$ a- s" msubstring(str from pos)   & ]7 y7 u; l2 e1 e' E
返回字符串str的位置pos起的一个子串  . O. e1 x+ u  j' s4 i* ^1 X
mysql> select substring('quadratically',5);  
5 p$ M, Z- p7 }+ m& A  a% x3 q  -> 'ratically'
. w5 Z! B' M; s) L+ omysql> select substring('foobarbar' from 4);  . F( t4 T. c* m/ K( p# P4 t
  -> 'barbar' 3 P3 E: O& P& Z3 j
5 }/ |0 ^% a$ |9 M1 @5 K
substring_index(str,delim,count)   9 K7 `! k$ d! M+ s- h( `
返回从字符串str的第count个出现的分隔符delim之后的子串, b8 J+ E! r" j( G$ t$ F' ^
(count为正数时返回左端,否则返回右端子串)  9 U4 L% ~9 _# S, H5 H8 d7 D5 ^  X
mysql> select substring_index('www.mysql.com', '.', 2);  , `7 b/ _0 T1 p6 J, d$ v- m
  -> 'www.mysql' 5 s6 O3 P0 c- Y
mysql> select substring_index('www.mysql.com', '.', -2);  
  o" G" Y$ v) U  -> 'mysql.com' " I) w1 h/ z! E0 \# \# }0 _8 ~
. a; _$ D2 s! `! I# d, {2 g3 c
ltrim(str)   
  \8 `' H: k- c: g. T/ f/ ?  X返回删除了左空格的字符串str  
, R& V  ~  M, o6 g: o  ]% fmysql> select ltrim('  barbar');  0 l4 x6 M7 S9 d6 s1 N9 V/ i
  -> 'barbar' 5 ^+ i$ L% P, ~% p# ^" F% P- {% D

' F6 K7 k8 X2 L8 Q; nrtrim(str)   . o- K' i( U1 J1 f: ~
返回删除了右空格的字符串str  : i" u( i3 K& g  v4 G
mysql> select rtrim('barbar   ');  
0 |4 i; |+ {$ D0 \9 n  -> 'barbar' 8 m9 S; L$ U4 K0 g& n

, M7 o  U  R/ G+ ~& ~  q' B+ L. vtrim([[both | leading | trailing] [remstr] from] str)  
8 [3 C3 S4 H  y: o, z& I- p. y+ L返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  * y4 c( a+ b5 n7 G
mysql> select trim('  bar   ');  
: ~1 L- n0 k4 l+ G: B  -> 'bar' ! B( B: @  W. ]
mysql> select trim(leading 'x' from 'xxxbarxxx');  
: c. X7 y& h' a  -> 'barxxx' % e" ~. Z9 T6 `- w0 C* n. W, v
mysql> select trim(both 'x' from 'xxxbarxxx');  + m  J  d" @$ y* r- z" Q( [* @2 L# A
  -> 'bar'
1 B  y* m4 ~2 e! Omysql> select trim(trailing 'xyz' from 'barxxyz');  
3 w3 d; a0 [" t: a7 a  -> 'barx' 1 p/ ~6 `! {7 \6 }: }; ]

: ^+ k$ R( y5 esoundex(str)   # p7 i. K) P1 I: P/ @6 _
返回str的一个同音字符串(听起来“大致相同”字符串有相同的4 b$ k% }5 v- v7 o) F
同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  / u+ e. ]) i, `) J7 T
mysql> select soundex('hello');  
7 `5 t/ _) R6 l6 q  -> 'h400' ; U' S+ L/ U( ~) R' F' ^
mysql> select soundex('quadratically');  
3 }2 g& o% A" _  -> 'q36324'
6 ~% R, |1 O4 y, |/ P( L) @   
7 m% _, J  S* h" U5 P$ h: Y$ q7 f' aspace(n)   
1 x+ k- p$ w. T& X" G8 s2 S返回由n个空格字符组成的一个字符串  
8 X1 U/ b; {) P0 K' ^. @+ J. s7 ]mysql> select space(6);  * U8 ]/ e3 R3 u
  -> '      '
& y# I. r5 u6 K2 E   ! _% t/ Z7 s* Y1 r
replace(str,from_str,to_str)   
; [2 L2 c+ f; ]" {! O3 B9 p用字符串to_str替换字符串str中的子串from_str并返回  
' C' m* q5 F5 S# b8 a4 jmysql> select replace('www.mysql.com', 'w', 'ww');  , z9 ~# ~4 P! D/ [9 \1 c: o
  -> 'wwwwww.mysql.com' 3 `9 }  |% P" `  _! {$ y
5 M% a8 \* |  v3 \
repeat(str,count)   * i% T- o  F% q
返回由count个字符串str连成的一个字符串(任何参数为null时
0 @& Y' J# Y4 x6 X) }- m返回null,count<=0时返回一个空字符串)  " L) ]" C" P2 [! `' r
mysql> select repeat('mysql', 3);  & h  W! R. ~# |  d# R& _6 ~4 f$ ]. _
  -> 'mysqlmysqlmysql'
' D( a% m" E- H" s   - Y0 s. Z6 A- B8 U- j* S( O
reverse(str)   ! y. }. s: i$ x% M) p& }
颠倒字符串str的字符顺序并返回  
$ n# q) q  v4 Q1 n% Smysql> select reverse('abc');  , h0 s  Q* ]6 B' V' j) T; u
  -> 'cba'
- N. ]" `7 X3 T( Y - g. |$ Y4 q# U4 Z$ W
insert(str,pos,len,newstr)   ( F( s+ @7 }1 j; F7 b
把字符串str由位置pos起len个字符长的子串替换为字符串4 T0 `& ~2 T. B) v6 J4 M
newstr并返回  6 {8 t$ C9 J+ e- Z  c3 U% c
mysql> select insert('quadratic', 3, 4, 'what');  0 y( [; x6 R' q9 b' y5 B; A. i
  -> 'quwhattic' 9 u# I- V% V% D* G" I- ]. U

- e2 ]5 J/ }6 F! r5 ]# uelt(n,str1,str2,str3,...)   
7 U  e" F3 Y( j( e, r4 j+ T9 k返回第n个字符串(n小于1或大于参数个数返回null)  ( |; l  y- T) f5 W
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  
. x2 }: T; R$ R. L  T  -> 'ej'
+ k7 k8 r9 C/ K: q5 ~mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  " Q2 Z* e4 X& q. W
  -> 'foo' ; w) y8 Y$ ~- p2 }
9 h: G2 \8 U$ E+ h6 u" `  f' c7 X. b
field(str,str1,str2,str3,...)  
3 k, w; Y, w6 m1 j5 Y返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
. Q# x. I9 F* Hmysql> select field('ej', 'hej', 'ej', 'heja', 'hej',) w3 L% _7 P$ r& r! |9 y
'foo');  
; B- K* p) M5 S/ D  -> 2  
( a( y0 x* n+ Cmysql> select field('fo', 'hej', 'ej', 'heja', 'hej',+ s. S; k- M7 }3 i1 d1 i. e+ [, G
'foo');  
' i3 T3 O6 Z* k  -> 0  3 ~  z; d) c  L$ ?' I  q

4 t4 P$ ?/ E7 @find_in_set(str,strlist)   
" ~- f' _2 L& |* s' R返回str在字符串集strlist中的序号(任何参数是null则返回
: t2 O. `- j, z$ ^5 \+ Snull,如果str没找到返回0,参数1包含","时工作异常)  
. O, F! G7 H7 M/ }3 U' E; G1 Z8 Wmysql> select find_in_set('b','a,b,c,d');  
& ]' n& ?7 Q! m9 ~& w  -> 2  6 ]6 S) l7 Q, g% X1 H0 H
   
$ x1 X  h- x2 h5 E* i) k2 f2 lmake_set(bits,str1,str2,...)  
# L$ T6 {- s8 D& h# ?把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应1 t1 K2 I% L8 @% P' w, B1 A
位置的字串选入字串集并返回(null串不添加到结果中)  
. Z6 S+ m* r* Z+ K: R, c% tmysql> select make_set(1,'a','b','c');  ! F. f# ?& U/ j' s
  -> 'a'
7 D1 {5 K8 N) L9 h/ y  F. emysql> select make_set(1 | 4,'hello','nice','world');  
0 O4 J6 r4 S: Z- p& ]2 H- s. e6 K  -> 'hello,world' : U! t# @& x" m# p
mysql> select make_set(0,'a','b','c');  7 l% B5 X% U+ g  z& t$ f
  -> '' - u* m7 }! j, o: L, Y
4 u' k# a) v% z' {# }' w
export_set(bits,on,off,[separator,[number_of_bits]])   % ?% a  B# v# v) [' n7 K/ J
按bits排列字符串集,只有当位等于1时插入字串on,否则插入: p: f8 {5 X1 a+ V( s+ ^3 P
off(separator默认值",",number_of_bits参数使用时长度不足补06 E4 x, n' i& {! z& I# U
而过长截断)   
- `8 m! m3 V( Y9 nmysql> select export_set(5,'y','n',',',4)  $ R. ^) V) C9 o
  -> y,n,y,n   % W$ N9 q3 G5 s; E4 L+ n) @

( b2 B1 S: r+ h% o# Hlcase(str)  
7 p. l+ S4 k9 v, k+ W: jlower(str)   0 ~$ B2 V9 t* Y6 e" ~" ?$ e
返回小写的字符串str  
. O- O" A9 K& \( X+ J3 v+ nmysql> select lcase('quadratically');  2 o! ~. a! N. q. U, }( S$ [: N
  -> 'quadratically'
" T4 Q: U# ^' |9 G   
7 L9 ]( }0 \5 {  w4 bucase(str)   
  d$ T& x& S+ N8 t; `8 B1 {upper(str)   - l3 @6 b2 V- s' h! g: s
返回大写的字符串str  
/ n8 k' E# I$ D2 ^- Q' X9 K7 Amysql> select ucase('quadratically');  
- R0 O0 d! f5 }' T  -> 'quadratically' ( z& v  @0 Z6 W! c! M' |7 E
; i0 @5 g' i+ `: l4 S
load_file(file_name)   " o- P7 w+ m- B/ [/ b( n
读入文件并且作为一个字符串返回文件内容(文件无法找到,路径" D" @! v. X* b$ f
不完整,没有权限,长度大于max_allowed_packet会返回null)  8 F) W0 Y7 ?3 c& W; O* r
mysql> update table_name set blob_column=load_file
( l8 [" R0 e4 W  Q6 X. b2 ]("/tmp/picture") where id=1;  : C$ i0 s" @) m, Y5 N# J
4 l- v0 H5 ^( X, t- C8 K& i( ^
2、数学函数0 C( E' }% f; P( Q8 q
abs(n) 8 Q, _( Q. P7 y* |" z/ ^, {
返回n的绝对值  
& z: P0 d5 [' g' [) e) ~" omysql> select abs(2);    & g4 c5 S1 J  h, m+ @) i- ^! D( M" I
  -> 2    4 }' Q# a+ F5 }! f: F: L4 h9 R
mysql> select abs(-32);    9 W- z  I: a( B# M
  -> 32   
, T! n3 ~1 ~/ j; d% b   8 `. p9 D( @+ \9 |
sign(n)  
  m6 y7 X9 ]6 \# p# u+ r- \. a返回参数的符号(为-1、0或1)  + _- v  M! ?3 N7 v
mysql> select sign(-32);   
' O( M# o/ `1 H( d- q  -> -1   
0 `4 S. R% M  e0 L$ T& lmysql> select sign(0);   
! i) w+ }1 F2 E3 m0 B! z4 T' o  -> 0    ) m8 w8 T6 A: w, F6 }
mysql> select sign(234);    % _4 b, B- }# o# N
  -> 1   
: t" l4 b. C6 J; `  s: T7 n' C* W5 r% K 9 w" D) {+ Y' S9 g8 J0 E& O
mod(n,m)    7 C( s1 f; ~& D9 o" I
取模运算,返回n被m除的余数(同%操作符)    ( l( d! G# i) y- E: R1 B. m6 u3 z
mysql> select mod(234, 10);   
) Y+ S3 J% I' f& f7 t' X7 K1 g  -> 4   
0 Y7 l0 `5 @) T4 [6 F8 Y& ~& ?6 I% ~mysql> select 234 % 10;    1 W: }$ g* P4 w% D2 S3 ?* _
  -> 4   
  ]3 Z8 b3 [. Hmysql> select mod(29,9);   
/ z& z8 G& z8 _* l  -> 2   
9 v4 s$ U5 i8 Z* c+ m3 e * P5 y' [& d: O5 |
floor(n)  
2 Y2 f9 Q. `" ?. T9 L返回不大于n的最大整数值  
4 K; C3 N( |* c7 I5 tmysql> select floor(1.23);      {1 M/ E3 O& d# @7 {
  -> 1   
& z5 f  j, f9 `mysql> select floor(-1.23);    3 G: R- E4 v& M
  -> -2   
7 U2 [. O$ ^5 T3 B5 ` . u- E' T( V5 N- E- |
ceiling(n)  $ U1 d; A3 G9 T9 `
返回不小于n的最小整数值  
6 S1 h4 r9 d8 B- \mysql> select ceiling(1.23);   
  Q) R" f; B0 P! A( ]0 B2 p  -> 2    % L( N* v! N5 ?/ }2 C8 E+ v
mysql> select ceiling(-1.23);   
, E6 X6 J6 f( K$ E4 y, _  -> -1   
+ }3 ^' x8 C# g2 e . J2 y" g8 N' P
round(n,d)  # h" w  T! u! R! P' C& D
返回n的四舍五入值,保留d位小数(d的默认值为0)  
1 b+ x  p0 v" x- u) [9 v. smysql> select round(-1.23);    & V6 u! X3 a* P3 j1 d
  -> -1    # N+ L* `# k9 k% [; h
mysql> select round(-1.58);   
% x4 I9 C2 ?9 ]/ G* @  -> -2   
* t. v3 I! W! k6 c4 |mysql> select round(1.58);   
( S/ Z$ Y: \' `. e  -> 2    ' q! z2 Y, d5 [% D; _8 j
mysql> select round(1.298, 1);   
: P) B) d9 t9 u* ^$ a  -> 1.3   
# _& ~2 Q# e- imysql> select round(1.298, 0);      J) Y$ N; r2 D, L& ^+ L
  -> 1   
5 Q/ q  S6 z( Z  l+ } 8 B; k1 B  i* o% p% x
exp(n)  * y) ~7 b- U9 _
返回值e的n次方(自然对数的底)  
7 y5 T; {2 |' l9 r3 ^mysql> select exp(2);   
, D1 S7 I! ^8 i! Y+ h  L  -> 7.389056   
- e6 F/ C& z; Fmysql> select exp(-2);    3 z& w9 g+ i/ F. Q8 `
  -> 0.135335    6 t9 T! q- X- I4 v7 z1 S
+ J4 \9 A# Z3 z/ c/ ^% k
log(n)  
% M4 E5 o1 @1 X+ H; J& d返回n的自然对数  4 ^0 u" s, O# O5 [" `1 ?
mysql> select log(2);   
' G4 a; T- ]) o& s1 y) ?- D  -> 0.693147   
- O* f8 v6 Z6 Dmysql> select log(-2);   
" N0 ~% Z5 X4 f4 e  -> null    ( U- i$ t0 Y3 n+ F) s, |

* t3 V& r. C+ Slog10(n)  
/ B  Q4 G' |& y) [* P8 F返回n以10为底的对数  ! M# _3 v  r- g3 \
mysql> select log10(2);    6 o5 y$ |5 a( n/ s
  -> 0.301030   
7 m2 |& H- P% y) i* D) h! Kmysql> select log10(100);   
( G: e+ [' \7 b2 h  -> 2.000000    % h# S+ Q0 D, T6 S3 f
mysql> select log10(-100);   
+ H! j' M! W, }1 z0 d2 b* C  -> null   
" |9 b+ C- t& V- w) ]6 ~$ D . L% k9 ]6 t# b3 z, o7 M
pow(x,y)    1 j& ^! a6 b2 A# l1 E- ^
power(x,y)    & K6 q- V8 c8 k& G" f$ V2 D
 返回值x的y次幂  
. P+ G( [: m! C: `( H3 `mysql> select pow(2,2);   
3 f/ ]* o: j5 q* v2 T1 \1 |  -> 4.000000    " p# w! m1 M2 L* q$ U4 c0 Y. Z% I" e( h
mysql> select pow(2,-2);    + Q  i( _" _5 w$ n" a2 y
  -> 0.250000  ; H) X& N6 O/ }+ h
8 a! H" u3 n% n# k) l+ K
sqrt(n)  " r. i) y9 }6 W* ]
 返回非负数n的平方根  5 H1 _) j7 A' Y/ r# o6 e0 S
mysql> select sqrt(4);   
. e/ w  |6 \8 _% v# @  -> 2.000000   
; o1 ]" g1 f  [/ {# Mmysql> select sqrt(20);   
/ G# @6 O9 Z2 |- C) X- T! O  -> 4.472136    % E  M2 W; M/ l  m  l

2 e8 y8 u8 u  Jpi()   
. [6 E. N4 U' t1 u 返回圆周率   
9 _& }) M0 z( l- n4 Hmysql> select pi();   
7 K( T9 c7 a9 k1 @; z# W4 R& ?, W6 k  -> 3.141593    5 Z4 q8 y& Z, ^* ?0 X  Z+ ~$ V

% l0 E' G; k1 P9 f- J/ A( U6 G+ gcos(n)  ; m) T+ L! l) ^: q
 返回n的余弦值    Q+ ]# c& Y/ M/ |
mysql> select cos(pi());  0 \9 f. O+ e8 P; |$ p  m
  -> -1.000000   
7 a  ^& n8 b! j4 m4 B
. ^/ u7 e& z: {) p' C% Hsin(n)    h: Y9 Z( C& r& d' `+ o$ e* W
 返回n的正弦值   
7 M/ j' E. Y( p6 Z/ {6 S  S4 dmysql> select sin(pi());   
: D3 N' _1 ~9 J3 A* X  -> 0.000000    ; Y% ~$ Z" O9 Z: x8 `
/ K0 h# M0 x: f1 ~2 F
tan(n)  0 `9 s# _, q, n2 u) t0 n
返回n的正切值  . \5 l4 w6 Z* r$ `( @
mysql> select tan(pi()+1);    2 V* C$ r. l& E4 Q3 h( ]
  -> 1.557408    ; J: r  F: R3 }
- y+ @2 ]& ^1 C* z# Y
acos(n)  ( t! o/ x$ e, f9 q0 `4 ~2 x& Y
 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  1 M* A5 o6 ~2 }! L. X! @# [( n
mysql> select acos(1);    . P% s; L& n, W, d% F
  -> 0.000000    % S, x! K( G9 H7 X
mysql> select acos(1.0001);   
& {1 R: o6 u: J# K0 E  -> null   
7 e+ ^; U; g6 r1 {& P/ Z1 l& m5 Wmysql> select acos(0);    9 D  V1 ?! @: x: K& Y2 N
  -> 1.570796      K/ S4 t8 Q$ \

: w0 }; v. {& `2 D) j; M. b$ dasin(n)  
+ c! L! I: H  z/ _6 A+ X/ r返回n反正弦值  + b0 I  t6 x7 M( i2 e
mysql> select asin(0.2);    3 x& \! j. t% j6 u
  -> 0.201358    : t, b( [* Q& Q8 p/ E4 A
mysql> select asin('foo');   
! {2 C% P: C; O9 Y  -> 0.000000   
: `% j. J4 C- j 9 y$ J& Y/ ]$ _7 |6 J/ X
atan(n)  % a& t' k- f8 |# |' J
返回n的反正切值  
  z6 Z  X/ k; `( ~1 Pmysql> select atan(2);   
) T& ^( {1 l' q. w3 X* p  u' b  -> 1.107149   
  i; X, V% R# x) fmysql> select atan(-2);    7 H) H3 w$ w( c8 R7 S
  -> -1.107149    % _8 `2 O8 t: X9 e0 Z
atan2(x,y)   
; m8 H1 S" n% }8 v+ S. o1 q: `: X 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  6 ?. z. ^" [* R
mysql> select atan(-2,2);   
( n9 F& q" g* U  -> -0.785398   
* a) W/ h3 T0 d# r( s8 `mysql> select atan(pi(),0);    0 m( b2 Z0 [# s& _3 q1 d1 w2 W
  -> 1.570796      q3 a& t. x; n2 j

. A2 Z' p0 c  tcot(n)  & t' @+ c$ \, ~. D  X
返回x的余切  
- K" g/ ^1 I& xmysql> select cot(12);   
9 n( O+ O. l, ]; Q  -> -1.57267341    ( \" L& X: I) ^' p  x
mysql> select cot(0);   
+ d7 u' n+ [# f  |% ^1 x$ ?4 e  -> null   
* o8 m- C9 o! `, y) T
6 q: t: D6 b9 J! Arand()  ' X8 R* C. h5 C3 \: [6 n* ^( M/ S
rand(n)    
* X- J7 O1 E! a( s7 r0 ?返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
& [% }! }. y. a! p! W
( }" x9 s/ _- a3 W; pmysql> select rand();    & G/ S. u, i& E7 l: k
  -> 0.5925   
8 D- {% {8 w0 v/ m! j, zmysql> select rand(20);    ' i7 ]  F/ @4 I8 b
  -> 0.1811   
7 N. P* y0 A3 W" r* _( U9 ]$ Vmysql> select rand(20);   
7 |# N7 b8 x" ~8 F1 q* x3 {  -> 0.1811   
: i- p) r8 [0 R" ?mysql> select rand();   
' g. d9 f7 ]$ u0 h% f  -> 0.2079   
- F$ I3 f5 Q  h8 [mysql> select rand();    ) ^; m; [5 |0 I3 }' Q8 I9 J; B8 o6 S
  -> 0.7888   
4 @5 y. ^( q1 \
. @8 p" K+ m  f, t* Q9 T+ Zdegrees(n)  
$ m2 {( _& `6 z9 Q把n从弧度变换为角度并返回  
* A  |4 O4 {  X* g+ Z1 Ymysql> select degrees(pi());    . b/ [3 ]0 _9 ]2 \& e2 X' y0 W/ j! v
  -> 180.000000   
9 E4 P! Y9 G: [* Z/ { ! Y. N6 D7 h( d9 N; h$ x
radians(n)
% q! i# }; K7 ]把n从角度变换为弧度并返回   
: B1 h" z$ V; {mysql> select radians(90);    ; @: E0 Q( j5 J1 v0 Z8 n& c
  -> 1.570796    8 G! o  @3 C$ x2 C0 D% u5 L

) {0 K, h" k1 M' p1 F9 btruncate(n,d)   
4 ]+ a) A1 N( `3 b! V$ @/ W2 m' P保留数字n的d位小数并返回  , u) C' x, s( @5 _6 @
mysql> select truncate(1.223,1);   
- U, |. @* {6 \  |7 {  -> 1.2   
' V% A4 O6 O$ J1 P$ y  T+ ?9 G; smysql> select truncate(1.999,1);   
. b! \' z0 _' _6 q  ^6 _  -> 1.9    6 D' N) ?  r/ ]3 e# w
mysql> select truncate(1.999,0);   
6 q$ K% X8 d* P. E* P  -> 1   
, M& _% O8 ]/ c) k  u, g7 _ $ m9 u* w2 M; O* ?
least(x,y,...)    7 Y' G& N6 r; C) V9 k& Z
返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
+ M& P& n, z. d1 _8 lmysql> select least(2,0);   
& U7 ?3 Q" x- S( n) w# K  -> 0    8 _  P! W! \8 J* [9 r0 L
mysql> select least(34.0,3.0,5.0,767.0);    / d& m. l/ c" e, M6 c
  -> 3.0    6 L3 _3 [; p; D/ U( r8 v
mysql> select least("b","a","c");    2 O. `) k/ N% J2 ]" U3 Y
  -> "a"    " w: O/ h3 [: }; ^0 I7 }

, `* l* C' Y) \/ n% C9 Lgreatest(x,y,...)   
. t  L+ l# r" |& u, R9 k4 C返回最大值(其余同least())  
/ k5 R' n( b" t3 @& Kmysql> select greatest(2,0);   
) L4 ~5 ]" r' g& G0 O' {  -> 2    # w# ^- v$ i8 \2 J; W, r$ ]. w
mysql> select greatest(34.0,3.0,5.0,767.0);    6 g6 t/ G, g( k- t
  -> 767.0   
- L5 {7 E6 ]) b# w. U" Q( K" nmysql> select greatest("b","a","c");    0 [1 o( g- }% @- i0 F1 P9 [) l
  -> "c"     3 _2 [* \: @; o% ~

) E2 z0 |, T" n( O3、时期时间函数 % K7 |4 c, c- D5 I2 [
dayofweek(date)   
5 I! ^/ v% u4 B返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  5 l2 K2 o; u) n5 _2 _4 z8 z% w
mysql> select dayofweek('1998-02-03');   
- ~0 c$ W1 l! B6 p0 _  -> 3    5 ], T/ w6 p7 k/ [; s( p: H5 U5 @
  H2 A+ h" S/ D& w
weekday(date)    8 M2 b/ V% d6 ~; }( P9 d
返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 1 v2 a5 s  Z( C. R
  
$ U0 m; s* r: u! @mysql> select weekday('1997-10-04 22:23:00');   
% H$ x! t* f# E$ ~9 B" P/ ?  -> 5    5 l9 y+ x( v) U
mysql> select weekday('1997-11-05');    5 _' {; |) h# t3 a1 }, d5 s8 `
  -> 2    2 O7 M) M3 y9 m4 ~+ K1 N

6 l' Y- M% x7 L! g8 Y7 u" ?dayofmonth(date)    
& }4 ~' R7 [% G) O5 o. C$ S返回date是一月中的第几日(在1到31范围内)    1 O+ e0 O. I% z( f# U  \# R
mysql> select dayofmonth('1998-02-03');    - {9 D. ?1 }$ W! K" w3 @- j
  -> 3   
5 O  p7 F! [2 R ( Y% s- l1 ^& `/ |3 e% _
dayofyear(date)    , d4 g6 Z, v0 r$ o) h' ^7 v6 {
返回date是一年中的第几日(在1到366范围内)    0 E+ x; O0 r* n. n2 \7 g8 f: Q# v
mysql> select dayofyear('1998-02-03');   
( B% z' O# M* G1 J' U  -> 34   
: v4 e! Q: K/ x1 ~4 Y7 P
0 v' B; x9 H+ X; Y3 ymonth(date)   
5 ~+ h1 ^8 R9 k. N返回date中的月份数值      B  r, }3 J, p9 I6 U
mysql> select month('1998-02-03');   
; k4 k4 W7 C+ R1 G) q9 d  -> 2    ' j& a3 x7 A- l
- Z: a- s  o9 H" O& q% z5 ]
dayname(date)    5 R2 `! `; |8 t) T' e
返回date是星期几(按英文名返回)  
% }  z+ A9 J) K& O5 |mysql> select dayname("1998-02-05");   
* i5 d3 f# D# ^/ N( k  -> 'thursday'    1 Z2 J$ X+ _  A- Y4 y- U

, a9 Z4 c5 _- r8 xmonthname(date)    9 U' G& A# a/ K# \7 q1 S
返回date是几月(按英文名返回)  
: z. P' ^( B& O4 m, x, q2 Y/ G+ wmysql> select monthname("1998-02-05");   
) s/ @  b- f: R6 T+ [  -> 'february'   
$ |6 R* U- W9 F0 y
+ m5 [" f+ o7 s+ b0 D" R, }# Y% [quarter(date)    3 V- u9 e3 ?8 d. `
返回date是一年的第几个季度   
# b( _& }  C. vmysql> select quarter('98-04-01');   
  Y0 Q/ c( {6 [* \; E4 I  -> 2    : h; `& B' q) b7 D
  ~+ m7 r' G( y: E
week(date,first)   / _3 o7 u8 R' J1 b( d, [
返回date是一年的第几周(first默认值0,first取值1表示周一是
6 J+ s8 p0 O1 }' i5 a周的开始,0从周日开始)  
1 |! R' d2 M2 x5 n2 a. qmysql> select week('1998-02-20');   
2 _( \" X# @9 {# p) g$ H  -> 7    ( ~  e3 @6 P. c' ^
mysql> select week('1998-02-20',0);    ! B8 u5 o' V# J7 Z" I8 I5 G0 g
  -> 7    : e* Z' {1 E  ^' L3 f) w! ?
mysql> select week('1998-02-20',1);   
' N9 g% W, m6 k8 N8 W( q  -> 8   
! N: b( S/ |  G! z
9 C- r' X) r4 |year(date)   
& }* D4 P' ~- U& [返回date的年份(范围在1000到9999)   
" h' Q% }  L5 ?: C2 ?& D# y: Pmysql> select year('98-02-03');    : L2 b( P. Y) ~7 R0 C& H" c7 s- B  Y
  -> 1998    6 G" s% u: H( L4 J8 D7 D( C

4 @+ N7 K# @0 @) I. |" S1 Uhour(time)    
7 N, |5 [: d5 Q- j  x) f* H, s返回time的小时数(范围是0到23)   
+ ^) R' g. t# D0 v7 m0 D4 zmysql> select hour('10:05:03');   
; L. z6 C6 _& {* p) ~  Q! j  -> 10   
* {' t: `: s) Q  I3 Y# v7 @% Q ) R0 G6 O* A) S
minute(time)    - e) [4 k9 m7 }+ _/ v% _
返回time的分钟数(范围是0到59)    - V6 i/ F/ j6 ?. X% o
mysql> select minute('98-02-03 10:05:03');    ' P5 V8 t8 ~- L3 I: ?
  -> 5    ) b. O  Z1 @/ W" X

+ ]2 _# Q; A0 S$ Vsecond(time)    
- C; ?' O7 s0 r8 T- n6 L返回time的秒数(范围是0到59)   
( W6 N0 E# x  I9 ?" jmysql> select second('10:05:03');    # H! L* h2 m; r1 N( N2 c
  -> 3   
- ~4 t0 O4 S7 w, B: _3 Z
, |' q" y4 w8 ]) u0 [period_add(p,n)    & B6 B) X" Z4 ?5 i# x  k
增加n个月到时期p并返回(p的格式yymm或yyyymm)   
5 a! ?& @3 q. [- h8 H* [mysql> select period_add(9801,2);   
+ y- }5 K8 R5 H" n! v  -> 199803    - _* H; ~( }2 ?1 ?
+ x# D- @0 n5 J' R" R4 v4 K
period_diff(p1,p2)   
1 ]& ^; x. _8 ?$ S9 Z返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  % ?5 ?7 ?  k1 z
mysql> select period_diff(9802,199703);   
, P+ g7 Y% L. _2 o& f8 }8 s  -> 11    $ k7 ~% H, s! a$ ^
2 B. ^4 C/ _# {7 w/ u8 x$ F/ x
date_add(date,interval expr type)  
* X' \6 O" I, v7 cdate_sub(date,interval expr type)    3 I* L2 V3 h0 z, G5 e+ r8 l% O# ?
adddate(date,interval expr type)   
2 _4 I9 B  m4 e4 X+ ]7 V, p0 Xsubdate(date,interval expr type)  # I+ m! v( Y: v2 ~: n; X5 }2 X
对日期时间进行加减法运算  
  |2 e2 }- _2 p9 E: H(adddate()和subdate()是date_add()和date_sub()的同义词,也* B( c/ ]3 a' L; j- B
可以用运算符+和-而不是函数  ( d( x7 Y  s5 K$ q
date是一个datetime或date值,expr对date进行加减法的一个表
* {) {$ g$ D0 k3 @2 F) e8 A达式字符串type指明表达式expr应该如何被解释  
% v+ O" A( |. R& N# ] [type值 含义 期望的expr格式]:  
( ]. L1 h6 z. I5 h3 R3 ^5 u3 ^' G second 秒 seconds    & n7 H  x+ d+ Z5 A. d- w; s6 W" x
 minute 分钟 minutes    # s& S( C4 D- D6 Q# E; Z! B( ]0 d
 hour 时间 hours   
" P# \, |6 \* x6 B3 t$ k  U day 天 days   
/ ~( A3 g+ U1 P  T6 c* _/ {) S3 R month 月 months    $ B5 a; x- E1 K; S
 year 年 years    1 e: r, h. x5 z8 X9 U, t2 b4 \2 k3 a
 minute_second 分钟和秒 "minutes:seconds"    0 H, v0 S0 F0 z% [( H1 o' X
 hour_minute 小时和分钟 "hours:minutes"   
6 \" h# p* H) `/ O9 g. m day_hour 天和小时 "days hours"   
" q1 f0 c& z' q2 K year_month 年和月 "years-months"    : v, n2 b; H) ~  J
 hour_second 小时, 分钟, "hours:minutes:seconds"    % Q8 e' T) z, D5 i! I# t
 day_minute 天, 小时, 分钟 "days hours:minutes"   
; T/ h# d9 _7 }- c- m3 Y day_second 天, 小时, 分钟, 秒 "days
/ v# k* j) r1 R, ihours:minutes:seconds" % e. R9 Q6 C* C" T
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个
8 }5 I: A0 B# |  @, K0 kdate值,否则结果是一个datetime值)  
! T3 d: W3 g; ] 如果type关键词不完整,则mysql从右端取值,day_second因为缺
7 I& c; r% ^; X; K: z6 D% M3 E少小时分钟等于minute_second)    I4 e7 h9 y1 h# {3 W  g
 如果增加month、year_month或year,天数大于结果月份的最大天
- S1 {. V3 W& v/ V" i数则使用最大天数)    3 Q: b) i" c0 _
mysql> select "1997-12-31 23:59:59" + interval 1 second;  
% ?, n2 B$ y& D0 x ! h0 n5 {! {4 \$ T0 X
  -> 1998-01-01 00:00:00    8 C5 h7 N! y  e5 b0 Z
mysql> select interval 1 day + "1997-12-31";    ( {) }& p* q' u
  -> 1998-01-01   
3 U# `, d5 D2 z& n" A5 Mmysql> select "1998-01-01" - interval 1 second;    ! w' E- a( u6 f. K3 F2 l4 E
  -> 1997-12-31 23:59:59   
0 ^9 _  L1 p, T! U* E+ nmysql> select date_add("1997-12-31 23:59:59",interval 1
2 F9 K+ H) @6 t; {  h7 D7 M$ _- \second);    ; G* O  w5 u  s0 j. E0 ~5 X
  -> 1998-01-01 00:00:00    0 w$ k" c  H% h7 y
mysql> select date_add("1997-12-31 23:59:59",interval 1: E0 R0 m6 u6 C) M1 d8 q! \5 c
day);    / r" ]( H+ ~& S
  -> 1998-01-01 23:59:59   
5 o; [( J; H1 \5 @0 w( O; Y2 M  E2 gmysql> select date_add("1997-12-31 23:59:59",interval
; A" P9 k' X) [3 n" F# u"1:1" minute_second);    , i3 Q) R+ M2 B1 x# ~) J8 W
  -> 1998-01-01 00:01:00   
9 U5 B% |4 L+ b: U' l3 J0 {/ Smysql> select date_sub("1998-01-01 00:00:00",interval "1
) A: X) i3 G* A! `' P: O% p4 u1:1:1" day_second);    1 \+ l: p$ F1 S
  -> 1997-12-30 22:58:59    # n- U2 R) a: O; A- C, f& u) y+ I+ Z
mysql> select date_add("1998-01-01 00:00:00", interval "-1" Y! t$ R) X/ A$ h3 L
10" day_hour);  2 R* W+ q  R4 L9 u& ^% B4 ^+ q
  -> 1997-12-30 14:00:00   
1 ]: P  K3 r+ amysql> select date_sub("1998-01-02", interval 31 day);   
8 }4 e- o+ w" ?* S+ M3 [  -> 1997-12-02    8 b! c# C0 d* B/ v
mysql> select extract(year from "1999-07-02");   
& Y/ d6 j, K$ O# X7 Z& M  -> 1999    1 F- a% q# i6 |' t- o
mysql> select extract(year_month from "1999-07-02
" G3 J0 r3 j1 ]1 c, Z) _4 O/ {01:02:03");   
# L$ N: P, v7 C" e' i$ f& j  -> 199907   
" P# l$ i. n; \; z4 W4 W: Nmysql> select extract(day_minute from "1999-07-023 p. u" d/ X. G0 `9 b' J
01:02:03");    , T% d4 m. n( N* q3 S3 @9 C
  -> 20102    . q0 z) w1 ?1 i3 }8 z

+ M5 `9 D7 G4 [3 J! N9 gto_days(date)    $ _3 U6 u$ D+ S1 ?! Q0 X
返回日期date是西元0年至今多少天(不计算1582年以前)  
6 t3 J, p7 S8 `& o! L2 smysql> select to_days(950501);   
6 c  @, O% G8 m( B; O4 N. Y6 j4 U  -> 728779   
! c: h/ ~1 H1 C' ]9 Qmysql> select to_days('1997-10-07');   
: u' Z. q1 d. w3 x8 }4 H$ J7 q0 f  -> 729669   
2 }6 r9 I" G- v, X& w- k# l 5 C& ]" s/ e  S+ l  @
from_days(n)    . H# z' V, e/ I5 @
 给出西元0年至今多少天返回date值(不计算1582年以前)   
( {7 \+ A# t8 V- d4 L- t: fmysql> select from_days(729669);    : e. q% A. O8 M0 @7 k( v( F% v
  -> '1997-10-07'   
2 u; _  J* ?9 n( V; Y( f9 B; T8 ^
% k- k/ [3 D& j( @date_format(date,format)    / l5 ?1 q' C0 h- H5 e3 ?; k! b
 根据format字符串格式化date值  
" d: l; ]" C0 q$ e7 D$ T* m) p3 ~ (在format字符串中可用标志符:  + n8 e3 d- Y4 G! N6 _0 e$ R' P
 %m 月名字(january……december)   
2 C& R, a4 H( m# M' \  ` %w 星期名字(sunday……saturday)   
% c6 S( r9 h+ }4 o& l# y %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)   
2 W3 g' c# t1 y5 [# C; w1 ` %y 年, 数字, 4 位    6 {" C' R0 J9 h% I
 %y 年, 数字, 2 位    % Q- I( b" [# o, ~- B8 g
 %a 缩写的星期名字(sun……sat)   
* P' |$ x6 ^6 [/ j( ~, N( R' k4 I& T- G %d 月份中的天数, 数字(00……31)    : G2 I$ N" N7 k$ p$ ^! F
 %e 月份中的天数, 数字(0……31)    9 d9 K( D4 ?, f9 d+ ~* f
 %m 月, 数字(01……12)    8 o$ f3 V. W! ~( l2 U) Y
 %c 月, 数字(1……12)   
/ ]$ G- k2 A/ ^ %b 缩写的月份名字(jan……dec)   
2 Z/ U+ u7 [6 a, t7 I* p: k. i! X; ]% ~ %j 一年中的天数(001……366)    9 ^- w! B: c+ U7 e; ?+ s' E
 %h 小时(00……23)   
* P  P* l0 |* j* N1 Q %k 小时(0……23)   
3 ~- J/ M% N( ]  @( J& ? %h 小时(01……12)    . e/ [0 C* i, [$ b: r
 %i 小时(01……12)   
# I/ G: `) |  j0 c- p! ~ %l 小时(1……12)    9 q( h2 N! z, K1 m) X
 %i 分钟, 数字(00……59)    2 Z0 D. o0 g& z" t- n. s4 A
 %r 时间,12 小时(hh:mm:ss [ap]m)   
) ?4 t3 l. n' I3 b- h7 `$ e/ f %t 时间,24 小时(hh:mm:ss)   
' E7 Z9 C& ]) y) I- y %s 秒(00……59)   
; }- c& ?/ \6 v* H& j %s 秒(00……59)      z( Q) o7 Y$ f0 `9 L8 Y# |  d; ]* J- B, e
 %p am或pm   
  p- s% @( W  i; d- n' T& M: W %w 一个星期中的天数(0=sunday ……6=saturday )   
3 V* k( @" ^* _ %u 星期(0……52), 这里星期天是星期的第一天   
9 {3 G" g0 x; Y5 d& Y %u 星期(0……52), 这里星期一是星期的第一天    6 v8 j' O7 G* ]: c
 %% 字符% )  8 `' r: |8 R' }% U
mysql> select date_format('1997-10-04 22:23:00','%w %m %4 |9 e. r' [7 c
y');   
) }5 }- {; w/ j  -> 'saturday october 1997'   
4 X5 }# y6 w& A( b$ Amysql> select date_format('1997-10-04 22:23:00','%h:%i:%
% }  Q2 b- L- k' |) Ms');   
( m" D$ ~6 F8 D( H& X) V/ Z  -> '22:23:00'   
; W5 E7 K$ B. ^mysql> select date_format('1997-10-04 22:23:00','%d %y %a
  X1 ]; a- q- g2 h* }* W3 d! J%d %m %b %j');   
, w! J+ m) j& R  -> '4th 97 sat 04 10 oct 277'    & [8 b( q& ?" f- a: D
mysql> select date_format('1997-10-04 22:23:00','%h %k %i
( M% ?' d( b# n( {%r %t %s %w');    ' d5 X- j3 ]% B( }1 E) ]
  -> '22 22 10 10:23:00 pm 22:23:00 00 6'   
! t( \! k! U' X& M0 D' H% Q" D
0 c/ l# Z) Q4 k* {3 ^time_format(time,format)  $ \' x' J" |: U; P) j: `* P( F
 和date_format()类似,但time_format只处理小时、分钟和秒(其0 N+ }/ A3 F' z1 ]* L
余符号产生一个null值或0)  7 N. t# m: e# \6 }' f, ?$ O

, [2 g. `" s) B" ~. F& h7 ycurdate()     
  E4 i1 Y" K6 e8 H( a& Ncurrent_date()  
4 B# y& q' c0 ~/ ^  P+ S4 s 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所$ C, E5 }) I1 I% f' q
处上下文是字符串或数字)    / K9 b+ A' ], b; C/ C/ w, ~2 `
mysql> select curdate();    2 B2 D( O- b$ L. ]. f$ ~  i$ M6 U
  -> '1997-12-15'      m$ L* o, l$ U6 m; `% o* u9 Y
mysql> select curdate() + 0;    ) C" R* m, n* L& B
  -> 19971215   
$ N5 X. C: P$ _2 `; h$ ~# C, Z- A   T+ B5 k' w) r$ |. h" _6 V6 o
curtime()   
6 [/ a2 ^1 w" k( u; L: dcurrent_time()  ! r3 K0 Q/ u; G- t& [
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
6 Y  f" S/ u% Z2 }% M6 D: J下文是字符串或数字)      
; I( Z. T, G, w( A9 Y  o5 Hmysql> select curtime();   
; J  V1 h' p& o7 j6 U2 V; z, O& g  -> '23:50:26'    9 ]% |* M# i6 F- t" }
mysql> select curtime() + 0;   
# ~, b% n3 S! l2 o# X" p  -> 235026    $ v$ {/ y/ q8 D* }5 A
, z8 r  S* w% V
now()      [% @8 B2 {* b" D7 s# E. Q
sysdate()      [# g" I! b* w5 Y3 o
current_timestamp()  
2 |6 m& L! `" ~& q, u 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期* ]/ e( C4 M" _2 a- e, n  q
时间(根据返回值所处上下文是字符串或数字)     
' i: O0 J' q. s# I" P' Umysql> select now();    7 b- W9 j9 A9 b% y- M5 b+ Z! w
  -> '1997-12-15 23:50:26'    , h& q# s5 K' t6 e7 _" r# J
mysql> select now() + 0;   
# x4 w  G# E4 @; U! @  -> 19971215235026    9 H1 t- z) K5 X4 }2 f: n4 f
8 F3 ]9 h9 F- r3 |$ D( q* p1 @
unix_timestamp()   
- v) R& ]! h! H7 C1 tunix_timestamp(date)    . g$ Z" a/ B4 f1 M
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
% }' o/ T! a; |; h# a5 W+ ^数,date默认值为当前时间)  
$ X# @9 n4 m# m* b  Y9 l0 z  Kmysql> select unix_timestamp();   
5 L$ ~% ]. L+ ]  -> 882226357   
5 f/ C* H* W8 G) hmysql> select unix_timestamp('1997-10-04 22:23:00');    2 X7 g7 f; {. G0 ~9 {
  -> 875996580    7 U1 Y# J* y) a( f
: e* b8 _+ I$ ?1 Z6 X& A
from_unixtime(unix_timestamp)   
, |; M7 a% [4 m4 y6 O以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的
; `/ F4 O7 y& p0 O; l5 c+ O3 P. \值(根据返回值所处上下文是字符串或数字)     
0 r& @% D; G4 V) i. J- J: L! @mysql> select from_unixtime(875996580);    7 g( E7 g* {1 G7 e3 o
  -> '1997-10-04 22:23:00'      r3 J8 Q% U2 \; L
mysql> select from_unixtime(875996580) + 0;      M& p6 F+ ?2 r: q7 V( M2 V
  -> 19971004222300   
3 }2 K, t$ S9 E1 @1 O
0 D$ q0 n7 W! o7 f' Bfrom_unixtime(unix_timestamp,format)    0 c7 e; @$ k) @& v" t0 [
以format字符串格式返回时间戳的值  6 q! S& {0 o! F3 ^' {) v
mysql> select from_unixtime(unix_timestamp(),'%y %d %m %
6 N0 h1 M# D9 o' ]* }; zh:%i:%s %x');   
1 h$ m6 I$ {0 x2 T  -> '1997 23rd december 03:43:30 x'   
2 M/ v- M( w6 f/ A( \3 a
+ H+ I0 r' }8 X' x/ f0 S  ]sec_to_time(seconds)    + h7 b( P  ~" E! b. `: @2 q
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
5 G% G3 A9 _8 _" b( W" F, Ymysql> select sec_to_time(2378);    + t  y" q9 j* a+ z* Z
  -> '00:39:38'    3 A) f) c# l# o
mysql> select sec_to_time(2378) + 0;    - j9 H4 I' y$ j0 X" g8 a8 s
  -> 3938   
; z0 j3 [, O$ a7 f 3 z, B3 m) @7 [. a  t
time_to_sec(time)   
4 e7 y7 _6 u  @, J# ~) r返回time值有多少秒   
' x1 |: Q) w6 Z8 O" M6 \mysql> select time_to_sec('22:23:00');    ; e8 v* W$ @1 z3 D2 |
  -> 80580    " T% m( U  x+ \6 l; F; {; e4 |
mysql> select time_to_sec('00:39:38');    ; s8 B) |$ A/ b' S, l2 `, v" C
  -> 2378 # A0 w4 J. [$ @% J- Y

8 E' N3 J; e5 i2 M# J0 j转换函数
8 a  D- G5 }0 hcast
9 l; U/ E% a/ N  p; o# n用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]! \2 Q  l9 w3 F/ A5 i2 Q
实例:select cast(a as unsigned) as b from cardserver where order by b desc;
  x, K! g* c( |! n3 e. i6 B" N. w0 m: }convert:  m: ~9 W) a9 h' s8 g; k! M
用法:convert(字段,数据类型)
$ O! r! H" C4 w; v+ p0 }/ X实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
/ X6 t# G6 |: q: F
回复

使用道具 举报

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

本版积分规则

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