找回密码
 立即注册
查看: 2521|回复: 0
打印 上一主题 下一主题

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数
- `+ c% d: R5 }/ v! oascii(str)   
! ^% {* {: `: z# d. A返回字符串str的第一个字符的ascii值(str是空串时返回0)  , x4 K/ s) o# A' a+ r1 t
mysql> select ascii('2');  ! S0 }* G+ f3 v5 D
  -> 50  
; q( @2 n+ H% Qmysql> select ascii(2);  ; O& P6 o( _+ E9 w  w+ ]
  -> 50    U/ T8 B4 R8 J! @% @' B. j
mysql> select ascii('dete');  
* `6 Z8 i9 p  \6 Y6 I. ]  -> 100

- t# e# J" _$ Q1 h, P. Tord(str)   , e( M' |4 \; `  S% s
如果字符串str句首是单字节返回与ascii()函数返回的相同值。; @6 n" n& U& y( B( N7 b+ N) `
, n& t5 V* A9 n8 L& b, l
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  * M) j8 C9 [, c: a' e0 Z. {# M
mysql> select ord('2');  
; ~& [3 \1 c& m+ z2 [2 m  @  -> 50  ; t+ B$ G6 U. N8 i" x0 i7 X% s, c  Y
   + ~2 m0 \* V/ ^" X; J# S! @
conv(n,from_base,to_base)   $ i; [. ]% N3 _- ^8 u9 l  V) S& b
对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
/ ~$ {7 _, [" R5 \& G8 f$ q$ R2 lmysql> select conv("a",16,2);  * ?# I! B; H* D- V2 x# G
  -> '1010' 9 ?  d; O0 z& i" O# D7 N
mysql> select conv("6e",18,8);  
. L% K- e' L* x- I3 k1 B  -> '172' 4 e% L: J+ I' j1 Z5 D) ~3 O  I
mysql> select conv(-17,10,-18);  " m* J) b7 V* M0 o4 ^" `# p
  -> '-h' 7 c+ A% q( O( W+ V" ~2 P: u
mysql> select conv(10+"10"+'10'+0xa,10,10);  , X7 q  F* @  g- p5 y
  -> '40'
" t3 Y1 g, N1 h! U   ; ^' w- {4 i  |" ~6 M
bin(n)   
1 S+ F2 q6 n2 w$ n4 x2 p0 h把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  ( G1 c2 Y, s! H
mysql> select bin(12);  
# s9 y2 a4 N( r0 D# I  -> '1100' ( }0 Z+ U7 V. m
6 k5 X( }" R: E8 ?1 L
oct(n)   8 o! b' K. e$ H4 [
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
( H. s/ H* Z7 q6 q; \mysql> select oct(12);  
; _1 J8 ]+ r. [" A% {3 b  -> '14'
& n0 A  ~- K/ }" g& {   
4 O; M( q/ i8 x% y' thex(n)   
( ~6 {" l% |& ]" O把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  
! p! D* C6 d$ q1 Q  kmysql> select hex(255);  
; z" c, O8 B6 m+ X& w  -> 'ff' 9 m' _% E1 J2 J! V/ V; U+ H  S  \- ]
   
! V1 N9 w* Z1 q! [6 pchar(n,...)   ( Z. r$ s/ O; Y: ~4 ?3 }3 L# D
返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   5 N3 g; q% R' k- r8 ]& L' e
mysql> select char(77,121,83,81,'76');  
9 `6 u( s, F! A0 @+ R  -> 'mysql'
# w* u7 t  R/ Tmysql> select char(77,77.3,'77.3');  ) R9 o2 o& j( e( k9 v3 i- v" c
  -> 'mmm'
. k6 s; e( K) O1 G2 _* r5 n   # ~/ y. @  X) w& T! }6 [
concat(str1,str2,...)   ( `. P# n, N; l( p/ |/ N
把参数连成一个长字符串并返回(任何参数是null时返回null)  + W! B- W* d& c( b' p2 P" N( H: E# V
mysql> select concat('my', 's', 'ql');  ) `0 u) K5 k9 ^3 X1 O+ `
  -> 'mysql' 6 |/ n5 L+ m+ m& I' E/ ^' P" u7 T
mysql> select concat('my', null, 'ql');  
/ w, Z. S0 n- v  -> null
% r3 j/ Z: I- [. Pmysql> select concat(14.3);    Q, E# G  R2 i. P2 c8 V
  -> '14.3'
  c" V/ g! K9 s0 z/ H) |$ D
. K! D( c4 i) u, |length(str)   
3 w# S" t( x; n1 {; O: Noctet_length(str)  
1 c$ ^% z+ X  h; ?  M+ Hchar_length(str)  " L5 d6 L$ |- W$ E6 i" Y' M
character_length(str)  
7 F9 k- u  m7 A% K4 l* c返回字符串str的长度(对于多字节字符char_length仅计算一次)) I# u( b! q3 Q8 O2 j
mysql> select length('text');  ( y: E. ^9 ]; D* o7 ?2 W# O
  -> 4  
3 }( p$ U; T0 t7 Omysql> select octet_length('text');  
3 V3 C1 ?0 }6 A( a  -> 4  . t! T8 i5 s& }3 ~

+ |. M5 k! E" r: Blocate(substr,str)   0 I9 c- F1 t* {' Y$ B9 Z( o7 v- v
position(substr in str)   
. H7 i" N4 |' `/ Z8 R返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
9 W" }3 E1 T' Y6 J$ j! _, Qmysql> select locate('bar', 'foobarbar');  
( Z- p. H) T' ^  -> 4  + s0 N/ h- {) g, F
mysql> select locate('xbar', 'foobar');  8 T% S' I6 D' V( e8 A9 ^, O
  -> 0  " t( i& p7 s, \4 R7 g1 e
   
, F1 e5 n- ?3 D9 Ilocate(substr,str,pos)
% b3 y9 j4 t5 s, K/ p7 c返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  + K* |% j1 n/ C
mysql> select locate('bar', 'foobarbar',5);  
% p" c: P: a+ I* J3 ?( b1 h  -> 7  ' ], j* K5 B5 a* y- I, a& t( e

# y6 e% n) i  k: _4 ~/ C, dinstr(str,substr)  
! G# Q, n) `/ C$ T" O2 P返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  # ]. _) `6 [5 v/ e$ u3 l9 P0 [7 l! R' D
mysql> select instr('foobarbar', 'bar');    |  M2 c$ T, F
  -> 4  ' Q7 a- q/ V( {2 Q3 x; ?; f
mysql> select instr('xbar', 'foobar');  
, s( F" Y, Z7 W# I- Y  -> 0   , N$ p: D5 F$ q: }, G5 t2 ]

# P0 E8 V- K6 x- Y' U' ?6 mlpad(str,len,padstr)   
8 n6 q, m' o4 @  N3 o5 q; I2 _用字符串padstr填补str左端直到字串长度为len并返回  
: ~8 \8 X2 ^5 h/ R' T* c6 Wmysql> select lpad('hi',4,'??');  
. C' Q3 b5 P! J  -> '??hi'
7 K1 x) |! y% p/ c; V0 X& t# a" {   % K7 ~, F4 P4 b' m9 ~% ^
rpad(str,len,padstr)   . V- t8 A& x9 C$ N* l
用字符串padstr填补str右端直到字串长度为len并返回  - U+ R( @* H) X9 f
mysql> select rpad('hi',5,'?');  & R, x& A- r, h7 E( d
  -> 'hi???' ( @& p3 Y  x% z4 o
$ a( W8 J( D' x/ i9 F$ j
left(str,len)   ! [) ?2 b5 T% e4 N5 G0 H
返回字符串str的左端len个字符  
- F6 h, A9 S# N  ]% {; K5 a) Kmysql> select left('foobarbar', 5);  " [& A" O- {9 ~1 C1 o
  -> 'fooba'
* Y; O% q2 y$ P" ?6 G8 U3 S
* W% S6 p, X) G6 r% z. B+ yright(str,len)   ! W- [4 R& U. m' G3 H- L1 _
返回字符串str的右端len个字符   
' o* |4 x' d$ Z' T' smysql> select right('foobarbar', 4);  
/ n, Y' t! {' {( }- u6 B# ~  -> 'rbar' $ |; m+ \' Q2 C  T+ a
6 F$ I9 G! H; m# l! z+ D& l% Q
substring(str,pos,len)   ) R* [1 [- U1 |* @
substring(str from pos for len)   
8 B* s* e3 [, w+ G  }! O/ F) R5 v2 Umid(str,pos,len)   * t# Q) ^3 m: X/ Z5 `' Q; V
返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
$ l' s1 K8 S/ X  -> 'ratica' ! Y! J" g* s+ u+ B
9 O( V5 F. U3 ]6 \/ J
substring(str,pos)   
& L0 K7 i, P, s9 tsubstring(str from pos)   
$ z/ Y% M' H" I返回字符串str的位置pos起的一个子串  
$ p! W. F5 u& j2 M1 Z0 P/ x8 amysql> select substring('quadratically',5);  
" `/ G- ]8 y' j# i8 t/ o3 c  -> 'ratically'   z/ ~( n4 c+ E6 H& j+ R3 _( q
mysql> select substring('foobarbar' from 4);  ; s; @4 K4 [1 z% b
  -> 'barbar' 0 [2 M9 p5 E9 S( e! l
0 ~  F' y5 g+ z% ?3 @
substring_index(str,delim,count)   , h8 f* I! x& B+ F
返回从字符串str的第count个出现的分隔符delim之后的子串6 M! s9 g! f, s0 s& Z: ]
(count为正数时返回左端,否则返回右端子串)  9 u6 C/ r! ?/ {/ o9 a1 J- m
mysql> select substring_index('www.mysql.com', '.', 2);  
2 B2 f! f  P: S( u  -> 'www.mysql'
+ J) V! C. R) pmysql> select substring_index('www.mysql.com', '.', -2);  # B& K( c4 ?' m  x
  -> 'mysql.com'
! [1 @! p# G4 F
- h/ l( C5 T: m* n& J5 W2 Nltrim(str)   4 }: m# M# a# Y- j
返回删除了左空格的字符串str  8 |) g  s/ c( @2 j; o8 X: X
mysql> select ltrim('  barbar');  % b" V2 \* V% C" f. b  C# w
  -> 'barbar' 4 j) U7 X7 \# C4 R# g" Z

6 S0 s1 O3 z7 f) C9 K1 ]rtrim(str)   8 O  ~" Q' {) a( E5 s
返回删除了右空格的字符串str  
( d- k( d/ @1 v$ l; Y) a5 Ymysql> select rtrim('barbar   ');  
- f& H7 P/ w' |0 J  -> 'barbar' , t5 W7 \/ ^; s1 r
, a0 Z8 m$ f' B6 s
trim([[both | leading | trailing] [remstr] from] str)  
, p0 T  W5 T# U0 f( [* T4 y: j返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  8 |% ~2 q9 @$ |( d3 ~
mysql> select trim('  bar   ');  
) [6 v: o. o# Z/ W  -> 'bar'
/ p2 ?% l! e8 O/ @  f% ?8 t& c6 Fmysql> select trim(leading 'x' from 'xxxbarxxx');  
7 j: q5 O9 z! Q1 \' S  -> 'barxxx'
/ U3 x2 v9 s8 M5 Fmysql> select trim(both 'x' from 'xxxbarxxx');  
3 ^4 s. Z2 I4 \, x' y1 i8 i2 z  -> 'bar'
1 ?5 v1 p( K- I1 E" emysql> select trim(trailing 'xyz' from 'barxxyz');  
' p! A- N/ R- [, f. H3 F+ E! D) e  -> 'barx'
9 E7 i* ?7 `, k5 F2 j3 F
) a- `% z& E& u0 H. i) A2 s9 S) Ysoundex(str)   
% G  ~7 H6 P2 f) K  p返回str的一个同音字符串(听起来“大致相同”字符串有相同的
3 B9 R. ?0 ~. m  W同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  
) W, U3 O. @7 W8 rmysql> select soundex('hello');  
+ H% d* [1 K7 [  -> 'h400' ( V( O& \, U; G4 r% _: u
mysql> select soundex('quadratically');  
! z" `: @' S# m$ B' u7 N  -> 'q36324' # A& t5 Q3 n8 ~$ v3 B
   * N0 Z' K7 d6 T% ]- V
space(n)   
8 T$ d3 w, Z) r4 Q返回由n个空格字符组成的一个字符串  * Q* u1 l% ?& J
mysql> select space(6);  & e8 i7 ]: E4 K9 x! G; q  @
  -> '      ' 4 [" w6 J* e3 }! k0 d6 B$ d
   
1 v2 b( |, U  S, Y8 Z% ~replace(str,from_str,to_str)   
( ]% k+ Q5 H1 U9 e  A0 B8 e用字符串to_str替换字符串str中的子串from_str并返回  0 q6 c$ B8 |5 U- N
mysql> select replace('www.mysql.com', 'w', 'ww');  9 i) W- }% J2 W) ^7 d1 v) J; _% L
  -> 'wwwwww.mysql.com'
& N  r5 e; Y% h' F
" Z9 y* V2 H) P) Erepeat(str,count)   ( \% Z- F$ }7 w3 y
返回由count个字符串str连成的一个字符串(任何参数为null时
* `4 G: ]8 F5 S: `( ~3 @3 f返回null,count<=0时返回一个空字符串)  
/ W& i& h% F! S9 ]mysql> select repeat('mysql', 3);  
: ~9 S1 F# u# K' T' K& [  -> 'mysqlmysqlmysql' # K3 `2 B1 Q) z0 H1 b& r- c1 B
   
1 i$ e; q8 D% I0 Q( Lreverse(str)   0 n, C. r# D# r1 X0 ?
颠倒字符串str的字符顺序并返回    E0 b7 n5 x2 Y  z/ P
mysql> select reverse('abc');  4 e& b& d1 Y! i: `, G8 x
  -> 'cba'
7 N) ^; M! T0 M4 M# R2 O! o8 a ; F) r) s& E' P. I" F. i% K
insert(str,pos,len,newstr)   
9 y5 H+ Y8 i3 q7 ~3 A, h; T把字符串str由位置pos起len个字符长的子串替换为字符串7 Y3 L6 N" }& G3 N2 B
newstr并返回  
3 P; p1 D: `  s. |' x8 n+ ~mysql> select insert('quadratic', 3, 4, 'what');  ( c9 d8 c0 [, c& H  y) T
  -> 'quwhattic'
) I" {5 n  }7 @8 [; A! M 2 V7 r) q- X% l* G4 ^: l2 T6 n
elt(n,str1,str2,str3,...)   
, [+ X: @1 d3 y) Z返回第n个字符串(n小于1或大于参数个数返回null)  " l" i" c4 d6 x1 \, Z
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  5 H: W% f) C9 W. k
  -> 'ej' 0 I. m' N/ K# e3 ^1 {3 e: j
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  " x  M! T2 x+ m' P+ C
  -> 'foo' ( Z- o1 o2 P/ h; A2 {

5 D6 K# G# i7 ^/ j0 L' yfield(str,str1,str2,str3,...)   : y* Y2 x$ Y0 u( ]  t; K, c+ S
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  & `3 ~# F& R2 U5 K8 n1 ^, J' Q' M
mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',1 A; O# u5 [: c$ a3 a5 b0 Y' ]
'foo');  ) {; K% R/ N9 {! h( ?0 F3 m
  -> 2  
0 j/ Q8 ~/ N# U  I+ [mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',9 T# x8 V) |5 ^" Q- E+ g
'foo');  8 h3 c# V( v5 |" A
  -> 0  
7 Y8 J  Z: E: n8 | ' z1 H  d) l: C
find_in_set(str,strlist)     l) ~, ]+ B# ]4 R, @! `7 |! H
返回str在字符串集strlist中的序号(任何参数是null则返回
' @7 T% K: O/ J: j% W: e- F: lnull,如果str没找到返回0,参数1包含","时工作异常)  - {  b1 d' J. ~) `; ?
mysql> select find_in_set('b','a,b,c,d');  
  N# C$ X, P- J: L9 b* S( S! V  -> 2  
8 C/ f" P. P( p0 A/ z' Y6 X   ! f: ], w5 u" ^2 t: J$ j, j1 o
make_set(bits,str1,str2,...)  9 B, ^' `# S, y+ e* J8 a
把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应$ v  [3 x9 y: F4 D/ C
位置的字串选入字串集并返回(null串不添加到结果中)  . a& F& `) {6 V" S" S; \' M
mysql> select make_set(1,'a','b','c');  " T4 f* J- [4 a) U4 i+ d
  -> 'a' 9 c1 G' C2 v/ {$ h: B
mysql> select make_set(1 | 4,'hello','nice','world');  
& n1 u/ f1 `$ A  -> 'hello,world' 3 T$ D' c% c7 k+ J" F# {$ d# d
mysql> select make_set(0,'a','b','c');  % Q! q; m: _7 ~
  -> '' + G3 R6 m4 x5 R4 }* W/ N
: c- R- a4 i5 V; |* {" H# c
export_set(bits,on,off,[separator,[number_of_bits]])   
2 D* B4 E3 {! D3 U5 y; p按bits排列字符串集,只有当位等于1时插入字串on,否则插入4 n7 p# w3 O! U  c! F( m
off(separator默认值",",number_of_bits参数使用时长度不足补0
; f$ P  G* d" {2 c& I% C1 l而过长截断)   : ^- D; W. M# S! C/ k: |
mysql> select export_set(5,'y','n',',',4)  
, p3 E9 V# ~" L" X' d7 @# ^% G  -> y,n,y,n   ; j4 q, |/ M0 `/ F/ |

* l% z5 q$ p" ^# \% s/ N- clcase(str)  $ H& v8 Z# f; b
lower(str)   
. ?2 \+ o  v2 o0 s4 W& M- a返回小写的字符串str  
: X; u+ V7 [3 c! K/ s  mmysql> select lcase('quadratically');  
# @4 V, E7 l. }! @  -> 'quadratically'
* w/ g+ E/ _; D  P2 l   
, v! V3 G4 T- o- V4 Bucase(str)   
% t3 `6 v: Q7 u7 F. W8 bupper(str)  
9 H# ]: O/ h0 A) B- h8 W返回大写的字符串str  
, B8 s# H0 K% c+ imysql> select ucase('quadratically');  
% P& [9 o7 e- i) R  -> 'quadratically' 8 r/ Y# w) l  h% G% C

2 W# U- Z! A2 E" {0 eload_file(file_name)   
4 w, e% y. _8 a& d  d! s! j- u读入文件并且作为一个字符串返回文件内容(文件无法找到,路径
, {9 \$ u! V9 s不完整,没有权限,长度大于max_allowed_packet会返回null)  
7 c' v$ e6 f6 x3 f( h8 B( umysql> update table_name set blob_column=load_file
- K" [, Q& `! F, B( \! C("/tmp/picture") where id=1;  $ S% q+ M. w+ s/ x) f

% S1 x! ~# D# J: T+ W2、数学函数
0 I. ~0 D! H( @6 `9 o+ O/ u4 c1 M" xabs(n)
! E* l' k6 g+ d, a; G返回n的绝对值  
4 x' A$ f( H5 r1 J7 V5 U/ imysql> select abs(2);   
* d8 h+ Z1 [( p' z, V  -> 2    7 y! w- ^  s) h8 R
mysql> select abs(-32);   
2 N' K& q8 c* o. N/ m# t! B" i  -> 32   
6 R3 _! [9 W9 H, ?% h* a7 M   2 p* ?2 d& v2 P+ ^
sign(n)  
% y" ~  ?3 I4 S  M' f返回参数的符号(为-1、0或1)  
5 H, d& E" @  q9 y: z0 D8 B( S: gmysql> select sign(-32);    - ^4 d  B; s- ]  O) E
  -> -1    / @0 `, z3 d0 \
mysql> select sign(0);   
4 W( g$ R  n7 j2 J  -> 0    7 e3 E% c: q7 m- E5 h) [+ x) w
mysql> select sign(234);    0 T! j/ T& k) l- x/ F) K6 D
  -> 1   
! C4 x2 I, I/ g/ g' X. h
- _9 I0 l, u) A, `$ Xmod(n,m)    ) F. X  s* p; N
取模运算,返回n被m除的余数(同%操作符)    9 H: P* q* }% A' @2 [
mysql> select mod(234, 10);   
- w  K2 {; A9 o; w5 S7 [  -> 4    + }: Y$ S  L2 M& N& E( n1 _' L
mysql> select 234 % 10;    4 m) t, p4 C1 s4 Z) W1 A
  -> 4    # B  G$ y- l. n! E+ ~# P: A
mysql> select mod(29,9);   
& c2 E/ c& |- ^  -> 2    ; x5 Y  I- b" Z% E

9 _0 [! s: M, Y, u7 i8 O( x( d' p- cfloor(n)  $ q: o1 u$ A3 f5 a" t2 A/ A- b
返回不大于n的最大整数值  % }' A2 p/ v6 ^0 W' v
mysql> select floor(1.23);    ! g% @7 }; @3 h( |& @! K; U
  -> 1    * J4 {+ P( p/ E# v+ X6 p+ f9 ]. c
mysql> select floor(-1.23);    " ~# X4 V1 X+ A$ P
  -> -2    - C6 T2 a  K: h* }5 k
+ G/ e3 \/ ^0 @+ q' G1 j
ceiling(n)  
6 o4 b. Q( v# i6 t" M返回不小于n的最小整数值  4 M! I$ H! m9 F% P. C/ z
mysql> select ceiling(1.23);    & Z1 W! r5 n! ~! n
  -> 2    ' Q0 [) I# m* L+ n0 ^' Z4 D
mysql> select ceiling(-1.23);   
9 ^5 W5 e0 g6 c$ r% M  -> -1   
" S, }* R9 P- H9 n + U, d3 m3 ^+ B: u* R
round(n,d)  & _9 s' X1 K! x( \6 m) K( ?! f* K& l- J
返回n的四舍五入值,保留d位小数(d的默认值为0)  
# Q3 i, }/ H: g) _7 I& vmysql> select round(-1.23);   
' e, g9 [' k5 s9 o  -> -1    & i1 W' k; J" A$ o! g
mysql> select round(-1.58);   
% d) @. N' _6 Q+ D2 B  -> -2   
8 k/ i# e) b; F7 s& I2 amysql> select round(1.58);    7 T; g8 W5 c6 r+ f
  -> 2   
$ @; [9 t( Z$ Y* Lmysql> select round(1.298, 1);    % P4 s2 b) f' \4 L+ H: ^7 A0 V
  -> 1.3      f5 h7 h" ~6 j6 v4 u
mysql> select round(1.298, 0);   
% E5 U1 Q, ?& n: k- l0 ]9 V  -> 1   
8 A$ |- s) ?$ W( g8 g1 b+ i
. q1 b' Y: [6 R6 d: jexp(n)  
3 [% U! t; C+ \/ H3 Q6 t: H' x返回值e的n次方(自然对数的底)  
) d% T9 T3 J, \: N0 `9 smysql> select exp(2);    . z* ?8 B8 ]0 m  e. r) Q4 r
  -> 7.389056   
. C) N' E" Y: f: H8 |( Amysql> select exp(-2);   
% Q% O% h: T, `, b  -> 0.135335    ! j9 o4 v1 V3 s  n- q0 M- s# A3 D

* l* n5 c/ ~0 V$ x2 w) m1 I3 Zlog(n)  % |; o: R9 `+ G" L
返回n的自然对数  # D* {" a0 v4 S8 U; V) a  H
mysql> select log(2);   
7 `- T. b9 F6 n- t2 E' O: t  -> 0.693147   
* H! v  z7 H7 _4 X( ^$ s8 D4 Nmysql> select log(-2);   
+ n  F! ^3 ^; u  -> null    ! M. D/ c% {+ E$ k+ z. B+ S" m
4 `3 e: v9 a3 r2 f% F: J6 q
log10(n)  : D8 e! T7 P' p  A3 J
返回n以10为底的对数  
( S' I" @8 f* l( z, Ymysql> select log10(2);    2 p* [0 _7 X" h! e+ g9 L% j
  -> 0.301030    3 `* F# \+ X5 T$ K
mysql> select log10(100);   
3 b, ^# D: z1 {6 p  -> 2.000000    % K  s" y0 C4 n  U) I( b
mysql> select log10(-100);   
/ h8 X# l8 y. [1 a+ B4 X. G. [) x  -> null   
3 _5 H% r1 d. A9 R- ~9 V
3 ~1 B& P7 E# I1 u% P# spow(x,y)   
0 `4 j2 X. E; f8 s( Gpower(x,y)   
4 c$ t! O% L8 N% r: @# Y2 v: n 返回值x的y次幂  
4 e% Z0 K2 t' j3 ?7 Smysql> select pow(2,2);   
% ~1 |+ j; m8 l5 f# x- i$ m  -> 4.000000    5 W3 a% w- H, h- W
mysql> select pow(2,-2);    3 B0 d( y6 o: |% X/ n
  -> 0.250000    m- e: f, m5 L
% U1 K- {- y/ m% W* W4 o
sqrt(n)  1 I. @: H5 _; r* C! e
 返回非负数n的平方根  0 |8 z7 c9 H/ E5 x' k
mysql> select sqrt(4);    5 P4 K. A3 m# p6 A9 i
  -> 2.000000   
) m# K& f5 a) O* ^  Q8 O; ?, C0 Smysql> select sqrt(20);   
$ c  f" k& O6 Z) i' G  -> 4.472136    " m' s6 b" U3 J: q: E! y7 U# f9 k6 W

) K8 I. f# n3 y) fpi()    . r; b' `7 w* Z' o7 X$ v
 返回圆周率   + l: u& h- {3 O4 S! X- J4 J
mysql> select pi();    3 A  I. K* W3 ]5 h7 [, u
  -> 3.141593    . Z) A9 O) Z# h$ c1 G2 j+ D

* p+ O, o+ ]) scos(n)  ( c- ~$ c$ v$ Q7 ~8 T
 返回n的余弦值  
7 t1 g' J; H: P  e+ C% Emysql> select cos(pi());  
0 J$ B' y5 i7 f4 h8 u  I1 l/ }% `9 y  -> -1.000000   
6 @" ?) D; S9 r3 E0 W
' q! o+ ~2 d2 k6 ?) j1 xsin(n)  
$ I4 [8 I  r7 a5 H0 b' S 返回n的正弦值   2 D5 L5 }  S/ V+ G+ P4 `
mysql> select sin(pi());    2 r, z7 ~- ]0 X
  -> 0.000000   
  C% T0 t4 o' @' y- k ' e( Q2 N& p3 c
tan(n)  $ W. [, k+ |7 q. j
返回n的正切值  8 y! c  v( J1 `" M3 T3 x% z
mysql> select tan(pi()+1);   
+ }5 O* h6 Q7 y  -> 1.557408   
  l5 u  x( G+ y. V# X) A
6 ]6 P1 g. ?; @5 Q( Hacos(n)  . m( I4 `  g9 ~* }2 r* R- \& S! |: m) H
 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  1 p8 V9 P: h/ r6 c/ \
mysql> select acos(1);   
3 l) v- q2 h6 L: ^" K! k  -> 0.000000   
! N: X9 T4 p7 }2 nmysql> select acos(1.0001);      C' b  f) z" H4 w0 w7 ?
  -> null    6 V! p0 t9 F; C
mysql> select acos(0);   
/ w' I: H1 a( s% }) b, t5 T  -> 1.570796    6 v% g# M) m! ~! A8 P6 h4 ]
, f- y& M' j" {; d5 j
asin(n)  
3 {% C9 z7 m( J5 z. J返回n反正弦值  
) v# C! s& ?* \2 m; o, wmysql> select asin(0.2);    6 X& P; w+ z7 p
  -> 0.201358    ' w0 S: @' o: S5 t
mysql> select asin('foo');    ! g! a" D  v& t/ h4 B$ c) q
  -> 0.000000   
! Y9 i$ g9 W* H7 Y- b2 D + J! b& q4 r) d2 Y- \  U
atan(n)  
, B: V% @7 a- R) Y4 Q3 P返回n的反正切值  
9 T3 F9 \. p5 X' fmysql> select atan(2);    * I. L1 P! P1 q1 H4 O
  -> 1.107149    ' e% `4 r, S' K( @! a
mysql> select atan(-2);   
% n: O, m8 Y0 r' U! e+ }8 A: {  -> -1.107149   
/ _7 h  ^( B% F: G8 s/ j/ Oatan2(x,y)   
# f) |  z& O& I  Q 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  # X6 |4 }5 Z0 h+ Y4 X, _
mysql> select atan(-2,2);   
) i6 q5 y3 r  j5 h  -> -0.785398   
+ S8 G& |$ }% ymysql> select atan(pi(),0);   
" g1 t- D" Q8 J2 X2 d4 U  -> 1.570796    5 O( }& B1 z$ }

8 }; z# {( T- Q6 ecot(n)  
; B" v' q7 D4 |$ y# `返回x的余切  9 v  ]  h& `/ N$ z( P" D
mysql> select cot(12);    4 G# S) z. x5 q
  -> -1.57267341   
6 V7 _# J* E5 S- B2 r3 r9 l* vmysql> select cot(0);   
& p5 e0 g& P5 X' A! O% F  R- x% _' \  -> null   
' D$ w: R/ a. e% T4 C% s0 L3 f ) Z( {# U, _( D' G
rand()  
9 |$ I1 v" K1 B3 \/ Rrand(n)    
# N' j; J1 I4 Y- a# j% i8 ~3 g7 E1 m; `返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
1 X1 z3 c) ?) U8 D* E+ U  i 0 X1 |8 b/ g" c% L! L
mysql> select rand();   
& q0 i7 s+ [# V( ]+ o  -> 0.5925   
$ |( D& j! P6 O7 [+ [& ]/ \mysql> select rand(20);    ) Z% {1 n( Z+ D7 P' m  y% N& x* J
  -> 0.1811   
% g% R" |( R4 Q8 q* n/ N2 R( Q; zmysql> select rand(20);    - W2 w: q8 f: ^9 W! l2 L" |. h
  -> 0.1811    ; ^7 \5 w' {& a& Q3 ^% h6 F9 O
mysql> select rand();   
5 U$ R8 L0 _& U& N  -> 0.2079   
! _5 p, L' A3 J  h4 Omysql> select rand();    " ^6 v* F! C0 z! n: K
  -> 0.7888      ^; J9 }$ I. ?: J8 s

8 s3 \- C% d; w2 z3 l" d+ j: z" ^degrees(n)  
! ~( U) o  S' s1 |* m$ n5 K把n从弧度变换为角度并返回  ; Q, `( i2 [) e3 _
mysql> select degrees(pi());    ( J/ y& o2 |' J5 M1 T4 O' y
  -> 180.000000    . {- Z- r! v) G* n" c! s. h' O
* w1 Q1 U) i- |5 E% y9 W& h# F
radians(n)
1 b+ x4 I, G5 R; \把n从角度变换为弧度并返回   2 u6 |6 D  v2 ]! W
mysql> select radians(90);    3 Q: ]. H; M" K: k. |# D
  -> 1.570796    & X9 |( D) C% S$ _# q1 q! ~7 g
$ Y$ e* q0 }0 ~+ d. M
truncate(n,d)   
) y& h) e. _! v保留数字n的d位小数并返回  
4 ?: X  K- f) i7 G" E% O7 k3 Bmysql> select truncate(1.223,1);   
7 p0 L8 G+ P0 F; g  d' h  -> 1.2    ) j, p$ ?- c& z0 G+ l
mysql> select truncate(1.999,1);    ; _4 n- s+ N% ?9 k; I
  -> 1.9   
