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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数
3 N( |, p3 b; fascii(str)   / [, _: b' u9 O
返回字符串str的第一个字符的ascii值(str是空串时返回0)  ) |5 L' L0 I' }1 b* F
mysql> select ascii('2');  ; p2 Q: K) T& j2 r; I
  -> 50  8 ~" t# P4 V& p$ V2 Z# @, W0 C
mysql> select ascii(2);  & ?9 q+ j+ r# Q+ U
  -> 50  
9 E& \: u) N7 |0 e# s" Z( r1 v, q9 Hmysql> select ascii('dete');  
3 h6 r  j$ w) ~  -> 100
0 q; K* B+ _' V2 P  c+ y
ord(str)   ! C3 n: J3 }* n  q9 v2 G
如果字符串str句首是单字节返回与ascii()函数返回的相同值。
$ ], b5 |- |' S" \+ s' ~8 g + g2 P# b) {( J: b9 H
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  
( F5 `- }3 y& A3 {mysql> select ord('2');  - h  o9 Q+ D* u, r1 C$ l6 I
  -> 50  
9 z* Q6 L! ~7 t5 a: i   
+ z+ D" j) f, x/ T3 d& e8 d/ f/ h4 sconv(n,from_base,to_base)   
5 g8 G# ~7 d' J: F0 d对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
# e( J' p2 w7 E, }" \3 ~4 Cmysql> select conv("a",16,2);  
- }' m5 M0 a, E+ j: V8 \  -> '1010'
& X5 S/ u8 ]$ E$ a; E! q5 ^mysql> select conv("6e",18,8);  . Y% u) B' o/ w! I8 u; J
  -> '172' 8 _; V" s! |- e# I
mysql> select conv(-17,10,-18);  ( L* @  z& Z* x4 }
  -> '-h' & {. g8 n: [" g! h, L
mysql> select conv(10+"10"+'10'+0xa,10,10);  ; o. ^& ~6 ~2 q( K5 Z3 [2 v
  -> '40' ; a3 d, w( B+ Y1 i% h
   
. W3 Q' A* ~1 `, \( \bin(n)   # s( y+ x- m& w
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  / v: F" z7 n, z" X5 g1 V
mysql> select bin(12);  
2 U' D. E* g9 ]- B" d  -> '1100' " D$ F! V1 @; M) l7 K6 C8 H

/ r7 J- N' ~' ?oct(n)   
+ d) ?, k9 B+ N把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
! v, E6 J; l3 L! omysql> select oct(12);  
5 }- ~8 n# g0 y0 Z; J3 K" k6 j  -> '14'
: [. D( h) D9 x; P0 P) o( v   / T5 v+ J/ J0 d7 b/ j# D
hex(n)   " }/ j/ ]+ I6 N4 s2 N( W+ v
把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  
) ]+ M3 }8 [4 f* q- q" Ymysql> select hex(255);  3 u! D' g0 {6 h* l/ W) @# W  u+ _% N; g
  -> 'ff'
' s/ `+ \8 M1 W" a+ e5 s9 s   1 L9 ]* G2 D9 w* H
char(n,...)   9 N0 Y6 T7 D% O* W
返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   
) S. l/ E1 ~9 g# Xmysql> select char(77,121,83,81,'76');  , S: ?  V, I. a, I) o7 y
  -> 'mysql'
$ n2 L2 l- |+ L+ M% {. Qmysql> select char(77,77.3,'77.3');  
5 C  }% D% R, A3 g! e" ]  -> 'mmm'
3 h; k/ m0 }3 V9 G" v+ \   0 R$ Z% i, w- _0 I
concat(str1,str2,...)  
5 F; L; O, i$ Q1 R4 A+ E) F把参数连成一个长字符串并返回(任何参数是null时返回null)  
+ g" _) f; c. d: H+ h6 bmysql> select concat('my', 's', 'ql');  . c) o$ b  o* ^) z
  -> 'mysql'
