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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
1、字符串函数8 L% Z; c$ s9 m0 M6 @
ascii(str)   ; i2 U  p. P. k" l
返回字符串str的第一个字符的ascii值(str是空串时返回0)  
, @& s& z0 y9 h6 v( O% b* `mysql> select ascii('2');  / q3 }* B5 w2 r" r, v/ p' Q
  -> 50  * z9 v" f* A, N! x
mysql> select ascii(2);  7 [8 j& h) V( |- c# j# }
  -> 50  
/ q8 M! @- ^9 n7 {# x/ qmysql> select ascii('dete');  
1 \& P. `- Z3 D* m  -> 100
1 z3 X( n; e8 X' r) V8 Y
ord(str)   ( ]) m: b0 O* Y
如果字符串str句首是单字节返回与ascii()函数返回的相同值。! q) x( j" Z. ?1 k/ m0 @
6 V) ^( Q6 t+ m7 }
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  5 {  Q  u, s  J  e# u' x8 m& ~. b
mysql> select ord('2');  . A! ^7 o! X) e, e* {# g
  -> 50  6 J8 {& e8 _( k& k8 q5 [$ ^2 _
   
2 j, t% P& q7 m$ l6 Z, b4 xconv(n,from_base,to_base)   
! x/ |& f3 Z6 I' j- x6 q# I对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  5 t9 V5 J+ t2 n5 J% s
mysql> select conv("a",16,2);  ) N. c5 ?! n' n
  -> '1010' . A) o' {0 l$ V
mysql> select conv("6e",18,8);  
6 m' X6 I2 v( d8 t7 J  I  -> '172'
  x6 X5 T7 k2 I" x* tmysql> select conv(-17,10,-18);  8 z( D/ d- a! D6 G3 ^
  -> '-h'
0 X5 P* Y9 v# nmysql> select conv(10+"10"+'10'+0xa,10,10);  
: M2 \% l0 w$ c* d: i  -> '40' ! y  r) U0 r& S3 _3 p: ~) n. \
   + ^" ]! }# P, M& L4 K+ r