+ w! W6 X% E! B5 Lmysql> select truncate(1.999,0);   
0 a  z& G% z. R( a/ E- d- W  -> 1    9 m4 g' H: s8 g( K8 L

" d1 }) D2 e2 l3 g: |least(x,y,...)   
5 Y( z; {' W9 }# W4 Y5 \" X( ^返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
$ _. r0 M0 T- {: qmysql> select least(2,0);   
# e1 w8 R8 Y9 }0 z: r1 z: Q* d  -> 0    3 C5 l/ b  e! u) G4 h: j  C4 [: I
mysql> select least(34.0,3.0,5.0,767.0);    6 \  |, {; ]* k
  -> 3.0   
- v+ j% v  A$ v- dmysql> select least("b","a","c");   
* F! t" U6 D0 Q2 \; @1 h+ X# g  -> "a"    * \! q: a' v% `, i9 |
% v/ c2 Y4 o! b% x( \( F  L
greatest(x,y,...)   
+ P4 X0 d7 Q' I5 o5 Y& w, a返回最大值(其余同least())  
7 C3 g8 K2 S; }mysql> select greatest(2,0);   
/ l$ s4 p( g4 j- R- @* z' P; S, O6 H8 @  -> 2   
6 |% R& a& [' @0 z  _mysql> select greatest(34.0,3.0,5.0,767.0);   
  E6 v- N8 D& O0 ?  @; m- l1 w  -> 767.0    7 q* u; a+ x8 T: E* |' ]  K
mysql> select greatest("b","a","c");    - R" L, ]8 T; J" h% j7 F* q) n
  -> "c"       B. i& O; x4 I% P/ A) A) g

; N. Y  ?! `- w- l3、时期时间函数 7 A9 \" P. p. O
dayofweek(date)   
7 }* z8 Y; X' @# d* S7 |7 \5 K* E返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
2 O$ W% U9 F, q( F+ |mysql> select dayofweek('1998-02-03');    # {. J% R8 Q' T) S
  -> 3    3 \6 X$ t7 t9 _, |: ~9 @

' p8 A6 P/ u. Y% v- Sweekday(date)    1 Y- x  k, i7 i1 S7 m+ u+ l" M
返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 - R) `, o7 e/ O. e4 \
  
2 e4 ~. K. A. ~' N5 Umysql> select weekday('1997-10-04 22:23:00');    * F9 V6 v$ J; \5 S! X) X7 a* v
  -> 5   
+ ]4 |' @$ Q% g3 w3 V0 \* a' smysql> select weekday('1997-11-05');   
$ W! [& ^0 |2 l5 y- [- \* k  -> 2    - Z5 a; ~2 x- N+ [* G8 V

6 j; q# B' [' W! L3 Ddayofmonth(date)    
0 m+ c0 W7 V4 {: h: B# n0 E返回date是一月中的第几日(在1到31范围内)   
, m  X5 l4 T) _! V' z0 M! \mysql> select dayofmonth('1998-02-03');    + {$ `: I" p" n4 W
  -> 3    + r& ^4 f2 F3 o7 ^
. ]4 J. h  k' M* H- o5 R
dayofyear(date)    ' O* i/ i" B/ Y. N
返回date是一年中的第几日(在1到366范围内)   
- C' V3 m1 z2 pmysql> select dayofyear('1998-02-03');   
2 J' I# k0 a2 O/ ~) ?9 m" \* L# n  -> 34   
: Z; g  Y: c2 x$ C0 {) \
) M5 e1 W: g" C! Nmonth(date)   
; k# n9 ]3 Q) d. v/ ^返回date中的月份数值    & i1 m& l) v/ M& n/ _
mysql> select month('1998-02-03');    % m& |) y4 S2 P
  -> 2   
: h3 m' V' Q# i! C  I 8 M( ^, H, r7 ~" D
dayname(date)    ! ^7 D0 P) q: q
返回date是星期几(按英文名返回)  
, H% J& M( M: C; h  Wmysql> select dayname("1998-02-05");   
, @1 O7 s' y0 h  -> 'thursday'    : a: k* E7 Y! g3 ]+ h
" [) r" _- x" U5 \3 f7 o6 Q5 j
monthname(date)    
! V% x5 T  i) n' ?返回date是几月(按英文名返回)  4 O# `' o. h. ?9 q$ h/ o
mysql> select monthname("1998-02-05");   
4 P, o# V- @1 s8 Y' v  -> 'february'   
3 p& D, g3 p; C' ]& X  p! g% | + y& _2 T5 a2 |5 h- o
quarter(date)   
) t. s5 v8 I" u( {9 G, {# K. Z返回date是一年的第几个季度   
5 i9 Y# p" I5 J4 M  Xmysql> select quarter('98-04-01');    6 Y/ t" Z3 z1 \, P, K/ R" `' j
  -> 2   
# n5 N5 b/ s* x
# K4 R! n$ Q( b7 D& C4 Aweek(date,first)   
# q: H. a" N* l) _1 M% J6 Y返回date是一年的第几周(first默认值0,first取值1表示周一是
% l# s' Y& y; m4 L周的开始,0从周日开始)  / S2 a9 g/ U! L
mysql> select week('1998-02-20');   
- X- n/ i3 l. v% D3 f  l  -> 7   
8 v. R( z0 T  F8 T' Bmysql> select week('1998-02-20',0);    . N. X4 s3 X9 T# f1 s, E; s$ C
  -> 7    ( |: C7 `& N- h! D  B* a
mysql> select week('1998-02-20',1);    , ~/ i- ^+ `+ W/ z5 ]$ o- h6 Z5 e
  -> 8   
, v4 r# |  f# x6 T ' X7 V" M! y7 p- G1 V$ c
year(date)   
8 u! e' Y8 R, A3 T  w# x: I. G7 T4 e返回date的年份(范围在1000到9999)    * M. g& h. h  ]
mysql> select year('98-02-03');   
1 x% e! l, C+ j+ M6 K- H  -> 1998   
! [0 T" \+ D1 Z1 Y8 Y, |/ Z* G
/ |4 o2 n, d, g- Ohour(time)    8 x% |# a( w2 r& Z- \
返回time的小时数(范围是0到23)   5 ]# n( q! _8 ~" @6 q) ^
mysql> select hour('10:05:03');      o1 d$ m! I" A$ D
  -> 10      K+ Q8 G1 m* d5 t" \

( L0 Q) Z$ g7 a* Dminute(time)    + E4 H" W- ^* A# u! \
返回time的分钟数(范围是0到59)   
" y! P: A* ~# @7 _mysql> select minute('98-02-03 10:05:03');    , \% t- r! i+ A
  -> 5   
- @  M  ^! }4 P5 D* J- O 2 ~' o$ ^8 i4 z$ e+ }! Q
second(time)    
' K" f$ f2 p, S返回time的秒数(范围是0到59)   ; c5 V8 D$ e) o  w: q
mysql> select second('10:05:03');   
( P+ m; l* u7 n1 ?  -> 3    2 Z' S+ U9 }0 p  b% K4 j
4 b7 m2 c( Y  ]' a7 o2 Z- |- o. g
period_add(p,n)   
$ w% j* l" L2 J. z增加n个月到时期p并返回(p的格式yymm或yyyymm)    / J  ?( e  e, {
mysql> select period_add(9801,2);   
4 t3 a8 \# C+ R. Y  c  -> 199803   
, M# G* w! }7 f5 t4 Q 2 J$ R$ {, H  C, D
period_diff(p1,p2)    7 a0 b) G$ y) H# t7 K+ ]
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  ; N' Z+ s9 Y& u$ N+ |
mysql> select period_diff(9802,199703);   
+ u8 ]1 s# ^: j  -> 11   
, b7 z9 n- D: G! F* x$ f : w! w  ?# v$ C1 n* A) _5 t
date_add(date,interval expr type)  
$ K1 t7 h6 _* B# D  }6 B  Tdate_sub(date,interval expr type)   
: O& p3 n5 L* b7 c5 radddate(date,interval expr type)    * K1 N2 @! ~0 }; r3 H1 U
subdate(date,interval expr type)  % l6 ~8 n* F3 b% G3 U' p
对日期时间进行加减法运算  3 n2 U. v9 M# B$ |( X
(adddate()和subdate()是date_add()和date_sub()的同义词,也3 r, \7 C4 _; r0 g2 I* v1 h2 i/ A4 J
可以用运算符+和-而不是函数  + y" M& Y' ^5 y8 `
date是一个datetime或date值,expr对date进行加减法的一个表
- r& p1 K  ]+ _: p达式字符串type指明表达式expr应该如何被解释  
& [% H0 U. Q7 G+ H [type值 含义 期望的expr格式]:  8 u1 r, n/ M) f* Y
 second 秒 seconds    * X: Q& \; \" c* Z! t3 W
 minute 分钟 minutes    7 A, R8 U. G1 y0 x
 hour 时间 hours   
