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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
1、字符串函数
6 s) o" D% t- i; H* m: a9 z2 }& cascii(str)   1 A- n( B7 F6 ]4 J. g+ d+ D
返回字符串str的第一个字符的ascii值(str是空串时返回0)  + T+ X8 C$ Z: c7 m9 k2 t# H8 l6 t* C
mysql> select ascii('2');  
. M: b* h8 C: A2 S7 N8 D  -> 50  $ _- S3 m! H* q+ [. D
mysql> select ascii(2);  " X/ D# `  K) A7 p4 w' m( T6 x
  -> 50  & t1 g0 q2 Q: Z% o' x
mysql> select ascii('dete');  : J/ w3 H' q9 F0 ]* R
  -> 100
% v$ X. V5 F- y; J) F
ord(str)   ( T! D0 S/ F4 ?  `1 W& Y
如果字符串str句首是单字节返回与ascii()函数返回的相同值。) J" y1 k$ y* ]/ g6 }& R4 _+ j8 `
5 g, \9 m5 E4 x1 H
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  
  }$ X1 H+ J# w0 b. c2 kmysql> select ord('2');  
9 y) W. R# d& K( \  a' n  -> 50  ) {/ S/ ^5 Z9 m  Q9 A
   ) G. U( l/ K/ k; b* n5 D0 g
conv(n,from_base,to_base)   
# B. B- A/ L- Y, w; \) ?% Y对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
. G9 C5 q/ }8 r* D( |mysql> select conv("a",16,2);  ! b) C: i8 s0 V: z) l
  -> '1010' . E4 P5 o5 i$ S
mysql> select conv("6e",18,8);  
- ]; E5 Z$ }& F6 y) G+ @  -> '172' ( w& y; @# {# w1 p6 m, |
mysql> select conv(-17,10,-18);  % |. B/ }; P. u0 N* `
  -> '-h' + J# G# a0 N) D5 d! j, e! i
mysql> select conv(10+"10"+'10'+0xa,10,10);  9 `/ r! {* X" Y2 F9 t
  -> '40' ! `/ F/ v4 x  m$ ?% }4 h3 n; z$ i
   
5 B! z2 Q5 a( g" S6 a$ U9 sbin(n)   % ]( u8 \" G# S# g, a
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  " j- B5 \" }2 v1 R
mysql> select bin(12);  
$ u# y! L8 H4 J6 g* t) q' W  -> '1100'
2 m6 {4 x: ^3 d ) g, w3 I) s+ b' S% }- s0 i
oct(n)   . \% g0 w+ i" W: K" p
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  $ O+ n# \/ B" L' `
mysql> select oct(12);    x" |7 c: t% g* R6 N9 q6 O
  -> '14' & S: f0 J1 L) a3 Q- @8 N( n
   3 l; r( q9 y/ P6 X1 v
hex(n)   
! c. k: I7 ]  D4 ~把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  
: T% y5 k, d' O& _mysql> select hex(255);  
; S/ ~+ [, C7 M6 n; T8 X  -> 'ff'
/ {) |5 d; N" A/ I- I* H   + k: {  Q, I5 q8 o* g
char(n,...)   
$ a+ Y7 g$ k3 W" b/ h返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   
9 a0 u# M6 x4 E- g, k0 qmysql> select char(77,121,83,81,'76');  
' ?' }" [7 g  q+ u2 Z  -> 'mysql' $ z% A6 V: e' W8 H2 T# W
mysql> select char(77,77.3,'77.3');  
  p" i, v3 Z5 V7 g9 |7 b: r4 P  -> 'mmm' ; r/ w; n3 l0 x
   
4 g9 ^7 [) X9 U) `+ f" z; Vconcat(str1,str2,...)   ) C3 J+ Y; m% _* I+ v( x1 S; l
把参数连成一个长字符串并返回(任何参数是null时返回null)  * ~/ A, u/ E7 }9 _+ [! F, {
mysql> select concat('my', 's', 'ql');  * R9 V  [, r0 X( d0 s; y
  -> 'mysql'
! M: o. X  Q' x  u: O% kmysql> select concat('my', null, 'ql');  
7 o: d! y4 H* F  -> null
& r& Q* K& w5 m! n/ d: k; Wmysql> select concat(14.3);  
; P% S% ^  g$ D  -> '14.3' 6 \4 K0 U3 ~0 E- u% h5 @
- u5 R$ Z% Q! I( A5 t; s9 `
length(str)   , _3 ?4 I! G1 e/ X
octet_length(str)  6 n8 v* m, t0 L3 U+ z
char_length(str)  1 u6 _$ }! y$ ]
character_length(str)  0 s: P; L4 s# _% o4 u+ _
返回字符串str的长度(对于多字节字符char_length仅计算一次)
! e) c+ p" ~5 q9 omysql> select length('text');  1 w; \& P7 \' Y( @# H; w
  -> 4  * P/ q5 j0 _( `" C: l  ]: g
mysql> select octet_length('text');  2 W: b9 \7 r& `8 J
  -> 4  
9 v: {  W' A! N0 |+ J9 U, q ( g' t" X4 \. |7 N, E2 ]
locate(substr,str)   
- k% I4 n- C' Y) `4 Uposition(substr in str)   2 g+ O( H8 q  M% }7 Z0 k, [  t
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
' A5 h; M4 Q- J- I3 t6 \mysql> select locate('bar', 'foobarbar');  
& {5 ^# s  J( D  -> 4  ) o& E5 B! ~6 r! h% E2 q3 U
mysql> select locate('xbar', 'foobar');  ' c: Z0 W. y* ^6 H9 y
  -> 0  1 p6 @# m$ m  g) J) m
    0 R- h' u' F* ^: s3 m: q
locate(substr,str,pos) * Y$ N( y6 T' d4 L
返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  ! _% `2 M. i' V: l, G( ?
mysql> select locate('bar', 'foobarbar',5);  5 D5 g6 \! B: {: B
  -> 7  / _, a( Y8 i2 ]+ Q" ]

+ I/ o. ?- B+ H! `instr(str,substr)  
6 s5 T" N+ T( _. l' r- E1 G% A8 C返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  % G6 B# v+ K! S' h8 b
mysql> select instr('foobarbar', 'bar');  
; C: c" k( p* ^: w1 c  -> 4  ; p9 U3 n+ I  U* ~
mysql> select instr('xbar', 'foobar');  - ?/ E% r" {0 Q) B8 h7 j' p$ h8 b
  -> 0   # H- y! |+ v: H+ x) h

1 O* G1 r( L7 }: h& s$ `8 \lpad(str,len,padstr)   4 y% N( d% W5 j: D) o) v# a
用字符串padstr填补str左端直到字串长度为len并返回  5 t% ~% ~8 h6 R1 g% [6 Q
mysql> select lpad('hi',4,'??');  0 J2 m& k- T% o$ w
  -> '??hi' $ R2 I7 P& {1 M3 z
   
; @& Z' _% }& H+ J5 y+ mrpad(str,len,padstr)   2 |5 c/ L! N# r6 f5 a$ K/ E3 ?
用字符串padstr填补str右端直到字串长度为len并返回  # O0 p6 m; X6 m
mysql> select rpad('hi',5,'?');  
; u$ v3 o3 b, u3 Z6 ~5 B9 g  {  -> 'hi???'
: [  q6 \1 H7 I' K ! r3 r0 F6 v& ^1 [
left(str,len)   % `2 m7 }8 ]3 U8 o7 ^( O0 @
返回字符串str的左端len个字符  
) n, \( c8 }5 Zmysql> select left('foobarbar', 5);  
0 l+ Z' r6 f/ Y, L( _0 p# v6 S  -> 'fooba' & q' R& s: \! p4 e8 I- X& n+ X/ z/ S7 b- I& S
0 d6 I  E: H/ N! H
right(str,len)   
5 Q2 ]: s/ m9 a* H' l+ U0 g: d# d$ n返回字符串str的右端len个字符   ; u8 E; A- E! ~- A5 |# J
mysql> select right('foobarbar', 4);    s. c: y5 E( Q$ ]. u
  -> 'rbar'
1 |# P& C5 T% L) T: m( U3 D, D % c1 N% E  o& J8 y4 [! R2 @
substring(str,pos,len)   
/ A1 L3 h/ G2 O3 msubstring(str from pos for len)   % i5 g5 @8 Q( |* l
mid(str,pos,len)   
5 h$ k/ d) V; j: V+ O$ ~# \返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
1 I2 ?2 B- G5 B# |" K* q# v& ~7 E  -> 'ratica' 4 |* N+ S) v1 V( ^# C8 A5 r

! E- a, P4 E: @# ?1 R# ]( Ksubstring(str,pos)   3 K8 J7 U7 r! I* X
substring(str from pos)   # S: E6 o) }& \% f. h: p
返回字符串str的位置pos起的一个子串  
8 f- _+ @0 B9 b! _1 ^# Q2 @" Umysql> select substring('quadratically',5);  
0 o" _$ \- K. I9 X# z1 i  -> 'ratically' , I4 M+ r6 C1 y( ?* a8 g; I
mysql> select substring('foobarbar' from 4);  
  A% i3 |4 m. _  w3 K  -> 'barbar'
3 }1 |6 ~# ]! U# v! N5 R1 V1 p
# l# f. J2 X. i$ Z! {7 V: ]substring_index(str,delim,count)   . I9 U! p8 |' C& Q2 ~% H* H; _
返回从字符串str的第count个出现的分隔符delim之后的子串
4 E6 }8 |' h! ~1 ~- q! n(count为正数时返回左端,否则返回右端子串)  
' @0 I$ G5 c" E! F6 B/ xmysql> select substring_index('www.mysql.com', '.', 2);  
9 l6 @- ~4 }' }, i+ W/ j5 E  A  -> 'www.mysql'   k+ Z* d& v" Q* s3 y: p
mysql> select substring_index('www.mysql.com', '.', -2);    `$ n$ B/ M+ J( K" N, L
  -> 'mysql.com' . f% d+ G, Q4 Y2 K) t9 I
- x& l- K( P4 k( S+ S
ltrim(str)   & o! f; E5 ~  I
返回删除了左空格的字符串str  
7 w* F: O# F- _# Wmysql> select ltrim('  barbar');  
7 v5 O6 Y! x% t- S+ p& x, T  -> 'barbar'
, f( l. o' H7 X7 K* @& V( e % U1 N' j9 P0 u& k% v7 s
rtrim(str)   
& k/ w  m/ Q/ f  ~" i返回删除了右空格的字符串str  
% k6 L# M8 y7 q' B2 O) s- a: nmysql> select rtrim('barbar   ');  
1 L$ x# B' ~& \& l; B  -> 'barbar' 6 L- o$ o  F7 c, A' z

/ _' e% B, N6 r3 W/ I" btrim([[both | leading | trailing] [remstr] from] str)  
6 I: i- W3 x6 e) L0 @) C  @( e8 s返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  : |) w0 X8 ^# ]- T6 y; Y
mysql> select trim('  bar   ');  
6 G4 b) k$ k" I2 G9 z( A( p6 @  -> 'bar' - J/ |6 p; F% b) }. k6 o
mysql> select trim(leading 'x' from 'xxxbarxxx');  
1 M& d, L: t/ L2 E  -> 'barxxx' # Z* m9 ?7 n9 F* J) b9 D
mysql> select trim(both 'x' from 'xxxbarxxx');  * q! N; V- B: o% a7 P+ {
  -> 'bar'
1 d- N# R/ s* X; V' E) wmysql> select trim(trailing 'xyz' from 'barxxyz');  4 v9 g9 @- t% B+ n$ `2 D
  -> 'barx'