bin(n)   " }0 k" r4 O4 i* v% w: P6 P
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
. k9 j+ E  ]! b- Vmysql> select bin(12);  
/ S4 Q0 q! x9 x# r: H: e1 T  ^( _  -> '1100'
% K9 {) ]0 C6 \" d
9 @% K; V/ t4 e0 b1 h6 S' Yoct(n)   " L+ Q' d) R4 q, K3 C
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  : D0 K  u& a3 F- G" ~/ M6 L$ z
mysql> select oct(12);  
) a8 ^& h1 T3 }) K6 M  -> '14'
; [) ?" b  E! ?$ g$ {5 B2 R   
6 h' }* c; \% V6 h- R, |! M' Ihex(n)   6 B8 Y( `' _& a# I0 N
把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  ( l/ [( }1 q8 v3 p# B1 Y" t
mysql> select hex(255);  
! Z* e8 h/ ?+ d4 J* H( c  -> 'ff' 9 g# K$ `$ F7 N2 b- B8 D- N
   
$ e1 n& {) ]; [9 W% e5 ychar(n,...)   $ L" K  W- M+ s: t, ~2 o% h7 W& }
返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   
+ r: \# Q/ R8 I1 f2 i! q4 xmysql> select char(77,121,83,81,'76');  
" ]8 n/ G( o- d% Y* s0 R8 f8 Y  -> 'mysql'
# x" Q: {- j2 Z$ ^4 I& f0 Xmysql> select char(77,77.3,'77.3');  % T( z3 C9 E8 z/ i6 I) ?' Y- i$ J
  -> 'mmm' 6 |' z+ C- d: w9 U0 W
   
( c* N" u- n& o" p! G( {concat(str1,str2,...)   7 r7 ?$ R- ~, `4 E/ A
把参数连成一个长字符串并返回(任何参数是null时返回null)  
! b/ D2 }; j; v+ O  x, x  F0 \( cmysql> select concat('my', 's', 'ql');  
  X5 n/ {/ r6 Q  C: Q  -> 'mysql'
- ~2 z. K6 |! W& w5 ~mysql> select concat('my', null, 'ql');  4 p6 c7 e. D" L
  -> null 0 K8 T0 M9 z* j
mysql> select concat(14.3);    f! [, C3 e- |3 ]$ ~4 y; F
  -> '14.3'
6 t" F0 j! T+ p2 f) n $ Y8 Z2 N" O; S1 O0 t$ `( B
length(str)   ' a+ O. C3 B  Z/ v# M$ e
octet_length(str)  
3 X+ j, |# H8 ^char_length(str)  
( w5 y) H+ ]2 Q) Zcharacter_length(str)  
$ r  `- J' T% H$ f返回字符串str的长度(对于多字节字符char_length仅计算一次)
3 P2 [+ w3 @' |0 E# ^+ E: Tmysql> select length('text');  4 {7 ~4 k8 Y9 M3 S
  -> 4  + n# C: `. R1 J$ E
mysql> select octet_length('text');  
) H) b7 z) t& p2 \6 x  -> 4  2 }+ O  y$ h. c3 T# s- V

) p1 C9 r: Y: v$ |locate(substr,str)   1 d; m/ o* m5 `3 l1 ~/ f! ]
position(substr in str)   . ?0 Z4 i) ^0 [: I. Q  {. q7 b
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  . m3 w& ~; Q( ~
mysql> select locate('bar', 'foobarbar');  : t! Z6 y% ?4 u3 Z( I: B+ W" P! |
  -> 4  1 g0 v6 N) x) i
mysql> select locate('xbar', 'foobar');  9 o+ o9 H' C$ h% C8 K/ B; y/ g
  -> 0  
$ ^3 l# h8 A4 w$ V: O   
; g. i) `" P$ w8 N' A' ?$ jlocate(substr,str,pos)
' z& A3 r  ]3 R; f) ?$ k+ Q返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
! N5 H5 @7 q" D  jmysql> select locate('bar', 'foobarbar',5);  . ~* t) v  F) L
  -> 7  7 H, k0 [( h- c0 J

' L7 s' v) ~$ }& e5 ^instr(str,substr)  
3 u' e& b% F5 }  S% G  u5 [% r* m返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  # c% M8 E  v8 U, S! g" L' z; S" R
mysql> select instr('foobarbar', 'bar');  
/ v) U3 m$ m  m: J$ {8 M  -> 4  
+ C+ f4 w1 m# T0 i  t0 g* lmysql> select instr('xbar', 'foobar');  
3 W- A3 b' o) F9 w" N3 q+ y" [+ Y% B  -> 0   ; i9 T, \2 `; I
1 C3 f" h2 u& @  s
lpad(str,len,padstr)   4 N; s1 e2 f. d, i  Q8 R- `
用字符串padstr填补str左端直到字串长度为len并返回  
. N1 ]  [, B2 `. S3 tmysql> select lpad('hi',4,'??');  
, i7 D4 C5 _7 A( \  -> '??hi' 9 i8 d3 G0 e5 Y: z- q/ {) h
   , C7 x& X3 T7 N
rpad(str,len,padstr)   6 s) |. B# y$ J% M0 |& L
用字符串padstr填补str右端直到字串长度为len并返回  & z+ h6 X& d# H% c  m
mysql> select rpad('hi',5,'?');  3 J" H$ d% f+ O
  -> 'hi???'
$ k, v* o+ C5 [ # q2 R9 [% m' i# a
left(str,len)   
% {3 j" Y; @* g0 g! q% w返回字符串str的左端len个字符  
- |6 k8 V3 g( \- u/ |& j3 Smysql> select left('foobarbar', 5);  
2 N  N' U5 n( {5 L1 o  -> 'fooba' & K2 J* J, A$ s

" }) ]0 v; u/ Y  U( S7 Mright(str,len)   
( M5 u4 s" R( G$ g! ^3 M4 q返回字符串str的右端len个字符   - ?/ {7 U& B# H1 [, P( V+ W
mysql> select right('foobarbar', 4);  8 Y- K( e( B& {) [0 K' `  L
  -> 'rbar' % l6 |% j( ^" S$ N! V

% w( c( U2 |0 ?; D: i9 y" Rsubstring(str,pos,len)   ( g; I5 q  T% b0 m- ~  e
substring(str from pos for len)   
2 c+ W6 g% s" h1 ^/ C# gmid(str,pos,len)   
! ?0 ^/ }% S1 c3 y返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
- J; o) F$ ?. ]8 q! S: Y8 r9 y  -> 'ratica' 0 S; I  ~' A# ]; r
9 A, ~( ]- B: i8 J2 w
substring(str,pos)   
$ y% u& l; w' T  K4 `: Fsubstring(str from pos)   4 l2 x7 P, H9 w2 D6 t) ]
返回字符串str的位置pos起的一个子串  9 d  Z% O3 I* ~+ |
mysql> select substring('quadratically',5);  ) C" U4 z6 C& _/ L# O
  -> 'ratically'
' w. @4 `- B7 N4 Q  V$ Hmysql> select substring('foobarbar' from 4);  0 |7 t/ O/ m1 c' z: ?/ L( e* p' k6 V
  -> 'barbar'
5 U% F* X5 [8 o2 K   q% F  ^' ]( X
substring_index(str,delim,count)   
" I) F4 N; I: w) e% F; Y返回从字符串str的第count个出现的分隔符delim之后的子串
* V- J) N, y2 b4 c! U) J(count为正数时返回左端,否则返回右端子串)  5 V$ y* Z! |' \3 M* L' T
mysql> select substring_index('www.mysql.com', '.', 2);  
/ G7 z; H) E' y+ D0 s. J  -> 'www.mysql' 0 ^- _1 w# \5 I1 I/ y8 D
mysql> select substring_index('www.mysql.com', '.', -2);  
* Y6 J; {1 @" L5 Z  -> 'mysql.com'   r' W) {! w* N; q, l
8 k9 l  w7 |: Y  n
ltrim(str)   . E; i+ J6 o6 @4 k4 L) Y; s
返回删除了左空格的字符串str  1 c7 q  X, ^- v) e' Z7 \
mysql> select ltrim('  barbar');  
: h9 `! c! [/ H* B# I! B  -> 'barbar'
; L( V6 }7 _) J% {6 m 9 D) u' d# m* d' _
rtrim(str)   
0 s3 B  z# X! _0 i返回删除了右空格的字符串str  ( c1 N% Q# _$ k! W: {9 c
mysql> select rtrim('barbar   ');  
/ T3 N' X. J5 o  -> 'barbar'
6 X% q1 _! h# [0 t- z" M1 C
3 \& p- g% }( A( v5 J( R+ Etrim([[both | leading | trailing] [remstr] from] str)   + u% R  N8 h' p' n
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  4 R- l0 |8 M& b  d6 E$ E( u
mysql> select trim('  bar   ');  
: Q4 o8 B6 N& F: T  R  -> 'bar'
$ D! [8 V1 v9 o9 x9 b( \mysql> select trim(leading 'x' from 'xxxbarxxx');  
  D! y$ R( z6 V( T8 @; i  -> 'barxxx'
* e( V1 R* U8 u/ f& |3 Amysql> select trim(both 'x' from 'xxxbarxxx');  ! U' s- Z* m) A$ O8 g: _2 h, p
  -> 'bar'
) s. q4 m$ V5 ?$ ?mysql> select trim(trailing 'xyz' from 'barxxyz');  
! a) ~8 F% V' u8 c# n, \  -> 'barx' ! R5 M( v6 M% d4 v. ]# T6 d
2 @5 n- I4 Z# a: A! u! y* `+ f
soundex(str)   3 }+ X2 A) w+ q* P& N
返回str的一个同音字符串(听起来“大致相同”字符串有相同的' }! B. [! A4 n8 N, D" E
同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  
8 @* r6 P% x& K+ P2 R4 b0 }mysql> select soundex('hello');  8 A) ?' G$ ]5 S* h8 V' l
  -> 'h400'
+ w9 I8 L; a% a5 n2 X" ]& ]mysql> select soundex('quadratically');  5 ?5 _) Y" m1 \6 }1 }! R3 G5 v
  -> 'q36324'   S  U$ Z. c7 v6 ?; ~9 o; ~
   