! F- j9 a$ f& n5 {5 b/ ` day 天 days   
% f% c6 Z) _" d4 X) b month 月 months   
' E- F, w$ }6 M- U- h year 年 years    & @1 k: F1 x/ ^  k2 d% @) n
 minute_second 分钟和秒 "minutes:seconds"    , w: s2 Q/ `2 @3 M$ u1 X) Q5 Y
 hour_minute 小时和分钟 "hours:minutes"      M$ y0 H; u6 x- i
 day_hour 天和小时 "days hours"    # s& ]2 J! c3 n9 i5 ^
 year_month 年和月 "years-months"   
, z; Z5 t: n7 u4 L4 v/ t2 i hour_second 小时, 分钟, "hours:minutes:seconds"   
  J4 T) A$ y" q( ] day_minute 天, 小时, 分钟 "days hours:minutes"   
" u8 K5 J4 t% T% M  Z$ w day_second 天, 小时, 分钟, 秒 "days
2 B3 D2 E& m. ^; k0 {4 Y( k8 ?hours:minutes:seconds"
3 d7 u) H' ^2 F' K  n, w! O7 |9 a expr中允许任何标点做分隔符,如果所有是date值时结果是一个
" {$ e0 v' f" V% U- C1 a/ ndate值,否则结果是一个datetime值)  4 P  @5 ?$ }7 J4 I) y% x- l
 如果type关键词不完整,则mysql从右端取值,day_second因为缺6 @4 `$ F0 F  |5 }' V
少小时分钟等于minute_second)  * G; _/ }- \. Q8 R& b2 b
 如果增加month、year_month或year,天数大于结果月份的最大天& G' s6 L/ B4 m/ ^/ p2 B
数则使用最大天数)    # d$ a; R, n. j3 q1 X% _
mysql> select "1997-12-31 23:59:59" + interval 1 second;  * O' b* R* r" U

) c# ]0 w2 F7 l) L+ f) U" a) P  -> 1998-01-01 00:00:00   
( A' H0 Z) u1 x3 \0 |0 g5 l! wmysql> select interval 1 day + "1997-12-31";   
' i1 f- {. c) k# v  -> 1998-01-01    # b9 z" g; N3 _7 \- K
mysql> select "1998-01-01" - interval 1 second;   
' o( [& p) R8 R  j' K. E  -> 1997-12-31 23:59:59    * x$ G7 \3 G$ Z1 P8 L8 L
mysql> select date_add("1997-12-31 23:59:59",interval 1. [' ^4 N3 r8 f) n' U2 \' f
second);   
" |4 a' k: e  V" u1 c: l  C( u  -> 1998-01-01 00:00:00   
) \7 k& u2 m% p6 s6 Z! }) nmysql> select date_add("1997-12-31 23:59:59",interval 1
" g8 i& h1 r$ |; h" Zday);   
! o5 B4 B& `: J: x: n' Y8 c  -> 1998-01-01 23:59:59    / Q- L/ X; k* _7 a
mysql> select date_add("1997-12-31 23:59:59",interval- g2 n" A. ~  q4 o
"1:1" minute_second);    # Y  R  A% i1 E6 c+ n  c' W4 T. u
  -> 1998-01-01 00:01:00    ) J( M7 b. |( R2 q/ t
mysql> select date_sub("1998-01-01 00:00:00",interval "1
2 d/ m' K; r  @# K1:1:1" day_second);    9 o0 |! _- @8 R6 W$ x
  -> 1997-12-30 22:58:59   
; p  {# i! i2 I9 r) Bmysql> select date_add("1998-01-01 00:00:00", interval "-1
* `' m. }- R- _10" day_hour);  9 x5 u" @! ^+ z
  -> 1997-12-30 14:00:00    2 n0 U- W5 d0 V& V4 t
mysql> select date_sub("1998-01-02", interval 31 day);    6 B7 v$ H. u0 D2 e" [" V4 N  i9 z
  -> 1997-12-02   
* R. k% m' V5 }9 Q2 F2 Imysql> select extract(year from "1999-07-02");    2 h# @9 l: C3 y# F* g0 S
  -> 1999    3 n% |$ r' C; k; k5 i4 \2 s' [
mysql> select extract(year_month from "1999-07-02
+ z, T" @& M( ^! K  i1 h0 ?01:02:03");    3 _" {# w- @0 X
  -> 199907    + ]( e+ A, n4 ^! y
mysql> select extract(day_minute from "1999-07-02% A$ N' E% Q2 \% C! s: t
01:02:03");    ! b. Z) }  b9 N
  -> 20102   
# k2 w( e+ }  V, S8 D3 p
# Z: I1 c* X: I+ v2 }6 C8 [to_days(date)   
& \( D# M, I  ?% k1 O# _1 \返回日期date是西元0年至今多少天(不计算1582年以前)  9 o( |& a4 ~8 o( a6 W* p7 a
mysql> select to_days(950501);   
% {- S2 Y0 ~+ k7 t9 G" J* T0 ?/ c  -> 728779   
4 |1 L$ x9 @" E) b  M$ p* G# fmysql> select to_days('1997-10-07');   
6 \4 j: v' t# j( z  -> 729669    4 Y0 R1 Z  p% I" d; ^

$ Q  s7 D7 @, y& O$ ]from_days(n)   
8 r6 [: N  z2 R0 C# S 给出西元0年至今多少天返回date值(不计算1582年以前)   
$ N6 }0 ]/ D4 C; `* lmysql> select from_days(729669);   
: e( t8 ^5 m# j0 N. g( b- Z  -> '1997-10-07'   
: n( P, d! T8 ?" F# K6 K 2 h. L8 V/ u; H) d2 e
date_format(date,format)   
5 |* r/ R; l6 P% q1 ? 根据format字符串格式化date值  0 z( R# u- x$ N  f$ f  q( E
 (在format字符串中可用标志符:  & W- G( F, B# D# X! G
 %m 月名字(january……december)   
9 E' ]8 h3 |( B* ~# i* }9 ` %w 星期名字(sunday……saturday)   
1 E' c! y% n1 Z5 F$ x, V- N %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)   
% M! S9 ?% W: Q4 R% q' D. K %y 年, 数字, 4 位    ' R5 L& f( n# ]# A8 D# t1 J4 T
 %y 年, 数字, 2 位    2 B  N" V2 G0 ^. t2 n7 Y
 %a 缩写的星期名字(sun……sat)   
/ W+ z% {/ h9 j: ^ %d 月份中的天数, 数字(00……31)    ( U. ~8 }- i% {# F- i
 %e 月份中的天数, 数字(0……31)    0 }0 Q* |  t3 k$ ^& [+ ~
 %m 月, 数字(01……12)      [$ {, m) E: e" b8 X: r" p+ Y
 %c 月, 数字(1……12)    ' m) Y) c$ q! F) i- t+ w. _
 %b 缩写的月份名字(jan……dec)   
5 F6 a: K9 a- ~% l %j 一年中的天数(001……366)   
# T  D; s. o; L4 c+ O8 F %h 小时(00……23)   
& L: q/ F( T5 o7 T3 o* X %k 小时(0……23)    2 u" V# ~6 l- U5 Q' q2 V- p6 [. G" b
 %h 小时(01……12)    . P; A; r; I) X7 j" ]/ |9 V
 %i 小时(01……12)   
% Y$ Y- K1 f  \" `, u %l 小时(1……12)    : D. d: d. @5 `
 %i 分钟, 数字(00……59)   
) Y' [9 ]/ b/ _) R4 M- o; ? %r 时间,12 小时(hh:mm:ss [ap]m)   
% J- K/ J3 |) e( E- P* N: | %t 时间,24 小时(hh:mm:ss)   
6 p  G- Y: a% t2 ~9 O4 Z %s 秒(00……59)   
& Y/ k# ~9 p$ G7 s( Q %s 秒(00……59)   
; X( u3 \/ v! l/ U1 {; A %p am或pm    6 m: J% O  p6 y  y$ y% m0 B& |' G
 %w 一个星期中的天数(0=sunday ……6=saturday )    7 k  \$ B) K2 _3 f2 E
 %u 星期(0……52), 这里星期天是星期的第一天   
, e1 L8 |) @  O6 ` %u 星期(0……52), 这里星期一是星期的第一天   
4 n& J) d. s( v( ?8 b) S' y# Y! S %% 字符% )  9 r% ]& @4 ^! B+ K# n
mysql> select date_format('1997-10-04 22:23:00','%w %m %
; L0 d: h9 G( w9 `7 T' my');    9 f" G2 _8 R$ H" Q5 H
  -> 'saturday october 1997'   
* a! f; M1 O: {( X$ S3 Lmysql> select date_format('1997-10-04 22:23:00','%h:%i:%
/ n1 g+ m  e6 D: l3 as');   
, v0 I) J$ A& U! V  -> '22:23:00'   
7 G7 B6 ^: f- b& tmysql> select date_format('1997-10-04 22:23:00','%d %y %a
* P% D( v' x5 `5 `$ b%d %m %b %j');   
' p0 Z# v( {+ U( k/ m* w  -> '4th 97 sat 04 10 oct 277'    # l* f- r  F: E
mysql> select date_format('1997-10-04 22:23:00','%h %k %i
( P' l, }' V% F- [6 e2 {%r %t %s %w');   
% i1 j3 q, S4 L  -> '22 22 10 10:23:00 pm 22:23:00 00 6'   
5 _, \0 G; }% Q8 ^% [ ) K' o" b4 H0 h5 q0 P  Y; k) J
time_format(time,format)  1 i  q% }4 A- a1 _( r; W1 H/ C( f
 和date_format()类似,但time_format只处理小时、分钟和秒(其" x" D; e3 N2 ]2 L: J
余符号产生一个null值或0)  ; p# @6 `0 o* [4 y! s
% `/ I  V1 b% y
curdate()     
+ m8 E9 N- l) pcurrent_date()  ; P, y$ K( e7 N* T: Z
 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所3 K& g4 B/ I' ?% J3 Q
处上下文是字符串或数字)    : c9 _; D# U6 A/ J. E* t
mysql> select curdate();    ; F! |; n: L/ v0 a2 n" @7 o
  -> '1997-12-15'   
0 C' T0 X  _8 Tmysql> select curdate() + 0;   
/ V9 S9 W8 x  U6 P( \$ p  -> 19971215   
, K" Z- Q: I+ E6 W3 @  X5 E ! ]0 ^8 N& a& v- @0 w% Z
curtime()   
* D; g7 l+ B/ u, hcurrent_time()  % Z( t' B: C+ K
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上1 T3 }8 `  z4 N8 k. K% {
下文是字符串或数字)      % L  A- q( G& j) T
mysql> select curtime();   
8 ]% K# C$ i# d4 U  -> '23:50:26'   
6 y1 j% W+ y/ J5 i6 H; [8 e% Fmysql> select curtime() + 0;    ! _! A( Y$ y4 x# Q$ W
  -> 235026   
/ D. J" f6 p2 Q8 e1 U
% M# b& w( R( nnow()    6 n% q/ W/ c. z; S3 y  n: E) I6 ~$ t9 y
sysdate()    ! G6 p& k6 q1 @8 ?" H) d. h# E$ f" N
current_timestamp()  
) ~2 G: ?3 L3 G 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
; j) o7 N2 S9 \, q8 j; G7 D时间(根据返回值所处上下文是字符串或数字)     
* l/ Y( L* N8 Q9 V  {' x# ?mysql> select now();    * @5 e( W( h; D
  -> '1997-12-15 23:50:26'      L$ I0 {9 q! F# e
mysql> select now() + 0;    , D  J4 x; O' x2 s
  -> 19971215235026   
$ H# e; ]" A2 m+ U0 C/ }
0 W. h  C$ S: R7 ^" @; T- gunix_timestamp()    ; k: V& |& N5 U3 q- z0 {
unix_timestamp(date)    1 i# E9 n$ b3 R" u: r+ r
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒# B+ _9 K6 t! ~7 o" C2 C
数,date默认值为当前时间)  , k. n8 n. Q+ b+ i/ {# q( c
mysql> select unix_timestamp();    7 E$ `/ i* n% o! H
  -> 882226357   
) }+ H5 f$ g* I" R6 h$ dmysql> select unix_timestamp('1997-10-04 22:23:00');   
( _( j: p; B9 \  -> 875996580   
6 G$ N' u8 @; T" C" ?6 w- Z
/ d% Z5 ~- i( }6 p( _from_unixtime(unix_timestamp)   
# o/ G( _3 ^6 [3 B以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的
2 V! S( R  k2 y+ R) r值(根据返回值所处上下文是字符串或数字)     # |- ~4 x0 d6 T, m* Z
mysql> select from_unixtime(875996580);    & G* o8 [. i5 c" f
  -> '1997-10-04 22:23:00'   
& I/ Z! Z+ \0 E: q. \. Gmysql> select from_unixtime(875996580) + 0;    : \# [( g5 C6 r6 H- Y5 J, i5 I
  -> 19971004222300   
# r# ^& d# }$ ?) _ - {8 Z9 T, c+ X" b+ t+ W
from_unixtime(unix_timestamp,format)    
; O  K9 ^2 f' P1 w) V以format字符串格式返回时间戳的值  
) y! |% M! F, x) t3 [! m. Umysql> select from_unixtime(unix_timestamp(),'%y %d %m %6 Y5 F/ M4 b, x1 i* G
h:%i:%s %x');   
  Z* o# o$ h0 |" \" y, j8 H  -> '1997 23rd december 03:43:30 x'    5 [9 R" @( A8 O" x2 J

8 e3 x! M4 I5 ?3 \7 T1 _sec_to_time(seconds)    6 n5 Z5 P+ c  {  S
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     & w" ^/ E' k% {4 x4 @0 O$ E  n
mysql> select sec_to_time(2378);   
  L' R9 i0 R  [  -> '00:39:38'   
# k! f0 I/ u& q% Wmysql> select sec_to_time(2378) + 0;   
2 S# Q, \. ~# |" X' _- ?3 R3 I( \  -> 3938    ) W. ^  b6 C$ m6 _1 |4 H
- g) d& m" a) y( W
time_to_sec(time)   
& b. n& o4 e& t+ @) @$ O返回time值有多少秒    ) U+ a1 [  w2 J* f- l. J
mysql> select time_to_sec('22:23:00');   
. v9 G. A/ H! V6 X2 c  -> 80580   
. C9 l+ F7 x* u; Amysql> select time_to_sec('00:39:38');   
, ~; i0 G6 H9 f7 o* ^  -> 2378
8 u/ j2 `3 Y! I* m2 S  b$ E
6 m! U- v& Y$ W转换函数
% Y9 D/ l: V/ \  q1 W" Ocast5 a. e/ z  p1 G! `
用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]. J, G: i. w. s. s$ L6 y
实例:select cast(a as unsigned) as b from cardserver where order by b desc;
& R  V% J% c4 I" x# O2 N. Iconvert:* [  _6 z: l3 w7 p& W
用法:convert(字段,数据类型)+ u2 Q* g8 c; u
实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
0 p; Q9 f( \, e& W. @  Y; k3 o
回复

使用道具 举报

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

本版积分规则

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