1 q+ z9 o6 V8 | % r( f- O5 K- C7 W6 D. S. K
soundex(str)   " R# B2 V! b' t* K0 V
返回str的一个同音字符串(听起来“大致相同”字符串有相同的7 S) Y# c( ?0 d9 k
同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  ! b9 p$ I. n+ X+ Z' i( H# q
mysql> select soundex('hello');  " s& s7 F9 n, y' t* b
  -> 'h400' # R- M' S: F7 Z9 l+ ]
mysql> select soundex('quadratically');  
0 A  [0 U0 ?9 E8 v  -> 'q36324'
) C+ C1 @& D2 Y, w# s, H6 h+ h     w9 e- F. P  H
space(n)   $ g0 g7 h+ E, h4 O# }
返回由n个空格字符组成的一个字符串  
- Q6 x+ B& B; ~8 c9 H! {. lmysql> select space(6);  
+ K! f% n6 E# Q# x* p( J7 [) J+ L  -> '      '
: c7 i  c" e" c, r2 P$ z   ) A2 W, G0 g, A, U; }- f
replace(str,from_str,to_str)   - k3 g1 A& w4 L8 t
用字符串to_str替换字符串str中的子串from_str并返回  - F/ y; s3 T& b; `4 ]' U0 X
mysql> select replace('www.mysql.com', 'w', 'ww');  
1 l9 S, {& |4 J( ]" u/ Y; T; E  -> 'wwwwww.mysql.com'
) w* n* d7 b5 i1 j- A: e# O8 t ! U& q6 q; ]# U& G2 F9 l
repeat(str,count)   0 c, I2 l/ n  k
返回由count个字符串str连成的一个字符串(任何参数为null时; K9 d2 l2 ~! X& H
返回null,count<=0时返回一个空字符串)  
6 p1 U0 J! P7 r( a' K% `( Dmysql> select repeat('mysql', 3);  
- O+ I' t+ O# ~' R  -> 'mysqlmysqlmysql' 2 y$ r7 W. d6 f" f! I
   2 W: N7 k1 z; K9 n. s- Z8 q: z5 }+ v