# I3 C  X- D- w" N% G# D; k7 O9 x  Kmysql> select concat('my', null, 'ql');  
; ~. U1 Q6 j, Z1 l) M  -> null + J: P3 A+ v7 m1 d( o. c; M
mysql> select concat(14.3);  * u% A, r- q8 e
  -> '14.3' # W; p1 o6 B' l( t( D; g2 U

/ X" x' Y. i3 |1 f; O5 G/ N0 klength(str)   
& \' w$ h1 c) m7 Moctet_length(str)  4 A7 n# T8 I9 q, [; D
char_length(str)  
, U1 `6 R" P6 q, `. `" Z# Qcharacter_length(str)  1 ^3 _6 q8 r) n* Q
返回字符串str的长度(对于多字节字符char_length仅计算一次)& K# o/ M- ]  @! X1 b+ ]& g; H
mysql> select length('text');  
+ _+ z( c  w) d) D9 d% k, q  -> 4  $ ^5 l1 Q) i* `+ t+ Z
mysql> select octet_length('text');  / l* X: o5 V/ m6 `& h
  -> 4  - q9 q* [/ ^. O* ~  G1 [7 O
8 G: _+ \( o. |- H$ u' \$ E7 C
locate(substr,str)   
0 s+ d7 B, `& e5 bposition(substr in str)   ( O9 R0 g. i5 O
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
. n. }- U0 \% p# S, \0 Z/ y0 Tmysql> select locate('bar', 'foobarbar');  
3 j: ~+ {- ^* p" j/ |  -> 4  
! m7 L/ j0 C, H4 B  c& S) W: Pmysql> select locate('xbar', 'foobar');  
1 `4 \& z$ \" m0 I% D0 y6 w  -> 0  # U( ~9 N3 `6 B- a( ^0 o
    . q6 X+ J! R: y9 X
locate(substr,str,pos)
$ C& {  e2 q3 V. h2 E" Y返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
& n4 ~8 O0 v+ S; X: U8 u/ Q1 tmysql> select locate('bar', 'foobarbar',5);  
0 ~8 b1 R8 P1 d) N  -> 7  
0 L; |$ M8 [1 e+ [
' t5 E# B1 G* K1 c& \# ]* x# Ainstr(str,substr)   , t; j  h' i) m! T, e- I' t7 t
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
- U$ Q& o( i! P( V2 \* pmysql> select instr('foobarbar', 'bar');  
$ ?; w! l: w: g) G+ s0 b  -> 4  : Y- `, Y; @: N! z3 b
mysql> select instr('xbar', 'foobar');  
: h, m+ ?. u9 L) M  -> 0   
0 q( x' t+ z# f' W5 q
: x# A% Y) E" {. jlpad(str,len,padstr)   
. |9 z8 q# L! m用字符串padstr填补str左端直到字串长度为len并返回  
9 {) T. w$ C3 b% s0 e- r" cmysql> select lpad('hi',4,'??');  2 m7 W& x" L+ I* ]- Q8 ^* ^
  -> '??hi' ; L1 r" B. g; A0 v
   
  S3 y6 K6 J+ y; ?$ n0 R: y% Qrpad(str,len,padstr)   4 j/ q6 {7 x. q1 U
用字符串padstr填补str右端直到字串长度为len并返回  
" O  H/ f, p( z- l8 O7 e$ vmysql> select rpad('hi',5,'?');  9 o5 X# [% {& d2 v3 j6 Z
  -> 'hi???' # ]0 K7 E- J$ U- r1 v
/ {  B# I; B4 Q: R
left(str,len)   
% [% s, C1 ~. T2 K+ X返回字符串str的左端len个字符  
$ s- ~. I( f0 A/ Bmysql> select left('foobarbar', 5);  0 l; B% G. y: r# d: D4 D
  -> 'fooba' 1 T/ K8 \$ e4 m* Q% M( v: l5 a# t, Y1 ^
  l( t: f0 N# t% \4 y
right(str,len)   
8 n8 W2 `, Z( y8 h; M6 }4 @) L/ _返回字符串str的右端len个字符   
( G- u, }2 g( V$ E: P( k. Smysql> select right('foobarbar', 4);  
( O; k, L& \$ \: O( K& i) U. `  -> 'rbar'
, i0 S' x5 d6 m# ^4 C; |
, B6 k" |3 v8 D0 U6 ?: dsubstring(str,pos,len)   - e/ J8 y( ^* B  X/ P2 y2 c1 }3 }) Q
substring(str from pos for len)   
5 \% }( _! n) k, Q0 P  T- H1 y5 hmid(str,pos,len)   # _# J6 Q6 C4 C4 Y3 C9 k
返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  0 x. Z: n; e9 H1 o+ p1 b
  -> 'ratica' 7 ^- l: v9 J4 @7 c# J+ n7 O

0 c6 F* h* g/ d- k$ V4 o9 W+ a. @substring(str,pos)   
" Q, X" b; ~; N) e3 ~substring(str from pos)   
2 I! E) C/ Y* v- F6 w  m/ h: A9 U返回字符串str的位置pos起的一个子串  
! U) {0 h4 C1 p! B( e/ smysql> select substring('quadratically',5);  
1 ~. n7 Y2 V) K& A6 o- d" t" P  -> 'ratically'
! l: z, j- x1 a* \mysql> select substring('foobarbar' from 4);  
' m( J5 H/ M: @" K  {- A" q  -> 'barbar' ' }6 O3 O( q' X) \2 ?! l8 \8 i( \

+ l/ Y1 a& y2 i/ i& k' }substring_index(str,delim,count)   
" Q- `4 ]3 V% F# G返回从字符串str的第count个出现的分隔符delim之后的子串
7 q- S6 z7 m- g9 l8 T$ f7 K! i(count为正数时返回左端,否则返回右端子串)  
3 e, K. N. w, b  L0 tmysql> select substring_index('www.mysql.com', '.', 2);  
2 O- k1 `) Z3 N8 ?) a' W: Q  -> 'www.mysql'
" z3 N5 Y9 g' s: o9 N$ hmysql> select substring_index('www.mysql.com', '.', -2);  3 N, ?2 b1 P2 o  C, G
  -> 'mysql.com' - H: o& @7 s, i9 l5 S4 w2 s

4 ?3 s( a9 B  ~5 dltrim(str)   
: I  T, e; h0 N1 N( L8 L  \返回删除了左空格的字符串str  ) [/ W) B$ F0 X, ^( {
mysql> select ltrim('  barbar');  % t' v: M3 U- F5 l# Z& |$ I
  -> 'barbar'
! P' x) e8 E. l' O
" _, r, `: I/ ortrim(str)   % J- T2 W! w# k- f7 r
返回删除了右空格的字符串str  
- w: O3 \5 d% P8 M# emysql> select rtrim('barbar   ');  / E+ F3 M+ u' v0 E% ~6 M: A
  -> 'barbar'
: r7 A' @' P5 N5 l. _( W" p
' S! c( M  o& Mtrim([[both | leading | trailing] [remstr] from] str)  
5 p; }8 F7 m( b返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
  E4 F+ B/ I0 c2 }; ^/ C3 u( ~5 Imysql> select trim('  bar   ');  4 z& T- W, f  N# t2 u, X! X
  -> 'bar'
: V7 Q+ ~* j; E( z9 Jmysql> select trim(leading 'x' from 'xxxbarxxx');  
9 E& k! x7 P$ B3 f' m9 T  -> 'barxxx' 5 q5 g4 ]7 Y' z/ Z* o/ T6 R2 w& b
mysql> select trim(both 'x' from 'xxxbarxxx');  $ |0 F0 W: R7 L0 O7 |( k
  -> 'bar'
8 I! T/ F0 s( d7 h% r+ e3 Amysql> select trim(trailing 'xyz' from 'barxxyz');    Z) {3 V9 E+ q7 @2 r- g* x
  -> 'barx'
; b3 |" u- }& V5 u' [; U ! [  H, g  J( c
soundex(str)   $ B6 @$ P. @! J  K4 k
返回str的一个同音字符串(听起来“大致相同”字符串有相同的; w1 i% s$ J$ i! L& U9 c
同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  ' l0 [& a) b3 Z
mysql> select soundex('hello');  & [8 T& g" Z1 I) h- p2 P
  -> 'h400' " e. c, x9 p7 |! G! r" O
mysql> select soundex('quadratically');  % R8 X( f5 ^/ w
  -> 'q36324' , u  G& x' [1 [8 W
   
/ K# ]: V5 i& y8 f) K. q( p5 {space(n)     s/ C3 ]% y8 H, X9 e& [' ]
返回由n个空格字符组成的一个字符串  8 T3 K- y' g' v( }6 S) c0 g2 m
mysql> select space(6);  
; f  f' B  j$ y0 Y! v& A* x  -> '      ' 0 C: Z' h! \7 R( j$ o7 q
   
8 i, C; E+ y& Y# r0 K7 @replace(str,from_str,to_str)   
$ `+ E% }* s* \/ K用字符串to_str替换字符串str中的子串from_str并返回  % I4 s2 W0 V8 h
mysql> select replace('www.mysql.com', 'w', 'ww');  # U$ {! i; K9 T( }% D9 t9 L
  -> 'wwwwww.mysql.com' - d; \( j) R/ C9 w/ t* z, ~

5 E9 t( P- K9 t5 O1 U  jrepeat(str,count)   ! _# @5 K: {3 a' X( {8 p
返回由count个字符串str连成的一个字符串(任何参数为null时
, g, N1 b- K- L9 |2 f" _返回null,count<=0时返回一个空字符串)  ! {* Z/ t/ s4 E/ \, ?6 q
mysql> select repeat('mysql', 3);  
: N$ ^0 x0 E6 d: R+ f( b+ l  -> 'mysqlmysqlmysql' - x" M: X( D* a
   
  R( T4 ^/ u. {8 H6 |3 C* [reverse(str)   $ ^5 |( C1 H/ V. x" R; C
颠倒字符串str的字符顺序并返回  7 h" ]# X& A, g/ S& H+ }: _( _  P
mysql> select reverse('abc');  4 i9 P; A6 C3 U
  -> 'cba'
) g; U7 E9 L& U# D; U+ a 1 @- @, C+ `3 [7 {9 P9 v' ]( C, Y
insert(str,pos,len,newstr)   1 Z6 t6 L; @8 I: Q
把字符串str由位置pos起len个字符长的子串替换为字符串
0 O7 s  ^1 Q+ i; r$ Z4 m1 nnewstr并返回  # t  ~* {9 m+ q. C1 s
mysql> select insert('quadratic', 3, 4, 'what');  8 u# G& m! H; Z
  -> 'quwhattic'
; r9 e. V: E9 f+ u+ x- B% P$ s$ z 0 r( R$ s7 b, E+ \3 p7 W
elt(n,str1,str2,str3,...)   
4 e& B: A& }. V9 d- ~返回第n个字符串(n小于1或大于参数个数返回null)  + x% N8 y2 I; s3 E4 s6 }
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  0 N6 M' T. N* B$ H* i* D6 G
  -> 'ej'
- ]. t- Q2 T5 Imysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  
  p- g8 d* {4 B  -> 'foo' 6 J( y1 U- v0 P7 A  M3 B0 C
; M0 z) L# d4 Q+ v
field(str,str1,str2,str3,...)   , f+ x. O. L6 I; l  s
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  8 y5 ~1 F$ k2 l! K" P5 f( U- H9 X, a4 K
mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',9 G' H& {0 f% g) I; f3 G
'foo');  
% a3 v/ ~9 u$ s7 h& x% N  -> 2  % v7 e3 L$ F9 `6 N9 f
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
( R* J" t) v& H- t# u; E8 m0 E'foo');  
: o: N0 W( M- y# _  ~  -> 0  
. H! h  K7 N7 H& g$ ~' l, g
( ?1 O/ k; I+ I. t4 q) Ufind_in_set(str,strlist)   
  a" M( B, u( c  F( x返回str在字符串集strlist中的序号(任何参数是null则返回; l  g$ J0 `0 ], {# V+ o% \
null,如果str没找到返回0,参数1包含","时工作异常)  / b6 M/ \! u2 a. C$ N& h8 ?% m
mysql> select find_in_set('b','a,b,c,d');  
1 O" O4 w" A8 q& w& @  -> 2  
5 Y5 Y- \7 `  }; ^2 l: @& H: |   
( f( f  C. A6 u2 i9 @7 C% fmake_set(bits,str1,str2,...)  
3 u1 v# x' ]- ~把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
" [) f) D( }6 `9 f3 K% W7 p位置的字串选入字串集并返回(null串不添加到结果中)  / {$ X: N" U8 q0 w
mysql> select make_set(1,'a','b','c');  
9 F, r  G& P( a4 u  -> 'a'
6 N2 ^( b# J- R9 F9 Q! Umysql> select make_set(1 | 4,'hello','nice','world');  
+ [4 W: H: ]5 G' v; J  -> 'hello,world' ' t0 u# x2 w: `0 O
mysql> select make_set(0,'a','b','c');  
6 ^: O) c( J7 {0 N  -> ''
' W% A% R7 Z$ n) o% p1 h" J6 x4 c ' G5 X$ d$ o7 ]) z0 i  d' }4 D# q+ B8 \
export_set(bits,on,off,[separator,[number_of_bits]])   
2 R; ]$ q; I* j; T5 ]3 x按bits排列字符串集,只有当位等于1时插入字串on,否则插入. l- V# J. u$ E, h2 x7 R
off(separator默认值",",number_of_bits参数使用时长度不足补0$ s: u; O8 k- U) {; _0 b" c
而过长截断)   
% L$ _  f6 s& G6 C5 m' Emysql> select export_set(5,'y','n',',',4)  ( \- f  g9 |8 _' L& Z. w+ h
  -> y,n,y,n   9 j5 h- `& S3 ]: g
2 K) v7 {' Y5 c' N
lcase(str)  
* c9 k2 _6 j* ]0 F; \: mlower(str)     W. q/ W1 r/ Y0 U" A2 X3 |8 r3 b
返回小写的字符串str  
. v6 s" W' |( U* M5 I! rmysql> select lcase('quadratically');  ; X5 X/ _8 `" r
  -> 'quadratically' , h1 K* l+ l" M( u% {
   
8 m* U6 V5 q5 b' Y& [- P5 l2 wucase(str)   
8 g/ U( b# N0 ]5 O8 E5 Q4 v: Gupper(str)  
* D  ~" C% J& i, G& j3 |) S& ^返回大写的字符串str  
/ ?0 P; c5 k: T+ V/ {5 `. S# ]mysql> select ucase('quadratically');  ( t% j/ p) E& `3 C! ^$ h
  -> 'quadratically'
- L" _5 m) N5 l7 Y7 W ' v# I  E3 P/ _+ J
load_file(file_name)   
8 T( s/ M* B1 m9 B9 y0 G读入文件并且作为一个字符串返回文件内容(文件无法找到,路径
, b+ Z; @0 M  m不完整,没有权限,长度大于max_allowed_packet会返回null)  
. u5 e/ z. v5 i: c7 Amysql> update table_name set blob_column=load_file" f1 h: F) L' b, s0 Z2 o$ Q
("/tmp/picture") where id=1;  
! q8 \3 ]" _' E. z6 E" X$ L
$ ~: X8 [" L+ Z/ A. G$ P5 \2、数学函数& P% R: Q; P9 z
abs(n) 4 E4 V* u  t* Y7 v+ r4 ]
返回n的绝对值  ; n- F8 b. F  H* B3 q
mysql> select abs(2);   
3 Q4 Q1 m# r/ {4 A0 l! u  -> 2    1 C7 T* h1 {' h' R
mysql> select abs(-32);   
- x' q2 i" S: v3 C) H  -> 32    ; o; e# ~& I( v" F2 D$ t
   1 o: j! b2 k% |( m% r0 R
sign(n)  
3 d6 d& Q2 u! y  q- @返回参数的符号(为-1、0或1)  ' W: e  J( w, U- i1 _
mysql> select sign(-32);   
- N! m! E0 k. g: r- k  -> -1   
  x/ V" O/ v$ omysql> select sign(0);   
: q& j3 F* v1 _1 U, X) R$ X0 E0 }  -> 0    ) n1 c% I' o- d7 U
mysql> select sign(234);      e$ J2 e, z4 i! D1 _
  -> 1    5 Z6 o3 E% |+ d0 A4 s

- ~5 i' ^9 Q4 k/ q8 p9 ^8 a) Fmod(n,m)    3 n2 `/ T8 p: C) |
取模运算,返回n被m除的余数(同%操作符)    4 Q0 n% O' p' a' `' N% O
mysql> select mod(234, 10);   
/ @. P% B5 i. Z3 c$ b" i% _2 L+ o  -> 4    7 b8 B4 O! k) K3 s+ G
mysql> select 234 % 10;   
! l+ N4 e0 X! N9 f& ?  -> 4   
# g# a1 h" g9 h" \) A, B/ Y. Emysql> select mod(29,9);   
' q3 r6 }2 u3 {; D2 n' L  h  -> 2   
8 I* K9 k& u/ K  u+ Z5 a  Q( _
1 Q2 r) I( @* K1 D* j' Jfloor(n)  
/ e! ~. d/ ~7 N% d' {返回不大于n的最大整数值  4 B( y" j2 `% h. A" p
mysql> select floor(1.23);    4 P, @' l# g7 U
  -> 1   
. L/ _2 B3 N7 \5 ~( l: Lmysql> select floor(-1.23);    % L/ Y6 {9 e, q, F/ p4 @
  -> -2    ; F. X/ p$ I. x' f$ |

8 V3 g0 q9 w# s# ~- iceiling(n)  : w* J2 g5 Q/ E/ z0 i5 }  I  v
返回不小于n的最小整数值  
4 _8 K. l1 t" R$ V; wmysql> select ceiling(1.23);   
& B5 Q+ N* `/ F/ p% _" V5 n6 B! s  -> 2    5 S1 N  a0 i6 C3 x* r4 X+ b# w
mysql> select ceiling(-1.23);   
8 q1 ?7 T: F- a3 H. E3 J  -> -1    4 F' q& B7 P- Q

; o0 u+ g; t" D$ s( D4 mround(n,d)  
! D. S( M9 [8 B( O: Q. Y, \) o返回n的四舍五入值,保留d位小数(d的默认值为0)  $ H2 w# h- W+ L  b/ e
mysql> select round(-1.23);    4 N) X. e* O1 N: Z
  -> -1   
. W* s( K( k4 A9 L# Jmysql> select round(-1.58);    ( `, Y0 d5 U6 z+ N7 W
  -> -2    ! Y. \7 Q' M3 P$ n, q( h
mysql> select round(1.58);    ; b9 V8 v" Y. h/ {( y- F
  -> 2   
  Z; k( p7 b2 `5 Imysql> select round(1.298, 1);    $ A, J) {/ R. @/ H) ]. T
  -> 1.3    : w; a( U" S7 s
mysql> select round(1.298, 0);   
+ U+ T& U5 V- @  -> 1   
$ Z* Y+ p8 ?7 ] 1 t- B* v2 Y7 Z
exp(n)  
# `# l) h3 q& `4 a+ ]返回值e的n次方(自然对数的底)  4 B7 A, R. f0 H" s; C5 O
mysql> select exp(2);   
! _1 M1 }! Z! y$ z' ^  -> 7.389056   
. P" R! m( m* [3 D& Amysql> select exp(-2);   
' K% X$ m* A) g5 ]8 s  -> 0.135335   
8 `; P: w, m/ o6 L" {+ h- S
( f- _7 E- P5 Llog(n)  
5 A3 h1 U% l1 g' ]! T) u返回n的自然对数  
5 C; P# ^% l! x7 L4 p) P& {mysql> select log(2);    + [. k5 K) U" U8 \% F, f
  -> 0.693147   
) W$ i# q- ?0 m% Tmysql> select log(-2);   
3 l. Q' v# [' K" f. j5 A  -> null    $ z1 ]% Y3 B/ }+ l! m# g

3 u. ~. o5 E9 w, G1 A" wlog10(n)  9 Q7 N/ j# p- R" W' z; ]
返回n以10为底的对数  & f( I# d- _+ e0 q7 H7 [
mysql> select log10(2);    2 O/ r9 |" R7 D5 X6 v  }" K
  -> 0.301030    ! y6 v$ Z" P4 V
mysql> select log10(100);    9 f$ d8 P3 o% |
  -> 2.000000   
6 |, P3 M- v% a4 P+ N/ {* E- `; umysql> select log10(-100);    % F! \- V7 P' i0 \
  -> null   
8 q0 z1 A; E' |8 l$ d
+ l8 ^8 E3 U$ R  dpow(x,y)   
+ v: b: W% N/ d3 E/ npower(x,y)   
& e4 h0 G* K/ ^" D7 E, B 返回值x的y次幂  
) m6 \' h$ X/ J" A, @! Ymysql> select pow(2,2);   
  g8 V3 o) |; z/ E2 W  -> 4.000000   
4 R$ c. s5 I2 Cmysql> select pow(2,-2);    ' W' i) v8 Z9 j/ V% K
  -> 0.250000  
5 u! P9 b7 J8 t4 h
( {" ?$ r) S5 }. P6 P5 Fsqrt(n)  
# w; y: }" j& M# N2 r 返回非负数n的平方根  
8 ]! h8 Z, c+ T4 i4 v2 M$ ]* o6 Jmysql> select sqrt(4);   
5 z/ m" {* j3 W" b3 a7 @  -> 2.000000   
0 _' C4 q! D2 b9 R& O& kmysql> select sqrt(20);    / s0 Q  i& b9 ^# {4 W0 l2 |
  -> 4.472136    * Z7 p1 V; z+ c& U
: E2 `; Y9 ^- L' H% p2 o
pi()   
; {9 W* E) P. q2 ~, F- p 返回圆周率   - w  ]9 J; b' B) j7 A: l
mysql> select pi();    9 b4 O( `) O  k4 c3 [5 U0 s7 x5 R6 G2 S6 ~
  -> 3.141593    : j4 O. w' _% r" t7 P9 O' B" W; g

, M; h& L3 L6 D* x& t2 Y# ucos(n)  
$ ?" k* W7 X2 Q, A( _! ?. L 返回n的余弦值  & N7 Y8 M1 O" i- Z" m7 @
mysql> select cos(pi());  
5 ?$ v! ~: }" N- c8 M( g  -> -1.000000   
# f5 O& N9 ?: _. w6 Z( [0 E 3 z+ Z1 W& @2 g" U
sin(n)  8 g. E# i4 B* r: z1 I) P! {
 返回n的正弦值   & o5 c) v/ w- k' `+ z! C4 X- ~, A7 N
mysql> select sin(pi());   
4 W1 O5 b- `5 i% X( R  -> 0.000000    5 d$ V8 @0 s7 M8 t) C+ ?# T7 ?

) y7 i* c( u2 l) wtan(n)  4 Y1 a0 K- W- ?/ ]
返回n的正切值  
6 g2 F' n: t$ c# _5 B; nmysql> select tan(pi()+1);    $ a; _! u: m  k. ^
  -> 1.557408   
- h, Y' O+ z' L6 w/ x9 T
# Z, F% m: q" Z2 ^( H* nacos(n)  
3 X- _* d/ D. k& i# T 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  ' _3 Q0 D# C6 I# U
mysql> select acos(1);    ' a' T1 w& K, F  w2 _
  -> 0.000000    5 V3 N4 m  {' \! p/ i: H5 `2 N
mysql> select acos(1.0001);    5 i; L, c% @8 N  G6 G7 D
  -> null   
) M# ]  ]2 ]2 ~9 `5 umysql> select acos(0);    4 G: [1 r+ r! x! x7 G/ e9 E
  -> 1.570796   
2 K) C# k( ?. W, m+ J/ | # F" L' x$ ~) Y9 ?. Z% D  \
asin(n)  
- i# t8 ?+ A: Y0 e返回n反正弦值  ) k9 N* ^* b& a; }( M9 f" S  O
mysql> select asin(0.2);   
6 Q# R1 a: T/ t  c) v# C  -> 0.201358   
3 k0 B  q8 A9 n1 \mysql> select asin('foo');    3 P; q: F! u8 h9 g& v+ `
  -> 0.000000   
  O9 ]+ R4 H5 c7 j0 ]0 X: }4 k # @& I' A% Y. l* W7 J* G5 R
atan(n)  4 X0 J$ u/ U3 ?9 f
返回n的反正切值  8 K$ E; y: i# Q$ Q, V
mysql> select atan(2);    ! h" `0 `+ H  h$ A2 j% m7 d
  -> 1.107149    + C7 r* n& Z* k+ G. ^. S6 _
mysql> select atan(-2);    8 G0 `: \, V3 V8 u* O; C* i5 c% q
  -> -1.107149    , _: c, m% T1 O" F& M- A
atan2(x,y)   
5 s) r$ W% c; t% F7 F( @$ \ 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  
, k% P- h  }5 g; N* hmysql> select atan(-2,2);    % I  x' n. @+ {" w( N, h& S
  -> -0.785398    ( a7 B- K- o" U
mysql> select atan(pi(),0);   
$ }7 b- a1 ?4 m  -> 1.570796    ) a# N9 P! Q% ~) _) I+ z% e

! z4 E( n' U6 {& {* Tcot(n)  $ @1 U. o/ i1 w7 j! s& F8 Q
返回x的余切  
+ l+ B, {0 `" Q+ U2 `( ^8 J% xmysql> select cot(12);    % S! [8 R  T& w6 M) {  j5 ]
  -> -1.57267341   
; {# W2 }6 t1 |9 a; vmysql> select cot(0);    6 S8 e1 h9 E+ h8 D
  -> null   
* R, Q  g; w9 Q9 z& t  a 4 P$ _  a3 N; o; B2 _
rand()  
) Q5 R! {% E0 g& y3 K7 k$ Prand(n)    
: W( B9 Y' `# T% e. i1 h6 P' I返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值) + v; E0 {/ D9 {/ m9 u( x& o* }+ U3 ~
. y$ R" `! n  r$ d
mysql> select rand();    , z: U! X# k2 D$ U/ \, Q
  -> 0.5925    % T9 U$ S9 ^# z. {0 ^" K; C% I
mysql> select rand(20);   
7 E/ ^' M9 T+ a3 n$ O& H  -> 0.1811    ; D8 z/ m- X  X
mysql> select rand(20);    9 o8 u4 F( k- t( b7 ~
  -> 0.1811   
7 J* c, {. j9 `6 U% P" @mysql> select rand();   
' V3 \7 [# G( w  -> 0.2079   
& l4 i: V* H) y+ j/ t( d; O! F0 cmysql> select rand();   
% _- }0 }+ c' K/ u7 i) ]  -> 0.7888    : l" S4 d4 i+ `3 o

1 s  M2 _- [9 Z, rdegrees(n)  , w4 `& {& o* k# m3 A4 f5 c
把n从弧度变换为角度并返回  
( N' j0 S8 e1 n  W3 }! Zmysql> select degrees(pi());    # C1 `' n$ X- z: U
  -> 180.000000    . A, D0 O  @7 `: }6 @

% E! T# p$ F; iradians(n) ' i) {- t' X% }) Y) ~6 R
把n从角度变换为弧度并返回   
7 k* p- p! Z3 O- {7 U/ r& ]mysql> select radians(90);    ! d; `# Q1 Z4 H
  -> 1.570796   
# H4 H) T- q& Z+ ]+ c  h3 b& S- e2 s# v0 `0 o" c1 ^
truncate(n,d)    ! D% T! i7 X& k, I
保留数字n的d位小数并返回  1 s5 `6 o! x$ S4 B: p
mysql> select truncate(1.223,1);    9 _) b+ L  x- I8 ?
  -> 1.2   
0 o8 l# J: n0 w, smysql> select truncate(1.999,1);   
4 W! j1 o8 R# k3 Q- K( S  -> 1.9   
# z$ P, V8 g$ v7 Z( Xmysql> select truncate(1.999,0);    * [& u" H4 o, p6 a
  -> 1   
. l9 v/ D9 }3 m7 b
# v0 L- X0 E3 x: }least(x,y,...)   
2 z, T$ [! r- w1 P1 A2 Q0 P  F# R/ q, L返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  . M- Y; G: M1 m  _9 O6 z
mysql> select least(2,0);   
8 |! w7 ]1 E  g1 H. I8 e$ Z  -> 0    / ]2 q" T& `2 r: L
mysql> select least(34.0,3.0,5.0,767.0);   
0 ^- x# d' V- i1 n8 ~2 z  -> 3.0    7 ]' H! g! E5 K/ C) m2 X
mysql> select least("b","a","c");    # [' F3 j. M4 a1 ^5 F/ |
  -> "a"   
7 ?4 c7 Z6 ~2 R% m2 i # K5 b5 G+ m, o: M) G9 Q: r4 `: C
greatest(x,y,...)   
3 F4 o7 F5 N; P0 M返回最大值(其余同least())  
/ e" O$ W3 l( c" Lmysql> select greatest(2,0);   
% q" _0 W! T' f3 J3 ]% o# L  -> 2    . I9 F% Y; E. d  x! T! s
mysql> select greatest(34.0,3.0,5.0,767.0);    ; ^+ d% H& s9 z: x
  -> 767.0    0 O9 Y! E, K5 D: w/ m
mysql> select greatest("b","a","c");   
/ `. {5 p' \3 n1 s* r4 U4 B  -> "c"     
! U  N: f+ ^4 o3 P- B; R6 }# u; W
% E! v7 u- k% G. H/ D3、时期时间函数
) y* l1 h& w; xdayofweek(date)    ( }0 ?/ v1 H$ M# G$ V  A
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
6 _1 c5 V. C, ]mysql> select dayofweek('1998-02-03');   
8 J, ?) R% q) D5 N- b6 b  -> 3    6 p2 p: n( R1 j( G* q- E% H4 e/ h/ e

6 b& H0 H% u/ n" A, Nweekday(date)   
' v/ ^  J' v: v0 L4 w返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 2 l3 y6 ^( D* e# m+ u. p
  
1 D; y7 [( O- Z  c" B$ L2 hmysql> select weekday('1997-10-04 22:23:00');    # j' m  \5 z( L; V+ y
  -> 5   
4 }+ ^5 R, m& N5 ^- r. Omysql> select weekday('1997-11-05');   
& S. q7 N8 _( r( G. |" E% |) t  -> 2    6 H5 c8 b  A  r0 P& l4 Y" Y

( I, w8 j5 i7 ?# s* F& zdayofmonth(date)    5 H* [5 b$ z. @! b; c
返回date是一月中的第几日(在1到31范围内)   
7 P9 K% Q- n& H, P1 I  Dmysql> select dayofmonth('1998-02-03');   
* J: ?1 u2 D1 k  -> 3   
/ @" ^" i! B5 X1 C+ g& U" Q# q! `
: f. f1 i3 q5 A7 ]* a# _dayofyear(date)   
$ p* L2 p2 w4 J/ l. z# Z% n返回date是一年中的第几日(在1到366范围内)   
" T; `/ k( |8 w" Tmysql> select dayofyear('1998-02-03');   
: W, |; j4 e$ j% U( e* x* s  -> 34    % S& j) ~  s  Q( E7 y4 f
+ X! B4 m2 w" q) e
month(date)   
. }1 `( f' A8 T/ h6 g. G, H返回date中的月份数值      T( j) c) N" `+ r9 q0 c0 l6 p
mysql> select month('1998-02-03');    $ ^, F8 b- @. Y: o+ U1 R
  -> 2    ! Y+ M$ ^: \2 h  q/ I% w
  T. O# ^7 {+ f
dayname(date)   
( Q* I7 M( U' d4 T( Q, f返回date是星期几(按英文名返回)  * l8 T* E: ?7 S
mysql> select dayname("1998-02-05");   
) \8 {9 F1 ]9 S' C  -> 'thursday'    ( }; ?! x5 J2 Z

6 z: ?/ n4 G1 \0 ?% t3 a: `monthname(date)    
+ ~, _$ U* q6 }/ {; r! H返回date是几月(按英文名返回)  
" F) k! I+ L) e% e7 s+ [% x- bmysql> select monthname("1998-02-05");    , p0 p+ D+ }9 T+ z
  -> 'february'   
- j2 U* {& Z( V2 K9 I  M8 j
8 l+ Y& I1 a# e3 w; Y9 J1 ~9 `quarter(date)    : `2 J/ i  A8 k4 e7 [
返回date是一年的第几个季度   
! U+ Z8 |& z2 @: wmysql> select quarter('98-04-01');   
- W+ ~. Y* D8 n$ E- G  -> 2    ; w+ P7 ?+ X5 U6 d, O. k
4 U! x" G8 {: v* w; {( G  I
week(date,first)   
7 `1 }2 P8 }# K  c9 ~! Z返回date是一年的第几周(first默认值0,first取值1表示周一是
8 R1 O. g3 h( `+ e; ?+ H周的开始,0从周日开始)  
# ^/ F9 A+ e2 @2 {0 B3 nmysql> select week('1998-02-20');    . _' m- G  E& L  r/ R
  -> 7   
, ~5 b- A6 ^) \& @mysql> select week('1998-02-20',0);    + B2 g) T+ s; w8 t" q( O  r
  -> 7   
6 s% Y% f9 p- h6 N1 E2 J9 h# [" Gmysql> select week('1998-02-20',1);    # Q' f/ N0 @- f
  -> 8    4 {8 K+ v; G6 G
! W1 x1 G2 C: m3 I# }5 z9 r8 V
year(date)   
, N% F' V' G) c' p! `) Y返回date的年份(范围在1000到9999)   
: l3 i+ g5 a: F" S4 Mmysql> select year('98-02-03');    0 ~- ~5 @! R  @9 a, }: y
  -> 1998    * b( K0 H' m6 I; m8 G
* z6 K' Y5 d+ `1 B# q6 ], O3 f* B
hour(time)    & y' q/ R  D, u( i
返回time的小时数(范围是0到23)   
% c8 O% s/ Q# g, y. w4 pmysql> select hour('10:05:03');   
  U- h& y- f; a% h  -> 10   
8 d- B+ `+ ]* {
: h! f- G) Q8 r. ~7 ^: \5 Vminute(time)   
8 Q- W6 P0 ^% j返回time的分钟数(范围是0到59)    3 n6 x; |" S8 f* d: _' @; O
mysql> select minute('98-02-03 10:05:03');    " V* k0 [; c: F; Z0 h4 ?+ T
  -> 5    0 e  }2 k; u2 t/ n5 X7 ], y9 f
# P0 P- e7 x9 ], L# D$ @/ Z( y
second(time)      g! @" m. L3 u! y& X5 S
返回time的秒数(范围是0到59)   + c, t. v6 W+ J0 F9 y
mysql> select second('10:05:03');    + v- R$ F! o$ M% t
  -> 3   
3 k% W+ Q5 P5 j9 J 1 T! q! W  t% n+ G8 g$ d
period_add(p,n)    9 r7 R5 G9 ], u3 A3 N) Y5 S- Y
增加n个月到时期p并返回(p的格式yymm或yyyymm)   
6 ]! L$ G5 [1 p& A2 @, U2 S3 Rmysql> select period_add(9801,2);   
3 f% ^, I9 u& [* h0 A- G$ E, c) ^  -> 199803   
, T* @& O) v- z% f  e) d; \
) [2 ^! ?5 C0 ^. W. D* y: ~period_diff(p1,p2)   
- O1 r3 j( ]) V5 y3 I- u& |& Z返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  
: d6 ?8 Y6 U9 @7 lmysql> select period_diff(9802,199703);   
# i# o' Y0 n. ^8 K9 c  -> 11   
. O+ C9 i6 L0 b5 E3 ~+ z" v( b
8 W' u6 c5 U. k5 p6 Z+ x/ x& wdate_add(date,interval expr type)  % V% i9 I$ ?4 f$ a6 v/ O+ ?( \
date_sub(date,interval expr type)    + e$ V3 a5 V1 s+ m7 I- O+ _2 v
adddate(date,interval expr type)   
8 N2 t  I' q1 Tsubdate(date,interval expr type)  
; Q4 l% q& u+ X* t- q对日期时间进行加减法运算  
+ \) e3 ]; }& J(adddate()和subdate()是date_add()和date_sub()的同义词,也" w6 B$ S/ M. M0 e" g/ [
可以用运算符+和-而不是函数  1 U; h# h' b7 ?$ o# s9 W5 ]: F
date是一个datetime或date值,expr对date进行加减法的一个表
7 ]$ Z# `6 n1 m% L+ v; w达式字符串type指明表达式expr应该如何被解释  
) i0 {: B% W0 y0 P) h. X5 ~ [type值 含义 期望的expr格式]:  " `/ y; K* O# Y8 j8 ]% S
 second 秒 seconds    , ?: I/ B& B. P/ g* W- n- \. x
 minute 分钟 minutes   
5 g( Y4 W  n" L+ M hour 时间 hours      U1 f5 e! f4 s) M
 day 天 days   
7 q' n. ?& A( w& c month 月 months    2 H: j0 h, x+ ~! @& i( o" a7 }1 `
 year 年 years   
0 \/ U( Q3 h4 e: ~ minute_second 分钟和秒 "minutes:seconds"      H* ^' ]# \1 f" F9 R% p
 hour_minute 小时和分钟 "hours:minutes"    ; s) z3 D7 W' a" I& U: ]: c
 day_hour 天和小时 "days hours"    5 M$ W0 N$ t5 M5 `/ R7 b+ c4 z
 year_month 年和月 "years-months"   
& J+ ]) A$ f4 e. C hour_second 小时, 分钟, "hours:minutes:seconds"   
- ]8 S( L4 P+ G, d. L1 N7 D$ { day_minute 天, 小时, 分钟 "days hours:minutes"   
: W' D+ f# ]0 y day_second 天, 小时, 分钟, 秒 "days" ^7 ~- c6 ]5 Z2 O" z) q
hours:minutes:seconds" ' {1 s, ?( X. e+ l: S0 b. y: Q
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个
" R4 E5 X+ g4 ?, Adate值,否则结果是一个datetime值)  2 @: r! p' [1 W1 n: a8 c
 如果type关键词不完整,则mysql从右端取值,day_second因为缺1 G. [( m* f( L) e  g4 n: C3 n
少小时分钟等于minute_second)  
9 O. B, d; z1 [5 b, q" ?2 h 如果增加month、year_month或year,天数大于结果月份的最大天# d/ P& \  j8 b7 N1 I/ I
数则使用最大天数)   
7 b+ Q& h$ `; E7 Omysql> select "1997-12-31 23:59:59" + interval 1 second;  
$ R  ^% v. R$ u* N3 L6 k7 X
" W; P5 F) K# e% h  P: {  -> 1998-01-01 00:00:00   
% S/ F( s$ X$ i, r) w, L: g2 l- mmysql> select interval 1 day + "1997-12-31";    3 `+ ~6 v/ W" C. z  w8 y
  -> 1998-01-01   
2 X; e& s2 p! D) a: D. ]mysql> select "1998-01-01" - interval 1 second;    3 X/ k7 y! Q* N; o5 D) I+ \' o7 M7 ?3 }
  -> 1997-12-31 23:59:59   
0 f4 g0 y; V+ {0 r. \! R5 Amysql> select date_add("1997-12-31 23:59:59",interval 1
6 Q$ S$ W( A3 K! D4 Msecond);    ! p+ J( n$ A9 Y/ m' I) J
  -> 1998-01-01 00:00:00    ' Z1 H' b8 s; L0 b. a
mysql> select date_add("1997-12-31 23:59:59",interval 1: t7 ~" D5 ^7 y9 x+ _- j& l
day);   
2 a( [6 z* Y! q) @! }# Z  -> 1998-01-01 23:59:59    ) n1 T% c: J+ l+ H$ y
mysql> select date_add("1997-12-31 23:59:59",interval0 G9 i" z# Z# G4 i4 A
"1:1" minute_second);   
9 H% d  E1 J" H  -> 1998-01-01 00:01:00    0 I' o' N% Q& t! |
mysql> select date_sub("1998-01-01 00:00:00",interval "12 @( k- `8 q; V3 w  ~
1:1:1" day_second);    # s5 o$ t) c- y  K2 ~; O
  -> 1997-12-30 22:58:59    " ^, n/ G6 G8 F) k4 \# w* ^
mysql> select date_add("1998-01-01 00:00:00", interval "-1
+ y" o  B/ m5 q; Y. t10" day_hour);  
* {5 f3 e0 D1 @  -> 1997-12-30 14:00:00    - J  I# v: n; ]9 ^7 B
mysql> select date_sub("1998-01-02", interval 31 day);    ! O, H- X6 h) {  i, T* Q5 z" H
  -> 1997-12-02   
+ q2 B; P( c0 n5 |mysql> select extract(year from "1999-07-02");    3 k$ ?: g6 P: X& Y5 L
  -> 1999   
' m9 f* B. d7 c. r: j8 n% o* c9 amysql> select extract(year_month from "1999-07-02
4 s5 X6 E$ I, D5 V: Y6 ?$ U8 n01:02:03");    7 z# P" M$ _& z. Y
  -> 199907   
8 n- K( G0 Y' F7 B3 L# wmysql> select extract(day_minute from "1999-07-02
/ t" `' K8 {& m9 L) j6 a6 N0 u4 j2 q01:02:03");   
0 _; }. c2 p/ {3 ?% w) e5 E! P  -> 20102   
: M* h' _4 ], @0 I9 ]  e: [- d* |
) }- z& ~1 {  X; y! pto_days(date)   
7 w; A7 A" J8 H9 n& g& k返回日期date是西元0年至今多少天(不计算1582年以前)  " n- I% q, S% o8 I
mysql> select to_days(950501);   
7 U: Y$ P2 C$ ]( G5 ^* \) h6 W  -> 728779   
$ ^0 Z% _( T0 a1 Umysql> select to_days('1997-10-07');   
* P' Z- K  m5 ?# }% Z* w3 L8 a1 n* n5 x  -> 729669    7 \" d! i! U4 e/ E- ?: _# u

3 {! D0 @+ }* Dfrom_days(n)   
2 e0 P7 t9 ~  f6 N9 X4 w 给出西元0年至今多少天返回date值(不计算1582年以前)   % W! t( g5 x& P5 a! E# i) |9 C- H
mysql> select from_days(729669);   
; G5 @2 G. M) u1 y5 x$ m( E- n  -> '1997-10-07'      n; [6 k' H+ G/ Q+ u& p; t% b: B

2 X* b3 |+ W) ~6 n4 Z# cdate_format(date,format)    - f; h7 l- C# m& Q# p0 P$ {
 根据format字符串格式化date值  7 K/ H& L3 E0 _& x0 Y, B0 H
 (在format字符串中可用标志符:  
, V4 h% n8 U; D. D' x* f %m 月名字(january……december)      n' Z! f$ `- [$ w: U: E# B; ]
 %w 星期名字(sunday……saturday)    2 l7 u! B1 J, X" W6 ^
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    ( o. R5 @% \) `- m) K: \0 p
 %y 年, 数字, 4 位   
$ c+ q8 M. ^' D. c' \5 d( s3 D$ c %y 年, 数字, 2 位    ( j3 U7 g& ]: _3 Y; q
 %a 缩写的星期名字(sun……sat)   
" m- T  x& h8 G- m( `! q" T! q %d 月份中的天数, 数字(00……31)    2 }0 r4 i) T5 o4 h
 %e 月份中的天数, 数字(0……31)    * D( m; h6 E2 i5 z& E7 v
 %m 月, 数字(01……12)   
: G* S/ I: q! G3 n0 t, w5 ~ %c 月, 数字(1……12)   
6 e' s( a  [: t %b 缩写的月份名字(jan……dec)    ' \" I# D' y3 p
 %j 一年中的天数(001……366)   
' s( h0 x: x/ U %h 小时(00……23)    + |+ i. I8 \, E8 `) e4 Q: k" D
 %k 小时(0……23)   
5 t9 E( K/ ^  V0 | %h 小时(01……12)   
/ N6 @0 l% ~8 R" \# v1 h2 O %i 小时(01……12)   
# G$ [7 v8 o3 ]" U2 @ %l 小时(1……12)    * I; B* R3 t0 r; |' X7 u' K8 {
 %i 分钟, 数字(00……59)    " v0 r* Y  q2 s- z& }/ ^+ D( l) H3 ^
 %r 时间,12 小时(hh:mm:ss [ap]m)    $ E. G7 N5 l( d  \( Q5 {: R5 e
 %t 时间,24 小时(hh:mm:ss)    * P( r: f6 `) a; g/ K% k) D! {
 %s 秒(00……59)    0 o4 _+ L' l% R8 c4 \
 %s 秒(00……59)   
! R) ^8 g  U8 j* z %p am或pm    ! c+ w  ]; M) D$ F  D# @& C! P
 %w 一个星期中的天数(0=sunday ……6=saturday )    3 \5 f: i+ u* P9 a
 %u 星期(0……52), 这里星期天是星期的第一天    ; B2 D2 |3 m' ?2 o
 %u 星期(0……52), 这里星期一是星期的第一天   
2 v, ^5 |. z) r1 J8 m %% 字符% )  
2 Z* {0 g+ y6 y% ~; O$ u& q# ^mysql> select date_format('1997-10-04 22:23:00','%w %m %
6 l6 a4 r. {$ X! r1 ?+ Ky');    ; W6 y+ a& J* n4 X* ?$ i$ i
  -> 'saturday october 1997'   
( V5 @% r  h5 tmysql> select date_format('1997-10-04 22:23:00','%h:%i:%
0 ]9 A( @* O7 u, B: J6 ^s');    & X. b2 \* q9 W# r6 V
  -> '22:23:00'    ; f( A4 i1 t9 X" ?1 E+ G2 D$ P
mysql> select date_format('1997-10-04 22:23:00','%d %y %a1 h2 v* c* U2 g3 m& P7 |* Y
%d %m %b %j');    : _2 k2 K. V: ~' s$ W
  -> '4th 97 sat 04 10 oct 277'    , l3 K3 @0 u' u9 x! @
mysql> select date_format('1997-10-04 22:23:00','%h %k %i
) D5 S! Y( d1 ~( i7 u: y8 g%r %t %s %w');    4 }1 p4 i! I4 x, N+ u1 D
  -> '22 22 10 10:23:00 pm 22:23:00 00 6'   
  z# {8 J6 t; w4 D2 W$ }0 {$ k' f
$ P" a, y( p2 V; U" B& ltime_format(time,format)  
% [" m# Q& g9 `# W2 @( h+ n* e" q 和date_format()类似,但time_format只处理小时、分钟和秒(其: Y: f( }- i9 k- i  ^: j; T3 B1 l
余符号产生一个null值或0)  
& `6 a7 o+ d$ }% L7 F/ @! F) H' }; o ! L& Z# ]: X" `7 {) D% g
curdate()     
+ n7 U0 \# `# zcurrent_date()  1 r% h& |0 T" z6 x( k" g6 o
 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所* y7 h) z0 R( n% l* C0 \/ k
处上下文是字符串或数字)    3 z$ v4 E5 Y4 {& v  U6 T
mysql> select curdate();   
7 k& C( B- M( _, W4 l  -> '1997-12-15'   
) R2 D% y  R9 {+ r0 {mysql> select curdate() + 0;   
! [7 X% L* h) [" J4 K, ^. Q  -> 19971215    , n, u- `) J7 w' t8 d- Y. S
/ G! u$ n; [0 P1 q9 D/ G0 u
curtime()    5 \; N0 G3 p, w+ f
current_time()  
3 e5 g/ {/ l$ f/ a# p8 G% J  \ 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上$ l1 h. L' S9 p% E# S8 Z5 v
下文是字符串或数字)      
4 B. S6 O; ~4 H* ], ~mysql> select curtime();   
) D1 B& q( h+ B: t/ X2 K  -> '23:50:26'   
' R/ N% Y! f$ ^# O# y1 F1 P6 _mysql> select curtime() + 0;    ' a: o/ b+ [& P
  -> 235026   
8 b1 u* j0 R# r/ s' @, C, x* s0 b
# R/ `; W6 {6 |( ^9 mnow()    7 n) a" P/ x% J& r6 A" ?, U
sysdate()    ' Z' |+ ^7 [$ f: d
current_timestamp()  
( Q% z, c" R  o 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
7 V. S% U8 E2 \. e/ }: I3 W$ u时间(根据返回值所处上下文是字符串或数字)     - d; b  `2 q. z: p" a0 |3 N( g/ V
mysql> select now();    8 n5 Y! p7 b, z) N
  -> '1997-12-15 23:50:26'   
& j- w" D' ~. B) L6 ?mysql> select now() + 0;    & S# P9 e& @' k4 c: B
  -> 19971215235026    $ F; [6 ?3 ~, u! j: @' i5 r

, a8 H# B0 }! z; K" t! hunix_timestamp()    2 x5 E3 N/ z3 ~! p
unix_timestamp(date)    - t7 `1 P4 U& Y# G/ r! D5 O
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
! f, c. q2 S/ `2 M数,date默认值为当前时间)  ' A% J$ |& x4 v  R# d6 H
mysql> select unix_timestamp();    4 V8 I3 U2 g# y5 o! D4 j; V) q
  -> 882226357   
: }* e, e9 m* @( x' rmysql> select unix_timestamp('1997-10-04 22:23:00');    3 g. J8 _* {5 X4 j( ^1 k8 l! I
  -> 875996580   
8 U" m; R; _0 R( p2 p$ b# y 0 G4 b4 o9 }9 P, i% v1 a6 `9 s  N
from_unixtime(unix_timestamp)   
1 v2 b; T5 _3 C  [" W. S以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的
7 X8 F; y. k. Y. e; b) w值(根据返回值所处上下文是字符串或数字)     
4 Z- b7 l6 I6 Z6 ]' ?mysql> select from_unixtime(875996580);    / x/ h; J( g6 ]% A' y! ?
  -> '1997-10-04 22:23:00'    6 i$ [; U7 D# L* ^
mysql> select from_unixtime(875996580) + 0;    + O7 r! ]2 N5 F6 b+ t
  -> 19971004222300    5 F! l/ f  a' W: d! S: x' U
3 }+ ^0 N. Y/ s% x3 e4 Y1 Z( b+ C
from_unixtime(unix_timestamp,format)    
4 D' g8 ^8 \- G1 i以format字符串格式返回时间戳的值  
& i" y% L6 h" s3 Y9 W- e. Tmysql> select from_unixtime(unix_timestamp(),'%y %d %m %
: b8 ^9 j; x: J1 [+ rh:%i:%s %x');   
' ?  b8 y, T! R) z) I$ {+ r  N, Q  -> '1997 23rd december 03:43:30 x'   
1 m, Z6 s( f+ Q% Z' H
. ?+ F) v* q3 y' e7 Q- ~sec_to_time(seconds)   
' h: w1 M1 \( w) D3 s以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     0 |7 A# c0 k5 Z5 j; z: }+ ?
mysql> select sec_to_time(2378);   
& O5 |; p" _5 E/ h, m4 T4 [( V8 G  -> '00:39:38'    % U2 \5 q+ T/ f& b8 D4 i# j9 [
mysql> select sec_to_time(2378) + 0;   
7 m1 W( r  Y. p0 t. K6 h  -> 3938    * X: y- Z& g! y- x
% b) ]/ _$ G) v" u1 S5 d
time_to_sec(time)    / i6 \# c" R* B
返回time值有多少秒    % G, R3 O, r- ]
mysql> select time_to_sec('22:23:00');   
2 C" N  I* N8 f  z  -> 80580    $ ?! t) m4 h: t% ^
mysql> select time_to_sec('00:39:38');   
: V* u$ A+ ^, {' t0 I# J  -> 2378 6 g# v- q) y/ z+ i& o- Q
5 b: X, D* p/ M2 ]$ H1 ?/ ?
转换函数9 S  T& x0 _. x1 v9 M
cast6 u- y4 I: w: f! [% M
用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]* X) J" V0 ?7 L3 V4 }* X7 E6 A5 ?
实例:select cast(a as unsigned) as b from cardserver where order by b desc;
8 F" `1 [1 J# T5 Qconvert:
% Y& ^7 h' n1 N; M% w, e: x用法:convert(字段,数据类型)
" K8 u. ]9 E$ d0 R实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

8 _, C7 a  |+ c; X5 T# V$ [& |
回复

使用道具 举报

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

本版积分规则

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