! t' o: n7 z. b# i! ]6 M0 O& pspace(n)   " j. s- u# v7 T" ~" I
返回由n个空格字符组成的一个字符串  % @1 a! }7 [$ P7 {* N9 z  t& A
mysql> select space(6);  
7 y# x- k6 F! l" k4 i1 M  -> '      ' # _1 _1 Z6 q$ R3 ^6 Z$ e$ h. b, o- O* M
   8 s' D: H* V& r& M
replace(str,from_str,to_str)   
, ^$ d  _+ G% ?% `* q用字符串to_str替换字符串str中的子串from_str并返回  " A' j4 a' H- @7 G* H1 X
mysql> select replace('www.mysql.com', 'w', 'ww');  8 U; L3 ]6 c- c
  -> 'wwwwww.mysql.com' . P/ U6 }6 z/ t8 k
3 s2 u' x9 d% k& S6 ?4 q
repeat(str,count)  
* J  T  Q  c: z- a( y- v* @$ z返回由count个字符串str连成的一个字符串(任何参数为null时
9 d/ ~( a: k1 }# l/ p7 _  ^. J; y; @返回null,count<=0时返回一个空字符串)  0 P# f0 J8 V6 F" D/ N9 p& O$ |
mysql> select repeat('mysql', 3);  
6 v" b6 Y$ X0 A5 T2 w  -> 'mysqlmysqlmysql' , t$ r" v* @. z5 }
   1 L- ?. e# @$ D/ i# k+ v
reverse(str)   * z# l# \* x4 \: m
颠倒字符串str的字符顺序并返回  " U( H8 t' s6 `9 j( X3 S- C: o
mysql> select reverse('abc');  & k- j8 i1 W6 \5 B( ]5 l" s
  -> 'cba'
6 e! z! u; s6 ^8 Q3 d* B% `
6 P8 Q0 l2 i, X% Y8 [insert(str,pos,len,newstr)   
) |% N% O9 ]3 _1 z! Y2 o把字符串str由位置pos起len个字符长的子串替换为字符串
5 @: R) m4 t4 F- q) `' a- e# Z! Qnewstr并返回  & `4 G; w: q  c; u. V
mysql> select insert('quadratic', 3, 4, 'what');  ! P" [5 v- n% l8 H; V$ g5 x* P- ?
  -> 'quwhattic'
' v  Q' R3 D! N7 ~: ?
; H3 |+ ?( G+ ]elt(n,str1,str2,str3,...)   5 t2 |. D6 J% E, b
返回第n个字符串(n小于1或大于参数个数返回null)  
9 a; [% j: Y! D2 k6 @$ pmysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  4 |1 S  B! j  w9 k& C) v) O1 u+ J
  -> 'ej'
" b% u  H' E  b. ^mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  6 m4 @5 a) ?- u4 T5 Y; Q
  -> 'foo' % j7 h' n5 o) O3 W$ _( ~. H+ F

- f7 [% W+ S7 f8 s& m: bfield(str,str1,str2,str3,...)   5 U" f! o3 |' |0 A8 D9 J! r
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
$ Q+ G5 y9 T& D; R) I" l$ Rmysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
' S* K/ R: ?! C( t" G( o* \'foo');  
8 I/ E( S. F0 U  -> 2  : h" [9 |9 K+ w
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej'," o* B2 h- H5 U% A5 ?
'foo');  ' o& E4 V1 S; H8 f" n1 h. {6 Q3 i
  -> 0  
  v7 q" ?' p4 ?1 {4 ^ - }  V8 q, y0 R+ u! ^9 B+ y
find_in_set(str,strlist)   6 V. [: m; H$ T6 M
返回str在字符串集strlist中的序号(任何参数是null则返回
$ C) D" S. n$ p3 X  U, }4 Dnull,如果str没找到返回0,参数1包含","时工作异常)  . U' L2 w- i8 G% q0 z
mysql> select find_in_set('b','a,b,c,d');  $ c, X; T7 {6 o1 l4 t* F/ S& B
  -> 2  
- A. \1 G/ o" B0 B# D; z   $ |+ ], ^0 X) S: O8 f6 f
make_set(bits,str1,str2,...)  
2 S+ X: e( c- U8 F4 O3 a把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
4 S' y- x* q3 y& K& C: r) L% ^% \2 o位置的字串选入字串集并返回(null串不添加到结果中)  
* k+ M  e  n3 X, i8 Y/ @2 K- S/ k: hmysql> select make_set(1,'a','b','c');  
, ]4 J9 T& @5 d  -> 'a'
* _/ `0 r6 S# v. E  y7 Y* ?) W4 umysql> select make_set(1 | 4,'hello','nice','world');  
% q# R! b3 w! A, a! T  -> 'hello,world' # m4 p: O& W, `& Q2 k6 C/ C, B
mysql> select make_set(0,'a','b','c');  " J% @: a# q( z4 \& `9 y. U+ o
  -> '' / ^6 h6 L, @' H, q, e: b
* U3 M2 ^# z' b/ d+ O. \% d
export_set(bits,on,off,[separator,[number_of_bits]])   
' e* |( p, M9 r( {1 u8 p按bits排列字符串集,只有当位等于1时插入字串on,否则插入; W7 N8 c3 c8 e. P
off(separator默认值",",number_of_bits参数使用时长度不足补01 S2 E& }0 y$ s! b% }1 F
而过长截断)   3 l8 c0 b9 M) F' v6 L; y. \
mysql> select export_set(5,'y','n',',',4)  
( E2 n" e$ s0 t* e  -> y,n,y,n   
9 c( [$ d( Q1 y2 U# A8 h- _5 B , B' }. r2 U+ K8 ]9 T3 a
lcase(str)  # O3 _1 s7 x8 X: q7 u+ k
lower(str)   ( m8 t4 ^9 S3 F! i+ O6 u4 X; p
返回小写的字符串str  
" z$ |/ g( `+ _/ bmysql> select lcase('quadratically');  0 J+ X2 h7 H- t; T% J/ ]* E) I  d
  -> 'quadratically'
( H/ x8 o7 `! Y   ; w# J4 F: A# y9 `. O- I
ucase(str)   + h3 ^' I& r" ^# [* ?' g
upper(str)   * y; p' l; s, p, g* j( S
返回大写的字符串str  ; W0 R6 H& @" s! o
mysql> select ucase('quadratically');  " b  @" V! c% b2 j
  -> 'quadratically' 6 t+ ?7 C" g7 ?5 e8 c/ U
( M7 N+ e* A* y: ~, \  X; \* H  `
load_file(file_name)   
; M6 I+ Z3 W' _* p3 y" x% j9 Q读入文件并且作为一个字符串返回文件内容(文件无法找到,路径
+ `" j5 B% x% d5 d1 v+ z2 \7 v6 l不完整,没有权限,长度大于max_allowed_packet会返回null)  . Q0 x6 C1 k8 R( Q) V
mysql> update table_name set blob_column=load_file
" r5 A2 U) s5 ]; D8 R6 W$ H0 y9 C- I& _("/tmp/picture") where id=1;  ; p" x6 C3 u& T  G/ ~6 \
+ d- c& O/ i4 V( z  @+ F
2、数学函数
* ~4 ]% b- S' Q( @. Fabs(n) ( d9 `. y  g/ T3 a) {
返回n的绝对值  ( s+ w0 [7 {4 l9 K3 a7 e' c
mysql> select abs(2);    7 X, p: K6 }$ Y- f# m$ B# B
  -> 2   
4 b: [3 s" T1 y& omysql> select abs(-32);   
# G& I7 h( V: F9 w0 j8 E. M# L  L1 Y  -> 32   
' ^/ J7 P2 K! P7 ~7 e# e   
' M! q4 b* A4 Y" z: Q+ ssign(n)  $ `: F# B2 _  G' N' I  Y
返回参数的符号(为-1、0或1)  ! j7 z6 K, a) l8 W# g' Y! T  W2 z
mysql> select sign(-32);    . e5 C* i2 k+ `) X. n
  -> -1    # D4 c! R3 S5 W0 |6 K# f2 s
mysql> select sign(0);   
( \; z5 K7 e4 r4 |) W, W  -> 0    . M$ G1 I# S  H9 ^% {
mysql> select sign(234);   
# t  W9 ^1 @6 ~( e2 j2 t  -> 1   
, W1 G8 D+ q5 V  \* p3 k' p 2 e& r/ Y$ U0 ^: |  W+ W& D8 p8 h
mod(n,m)    . B; r# q" G% e* s2 T
取模运算,返回n被m除的余数(同%操作符)    7 P2 d# J4 T/ @) V$ j
mysql> select mod(234, 10);    8 ^9 t; m" l0 K3 o" C' N
  -> 4   
5 v( R. o- m8 mmysql> select 234 % 10;   
& t! ~) a; X! D8 i7 n  -> 4    # @4 J" W3 G7 ]' K3 o* z
mysql> select mod(29,9);   
( N) R- ?2 E- S. b* y9 \  -> 2    # Q, Q6 s0 P8 U9 I: k: ?/ ]

1 U: n' U5 {2 U+ G  d2 F1 g6 tfloor(n)  0 a6 F. u- C1 c0 c) M- u% F
返回不大于n的最大整数值  , O6 j9 L) P# ~* G
mysql> select floor(1.23);   
1 H( U2 p' C7 S, E. B  -> 1    ) W7 m: _; \# i8 L* t+ J- i6 x/ V0 }
mysql> select floor(-1.23);   
( w& E; V) T, p1 }) R  -> -2      D1 ]$ \0 D# Q" V* @& ~

  a# Q9 k, ~/ L2 \4 }! G$ R. Rceiling(n)  
# M' R2 }7 L4 h5 b0 v返回不小于n的最小整数值  
. r1 H& V/ D* h; K: q1 dmysql> select ceiling(1.23);   
1 J$ _# c+ k' A- c2 |$ k) B  -> 2    3 Z# T) \' l- t" g; u' S
mysql> select ceiling(-1.23);   
% A/ ~; t6 v6 Y- Q# e# ^/ @' V  -> -1   
) a/ c) K6 g. t5 o 4 [: V7 O8 P7 A1 Z5 i& O  \) u
round(n,d)  8 z: L# R5 o# c
返回n的四舍五入值,保留d位小数(d的默认值为0)  
: P6 \4 d& p+ c4 \  }! |mysql> select round(-1.23);    $ H! u3 M! l8 D- @0 _1 j+ U1 d
  -> -1    6 E5 y2 [, q( n- }- n! j
mysql> select round(-1.58);    6 \% H' q3 V" A
  -> -2    ) u1 s  r5 x  a; J/ h* }, e: U5 A) v
mysql> select round(1.58);   
# A0 B8 a* {0 I' m9 D" V  -> 2   
. G3 N- \8 {5 o6 K# ]mysql> select round(1.298, 1);   
6 ^$ W* r4 S5 O  -> 1.3   
8 r+ c8 Q8 h; g0 s) Z, c( s6 Q* Xmysql> select round(1.298, 0);    3 E# W% @" F% e4 k7 d8 m
  -> 1    9 r- @  e$ B$ X/ v! c: b* o3 {# g

$ A0 `/ R' p# L8 V$ }& w- d. Pexp(n)  8 Q& x- X6 U: j3 G" H. ?5 d
返回值e的n次方(自然对数的底)  
4 u4 A, q8 {; j: [mysql> select exp(2);    ) c, g* I' V/ x7 |0 p) `
  -> 7.389056    " Y# i- n! {  B; p; ]
mysql> select exp(-2);    1 F3 L$ Y1 K6 G( ~9 k  p
  -> 0.135335   
9 p8 _: H) W/ y! V* X+ j4 K4 | 1 t( d) ?) h+ x6 c
log(n)  9 c% O7 C, _; O" E& d; X' k, p
返回n的自然对数    {. `0 J, l  L5 }/ D
mysql> select log(2);    - `! C7 V: E! `
  -> 0.693147   
/ q5 w) J, v$ O: |: A' ~mysql> select log(-2);   
3 _* h' x! o, b3 H# e+ a  -> null    " y* x3 K* \  D1 K; b' ?" W( l, E9 h

+ S" I* t) h( G; z9 Jlog10(n)  5 Y: d8 G! w; t
返回n以10为底的对数  
" B" y. {7 ?2 m/ q  \mysql> select log10(2);   
  F4 Y0 d! w1 y* T" n  [  -> 0.301030    ) w3 q8 p, V! z
mysql> select log10(100);    , z% C' O& w+ |3 l9 m. e; I: \
  -> 2.000000   
: p: [) u; x1 g+ m; j4 {# e) emysql> select log10(-100);   
3 `6 H2 I8 [" ?  -> null    0 q7 A0 `3 P5 [; l+ E, R
* ?9 u, O$ ]1 T* X: s4 }
pow(x,y)    1 J' w/ f# ^8 ?8 t; D
power(x,y)    ; `8 U' Y6 @+ U# S0 C9 B7 k- Z& a
 返回值x的y次幂  
" ]7 c3 i( B- Q+ cmysql> select pow(2,2);    + y1 U1 F5 J3 P
  -> 4.000000    - M3 K2 z( p& E3 Q5 I6 n& v
mysql> select pow(2,-2);   
0 x1 q: J+ m# ?# a, T  -> 0.250000  : @( k3 f6 U( E7 v7 q& O
9 d8 \2 X9 B0 m
sqrt(n)  
0 Q) y% ?6 q9 w- V 返回非负数n的平方根  ) o% X' P- |( P: h+ [  i* i4 M
mysql> select sqrt(4);    / ^( S! \% E; [/ Y7 q/ [
  -> 2.000000   
; d' R/ ]) f, e  Nmysql> select sqrt(20);   
5 r& _4 U# x2 p; V% Q  -> 4.472136   
4 _/ K, ]* D: O1 ` 5 v0 H" S7 }' g. s5 l: x
pi()    7 ^3 K" u9 X. ]( l
 返回圆周率   
! W, U& R) y) v2 D# _# Xmysql> select pi();   
/ W! z- q* d, [$ A) @  -> 3.141593    ( Z3 h4 D) D$ Q/ V

! j% b( n  @0 _7 t1 ?4 X3 o* A3 kcos(n)  
  G& J! n  f$ [/ d# ]% H 返回n的余弦值  
* f% T0 R8 v/ n! N  p  W2 f/ ?/ ?mysql> select cos(pi());  7 W& r( m7 h$ ~3 k1 a% ^/ d
  -> -1.000000   
4 u5 q- o1 [5 O- U  n7 ~( Z + t% D! l0 \9 V: B2 \
sin(n)  ( j, I" E3 D3 \+ |
 返回n的正弦值   
- r" O) C( K, z$ s2 R$ W* omysql> select sin(pi());    ' l" |! d/ ^! i2 q/ [
  -> 0.000000    ; y# n6 l! G+ r5 k" J
. Q0 @2 E0 L( X0 J# }! j
tan(n)  
. Y/ @6 g3 x, E: C. k# x返回n的正切值  # \1 L7 z0 T) B- {3 s( H
mysql> select tan(pi()+1);    7 m& M& w& |1 L3 V9 ^$ N
  -> 1.557408   
) V, ]: J/ `) M7 ^$ |
6 E  z+ X, ]+ ?' \1 Iacos(n)  6 J4 v/ N2 @, E$ N, O
 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  
3 A; u2 V2 |! [3 Smysql> select acos(1);    + `- o, g3 t6 K: D$ [
  -> 0.000000   
1 r8 [- L" H4 y9 cmysql> select acos(1.0001);   
0 ~! C8 d4 I9 u& c$ p  -> null   
; d  ~; ?& ~9 I9 D; \mysql> select acos(0);    % D3 U) A) v% q
  -> 1.570796    ) E# J1 C. Y$ H& m/ s5 ~
1 `/ L8 i$ i/ ]
asin(n)  
& D% }0 M$ k0 O8 T* Z" r* m返回n反正弦值  
$ P$ c- Q, I, q- A3 X* Y2 mmysql> select asin(0.2);    0 t0 `" H8 \* ^) A
  -> 0.201358   
5 x$ d0 ]1 x, l7 m: Umysql> select asin('foo');   
5 s' N$ J' g6 }8 l  -> 0.000000   
" u; t$ s# N$ s3 i% B/ M8 w+ l
& u! H( q* k$ e( catan(n)  
; V! d  P8 T& N返回n的反正切值  
7 v9 m5 _# s% dmysql> select atan(2);    : v- L7 z- l- H' |
  -> 1.107149   
! e0 ?* R7 E; m; j8 P  q) J; v2 h  Hmysql> select atan(-2);   
, ]$ q* ]' }* n  -> -1.107149    ) J4 }. f0 R( X1 ~
atan2(x,y)    ! @) f; X( p2 x  K: g
 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  
* f. w1 A2 I4 `9 R) O3 Z; u: c6 [mysql> select atan(-2,2);   
. |% B4 R+ E0 Y4 W; p  -> -0.785398    0 g* b/ A( B; V7 A
mysql> select atan(pi(),0);   
; S- x9 |1 j+ P0 c; o2 }! |  -> 1.570796    6 v9 q7 r, M9 Y0 i+ t) ^0 w3 w
! L' v  ?2 i& r# G
cot(n)  
- G7 Z5 f  a+ n5 z/ s返回x的余切  
5 {9 _* U& U5 M2 \' D! L+ Q  jmysql> select cot(12);   
' w, W+ a. M: }% |  -> -1.57267341   
0 f2 D+ p3 ^- T! }) tmysql> select cot(0);   
( [6 b5 u: f8 R  -> null    1 o8 ~" O& w5 M4 H1 J, |
6 [! n& C" x9 E/ G) ]
rand()  
/ U, C+ j1 P$ H. T! Urand(n)    
' i! p+ W6 v0 w7 L返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
6 C+ J( l8 a5 C& {7 G' ]  ? % H1 t; C9 u. h; u5 o/ z" V) H& L9 v
mysql> select rand();    / Y- X% C# O$ Y6 e; j
  -> 0.5925      C/ q9 q5 _  a9 Z8 b4 J( Y* T6 P
mysql> select rand(20);    # M# i# s& o2 @( ?3 W  O% ?
  -> 0.1811   
( o+ J, [7 l2 Fmysql> select rand(20);   
* R' _" s% S1 L/ U% @  \  -> 0.1811      ]6 b$ h1 G) f! H3 k% E; b/ a
mysql> select rand();   
# q' a7 s0 {4 x; a  -> 0.2079    ! q5 u1 m: O3 M% X5 d1 W+ @
mysql> select rand();    * `" n, [5 B7 k) a# h, o, m! I0 d4 W
  -> 0.7888    8 h! P# G9 u% @4 s, L" P5 m" G

8 X2 Y/ U# k+ Y' h$ vdegrees(n)  4 z; x4 T7 h! z2 y% Y
把n从弧度变换为角度并返回  ' {6 J0 F; |6 C
mysql> select degrees(pi());    6 a' d. V  w7 Q* H  x, D
  -> 180.000000    & H9 _- m3 r0 n1 G# S
- x' o5 s; [/ i& e: i7 K# ^  [
radians(n)
( w- _- ?) A# _6 x1 [, _& F把n从角度变换为弧度并返回   9 b: Q6 l# U) w: u
mysql> select radians(90);    5 \6 C3 E- K( P3 M4 _
  -> 1.570796   
9 s7 z; P* c( z5 |; I% o9 t1 E$ I# v& u; v- g+ ?4 e5 e
truncate(n,d)    9 [. G/ z8 e; d; P
保留数字n的d位小数并返回  
; W# D! m' F: m( f! mmysql> select truncate(1.223,1);   
: q$ `9 C# G! |, w( z( N* G  -> 1.2   
8 |) k& R4 {- \% |mysql> select truncate(1.999,1);    2 e' p7 j" N3 ?: O- _/ q. E
  -> 1.9   
: P  @8 J2 w, v& W8 Amysql> select truncate(1.999,0);    7 `: S/ f7 g5 |
  -> 1    # Y+ `: r! q2 w1 w! k5 S
: C7 M0 d  }3 B! v& @; _
least(x,y,...)    ( s3 p4 T" E6 P/ |
返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
3 M0 K& O! x5 T2 [) `5 f" ]mysql> select least(2,0);    0 K( i3 q: c+ G# c$ O' k! p
  -> 0   
: Z0 S8 q5 D  L4 ]5 vmysql> select least(34.0,3.0,5.0,767.0);   
1 u' K! q7 I; Z0 v! \  -> 3.0    / U4 w4 x' B: |; a% M
mysql> select least("b","a","c");   
  @+ q  ]9 _2 x, V4 A% r4 I' i% S  -> "a"   
4 s6 y7 l7 L+ _( K, D; C
! Y2 A& X; L, Q, Z% ]5 x8 g7 }& Rgreatest(x,y,...)   
- I6 d; Q8 F# k% r% g- _返回最大值(其余同least())  
" g, P' N# B  Vmysql> select greatest(2,0);   
: Y; O  n* X+ s# `/ x- U* Y3 F+ ~" X  -> 2    8 G/ m* v: J% {
mysql> select greatest(34.0,3.0,5.0,767.0);    ) A, |, _9 z! V* G7 ]0 q
  -> 767.0   
! p1 d3 `2 L# \4 p  @mysql> select greatest("b","a","c");    8 l( [3 R# \: a1 C" C
  -> "c"     " A) L9 a3 w2 }) v- p2 z

( }+ N2 h! ^# X) [$ ^8 v$ P" ]3、时期时间函数 $ J8 t6 v# f0 ^  J
dayofweek(date)   
! J' |4 L" Y. i9 M( @5 W" H返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  * r# H2 w3 S& @# ]  ]" A  l
mysql> select dayofweek('1998-02-03');   
: c/ C3 l3 \, i* P  -> 3    2 j3 e, L' j( n  j4 G
0 a2 q" i( q+ I* |- r
weekday(date)   
- T: K6 e4 T& ?2 S返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
0 A+ E3 Y. x0 |6 {0 ]$ J  , z1 r5 }; l( z- F
mysql> select weekday('1997-10-04 22:23:00');    % E/ z  L5 T: K6 q
  -> 5    $ Q- f: E1 i- c5 q4 a
mysql> select weekday('1997-11-05');    ' W. ]9 |6 W! M' q" c" g
  -> 2   
6 U7 n4 n5 k  \2 j( j5 G
2 e: x8 P- z! W' B& C. `dayofmonth(date)    
% C7 ]# V. \3 p7 F返回date是一月中的第几日(在1到31范围内)   
0 O+ B9 a5 r* E$ Dmysql> select dayofmonth('1998-02-03');   
* B, T7 M4 q* Y( v3 ]  -> 3    - V! ~  o# ~& l4 b8 W6 t' S. x2 p3 f
& c  v" C% }/ F: j2 B+ m
dayofyear(date)   
% x7 S* X# q9 B0 B% z* W8 v返回date是一年中的第几日(在1到366范围内)   
/ P( l; d. v+ ^8 w1 bmysql> select dayofyear('1998-02-03');    + @- b, |: t* a+ ]2 j
  -> 34   
0 d2 I% E6 k1 s2 S3 M, s  r
6 R* C1 `" g9 L9 S3 t1 Ymonth(date)    7 i* ]. K+ a5 a7 E5 y/ Q' V
返回date中的月份数值   
: F' J5 d! I1 t: q. {4 e  E" Lmysql> select month('1998-02-03');   
6 L8 {) q3 x7 W. |- _  Y2 c  -> 2   
7 d: p/ e6 f4 i* W ) b. E* F  Z+ a( U$ ^
dayname(date)    ' x. K) z7 W0 ]1 `7 g
返回date是星期几(按英文名返回)  ) r9 U5 l5 V& c7 f2 F+ c
mysql> select dayname("1998-02-05");      I! U7 _6 O5 N% u
  -> 'thursday'   
$ L* f' C- r3 X0 Q+ s9 @ & [% {" I0 O1 X" u+ l; a
monthname(date)    7 G$ D, @9 p; j7 C* K4 N( T
返回date是几月(按英文名返回)  
' Z8 s6 y! ?4 f( N3 t5 gmysql> select monthname("1998-02-05");    3 G+ }) v" \" x$ Z
  -> 'february'   
4 N& u% F! A! J/ b2 c0 S . X' _3 e2 F5 \
quarter(date)   
1 X/ e) o% u6 r( }返回date是一年的第几个季度   
$ n- Y% t0 b+ Y% @. p( `. B& ?% jmysql> select quarter('98-04-01');   
0 ?* N* _; E3 g( f9 v2 _  -> 2    2 L: F- {& i7 P# ~' f
) P5 Y- b6 Y# i3 a
week(date,first)   % ?9 q* Q- g2 O3 ~7 B. y' Q$ E
返回date是一年的第几周(first默认值0,first取值1表示周一是9 G5 w2 b8 G# ]
周的开始,0从周日开始)  
% u9 a6 l: ]7 ~7 w2 t& u1 Kmysql> select week('1998-02-20');   
# v$ C; _* h& f. p* \  -> 7   
- ?7 T4 Y. X. _' ], D6 lmysql> select week('1998-02-20',0);    # h! q8 o9 W, B. x, ]
  -> 7   
; h. ]# n" k1 q* Smysql> select week('1998-02-20',1);    ' u2 ?+ l* Z  J. C- ~. a; |( c3 L
  -> 8   
: V  F7 C) ~- y" i8 U  A / k) a7 e( O# k2 E( \/ z. t# X
year(date)    + \  A. k" Z$ D7 U4 e  x
返回date的年份(范围在1000到9999)      D* A( v' n! v" W9 w
mysql> select year('98-02-03');   
# Q+ X, K. Z5 _' l. y  -> 1998   
; Z2 z0 v3 h8 j/ b9 Y: q( o ! Y! D& h/ k% u  O8 u
hour(time)    2 J# H4 Z7 E9 }8 i7 y% \% Q
返回time的小时数(范围是0到23)   
- Y6 W! m" Q3 S' z& ~) bmysql> select hour('10:05:03');    7 I, o: @# a% K, v: y1 S
  -> 10   
5 X$ s) |( Y& V # E$ {/ z4 c6 `. p
minute(time)    4 @9 w" |! O* [8 Z7 a! ~
返回time的分钟数(范围是0到59)    8 Z! }) [0 E0 k) W, l
mysql> select minute('98-02-03 10:05:03');    , K0 }& K% _7 r8 O: Y) n
  -> 5    / W, g* l. I+ E" D

! |, o2 d( q) a+ S) Wsecond(time)    . n) S& p9 ?$ {
返回time的秒数(范围是0到59)   
8 z4 X; a* \  F5 O- Mmysql> select second('10:05:03');   
$ `! Z0 ?+ Z4 ]; t' d- I6 Q! ^' G  -> 3    : C: l/ ~2 g$ f( _3 H4 v9 @% X
& E1 u; w9 v; E3 N! l) \
period_add(p,n)   
: V! A; |. ~+ k! t& P: b- u增加n个月到时期p并返回(p的格式yymm或yyyymm)   
' F' W& z+ ?  |8 Z' a. Emysql> select period_add(9801,2);   
1 w9 E: Z) @, Y  -> 199803    ' [7 n$ W8 |" D3 `! ^
2 \5 f- E6 q+ s! `
period_diff(p1,p2)   
% @3 ~3 \, d& F1 U返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  
0 l: x4 ^2 H4 @- k, umysql> select period_diff(9802,199703);   
+ B/ g7 i. _# p, b5 y; ?  -> 11    3 h9 [4 m( a) Z( P! Y

: N/ j0 w/ ~* Y5 [8 M5 P# x* C$ T; zdate_add(date,interval expr type)  , S. s, M  K2 d
date_sub(date,interval expr type)    : D% E6 Z" X$ W( A# r/ b2 f5 B0 P
adddate(date,interval expr type)    , H. Q( ~; _6 H7 a& e
subdate(date,interval expr type)  + k2 I$ ~8 _2 x4 ~- l! s
对日期时间进行加减法运算  8 J6 X+ P  V$ k* h$ ?
(adddate()和subdate()是date_add()和date_sub()的同义词,也1 Q' X' d8 b# `; U8 T
可以用运算符+和-而不是函数  
5 E& i& H8 k2 J' y, wdate是一个datetime或date值,expr对date进行加减法的一个表. Q. H; @. n% G( c  k" _7 B9 T* Z1 e
达式字符串type指明表达式expr应该如何被解释  1 E2 ]/ V7 g5 E/ W4 s$ [
 [type值 含义 期望的expr格式]:  
) p& {$ v- @& N  z second 秒 seconds    9 Z7 k' k: I, d& K
 minute 分钟 minutes    " f0 g4 `$ ~" U! c' b2 K5 g' M% \
 hour 时间 hours   
/ A6 s4 f" x* s! i: }# R day 天 days   
9 ]# X6 N) b9 ^3 T0 y  J# n/ B+ Z; L8 M4 X month 月 months    ' X& X, G8 C4 A0 ]1 t+ ?$ ~
 year 年 years    4 Z3 i5 M; i8 Z7 P( n+ s
 minute_second 分钟和秒 "minutes:seconds"   
, V  `8 D/ m, R7 E' F* ~ hour_minute 小时和分钟 "hours:minutes"   
( v( ?$ n& a# v day_hour 天和小时 "days hours"   
7 R6 w  _9 u/ i% d' p" G; a9 o' \! E year_month 年和月 "years-months"    + h9 A4 |+ H7 t: o3 V% k; E
 hour_second 小时, 分钟, "hours:minutes:seconds"    , s- X+ v' v: E  F: ~' P: L
 day_minute 天, 小时, 分钟 "days hours:minutes"    8 M- B+ F3 r) {1 x0 D
 day_second 天, 小时, 分钟, 秒 "days0 C1 h( \" N+ u: L* O" X* i% F
hours:minutes:seconds" . F  A- q2 A% F1 v% B. y
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个
1 [# z2 D  w( T, f/ ~date值,否则结果是一个datetime值)  
6 B% _- N) R* H' T; Z* b4 ~ 如果type关键词不完整,则mysql从右端取值,day_second因为缺' u5 o/ h' t* S5 ^! l5 Y
少小时分钟等于minute_second)  / }$ V0 N. `4 ?0 ^6 s/ Q) O
 如果增加month、year_month或year,天数大于结果月份的最大天3 V/ a$ @& e# n
数则使用最大天数)    # Q" t7 }/ i! o* Z
mysql> select "1997-12-31 23:59:59" + interval 1 second;  
" F- ~" o+ B% `
. ?% b. D* L' {) p" H  -> 1998-01-01 00:00:00    ; V0 z5 p, E3 o) C1 b; w
mysql> select interval 1 day + "1997-12-31";   
" S% w  O4 J, J* d% z+ ~% L* z  -> 1998-01-01   
; ~$ u; L9 @0 a& o4 p+ A1 [mysql> select "1998-01-01" - interval 1 second;    ; |& C3 j6 ~. ?) @4 K! ]2 I
  -> 1997-12-31 23:59:59    / y+ e+ S9 G  T, {7 j
mysql> select date_add("1997-12-31 23:59:59",interval 1& r" I1 p8 q$ n. O( A4 q# r
second);   
! l' ?9 z3 k* @- Z* P/ v  -> 1998-01-01 00:00:00    " H2 Z( t/ q$ g4 G
mysql> select date_add("1997-12-31 23:59:59",interval 17 j1 X  I8 M) ?3 ^/ }
day);    + w- ]* r$ y6 u- x+ N. h
  -> 1998-01-01 23:59:59    / |7 R" {  G" o9 H3 [+ P8 j; C
mysql> select date_add("1997-12-31 23:59:59",interval
$ {* z+ i+ l5 B. c"1:1" minute_second);   
, N1 S% C+ u3 ~; T, Q$ H9 C  -> 1998-01-01 00:01:00   
1 e0 r6 T& u3 s+ B& x- pmysql> select date_sub("1998-01-01 00:00:00",interval "1
7 F+ j* _4 Q# _, c/ F( o1:1:1" day_second);    ( f9 s. [) n% L$ a: j% f8 q9 E, D% j
  -> 1997-12-30 22:58:59    * ]+ P) y7 o% {, q# n9 G+ w+ z
mysql> select date_add("1998-01-01 00:00:00", interval "-16 n7 b: F% h! w7 ]
10" day_hour);  
) [1 f( L1 y+ f# h/ g  -> 1997-12-30 14:00:00   
+ [0 K+ V7 v* w6 f3 k6 N( umysql> select date_sub("1998-01-02", interval 31 day);    - B9 e/ x+ R7 H9 x
  -> 1997-12-02    * {: [  q3 |  v7 b4 p
mysql> select extract(year from "1999-07-02");    7 v  M7 i0 l3 w, R
  -> 1999   
6 p  N+ J' U: J& fmysql> select extract(year_month from "1999-07-02+ w% ^6 m: U7 a3 q" Z' W. x
01:02:03");   
5 U9 E) ^4 j3 y0 Z) B& z" [  -> 199907    ! N# z' w7 `& l9 x+ z; N5 _& P" t7 S
mysql> select extract(day_minute from "1999-07-027 X8 A1 [* n+ n7 G5 c
01:02:03");    + A1 e2 H7 k% t9 M- G
  -> 20102    + Q3 y# g3 Z; k5 S
* L: b5 b8 B  V/ G
to_days(date)   
& b: m7 E2 B9 u. e返回日期date是西元0年至今多少天(不计算1582年以前)  
" I  ^' F" N/ x7 R5 t' Jmysql> select to_days(950501);   
% o  i0 h; W" m5 l  Y, h  -> 728779   
2 v- z1 k- _! w- vmysql> select to_days('1997-10-07');    ! t7 j' |# O7 ~1 ~# Q
  -> 729669    " h9 F3 D2 n6 H3 a9 Y

. B; ]+ s! d  e0 C" ^4 Jfrom_days(n)    , Q! l- Y$ @2 B' _  z9 F  y
 给出西元0年至今多少天返回date值(不计算1582年以前)   - k# j0 _* s" ]; ^; M4 o
mysql> select from_days(729669);    0 ~& h' v/ A8 z* y+ ^$ e, [
  -> '1997-10-07'    7 _6 F( R3 y4 S  P
4 m" R* N+ q  M
date_format(date,format)   
( I( T  N* V6 k8 [, T6 S 根据format字符串格式化date值  ! M) \3 D! j+ d7 a
 (在format字符串中可用标志符:    f% P  \( M6 F
 %m 月名字(january……december)    " f6 m% o9 T3 n" s1 F8 b; S
 %w 星期名字(sunday……saturday)    9 f- W, a  B5 ]! G- b# A
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    9 j! ]' B! t* H! C2 x
 %y 年, 数字, 4 位   
' _; d* e& K0 q; U %y 年, 数字, 2 位    1 _/ ^% M/ q+ _
 %a 缩写的星期名字(sun……sat)    9 p# d5 u" U8 {# A) a
 %d 月份中的天数, 数字(00……31)   
  E5 w- W, L9 e %e 月份中的天数, 数字(0……31)   
, K! R' e' k3 ~) n/ v %m 月, 数字(01……12)      s% T/ K2 \5 n
 %c 月, 数字(1……12)    0 `, q& d# `5 B$ ~5 Q! p
 %b 缩写的月份名字(jan……dec)    " ~: F2 u. I% }( Q& S
 %j 一年中的天数(001……366)   
+ _# D9 D. \" x) Q9 F9 t# k %h 小时(00……23)   
# u* Z" l9 Z6 W# o %k 小时(0……23)   
; [, a. t4 u  n9 V5 R. |2 _ %h 小时(01……12)   
4 q% z% v8 j. p" n4 m5 s4 a; \ %i 小时(01……12)   
9 @4 z5 G; j* K+ J( I7 A4 @" D %l 小时(1……12)    " E+ ^5 \* V; \
 %i 分钟, 数字(00……59)    / z9 x% _* ~) v
 %r 时间,12 小时(hh:mm:ss [ap]m)    * w& c/ ?0 [1 d3 M) [2 |
 %t 时间,24 小时(hh:mm:ss)   
# F* ]5 M8 \4 ~8 L1 A %s 秒(00……59)   
5 \, y+ n6 f- m# U" C1 |4 d! k. e %s 秒(00……59)   
- `) }$ w; M7 h %p am或pm    $ m: e; j# u( t( V# C; Q
 %w 一个星期中的天数(0=sunday ……6=saturday )   
( ^# p" r7 I" N& |) H7 a2 M, U; J+ @ %u 星期(0……52), 这里星期天是星期的第一天    + s/ Z6 C: `$ q/ \  M, L
 %u 星期(0……52), 这里星期一是星期的第一天   
' F2 G. ~( D" V, A %% 字符% )  
3 u# D4 U. w( z) \mysql> select date_format('1997-10-04 22:23:00','%w %m %
+ t5 r& e- [- d/ L+ Vy');    . |1 I4 d$ i8 r  r7 b$ ~
  -> 'saturday october 1997'   
" T+ w# Q& V2 G4 A  B; w8 imysql> select date_format('1997-10-04 22:23:00','%h:%i:%
& l. a+ ^3 x5 c+ v; |+ n  Ss');   
" L; S) Z2 P7 ?' ?( J  -> '22:23:00'    # a# v7 A  |1 H: o5 P% S& b* A9 E
mysql> select date_format('1997-10-04 22:23:00','%d %y %a1 d1 z( G' B  W5 E
%d %m %b %j');   
0 I  V* n8 j1 Q( j. V. X8 W- O  -> '4th 97 sat 04 10 oct 277'    3 k# q# E2 g. s' W
mysql> select date_format('1997-10-04 22:23:00','%h %k %i
8 G9 K9 t; s# y6 A%r %t %s %w');   
/ a; N' B$ z: a  a  -> '22 22 10 10:23:00 pm 22:23:00 00 6'   
# n$ W' l5 V8 U1 c2 d( _
7 _# ]# [. j+ ?9 q! Gtime_format(time,format)  
* g4 y% x( S. g6 R/ H9 l% } 和date_format()类似,但time_format只处理小时、分钟和秒(其4 X( l# `1 D% a0 m) J+ R, H
余符号产生一个null值或0)  
7 ^4 h# \8 ~. U& L
* r, M! B& M+ v9 Gcurdate()     
* D4 X* p4 l' }, X' b: F; zcurrent_date()  
4 E2 l2 z' @" w$ T7 n" t( H7 @& D  C 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
  H. [. L3 A% e9 i* }# v- O" w6 A处上下文是字符串或数字)   
3 k9 \% u, o: B, Jmysql> select curdate();    - l* o# _" g$ o9 j8 i+ m
  -> '1997-12-15'   
% W- z/ e0 v  c6 c+ l& e, z3 I2 nmysql> select curdate() + 0;    , J& p, w% Y; T# i5 Z6 _+ M& h' D
  -> 19971215   
8 O, S$ x. l4 v/ j, s4 t
. [/ l% ^9 r3 lcurtime()    / r. [4 A7 {$ O5 h2 [
current_time()  
+ M7 H; \1 \" \: Q% y( k* @) g 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
4 T3 d2 d* }* c2 E7 P" B3 S* B& M下文是字符串或数字)        ~  K9 x# Q1 x9 `( |4 ^5 j( R  D
mysql> select curtime();   
  d3 m! y) C/ y: o( V6 _) i  -> '23:50:26'   
! j0 W- B7 {5 i# emysql> select curtime() + 0;   
: r5 h+ _8 H( {8 [  -> 235026    - [/ u. ?$ z7 Y- r6 I
+ T2 l  L2 P& t$ E4 ]$ }8 f+ [
now()    2 W: b( M1 V: Y  b( g1 T3 \$ Y
sysdate()    
; a4 s& i2 S& A9 Z9 D1 ?current_timestamp()  
* S6 }- Z( r: T( w% M; C9 y7 U 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期) z9 K" W: [: W9 m- D
时间(根据返回值所处上下文是字符串或数字)     
, K3 ^) K' R8 w4 V9 K; r$ ^8 [mysql> select now();   
! A) w& m/ j/ D  W, V( x  -> '1997-12-15 23:50:26'   
! t8 H3 Y6 Q1 Rmysql> select now() + 0;   
6 ?. J, k/ p: z% w. s# @: C: O; k  -> 19971215235026   
- e. b2 Q7 W" R. x& {1 l
5 y* E  d6 l* ]: N5 Munix_timestamp()   
( h+ t2 s0 v( }* D' E* i  `: _1 S# aunix_timestamp(date)   
- l4 }5 ]7 l1 W+ }: E7 _2 A返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
" V% U) Y' O4 y: f) ]数,date默认值为当前时间)  
- v+ l; s4 q6 |# v5 y: ]mysql> select unix_timestamp();   
+ r$ q) z) O' ?, w/ k  -> 882226357   
1 Y( f9 f9 {/ amysql> select unix_timestamp('1997-10-04 22:23:00');    4 ]2 o- k# t$ I
  -> 875996580   
+ t1 q, M8 ]. t7 u( |1 W5 j4 |
+ C; C; f& R3 |6 v( i: Rfrom_unixtime(unix_timestamp)    7 B* ^0 [$ u* m: R  J
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的
9 U1 S. v, g" f% m5 `- j值(根据返回值所处上下文是字符串或数字)     
5 s, Z% W( s" b" ~mysql> select from_unixtime(875996580);    9 R! K( x3 l' `; B8 h) s+ |7 y
  -> '1997-10-04 22:23:00'    . A) A. z  ~$ r/ R. L. r7 j7 y+ O
mysql> select from_unixtime(875996580) + 0;    ( [/ L# w# U2 S5 Q
  -> 19971004222300    * N3 \, X0 g$ Z, u- _1 i

- R9 X$ x# F5 e0 J, m) sfrom_unixtime(unix_timestamp,format)    / L4 ~! ?( A% W. I# C7 P$ m5 Q
以format字符串格式返回时间戳的值  & X' [' t# n7 u/ \
mysql> select from_unixtime(unix_timestamp(),'%y %d %m %& l9 B+ a2 ?  I* N5 {
h:%i:%s %x');    $ t3 E# s, G' h1 ]3 H8 Q
  -> '1997 23rd december 03:43:30 x'    $ W* _' Q- Y8 R+ S
' s3 o1 I) K0 f$ ^4 d
sec_to_time(seconds)    8 U1 |% m8 t0 x' v
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     % \- w! w  a9 C0 Y* h9 b- z
mysql> select sec_to_time(2378);    ; P/ V" L* S& y/ P! `! j6 q
  -> '00:39:38'   
% D) ]4 w+ H' _1 ]( n1 n9 Zmysql> select sec_to_time(2378) + 0;   
( V3 k/ D9 N- O2 N6 m) Y  -> 3938    ' p  a2 w( L- t  o( r

, W' E( e, b$ t7 k# m) Z  O' l  Gtime_to_sec(time)    , C$ Q/ X3 W! ]9 e' H
返回time值有多少秒   
( q8 h0 P% i2 P! E8 ^mysql> select time_to_sec('22:23:00');   
# u0 l; S, B# D- v5 h" m' e" Y  -> 80580    # j' H6 O2 V6 w7 z. x/ g
mysql> select time_to_sec('00:39:38');    $ s! b# t4 `0 z# l$ Z5 K% I- w
  -> 2378
1 M: h( j* c. s, K. A' }/ e + {8 S3 f1 z" V9 p
转换函数% k8 q( G8 ]. z: p$ M2 @( }9 ?. _
cast) F4 B- O$ G+ D/ \- E
用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]% Q8 n* x6 u, s+ g# r
实例:select cast(a as unsigned) as b from cardserver where order by b desc;
* p4 }: A7 \5 ^1 pconvert:" p; ^: x/ N/ T
用法:convert(字段,数据类型)  }+ Z3 R( E" n* Z6 a; c/ U
实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
$ p, r' n$ J. g7 N0 \6 F  `
回复

使用道具 举报

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

本版积分规则

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