reverse(str)   ; e0 _; u; v: ?" L4 z, ^5 z+ ~$ d7 l
颠倒字符串str的字符顺序并返回  9 @6 c# [) D2 }# n+ U2 q" l
mysql> select reverse('abc');  
8 L: T* J9 p. [& o: C7 H  -> 'cba'
. y$ j7 K3 `0 Z$ p6 e6 D3 x' m- B ! a7 _0 X9 V% M
insert(str,pos,len,newstr)   % e- Z2 o1 ?: k8 D: j9 {
把字符串str由位置pos起len个字符长的子串替换为字符串; T) q2 J- Q0 ]* k; B' {9 \2 R
newstr并返回  7 C* f) e/ q* h) T) ]/ B
mysql> select insert('quadratic', 3, 4, 'what');  
4 D, z% {: P- G1 Q- Q0 }# ^  -> 'quwhattic'
; p2 [% O# w5 _7 x ) V( M( {# _) R+ i; l/ `  ^" W
elt(n,str1,str2,str3,...)   
& w/ V$ [- P4 o  n6 k- h3 X/ K! U/ E返回第n个字符串(n小于1或大于参数个数返回null)  7 j1 ?& a) ~  T* t5 ?' \
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  
' V8 S( a# s( r0 _  -> 'ej'
/ a+ X8 C, \2 [mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  $ `% H& c; i0 k& U; X
  -> 'foo' 5 A2 F2 r# K7 ?2 E. n/ ~8 s) Q4 v

; I2 _: a2 P5 ?field(str,str1,str2,str3,...)  
% h& j# L" u# k# z9 Y, m返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
+ a$ b6 q+ Y# M$ h. ^( {mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
6 o, z5 |# s1 n  x. ?  v$ b- t$ X'foo');  # L# l( D+ b9 N& u4 B
  -> 2  / i2 F% S) D% @
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
/ y4 N* k# _9 I3 W- u8 D2 G- ?0 _'foo');  6 O: b( O, J9 d* H9 p8 M/ g5 u0 @
  -> 0  
0 h/ }4 `0 a0 s) p4 ~ & J. M8 I% `3 {) [
find_in_set(str,strlist)   0 A6 K0 h: y; o
返回str在字符串集strlist中的序号(任何参数是null则返回
$ z/ f+ M0 l; inull,如果str没找到返回0,参数1包含","时工作异常)  
2 g2 v2 Y9 e- [! nmysql> select find_in_set('b','a,b,c,d');  
5 R. @5 R5 ]8 h9 S  -> 2  & ]- R% ~( d' ~% I1 q
   8 y8 |- C+ x/ T$ ~
make_set(bits,str1,str2,...)  
4 y7 \7 x5 D( v. m6 s4 z把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应* W" `' U0 G0 x; i/ A0 ~) x
位置的字串选入字串集并返回(null串不添加到结果中)  ) i6 d* I1 y5 H, }$ u& }3 ]
mysql> select make_set(1,'a','b','c');  9 g3 r: y7 m3 j
  -> 'a' ( {5 M& q5 n, l6 o- \6 w& U3 ^
mysql> select make_set(1 | 4,'hello','nice','world');  $ L0 T( t0 Z  P  @
  -> 'hello,world'
! h% ^7 v" v* k6 n2 @$ d% H% Umysql> select make_set(0,'a','b','c');  
2 |) r- Y, |- y  -> '' 2 O1 J, N3 U! _0 _/ ]
0 M2 f1 M* Q7 {4 M: n
export_set(bits,on,off,[separator,[number_of_bits]])   ) w! x- j( S" F# q
按bits排列字符串集,只有当位等于1时插入字串on,否则插入% `- R3 o% E% C
off(separator默认值",",number_of_bits参数使用时长度不足补04 Z; I* j* r# b! y: q" {/ q$ H
而过长截断)   7 u4 ?( o' x6 ^& A( I
mysql> select export_set(5,'y','n',',',4)  
# v1 ?( h; D! K% D8 u: ~: q0 s3 Z  -> y,n,y,n   + s3 a# L+ P% H" X! A! d1 R( D
3 c2 x# {: g1 F& P8 p8 U) G
lcase(str)  
) y! Q! R+ C+ j$ U# _5 z. B$ \lower(str)   
5 E+ e/ c  p) g( V返回小写的字符串str  * A+ p6 E" Z2 u5 Y
mysql> select lcase('quadratically');  , }2 o& N  ^7 y+ ^. r3 C
  -> 'quadratically'
3 _- ]! U: q! c8 l   + N/ T( c# f3 W! G) r
ucase(str)   
& `3 z/ x, Y& g6 m: o/ j. O1 Q7 U1 fupper(str)  
, j, w) d2 W( Y3 V, D返回大写的字符串str  7 S. ?1 D7 b' u
mysql> select ucase('quadratically');  + I8 B" C1 j; Y& q4 w# |1 \6 C
  -> 'quadratically' + U3 D. A7 P; n6 R: ?6 d: R

/ U/ m9 L+ p) s6 E" jload_file(file_name)   1 N8 Y$ d/ H- ?4 \* c" X% c
读入文件并且作为一个字符串返回文件内容(文件无法找到,路径3 O) e% j. M( ]3 K3 s8 V7 O8 f
不完整,没有权限,长度大于max_allowed_packet会返回null)  1 m9 }" e" E- J* S/ l
mysql> update table_name set blob_column=load_file
7 |" ]5 i. E- U* o) z; ?4 C("/tmp/picture") where id=1;  - R+ Y* G3 v) L5 P
$ X; z( p2 t. E4 v
2、数学函数  N  w3 Y. ]: C5 V9 u3 B
abs(n)
3 h# E" {" G6 `5 k7 n/ q返回n的绝对值  - ?7 w6 A1 x! I" ]( [/ K6 f
mysql> select abs(2);    * l2 u6 [8 M5 A, v
  -> 2    + D3 t9 l8 w! ~( H4 r5 r4 u8 j) Z
mysql> select abs(-32);    8 a6 u5 C2 F) b3 [8 _. p/ {' X
  -> 32    ( {4 d4 D) }; v* U( {
   
, h8 i6 e& V& y" D% \6 l" Nsign(n)  , h, i3 C" ^, H
返回参数的符号(为-1、0或1)  , O* l- q# N0 a+ e; B# A
mysql> select sign(-32);    ' l5 A/ l2 \* n
  -> -1    3 f* l4 _( f6 `) z" g* `! J) T" z
mysql> select sign(0);    1 y0 x) ~# t! e8 a3 P3 d; c) w
  -> 0   
$ T; l+ I. \" A( Xmysql> select sign(234);    % \5 z; N7 h, r' g# @9 T
  -> 1    8 Z- Q1 M2 y; s$ e

: b7 u* [9 U9 A- B, `' o% Ymod(n,m)   
5 q6 J. Z3 H9 b( c! Q取模运算,返回n被m除的余数(同%操作符)    . l; M/ o  H# J
mysql> select mod(234, 10);    " N+ w0 ?& O! ]0 S
  -> 4    # V  y# t) a) d) c
mysql> select 234 % 10;   
# {) v6 p) s4 p2 R$ V/ A8 N  -> 4   
, J  i" r0 p' M. T9 Rmysql> select mod(29,9);   
9 s! Y6 Y. v2 m7 j3 t% t0 l  -> 2    5 ~2 I' o, J7 A9 E+ d
& v3 R0 o) ~9 q  @% Y8 r
floor(n)  
+ {# D- E. q; R4 N返回不大于n的最大整数值  
. X+ [: G! x; a8 W, lmysql> select floor(1.23);   
+ D( D( p1 F- j$ ?  -> 1    . ?$ y2 n, v4 o) e
mysql> select floor(-1.23);    + \4 [5 ~7 u0 h( b* I6 S  N! f  ~
  -> -2   
$ a( e0 M- ~  z& |
. T+ I: T2 H9 _' e, F5 l3 ^, o4 Qceiling(n)  2 I! O* Y3 t0 W4 W! v
返回不小于n的最小整数值  # X% I8 R/ c, d3 a: l! O
mysql> select ceiling(1.23);    - ?! f1 f" ?3 X
  -> 2   
3 |+ m& v* t; [1 l) Z. l! H- Z2 _mysql> select ceiling(-1.23);   
2 n3 g/ k. {4 {& K- o  -> -1    , J$ P4 A8 U' g0 v& f& H

3 L( m3 H) a3 o" t, L) ground(n,d)  
9 h7 U/ v4 |+ z8 o8 C2 k6 s' M) t返回n的四舍五入值,保留d位小数(d的默认值为0)  # g7 N1 I$ \0 Z# _& j
mysql> select round(-1.23);   
! ?) b( T& w8 z" U+ E  -> -1   
$ @/ x+ _  L* K& X1 ~mysql> select round(-1.58);    1 }( v' c  J2 n, w; z9 Z
  -> -2    8 B: z- C5 Q/ ]/ f/ ?" W* ?
mysql> select round(1.58);   
- ^& l  W3 T$ D5 j& U- x' l: p; n+ H  -> 2    - w6 c- P: r# d) q
mysql> select round(1.298, 1);   
1 b' d# `% p. D+ S: U4 P  -> 1.3   
5 `6 }. ?" V& l' P8 k( J. omysql> select round(1.298, 0);   
" j7 C+ t" K2 G' O  -> 1   
; `2 \# U2 g9 y( ?8 y: ?! s ' Q1 M9 s: q+ U
exp(n)  5 I/ T, C4 {" {% G% r$ U
返回值e的n次方(自然对数的底)  
6 M0 }0 V7 g% b' b+ R4 Smysql> select exp(2);   
+ @& ~5 o% c8 J  -> 7.389056    & A3 O) b2 o$ e/ C& y9 H3 N/ S
mysql> select exp(-2);    $ t  ^: q+ i+ r, @4 p
  -> 0.135335    3 P5 k0 ~7 j. l9 d8 {
  d5 \: t8 a, U7 p6 l0 E8 U
log(n)  4 N  p# a- P3 O5 }; z
返回n的自然对数  ! M$ ^% e1 N; E8 o  q
mysql> select log(2);   
5 I8 q! L5 ?1 m0 E% \: V  -> 0.693147   
: I+ }% S' i, i- y0 g, X; pmysql> select log(-2);   
1 y( S. _4 l1 T4 q+ L5 D, m9 E( G  -> null    3 Z. a4 @: X4 H+ A% m2 t
) e0 |% J% @" @1 n2 ]; d
log10(n)  
% \. E5 |6 o) F/ x+ e3 v3 a返回n以10为底的对数  
4 J- ~5 ^( V2 d5 R5 X" x0 \mysql> select log10(2);   
- m+ e6 e8 z% R! g' c9 S; ^  -> 0.301030      v* u% w0 V+ E' P; L
mysql> select log10(100);   
7 h% N# p8 g3 {+ \+ B& N, v  -> 2.000000    9 q, k% |; q" P* K7 c& s4 G
mysql> select log10(-100);    6 c# A% S3 E( H4 w: z! y* d2 i
  -> null    / [- }; b  ~' B( H' N
& A/ [; w/ u- v+ q$ n
pow(x,y)    & I1 P' V, @8 b# i0 N& h; K
power(x,y)    $ T: L: U1 V& S+ c" T, f
 返回值x的y次幂  
$ |, x1 u8 I1 l! [- O) n2 L- Emysql> select pow(2,2);    $ H: |/ k- w5 f
  -> 4.000000   
( S0 N0 j0 B* C3 o2 lmysql> select pow(2,-2);    4 Z$ y# Y. w& c
  -> 0.250000  
. N# q: v. Q7 ^0 n
  D& B+ S: y( O7 ?/ S# P# n- \sqrt(n)  
: x" Y& n6 x7 e' U* h 返回非负数n的平方根  # V+ c, M/ g3 q+ n+ h* r3 o
mysql> select sqrt(4);    - d. G( V# L5 H$ ~8 l! r" Q, L+ m
  -> 2.000000   
! l# g9 V  D. Y+ S$ [; ]2 Cmysql> select sqrt(20);   
" S' @8 N/ I0 L" S( M& `  -> 4.472136    ' }, D9 j" T, k) n$ ^; Z/ r
/ ]. J% p3 L* x1 s5 k) v' P' V
pi()    0 O, M, ~; u; G% S4 ~
 返回圆周率   
  H& c# e/ U' Y, G8 Bmysql> select pi();   
' f, g6 G7 u) A' W! m" j( Z  -> 3.141593    2 d& Q+ s& o- G# [
, e! e3 S. G& P/ c: A9 ~8 D# ^
cos(n)    s3 ]% q" {* |& T2 a
 返回n的余弦值  4 _1 g4 X! K+ D
mysql> select cos(pi());  1 l  p* ~, V3 j1 `% F
  -> -1.000000   
( S/ j! A) O. M
# N1 O- Q$ z% P1 Tsin(n)  : K1 n+ W  i. N2 v8 q
 返回n的正弦值   5 L# _  x3 C( o% z
mysql> select sin(pi());    ' G6 ]8 s% ?3 N
  -> 0.000000   
! d6 P- e1 F! h- [1 s * ^% B3 y" w9 ~/ r( K0 R: Q
tan(n)  9 k0 V# _$ d6 t$ [4 e& d' Z4 B( }* u
返回n的正切值  
$ |& R& Q& m) m* m& Emysql> select tan(pi()+1);   
/ g8 U, C$ k0 `' H/ [  -> 1.557408    7 D* C; y7 p: N/ c3 f

6 j2 r9 J$ T, C5 N8 z! o- F1 _: E) l8 xacos(n)  
4 L: B7 Q" p7 G7 E4 k0 I% D 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  : O. |% G0 K- j8 |, Z/ P9 N: a% j5 v( L
mysql> select acos(1);   
& x2 ~9 O) k) K& e$ D7 x  -> 0.000000    3 X! f% Q0 c! W. v/ n
mysql> select acos(1.0001);   
3 y/ t# F2 a) q+ L% g  -> null   
: r3 }3 v# S( u! R% j$ H% jmysql> select acos(0);    ) A$ K( C! w, l6 |3 D" I! j8 L8 k
  -> 1.570796    - ?* M- \& m: L5 @  }+ v
. ~7 K' N; }) D$ N1 y) u. P
asin(n)  7 a6 F+ G: F( |2 R- F# B
返回n反正弦值  
! P3 P- W2 L# `9 W: ~mysql> select asin(0.2);    9 E; R+ I( A. s" @  W2 f
  -> 0.201358   
+ I* Y1 V+ C! e. c" J; ^3 `mysql> select asin('foo');    4 o: G9 l. z* [7 _: B1 ^: E1 n' \
  -> 0.000000    ( h' S1 U  D" Y

- ~9 k  ]" n! v$ w. Aatan(n)  
( x) F4 I! Z- y) o0 l/ o& k6 [返回n的反正切值  $ f+ p* w0 _' x- ?, v
mysql> select atan(2);   
0 f# P# Z  r' H- `3 ~- n+ \  -> 1.107149   
/ y% ]0 P0 k+ E; I2 K4 O: Bmysql> select atan(-2);      |/ v9 A; Y4 Q' K5 r; k& }; B
  -> -1.107149    " P% z6 o& G! O" B0 n1 n% o+ u0 h% R
atan2(x,y)   
# Z+ r& H" z( X7 u2 j) r 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  
" [2 E: O) @, t8 i- J9 gmysql> select atan(-2,2);    & k. E3 A8 m; l% _% Y
  -> -0.785398   
  O# ^. H/ J9 L" h" s8 b- N% Dmysql> select atan(pi(),0);   
, C- C, w( m3 j" D/ `  -> 1.570796   
8 K9 v& _7 @; q8 M* q
* J8 o, @6 d  U( ]7 z. Ucot(n)  1 P/ D  F8 H8 _; q
返回x的余切  5 N# S4 ^6 y; ~+ T  Y8 s
mysql> select cot(12);   
$ g- K1 M* F: |) [  O$ N. R  -> -1.57267341    8 u4 [$ [" A' l/ a1 I1 L( ]
mysql> select cot(0);   
) J( h. k- p' u8 `* Z$ J  -> null    6 I4 T6 a3 M" ^: g
2 M9 H5 L; a7 L4 ?% C' h
rand()  ( G% f1 }) K( \2 I& P* i
rand(n)    9 y# |+ o* d: D( B
返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值) " I6 W- k9 q* a
7 X$ Y% m5 }) C
mysql> select rand();    1 `. n, n. E7 \0 Q
  -> 0.5925   
  }% r6 i" G5 ?( F' I9 z7 Bmysql> select rand(20);    - \8 [+ t! O9 p4 V: b+ T
  -> 0.1811   
! L7 Z! b% I  Zmysql> select rand(20);    ) l0 E; T! D+ x8 e( g
  -> 0.1811   
  w+ g) m# n! L; Xmysql> select rand();   
, Q, D; q# Z) F' y# E+ {  U/ I6 T8 `5 }  -> 0.2079    " ?! L% s+ K5 }/ O
mysql> select rand();   
: D# H7 E4 O8 i. D* R" ^, u  w$ c  -> 0.7888   
) o& V* l1 e* y6 s
, K  W8 Q/ r2 pdegrees(n)  7 Y1 L  Y& l: P0 M1 B! N
把n从弧度变换为角度并返回  ) s% r6 Q" X! P) z8 `! @% K
mysql> select degrees(pi());   
! @' A1 \  Q4 ^- h0 s: T- G  -> 180.000000   
" ?* d) Z; l, e
% M( ]! r4 D9 Z: P# v; iradians(n) 8 }8 |" @+ N" F
把n从角度变换为弧度并返回   
9 k: M" ^3 j8 O! i9 P: _, _mysql> select radians(90);   
7 p; y- L7 S; Z2 I% m  -> 1.570796   
' {, L- D% [0 o7 Q8 T, k7 k2 C" L+ y6 K
truncate(n,d)   
& l* |5 B5 d* m* X6 W& o  |保留数字n的d位小数并返回    k& I; j. K- F$ L& A
mysql> select truncate(1.223,1);    ) ^! q! R- Q: s7 ~5 J4 M+ ^$ C
  -> 1.2   
  K. E# X/ o, hmysql> select truncate(1.999,1);   
" h) Y) N. l6 X( U  -> 1.9   
: `0 n6 p+ ]' n" t+ `/ s5 F1 ~0 Amysql> select truncate(1.999,0);   
+ C/ D. }! p, ~7 b+ {# m  -> 1    / g6 O, T  r: T8 G# R" m
' i3 h9 D1 K+ Q  A( ^; ^& z& q
least(x,y,...)   
% v7 z' @4 M# m# ^0 |% q返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  , r- [4 N7 p9 g+ v
mysql> select least(2,0);    $ y! q2 i- p$ n, ?- m
  -> 0   
, g' `+ d+ B9 E) G7 Ymysql> select least(34.0,3.0,5.0,767.0);   
% l6 {/ r' ], p6 s( Z+ p5 |: \5 d8 O5 U  -> 3.0   
4 [4 ~$ @7 b4 Kmysql> select least("b","a","c");    ) u! |) x- |  W, x7 j4 x2 f! P
  -> "a"    ' M6 C3 O1 J1 i- L8 V" v: I8 w
( O% L7 U5 X" P1 X: A7 d$ k- c
greatest(x,y,...)    : e+ U" S: I3 X2 X
返回最大值(其余同least())  
/ M0 o8 z+ a& K! amysql> select greatest(2,0);   
# y, p5 b  m! ^" F# G! ^" P  -> 2    & C9 V( L/ u+ A2 o8 v, H
mysql> select greatest(34.0,3.0,5.0,767.0);   
# Z# M! U  h# ^& p5 S% _1 F+ {% z( {  -> 767.0    - D- R1 [: m4 k) k! b- I, n
mysql> select greatest("b","a","c");    1 g2 b! W; S' B
  -> "c"     ' _6 [. g1 m1 z- T
- r2 x+ b; ^0 s- ^- D( t7 r9 ]
3、时期时间函数 + t$ H8 `7 W  |$ l6 ^3 ?
dayofweek(date)    # F- n) p9 L) V. p. t
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
' F' A, V8 u$ w! \7 dmysql> select dayofweek('1998-02-03');   
( q1 b+ a. q. x5 D" V4 e2 R) |3 Z  -> 3   
( p2 Q2 C: T. d+ |% y
! Q$ z8 q- d6 v$ b# K: vweekday(date)      c4 q8 S' A$ ?6 ]( H9 c$ m
返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 6 Z9 M, E# k; q' l. J% Y) V
  
3 w. w7 @& }5 j- [mysql> select weekday('1997-10-04 22:23:00');    9 O! L4 U4 t7 d: G5 S% D
  -> 5   
! O9 I3 a/ N: jmysql> select weekday('1997-11-05');    ' L8 ]- [  Q: Z- ~$ k
  -> 2   
  U6 }0 I3 ~9 }0 L
/ U9 i% U$ j  D" p0 H" l- Ydayofmonth(date)      q" D/ d4 \, C5 @! f
返回date是一月中的第几日(在1到31范围内)    ! Z8 ?* h% O/ c0 R! i5 F
mysql> select dayofmonth('1998-02-03');    4 @1 z2 p/ _& I& ~0 ^. b
  -> 3   
  [% ~) \# ^2 s! @, @
! H: K7 R' H  B2 ~" b) mdayofyear(date)    ! P. Q. _2 |% o5 R5 |0 ~
返回date是一年中的第几日(在1到366范围内)    * ^/ z, w" C5 S& B( l9 U: |
mysql> select dayofyear('1998-02-03');   
6 P) x5 |1 X& {$ q  -> 34    % s( C/ B8 H/ L! d. V
  y/ C- Z. p) L6 r: R
month(date)    9 D1 y! c- P. X& f# v3 h* z8 u
返回date中的月份数值   
; _' {( D) y+ w5 m; v: r9 x: v* \mysql> select month('1998-02-03');    6 f- i2 |) V7 P7 i8 q( _
  -> 2   
' M8 Q: Z% b0 E ) Z0 M# [; l: J1 o8 ~/ o
dayname(date)    5 `- z0 [" b0 j3 B; t$ v
返回date是星期几(按英文名返回)  7 _- F& v: D, g5 d/ n% ?% [5 W
mysql> select dayname("1998-02-05");   
7 Z) l# ]2 E: r# _  -> 'thursday'   
8 x. L" x1 q/ `" M. F
# |) t* ?- t5 B* ~monthname(date)    # y2 c4 I5 Z7 T* Q9 I  b
返回date是几月(按英文名返回)  8 j' x2 w( K% ~# n
mysql> select monthname("1998-02-05");   
- W$ A+ [. S2 E' t1 |- t5 Z  -> 'february'   
1 j" q; y! Y4 y+ P) A & E* m: X) _. l1 Z& V' C1 T
quarter(date)    ! ^6 k  q% a/ Z7 b+ U
返回date是一年的第几个季度    2 A6 h+ ?$ y! V9 ?% V* c4 j1 x
mysql> select quarter('98-04-01');    . E( a. N1 e3 V1 k
  -> 2    2 R) h9 \) T) g: w" X

% s  G2 ~0 W, q8 A  s% hweek(date,first)   9 v* F+ I$ j& R
返回date是一年的第几周(first默认值0,first取值1表示周一是
* N" v1 s1 q8 X9 y4 [, X周的开始,0从周日开始)  4 E" \: D- V; k) ]. Y. _, Z5 J$ \
mysql> select week('1998-02-20');    5 [" `8 n/ J2 R6 c% F" X
  -> 7   
- r( ]4 [# [8 k+ qmysql> select week('1998-02-20',0);   
1 T% ^& V: X& b, o  -> 7   
: m; W! y$ j" I0 P6 r$ C! O0 ~mysql> select week('1998-02-20',1);   
2 _$ t* G7 G4 i" V4 Y$ y  -> 8    9 e, Z2 O0 P8 X; g
( J3 l7 q, a$ Q) p. z3 M
year(date)    & z0 m" C. n" `' [+ c3 I
返回date的年份(范围在1000到9999)    ! z( O+ v$ s, M; k1 h5 @
mysql> select year('98-02-03');   
" r$ }% v0 x* I, W1 G  -> 1998   
6 e+ S. M. W/ M) q6 [3 E% M
& O/ I3 F4 s) @+ g! J/ {hour(time)    
8 _) s+ |/ j" `: c返回time的小时数(范围是0到23)   # P# O* S+ ?$ a6 S. o/ T* F
mysql> select hour('10:05:03');    * z: R( W( G$ y  ]6 ?8 x
  -> 10    ! G( l$ Z8 e3 [( m2 `

+ V8 k- h) A* X  Q4 N* s' M7 Fminute(time)   
+ @1 h- Y0 Z- ^3 j; K1 x, m返回time的分钟数(范围是0到59)    ! m1 p0 Z0 V' X7 e2 Y
mysql> select minute('98-02-03 10:05:03');    ; c! O: ]( L4 b3 k* Z  X
  -> 5    9 _- N4 n, j# ^* B" q6 O& `

! H1 D, G( G  e0 H' H2 w( U, Jsecond(time)    
7 g0 `( b. F: S  W返回time的秒数(范围是0到59)   
. ~4 i: l3 l; d" xmysql> select second('10:05:03');    ! W2 @8 k& @* L) C  u
  -> 3    " f! {2 O6 X" O/ U* t, v+ I
( \7 O) J; ?# t* f# R: Z+ @
period_add(p,n)   
4 r- g5 J' q6 T* {) S6 B5 d增加n个月到时期p并返回(p的格式yymm或yyyymm)    $ j/ K" M4 R7 i' Y% u% c6 x9 d
mysql> select period_add(9801,2);   
2 Z' p' f1 }" @' C9 ]  -> 199803    ! q  b& z& q% w1 S
6 E% y& a6 o* F3 _9 P" V. x
period_diff(p1,p2)    9 Y6 b7 b: u/ j" p# @+ \
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  3 h& E) w6 V( Q, K+ C
mysql> select period_diff(9802,199703);   
6 }. x) D9 E% E/ b6 n1 I9 B  -> 11   
- l  f; _$ M( R# n. S 3 X( [' O$ w0 L7 Q4 X: G* C& x9 H- k
date_add(date,interval expr type)  6 G4 K4 W% I! U; a4 q% }
date_sub(date,interval expr type)    8 D- X; I  W9 U" K7 K, z
adddate(date,interval expr type)   
0 _% o8 P  Q0 \# z0 A% Nsubdate(date,interval expr type)  
% C4 _1 V' m0 K( S' e# J对日期时间进行加减法运算  
0 C" d) ]3 f5 k(adddate()和subdate()是date_add()和date_sub()的同义词,也1 h9 g# B: T" E
可以用运算符+和-而不是函数  $ z- c) k7 E: @: p2 c9 @
date是一个datetime或date值,expr对date进行加减法的一个表
6 l9 p) G2 a2 ^! v3 B3 {达式字符串type指明表达式expr应该如何被解释  
- Y0 ]1 m) Y- j8 C% h5 r [type值 含义 期望的expr格式]:  ! U' O& ^4 W/ \  G. `
 second 秒 seconds    % n" \$ }8 S$ S% W
 minute 分钟 minutes    6 B! p1 H7 [: ^! d
 hour 时间 hours   
* A! Z0 I$ N" U1 E1 D! ~% w3 L+ z7 x day 天 days   
  g. L+ \2 p' L/ i+ o# W$ d month 月 months    1 m+ j" Y- H% ]- z, c
 year 年 years    $ [5 U& K5 d3 R* r% J. \
 minute_second 分钟和秒 "minutes:seconds"   
$ p! W9 G1 i  P/ I hour_minute 小时和分钟 "hours:minutes"    ( U  Q, [+ E3 h, K
 day_hour 天和小时 "days hours"   
6 u8 e1 U5 F& i, N4 J5 }3 P year_month 年和月 "years-months"   
4 v) E2 k- P7 h# p1 W hour_second 小时, 分钟, "hours:minutes:seconds"   
* P8 Q! @/ O" M0 V, p) S day_minute 天, 小时, 分钟 "days hours:minutes"   
- H" [' A/ T5 r& v( |1 J7 i day_second 天, 小时, 分钟, 秒 "days1 i; W( q- F: `8 M
hours:minutes:seconds" " O# q; \8 M+ h. s) F( i
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个
6 m# H  h5 }0 U8 G! b( cdate值,否则结果是一个datetime值)  
. f( ]% R! R3 D# V3 D 如果type关键词不完整,则mysql从右端取值,day_second因为缺
: W5 z, [( f8 C6 ]少小时分钟等于minute_second)  
/ Z; y+ P) h+ Q/ B 如果增加month、year_month或year,天数大于结果月份的最大天
! L# U, V7 ^" B; d- Q$ C) M+ L# B数则使用最大天数)    2 a) f( h7 D" J9 R7 h2 w: f$ V9 W
mysql> select "1997-12-31 23:59:59" + interval 1 second;  4 Y8 N! z0 d" D1 P. y! b

: n& D. [8 O6 ]' j7 A% v  -> 1998-01-01 00:00:00   
' |) _4 B- U6 g. K8 B4 ymysql> select interval 1 day + "1997-12-31";   
( a+ h1 k. @+ V; O0 C  -> 1998-01-01   
% T3 \% g2 E# B: Nmysql> select "1998-01-01" - interval 1 second;   
9 s6 Y1 Y. m, p) _5 h$ W  -> 1997-12-31 23:59:59   
  W/ d1 `, c' c" O, b/ Qmysql> select date_add("1997-12-31 23:59:59",interval 1
1 l/ ?2 V) H( v' v: C: psecond);    7 I$ |$ t- S( V9 O9 }) L8 O. x
  -> 1998-01-01 00:00:00   
# g( s) S* W; \0 F5 P% _2 n' t# qmysql> select date_add("1997-12-31 23:59:59",interval 11 p$ g/ z, h+ Q: m5 J) @
day);   
1 m- r% d+ L! v) L5 w' o8 a  -> 1998-01-01 23:59:59   
5 N* g8 s6 m' G, b9 N0 nmysql> select date_add("1997-12-31 23:59:59",interval
9 j6 B: }. o. y/ ^8 x9 u"1:1" minute_second);    ! V) C+ ?2 `/ K/ h& a
  -> 1998-01-01 00:01:00    3 {% O5 P' J) A' ?
mysql> select date_sub("1998-01-01 00:00:00",interval "1
/ r9 s/ w3 x2 d0 P. r  F/ l8 P1:1:1" day_second);   
$ ]1 [2 I% b2 Y! _3 \  -> 1997-12-30 22:58:59    6 V& {* T) d# x7 H; B( U0 D
mysql> select date_add("1998-01-01 00:00:00", interval "-1
2 z3 c3 W1 B, }' L% B10" day_hour);  
; V$ X" X: M& D% \7 ?: w  -> 1997-12-30 14:00:00   
1 q8 M. E5 H, b+ v/ [mysql> select date_sub("1998-01-02", interval 31 day);   
3 L% D) V1 W8 {9 }9 n' c/ R  -> 1997-12-02    8 ?; E2 b( f: O6 {" e: S1 b
mysql> select extract(year from "1999-07-02");   
2 @2 p7 _) x3 P1 Z  -> 1999   
" O) u) F! ?7 A7 rmysql> select extract(year_month from "1999-07-02$ Q: i( A% Q% N; L8 }. |* s
01:02:03");    ) d9 [/ T! u9 _8 Y. ]# J! D/ x
  -> 199907   
2 M, Q$ i9 V+ }mysql> select extract(day_minute from "1999-07-02
" {- f  x% e7 g, |) C; ~, `( H01:02:03");    ! G4 @- `% L0 a4 R
  -> 20102   
( x, @' P! f! V) o8 a
" S% w" F" j5 @0 ~6 w# gto_days(date)   
, Y2 k1 h: [5 R$ W- I2 C返回日期date是西元0年至今多少天(不计算1582年以前)  
$ Q( [+ o. Y- ^mysql> select to_days(950501);    ; _$ K3 \1 }! r; J4 i6 a  w% ]' |
  -> 728779   
- s$ ?' }, B$ }5 i# Xmysql> select to_days('1997-10-07');    " i$ ^+ l2 ?5 ~6 o+ d, Q) l1 }  }
  -> 729669    5 b0 i$ z3 w5 |- @& |+ G. i

. Q/ {, }! g7 R4 M! b6 cfrom_days(n)   
$ l/ b4 I  o+ o 给出西元0年至今多少天返回date值(不计算1582年以前)   
) C) Y5 I: h: W( Y- omysql> select from_days(729669);    ' m' I- h% l0 h' z* v0 e5 ?4 T2 C
  -> '1997-10-07'   
  U$ z3 i4 J+ ~% Y4 u( v , \7 P; k+ S5 ~3 C7 C
date_format(date,format)    $ I2 z- P, n; r% ?0 B
 根据format字符串格式化date值  ; l' l# |( z* ^
 (在format字符串中可用标志符:  2 p. J% C% u, }: e6 q
 %m 月名字(january……december)    , A1 ?; ^$ y9 v2 ~$ }
 %w 星期名字(sunday……saturday)    5 V) D3 ^. D2 w
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    6 n; ^" T- i1 m3 g. r
 %y 年, 数字, 4 位    5 y9 ?6 }; Y, B
 %y 年, 数字, 2 位   
. |+ J* \3 Y2 }+ q %a 缩写的星期名字(sun……sat)   
: J. r. N) f/ X9 ^. m1 n5 h %d 月份中的天数, 数字(00……31)    5 v6 _0 ?0 a, Z- P
 %e 月份中的天数, 数字(0……31)    . d% V6 Q' C2 O2 J0 y$ }$ I
 %m 月, 数字(01……12)   
9 Y& ?' n# z  s# | %c 月, 数字(1……12)   
. P; A3 ?% x8 P %b 缩写的月份名字(jan……dec)    7 O$ S3 ^/ A2 }" s
 %j 一年中的天数(001……366)   
: S9 U* M- C3 ?4 J %h 小时(00……23)   
+ v3 ]0 N8 N4 ~  }4 `- E) n %k 小时(0……23)   
0 J4 [, B6 p5 d1 j/ Y! @% G* h %h 小时(01……12)    ( A2 F: B! V( O8 j
 %i 小时(01……12)   
. h; A8 o8 \) B8 m" P; ~7 r %l 小时(1……12)    " B8 x4 W+ ?3 t0 b. X, A- M
 %i 分钟, 数字(00……59)    3 O% [& ~9 f) D, D
 %r 时间,12 小时(hh:mm:ss [ap]m)    7 S9 {; ~% r, F3 p4 x
 %t 时间,24 小时(hh:mm:ss)   
" f; G  A8 k3 H* Z0 L, K9 r %s 秒(00……59)   
5 D; i% [8 o  J% j %s 秒(00……59)   
( M& b- C6 ^3 E) M/ I9 V. ^ %p am或pm    * K# C1 @7 C4 [" r- F2 E1 y  |+ x; n6 D
 %w 一个星期中的天数(0=sunday ……6=saturday )    5 F1 B2 N, H1 U- e1 [5 v
 %u 星期(0……52), 这里星期天是星期的第一天   
& s1 r# _7 ?- B( y8 q- ~& o %u 星期(0……52), 这里星期一是星期的第一天   
; C; a; @! |; ?" U! N: J %% 字符% )  2 ?7 }- @$ Q$ g3 P* M/ b* f) C0 H
mysql> select date_format('1997-10-04 22:23:00','%w %m %
# `. r2 ]* |' `- yy');   
' X/ X5 S3 ^5 j- c9 k! k9 p8 H/ w  -> 'saturday october 1997'    $ A: H( [2 S. F) ~/ ^! F, B$ i$ V
mysql> select date_format('1997-10-04 22:23:00','%h:%i:%- Q" f) O/ }. O7 u
s');    7 U2 P* O2 C$ V4 H  `7 S% F! z, ]
  -> '22:23:00'    ; k( Y7 R" v- [3 e* ~
mysql> select date_format('1997-10-04 22:23:00','%d %y %a
" N" S2 B. C0 t" C4 {%d %m %b %j');    ' d# u- ^+ A. x9 |+ B6 |% N2 O
  -> '4th 97 sat 04 10 oct 277'   
$ I) t9 v- J% I+ R7 Emysql> select date_format('1997-10-04 22:23:00','%h %k %i' n3 N; Q( c* r% H2 Y: E  q
%r %t %s %w');    9 D( u1 [7 e4 B+ M& n, S! r1 L- Q
  -> '22 22 10 10:23:00 pm 22:23:00 00 6'   
3 z8 p: m- I) Z9 N8 }& ]" C
% W, ~" w" n" S/ c- n& n' p9 atime_format(time,format)  
) B- H2 N5 \( i1 J! I0 m 和date_format()类似,但time_format只处理小时、分钟和秒(其
$ V. m( t# w" I$ Z4 D* @* i余符号产生一个null值或0)  
2 K3 u. a& x) q- G$ s6 h" Q" ^- B' Q
& d2 O4 B1 s+ o4 u7 Qcurdate()     ! U, p3 j# b$ ^  [; J
current_date()  
) `+ N$ D1 w/ M- S4 N 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所6 a" p$ m' o2 @
处上下文是字符串或数字)    4 f" [+ N+ ]3 v- K
mysql> select curdate();    4 @# E; I" q8 i+ |- Z
  -> '1997-12-15'    : g3 P+ r: H5 M& N- L! }
mysql> select curdate() + 0;      p4 v7 l3 c# k; m
  -> 19971215   
* N2 D+ X6 x' R1 T  h5 H0 Z 7 t& C. ^# I! r; W  Z$ D; E
curtime()   
, Q. V% ~9 o% x$ A9 z% d  e- @; J; Ocurrent_time()  
, Q9 W: [( S( N, k 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
! |  o7 G* o" C下文是字符串或数字)      0 S( I" l+ g) @1 h  v  @& @$ F
mysql> select curtime();   
( c3 D: e/ p7 }- V  -> '23:50:26'   
$ v7 M$ V0 n. w) l: s4 nmysql> select curtime() + 0;   
, U7 o! E( f9 S0 h2 o* p8 G  -> 235026    ' o% S2 k0 `& T& x# B: l8 \9 X6 D
8 C- e% }1 f! t) L
now()    
$ O/ ?7 Y  T5 n; n7 R. rsysdate()    
( w5 \- F* x7 jcurrent_timestamp()  
# l+ F7 Z" f* v+ t7 u 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
; g9 [% Z: Y5 J+ {7 r5 m时间(根据返回值所处上下文是字符串或数字)     ( Q8 L' [( J6 T& h2 i  N: v0 L# ]
mysql> select now();   
, K( o& b. {; l2 H$ E  -> '1997-12-15 23:50:26'   
, E+ m6 W  S9 ]7 h  [9 G/ h; Pmysql> select now() + 0;   
. {+ i9 J+ o* P3 n3 q& U& G  -> 19971215235026   
7 x, c' A5 \4 Z$ p0 i" E7 S8 Z ) j6 p8 Y1 ?9 r& P0 ~1 ]
unix_timestamp()    4 j* W- d% k8 a% d. L
unix_timestamp(date)   
3 D; i* O- S  U# }8 |# F$ |: r返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒& P- ?+ }, _' D5 h; t, ]
数,date默认值为当前时间)  
3 M6 l' v7 Q3 Y* Bmysql> select unix_timestamp();    ( ^# Z& Q& x- R; L0 k
  -> 882226357    8 F4 }5 [5 o% a+ M3 U4 Y0 ^' u# {
mysql> select unix_timestamp('1997-10-04 22:23:00');   
* R! d3 p' S) H- ?% A" ?8 n$ [3 F  G  -> 875996580    $ l. d7 @* v& u
3 Y; G# n* Z5 ?( @' i, w
from_unixtime(unix_timestamp)   
6 C& J4 N. z8 Q6 P) L. N以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的
" H8 |8 b+ L8 {/ J+ n值(根据返回值所处上下文是字符串或数字)     ' L. [# w5 E* W& D) n0 _* P' r
mysql> select from_unixtime(875996580);   
* Y6 x7 d0 }% }2 g+ V# `( k  -> '1997-10-04 22:23:00'    8 R7 T* U( N  Q% c" l* j9 A& |. J
mysql> select from_unixtime(875996580) + 0;   
" P4 S% a. a( K" a- X: j  T  -> 19971004222300   
$ t; \* ^/ H1 h9 G
+ ?6 Y2 H6 N8 j- _; Z- wfrom_unixtime(unix_timestamp,format)    " |" i0 |/ o3 w
以format字符串格式返回时间戳的值  
; ~/ _+ w; Y2 s* E3 @: fmysql> select from_unixtime(unix_timestamp(),'%y %d %m %
; {9 C/ O! L1 \: v/ j$ mh:%i:%s %x');    " E8 {- R2 s. l
  -> '1997 23rd december 03:43:30 x'   
- ~7 Q( I; f  V2 y; b ( j4 J$ Z! @- C# {( D
sec_to_time(seconds)   
* |( a; ?/ w3 d- ]0 K7 m以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     ; A& H+ G4 H( h
mysql> select sec_to_time(2378);   
4 i. s5 w7 C, E' m6 J  -> '00:39:38'    & q" ?( {  a5 g; D) V, _: l
mysql> select sec_to_time(2378) + 0;    + z1 O" k7 d3 Q6 W- n
  -> 3938    " F" j, F; p  I3 L( j$ b1 u7 r, i

/ _3 X! @, _% Ytime_to_sec(time)   
, m8 M  F% _5 z返回time值有多少秒    " w; A$ G" I' |
mysql> select time_to_sec('22:23:00');   
4 u0 z( o8 x7 k7 p! o. p( h$ ]' @  -> 80580   
# a4 W0 v+ ~* J% nmysql> select time_to_sec('00:39:38');    * @( a" f8 {% z; J
  -> 2378
, v1 v' W% l- }' t+ ^ ( f7 \: o/ L0 l. m
转换函数+ s- @% w  @) M+ k7 ]: `0 n3 {
cast
) \# I0 a1 @2 u4 F  N- E* n5 L用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]) I1 h. R/ ~% z" S; u5 {
实例:select cast(a as unsigned) as b from cardserver where order by b desc;; A6 d/ `7 _) r% P/ u- P/ `. l
convert:: V4 d( ]/ U9 I& z. J! G  f
用法:convert(字段,数据类型)5 ?1 R1 T) u2 [3 |6 a
实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

7 z' o2 i, ^4 z
回复

使用道具 举报

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

本版积分规则

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