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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
1、字符串函数
, e4 P, U+ \* Q" S5 n) |  M: e" `8 Wascii(str)   0 _: B$ ^, g; ~- F. @1 A
返回字符串str的第一个字符的ascii值(str是空串时返回0)  ; y1 d3 I4 D8 K) I
mysql> select ascii('2');  
5 o- u( p5 y( r9 m; ]0 o  -> 50  
2 v! n8 ?9 F$ `. s) R: l) fmysql> select ascii(2);  ( v/ ^) m1 I- I  _2 ~
  -> 50  
: \1 G- e$ [! I& Dmysql> select ascii('dete');  
0 y1 c9 {8 e# H) a  -> 100

3 ?9 d) ?4 \9 q, A4 tord(str)   + C6 D" ^) k. r+ \  P' x- ?* W* q
如果字符串str句首是单字节返回与ascii()函数返回的相同值。6 D0 n9 m0 h! j4 z2 T- t
3 R' l, C, M" h4 o+ M! ^* L) B# k
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  ( F! v" u% M7 v& g8 D& P5 Y, l6 R# P
mysql> select ord('2');  
' P5 D4 w+ a8 @% ^/ T% ^  -> 50  1 R, U; @( S! G1 Y
   % |3 r" I9 m3 o- p
conv(n,from_base,to_base)   ' n7 @: T9 C8 Q0 m( Q
对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  # R" i3 M5 w' Y  _) X: K1 l
mysql> select conv("a",16,2);  
5 P- g3 p2 z$ f  -> '1010'
. @$ B: p$ V& \mysql> select conv("6e",18,8);  - O: _5 ?/ B; r( [6 d" |: v
  -> '172' 2 ~; A/ H% F! N8 U4 ]
mysql> select conv(-17,10,-18);  
9 \# K! F  R* |# w  -> '-h'
$ q5 H" x0 Z- \mysql> select conv(10+"10"+'10'+0xa,10,10);  
: G% l& s) f- E$ G1 }; t- O. W  -> '40'
/ k. f/ I" J( h' T# A   
/ J6 R) s, s1 ~% u" y7 h" tbin(n)   
' O1 Y+ F1 b& l8 X把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
* I" ^$ y+ n8 g8 R- m7 vmysql> select bin(12);  % O& j6 `  F7 ]5 G/ h6 e
  -> '1100'
$ K+ s' V8 P' U) W4 h 0 n, J" L8 u  z* f* g$ n
oct(n)   2 ]& I% t# v2 o$ P6 o$ |
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
9 Y( l! B& H5 zmysql> select oct(12);  
( h, L5 ?  f* s* A, ^. L3 y% B  -> '14'
+ W! x: y; _0 L7 p   , z" p7 ~- B/ t( i  B5 ?5 ~
hex(n)   
0 `" ?0 v9 Q! w0 p2 B7 w' v' H把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  5 c1 [, U7 Q6 D4 Q* j4 f& r% r) \2 i
mysql> select hex(255);  3 L/ D4 L6 J! l6 r/ {
  -> 'ff'
# L1 ^) _3 F5 G. H9 p   
) u! f. A& ?1 ]. k9 e4 rchar(n,...)   
( T. O! ^  E. t返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   ' i% K' c% M' c' \  L
mysql> select char(77,121,83,81,'76');  
4 z" a& v: {2 D2 @! u' Q+ Y  -> 'mysql' 0 r" r* A1 p- Y5 N, X& t
mysql> select char(77,77.3,'77.3');  8 ^  x" ^* {' e# z( |8 s, K
  -> 'mmm'
% T; \( X7 Z; m5 u$ S& C) x   , l8 N( o0 ]# P3 Y7 F# t
concat(str1,str2,...)  
' F# N. x; p5 q( G! H. |把参数连成一个长字符串并返回(任何参数是null时返回null)  
/ y/ ^1 S/ q7 umysql> select concat('my', 's', 'ql');  
% [7 h0 s4 \, ?, S  `9 o4 Y  -> 'mysql' 3 ?8 G% B0 I7 u, g3 u
mysql> select concat('my', null, 'ql');  9 U3 l$ G: u1 k/ j# E9 z* W0 X
  -> null
: o4 r9 W0 y9 }) c% |2 a  ^+ [+ P# Vmysql> select concat(14.3);  
4 `% s( `  G4 @  -> '14.3'
3 `8 M+ R" L- r/ [8 W- O: m # v/ F4 A, `  s/ G& Z2 S; e
length(str)   : b+ S# F% |! d/ N8 ?5 [/ G
octet_length(str)  
. ]2 Q$ z0 _, s, @+ L+ K9 Kchar_length(str)  5 D% C' s) X/ R/ A& A6 y
character_length(str)  8 m; I- P1 V& Y. F& X; ^1 v
返回字符串str的长度(对于多字节字符char_length仅计算一次)5 h* H: @, f+ Z2 v2 M
mysql> select length('text');  
3 c6 z6 i& l) \7 ~; f* i/ y  -> 4  
" C+ a1 G5 L* M0 C0 g; Cmysql> select octet_length('text');  - `$ |" f) j/ k* p0 F- w
  -> 4  4 M- C0 [+ e, r) p+ V

, K$ _/ a4 q# F% i# L8 ]locate(substr,str)   7 O* s) n" A, n! `
position(substr in str)   9 \. ?" ]6 ^1 j  q* X3 _
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  6 S& r4 f* Y. U: M. L6 b& \
mysql> select locate('bar', 'foobarbar');  
% a. o  l8 S9 X) ?9 S# \  -> 4  ' R" H6 r+ y' G/ R
mysql> select locate('xbar', 'foobar');  : c& @" _5 C- }2 p. e5 j
  -> 0  6 F9 g+ p8 W7 |
    ' ?4 f# j. j; f$ U6 c$ Y
locate(substr,str,pos) . X& y) Y. T$ u& ^1 ]7 U* F
返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  ; w( n6 `; n6 i1 B1 F7 @
mysql> select locate('bar', 'foobarbar',5);  . z  }3 d; J7 c3 k
  -> 7  5 C, i$ |  \; Z7 T3 Q, G2 [

& n: _1 S' d8 Tinstr(str,substr)   8 N' N2 U0 y& O; T$ d5 C
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
4 v( j3 c* {9 y% Omysql> select instr('foobarbar', 'bar');  
# k. v( C" e$ v- D) u) p0 h8 R  -> 4  
5 W$ y$ d1 D% r# S% Emysql> select instr('xbar', 'foobar');  ! `! a: t# Z! ~3 _/ d2 J
  -> 0   2 x! a( O. ?9 ]$ t. l2 F* n6 k, b

% T' G* D  f" N# u! \lpad(str,len,padstr)   
" F# U8 n3 u4 ~6 N用字符串padstr填补str左端直到字串长度为len并返回  0 W+ x& i2 w" A- |* Y8 f6 [
mysql> select lpad('hi',4,'??');  
2 R' T9 N) E$ G: B  -> '??hi' ; x) b. Q. R* {! Q( s
   & h- Y4 {6 |; b" E* p4 J! D$ r/ s/ u
rpad(str,len,padstr)   + e  b+ S  @$ M: d2 D  a# |
用字符串padstr填补str右端直到字串长度为len并返回  
' x8 w0 R9 R+ Emysql> select rpad('hi',5,'?');  
- r" H1 }# M2 v$ @" F  -> 'hi???'
0 L0 Y  B' P3 r. @. R2 ^6 ?/ p# U+ a
0 X' x2 r/ ?: g; M. l  B2 }left(str,len)   
$ W9 Y9 e* P1 x3 h( H) g, T返回字符串str的左端len个字符  * B2 k! g. p, E- \% s
mysql> select left('foobarbar', 5);  # s8 n  O) a7 d$ f; H! p
  -> 'fooba' $ @# ~, y9 H$ O( u4 f5 t
# L+ Z" f% f. E
right(str,len)   
; T+ C1 w7 C0 f  I4 j返回字符串str的右端len个字符   0 F; |) E$ E6 j8 v6 s* S6 l. e% I/ X
mysql> select right('foobarbar', 4);  # V0 ~* o- \2 I: d* b6 t" j* {
  -> 'rbar'
$ J2 X0 G( B# d0 W; k3 Q 1 E7 d+ ^+ K8 u/ t% P
substring(str,pos,len)   " K6 q$ r9 S/ N; q* p( f2 r8 e' a
substring(str from pos for len)   
2 a( b7 z) k" Z/ [/ s& N* Nmid(str,pos,len)   ) o5 g! e8 E/ }; y/ r& t
返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  + ]8 p5 u! q7 L6 s1 s1 @+ M/ w$ C5 @
  -> 'ratica'
0 m3 v; V, _4 ~  p + [$ m" }- j2 q! O: u
substring(str,pos)   
! F' Y1 c; P, a7 X2 ssubstring(str from pos)   
; f0 ]3 z+ Z. t$ ?返回字符串str的位置pos起的一个子串  ' k9 M4 B& U9 L( [
mysql> select substring('quadratically',5);  " |. I( H3 ]1 {! d
  -> 'ratically' ! F! p  R6 d! K& Z
mysql> select substring('foobarbar' from 4);  
9 J* K. ~- a: Y% u  O  -> 'barbar'
1 s* v  j" D  q: L/ o- ?3 u# b6 I 4 C" I. R* F/ o6 X/ N! q
substring_index(str,delim,count)   ' @4 }$ X3 t4 f; [5 Z
返回从字符串str的第count个出现的分隔符delim之后的子串
$ [1 {! P4 E& w8 r. E& [8 X1 C0 I(count为正数时返回左端,否则返回右端子串)  
4 y; Z4 I+ z2 T8 G5 n; Amysql> select substring_index('www.mysql.com', '.', 2);  
. h6 n' X4 g8 Y: n0 a+ t+ i  -> 'www.mysql' 9 w+ m/ ?$ Q1 w
mysql> select substring_index('www.mysql.com', '.', -2);  
4 g/ o6 z! w8 L" y: @  -> 'mysql.com'
* e. r0 y/ J; M/ p
  c! D+ t) Z0 A5 C: L) H4 {ltrim(str)   
4 }  d4 Y' U+ ^返回删除了左空格的字符串str  
2 e& Z( Z. ]& c5 S% I' L8 omysql> select ltrim('  barbar');  ! ]% W% B% \1 Z3 W' t- e% O
  -> 'barbar' : W! h$ d' z* W+ o0 a2 w$ R( D8 X

# i$ _0 ?" Z* ?* D0 Q4 J5 I/ u% q% |rtrim(str)   
8 }" d, c) N8 E5 o) K# y3 o) Q返回删除了右空格的字符串str  
9 l, \/ G3 @' W2 f) e4 c2 Umysql> select rtrim('barbar   ');  
& f; w* b1 m& b2 h: ~  -> 'barbar'
, u7 c/ v  ?: O( k, R ; ]2 x( |2 Z6 I" F' z* S
trim([[both | leading | trailing] [remstr] from] str)  
, [; [) D% m( W2 F  w$ L0 S8 h返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
$ `" W. U/ I# Qmysql> select trim('  bar   ');  
, |2 P( B5 {. I# n8 E# n) a1 b! ]  -> 'bar'
" Z- r3 @0 J% b- N2 ^9 l7 `mysql> select trim(leading 'x' from 'xxxbarxxx');  ' z. R% G$ ?1 }! D
  -> 'barxxx'
- E7 |! n0 ?$ {3 U3 X6 b, d  @2 k0 Qmysql> select trim(both 'x' from 'xxxbarxxx');  
( S# A# I  ^9 J% v, \% S  -> 'bar' 5 h' M: q5 N" s3 T) Y
mysql> select trim(trailing 'xyz' from 'barxxyz');  
6 b3 y9 e& `& r, N5 ?  -> 'barx'
# ~3 G' O" p; l- A9 }# U - ?4 y5 m- T1 b; ]! Y% f& {* j+ _
soundex(str)   
% ?# Z' z- H+ S6 b' f  N; v; m! R返回str的一个同音字符串(听起来“大致相同”字符串有相同的
$ ]8 f- n: M" B. f1 w2 w同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  
* l2 {3 I1 `  w: E+ xmysql> select soundex('hello');  0 _& x. |" U% Q) R
  -> 'h400' " e4 l3 P6 b% y$ n5 m: R
mysql> select soundex('quadratically');  
0 _7 e" i4 h9 W1 X  r7 ]6 S  -> 'q36324'
. \. k- C! k# E( m0 L1 ~5 R   ! I( _9 r  g- r" h
space(n)   5 x. E4 S5 g# R) B8 `" L: |
返回由n个空格字符组成的一个字符串  
; U1 I8 t. ~* i! cmysql> select space(6);  
+ `0 ?+ W, K# [6 C  G9 P  -> '      '
% E8 K0 k* y/ T0 Y( T   
4 ~' N: f' T' N& p$ x0 f& Freplace(str,from_str,to_str)   
! T  _& g" [* q) k; t8 \用字符串to_str替换字符串str中的子串from_str并返回  
3 M% `' t. H: ]2 C& w/ T& Smysql> select replace('www.mysql.com', 'w', 'ww');  
& _/ M9 q% l# T( m( x  -> 'wwwwww.mysql.com' : W, N) o0 b* S: _1 |
1 f: r" \, B& t' E& v% T
repeat(str,count)   + o$ h- A5 |. b
返回由count个字符串str连成的一个字符串(任何参数为null时2 G* @* d5 K3 O. x+ y% O* o
返回null,count<=0时返回一个空字符串)  / v, H' S: c; K) w# G
mysql> select repeat('mysql', 3);  
8 m7 f7 `) x0 `. f4 O) _  -> 'mysqlmysqlmysql' : d: {* a, O8 G% g  R- q
   
+ v. q: |3 M" B' {/ Hreverse(str)   
$ r* L2 C9 y( m: m# A2 x! d颠倒字符串str的字符顺序并返回  
, N2 W, R& G+ ~0 x9 @, xmysql> select reverse('abc');  " t! W. x* Z8 P# k" _# r! {
  -> 'cba' , _7 R  B. \# K1 W( t3 [

. O: _2 I$ k8 J' |9 s% D: @insert(str,pos,len,newstr)   " V. }9 a: f6 I) b
把字符串str由位置pos起len个字符长的子串替换为字符串
  X" d8 ?( W0 O9 u& b7 Znewstr并返回  
6 z/ p/ l- r# F- h* d" j) b9 gmysql> select insert('quadratic', 3, 4, 'what');  
# U  n: Z- P9 r, r% @8 m  w6 x) y& {. l  -> 'quwhattic' / ^0 E5 H( Y6 t& C& K+ G

9 p) A# z9 M4 N" R8 relt(n,str1,str2,str3,...)   4 s6 E0 O" u2 ^& X  g: @
返回第n个字符串(n小于1或大于参数个数返回null)  + ?0 ]3 r% w/ \* z9 ]/ W
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  0 B7 I" I9 ]& v' ]
  -> 'ej'
5 I/ y$ L, F1 f5 a" f" gmysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  + }2 N8 k( t$ g! a  U: K
  -> 'foo'
, p3 j7 q) G/ N& n3 S9 b, v- L
+ x% i7 o! S5 d1 B# Rfield(str,str1,str2,str3,...)   * K/ L) o8 G+ q0 B+ f
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
7 r5 U0 F7 s3 O) c/ X: N4 ymysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
; a# y/ T  f1 _* l8 h9 B'foo');  ! y( y& T- ~5 i; c/ o9 y
  -> 2  9 d; P7 A8 @2 q1 u4 N$ g
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
+ i$ \5 A4 Z$ g'foo');  1 T* N# e% b/ O% p0 I
  -> 0  
0 p4 W% Z+ z9 Z( x8 k ! b# v$ i! J& }' B- ~
find_in_set(str,strlist)     R. L% M: h8 p9 C: _3 o, g
返回str在字符串集strlist中的序号(任何参数是null则返回
4 I6 I' E0 n0 \5 u- j4 lnull,如果str没找到返回0,参数1包含","时工作异常)  8 E# a1 D8 b5 K5 }( m" |2 G
mysql> select find_in_set('b','a,b,c,d');  6 A1 }& {" @$ p( P& b' y7 @
  -> 2  5 N8 V% G  v9 ]1 R2 n4 w9 ?- [
   . A# L1 O: y, e; O6 R4 q- \
make_set(bits,str1,str2,...)  
5 j9 T5 f1 c! l把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应0 B* t: z! @, M; q; X& W; u
位置的字串选入字串集并返回(null串不添加到结果中)  
" z" K: [' d+ f  b5 h: Omysql> select make_set(1,'a','b','c');  7 I! N9 T0 `% o% E6 t" i
  -> 'a' ' @, Q0 K" ^/ b9 l! ]3 C' \$ b
mysql> select make_set(1 | 4,'hello','nice','world');  * |; M9 S( m' B/ h/ s  B
  -> 'hello,world'
% G- @. ~$ N  [$ Y6 e: m# J0 A+ |mysql> select make_set(0,'a','b','c');  , @" j' d9 {. B1 H) v' A$ N# V
  -> ''
  O, c  p; a4 Y4 i% {( k 7 f  q' _* D* K4 P
export_set(bits,on,off,[separator,[number_of_bits]])   
+ b$ n! S7 W6 T按bits排列字符串集,只有当位等于1时插入字串on,否则插入
8 S/ J& C: a5 H$ D  z* P  }) |off(separator默认值",",number_of_bits参数使用时长度不足补0
+ {7 e3 S9 a# t- p而过长截断)   ' }% ]& j! i; v3 \
mysql> select export_set(5,'y','n',',',4)  7 ]9 k( j  F1 m% A2 q8 }$ G' x0 c
  -> y,n,y,n   
) \; z! p% Y) ^( @* b
4 q. H8 ]5 V- p+ d  M0 Olcase(str)  " ?: E; Z" N3 }1 `7 d1 [& c' M
lower(str)   9 ?" S: P, E  w/ Z7 F& T
返回小写的字符串str  , _3 u! d; Z& M  e% t( u( {  m; d
mysql> select lcase('quadratically');  2 x( d7 m! r! N
  -> 'quadratically'
, Y  F6 D0 E! G7 n. H   . j% V% M' `% F7 I
ucase(str)   / s8 W7 g) h9 D3 c/ P1 r
upper(str)  
9 U" v2 j6 E1 _6 s) u. x4 c3 G返回大写的字符串str  
3 o" y# G2 t, [mysql> select ucase('quadratically');  ) f- |# E8 C4 ^- E2 K2 U! S; S' o" r
  -> 'quadratically'
8 K. g5 O- K5 G0 p
; j& @: y/ u! ^# }0 vload_file(file_name)   
5 V# |  f9 O: \. C读入文件并且作为一个字符串返回文件内容(文件无法找到,路径
3 s$ N, J1 B+ c7 c2 j/ o不完整,没有权限,长度大于max_allowed_packet会返回null)  
0 ]. t" t/ R8 B' qmysql> update table_name set blob_column=load_file
# u- t5 J$ R  \- t" ?("/tmp/picture") where id=1;  
( I& z2 z" s8 `+ Y: O- J* q & _' }3 G' O* k' |' V4 V
2、数学函数
  F3 ^  w6 V# X: habs(n)
" t  }: q8 q9 x4 z4 i返回n的绝对值  ( d9 [- A3 G; _* k3 P6 E. z0 L
mysql> select abs(2);   
0 K' V" w" T- R% b  -> 2   
+ U! F9 R" d+ T# E; Q: C7 lmysql> select abs(-32);   
. \( _8 u# s7 p  k7 ]  -> 32   
% D; w; t& Z) Q; f- d   
: U" S0 v, D* S6 k$ I* H" b2 ssign(n)  
# j2 Y9 `: o6 @$ L' d1 A  ^返回参数的符号(为-1、0或1)  3 U, J: h. ?7 e7 }$ I
mysql> select sign(-32);    / Q( C4 N) {& b+ b* }% K
  -> -1   
2 d1 f9 U" ^6 o* v1 ~* Cmysql> select sign(0);    0 X, S; f9 A' ~9 [7 Z4 B
  -> 0   
. M6 m: U7 k" ?! }mysql> select sign(234);    4 {& M! F" F4 z/ ^
  -> 1   
% }+ [7 V- J) I$ y# z! ]. c 2 {  U) {7 N. ?7 `
mod(n,m)    9 W, u' w! N. |& n/ _7 q3 Z
取模运算,返回n被m除的余数(同%操作符)   
4 M# p3 m& r0 S8 P( N+ rmysql> select mod(234, 10);   
+ m5 V5 D' J+ m. F3 |  -> 4   
" m* b# s/ ^3 Omysql> select 234 % 10;   
# ^7 J4 Q" Q& X5 i) _  n6 J& m  -> 4   
( Z9 V8 Q0 p, m* f# \. zmysql> select mod(29,9);    8 A! g* s7 Z4 [
  -> 2   
$ d. E/ T# b4 l: r# N* q   y* n: g8 v; e
floor(n)  
& E# R! l- ]3 a  Q返回不大于n的最大整数值  
; i) [& A9 e6 X9 \/ tmysql> select floor(1.23);   
/ `9 M1 q+ q) P/ M. q  -> 1   
. j; C8 n, S2 E1 l' S9 w9 f" _  tmysql> select floor(-1.23);    2 h' p" ?9 d. N3 w) S# \) ]
  -> -2    ) N- K1 I! q8 \4 U/ T+ T5 b
" }) r# g: I- i
ceiling(n)  
1 d1 W# S) n- H& H9 \6 [/ e. q1 D返回不小于n的最小整数值  . z8 Z# }- I! y2 w5 |% K! M
mysql> select ceiling(1.23);    ' W  `3 J# X- ]$ q/ K
  -> 2    " p+ \3 H' K) q/ ~4 u! u
mysql> select ceiling(-1.23);    - i7 f$ A4 _4 e1 I
  -> -1   
. g1 @/ o* R: }9 v: A4 F % B6 j- g! K) |. ?2 B/ t! ^; B3 i9 k" [
round(n,d)  * ~3 `2 X+ O# a2 C3 x
返回n的四舍五入值,保留d位小数(d的默认值为0)  
  |1 G: k) J7 P  o) G9 N0 z- P. G! lmysql> select round(-1.23);   
3 k: R( F+ w& s- a, k( j  -> -1   
% b! ]' J: f, S( rmysql> select round(-1.58);    % o: t6 c- S9 h* o
  -> -2      K, v: i! i/ Z* R, k$ Q1 d/ z
mysql> select round(1.58);   
8 D* t+ \0 l$ W, T; O1 T! P$ l  -> 2    ; r! ^, P! R/ W
mysql> select round(1.298, 1);    , o2 @+ G& e+ G1 A+ A3 Y- |3 H
  -> 1.3    & z6 a1 s' }8 D
mysql> select round(1.298, 0);   
  e  T; O; F& A: i6 Z  -> 1    3 w' |8 E% S3 Z3 C- `5 m" s

$ c8 V0 E3 Z# H2 Vexp(n)  
! {4 n, {: o/ k$ |' i1 H. x3 C返回值e的n次方(自然对数的底)  / @: m1 ]! l: x+ ]/ e# L
mysql> select exp(2);   
6 x+ G$ m% X! L  -> 7.389056    9 f1 o) R% |2 {* {2 @* R) h0 ~5 H
mysql> select exp(-2);    ' T$ u# r7 `& \0 N* I
  -> 0.135335    5 K  E( u! D( ~7 {' ^2 [

, I* {1 \, H  u) k4 Q0 R2 _log(n)  
) @4 Y. Z1 T1 y: c' }返回n的自然对数  
1 J. k6 x9 o. r3 B! imysql> select log(2);   
. C0 u9 n1 @' a2 o2 r  -> 0.693147   
. {4 `9 k4 T7 T$ G/ pmysql> select log(-2);    2 x& B& C  {9 J  c5 Q
  -> null    5 {9 ~3 V0 Q2 e: j8 t, r
: c' _0 o# ?, o' n  n2 X( d
log10(n)  ) K3 ?' U% K0 d: s  C$ d! w* A% x0 k
返回n以10为底的对数  7 F- d/ t2 n7 ~3 J
mysql> select log10(2);    + i$ Q9 s# c1 P/ o* Y3 Q
  -> 0.301030    & V) J) Y! I$ T
mysql> select log10(100);   
8 \" m3 f' M" i& B  -> 2.000000   
& ~: F) ?$ F& p' o! r% c0 b$ Cmysql> select log10(-100);    2 X, @) K- X7 e1 r# E8 @; O
  -> null    7 {# X3 o( c9 b# }" B

+ b; U' a. D% wpow(x,y)   
$ C$ J. t8 c0 q8 J9 dpower(x,y)    + C! Y; o' ^$ U. G
 返回值x的y次幂  
2 C8 S+ Y# s7 F8 a" kmysql> select pow(2,2);      M# S3 N/ t& p: Q" a
  -> 4.000000   
9 T# n. r" f! a9 l- Zmysql> select pow(2,-2);    ) s; m: `4 n2 @
  -> 0.250000  * N8 v7 r8 I1 p. v& ]) p8 l

0 E/ J( N7 _$ J6 lsqrt(n)  9 T' H/ ^9 k/ A- i
 返回非负数n的平方根  
1 J+ N$ T9 t% I; [# w- ^mysql> select sqrt(4);    * m: V) j2 V# m& y  {( E
  -> 2.000000    : k1 Y/ R( e( ]- W
mysql> select sqrt(20);    : ?5 W/ b; d; o1 ?2 E! i- u0 q) L7 {
  -> 4.472136   
% V6 K; R4 T) B$ B# ]  W1 H 5 m2 y* Z: b6 u: @1 F
pi()   
. J0 {9 p9 z' g7 X. f* J$ ] 返回圆周率   
  S+ g) p3 {/ i* V' o6 Dmysql> select pi();    ' @9 F% K+ `. `9 `
  -> 3.141593    " {' X% Q3 z! l8 D- V7 o' S- O
9 B# X+ j7 v) s  N$ g8 s3 }1 w
cos(n)  
1 j8 e6 g, ?2 J" k& e 返回n的余弦值  , S0 s9 D0 V. y. k
mysql> select cos(pi());  
# h; D& b) {+ B  -> -1.000000    + |7 f" G! S; S5 `

( |5 n6 y9 t  z7 Osin(n)  
2 t- x' j( P: o6 G( R- J; G 返回n的正弦值   
& @' B9 c8 Q6 @mysql> select sin(pi());    & k% S3 ^8 w6 O9 A0 h5 S4 C/ `
  -> 0.000000   
) [8 w' m1 Q4 p4 m  |' v# h& t# @
  x: @% z4 H# j$ _tan(n)  & D& V2 J7 ^% I1 ^
返回n的正切值  + Q) L5 A. L. m% ?
mysql> select tan(pi()+1);   
+ A7 Z5 X0 J" @2 V  -> 1.557408    - S, `' \8 C$ i- |$ N3 Y! N0 T

6 M$ c, s* E- f' R, [" kacos(n)  
5 X' Z, g" A9 o9 @; @$ a 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  
( T: {; P) ]6 ~mysql> select acos(1);    7 l' m, ~# _% J1 [; f
  -> 0.000000   
& Z1 }4 V$ @( L) x8 n2 E: k( |mysql> select acos(1.0001);    - ?0 u6 a, B7 C/ _3 v8 D
  -> null    / D2 ~6 H5 J7 P9 Z0 v6 u9 @) j( r
mysql> select acos(0);   
6 `. `# a0 T# q. t  -> 1.570796    % M; b* W+ U; i4 p9 [7 w0 o" Y

7 U/ u4 `8 H) a  p( Yasin(n)  
+ h) h3 V' `' T% K% u0 v# C返回n反正弦值  
5 }: |% v; D, v- _6 C, Cmysql> select asin(0.2);   
" n- [) g3 D2 x2 k6 o  -> 0.201358    7 o4 G+ D0 n: i
mysql> select asin('foo');    5 g1 @% u2 _9 W! {. ^: d4 I
  -> 0.000000   
+ W+ ?7 E# k- S$ q! A9 [( ^0 d* D
2 d6 S) ?% M# t' p! s, P( Hatan(n)  * n! R# N, Y+ m' Q$ {( I
返回n的反正切值  ' C  F- b+ u9 f6 Q5 M
mysql> select atan(2);   
7 L6 n3 F! B0 Y  -> 1.107149    + i9 W( c: Q5 ^: |0 c: @
mysql> select atan(-2);   
9 O4 j' z1 i8 z! V/ }* y6 T  -> -1.107149   
" {  U  b0 Z- g  I! g( Y  jatan2(x,y)    & B" O0 f' b, G
 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  ; ]0 l3 N) E2 P+ U' h# D
mysql> select atan(-2,2);    - Q  Z4 m) u0 Y  P
  -> -0.785398    ! ~7 z6 ~# C1 _9 E
mysql> select atan(pi(),0);    ( e: v+ H: b- f  t2 B- n, ~
  -> 1.570796   
! R, f7 W8 \- U
8 C, @! R4 U( icot(n)  
8 }/ i% N+ ?0 s4 j- k. ^返回x的余切  
8 F  C5 E7 }3 k! A7 J8 {* B$ tmysql> select cot(12);   
( a! _" Z  g) r6 H$ ?  -> -1.57267341   
5 e" }. e  g: imysql> select cot(0);    ) }3 h$ `1 f0 k2 T6 V
  -> null   
" _! f: s: k% Z- e0 H( L
/ S& c2 I% B: r, Trand()  
7 c8 p4 a5 c3 V+ C  V5 g5 ?5 E$ erand(n)    1 {& u  [4 N1 f4 X% F; C& g
返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值) ( k1 F, t8 d) V

0 X3 z* w7 b7 @mysql> select rand();    2 z4 p- F" x9 S  t; @
  -> 0.5925    , t# \3 C. T! K; i- W
mysql> select rand(20);    5 W9 X! o/ s2 m9 s" s$ Y4 [3 O
  -> 0.1811   
$ N. F$ Y( \. Lmysql> select rand(20);   
. [, c# O6 u% E$ R5 T' f2 h, ]2 P7 O  -> 0.1811    # b4 `) `! O2 ~& R2 e
mysql> select rand();   
. R& ?% c) A$ p6 A5 V  -> 0.2079   
/ U% L9 d) V+ ]mysql> select rand();    , q. w3 o& M3 S4 V0 _  h/ d6 m  ~
  -> 0.7888   
# s2 Y! B0 G* [# ] 6 n( Z, I: D3 Y. b. C
degrees(n)  
& q) f, J) ~6 ~3 |把n从弧度变换为角度并返回  
8 A# T! l2 d- ]( l6 w# amysql> select degrees(pi());   
2 h# W6 E7 w+ J+ K  -> 180.000000      L9 N0 W/ ^  F' m7 }& Z' B, I
" ~. D9 E& i4 P8 O
radians(n)
: Y5 H  }/ z% e9 U" |把n从角度变换为弧度并返回   2 `" S2 d1 ?, {, {3 U% G
mysql> select radians(90);   
9 y! b8 L& j" V0 H0 B9 y! D! ~  -> 1.570796    $ \" E' n. {* x3 h
6 x" n" j8 o, F+ c# ^
truncate(n,d)   
% B9 v/ W/ c5 ?. \. I保留数字n的d位小数并返回    a( @$ U$ Q4 I8 j: I
mysql> select truncate(1.223,1);    7 c* B+ B( Z& a3 H" Y
  -> 1.2    7 M0 w1 _# R' N: D; x  r
mysql> select truncate(1.999,1);    ) F( ^. u2 ]0 Y& @0 P) ^
  -> 1.9   
# y: p- H( a& t/ Vmysql> select truncate(1.999,0);    4 ]5 E+ Z- f' \: |6 I% W* r7 I- K
  -> 1   
/ D+ K6 J0 d1 q  k  H
) y7 {, x% X. eleast(x,y,...)    7 Z6 N7 H4 s' P. ~% B
返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
# K1 z6 e! }+ _: i* `mysql> select least(2,0);   
, ?: p. q1 C0 R4 Y+ C( _( R1 n& d1 t  -> 0   
; ?$ X) h" e8 E4 h" Mmysql> select least(34.0,3.0,5.0,767.0);   
. v, D, ?3 f/ T  -> 3.0   
( _. L  U7 n# C6 k/ a0 `mysql> select least("b","a","c");    $ Q* B' q, h9 A7 A1 t
  -> "a"   
0 Y/ b; F. n5 Z: b9 p1 B. B2 D ! W5 ?6 H2 Q- ]
greatest(x,y,...)   
& A& X0 e. s5 {* {, I2 ^" k% g返回最大值(其余同least())  
, `1 o1 T" h2 N( W- O  D& Zmysql> select greatest(2,0);    2 x( Q. b' c0 C8 y" I5 {/ G7 M
  -> 2   
9 J2 X6 P3 {6 C. B% ?6 W+ L' jmysql> select greatest(34.0,3.0,5.0,767.0);   
, J. z$ }, d5 U+ `. ]- B5 r  -> 767.0   
7 M; W6 Z% f# g2 {7 @$ `) Qmysql> select greatest("b","a","c");    , V6 l9 Q- I% ?
  -> "c"     2 ]6 t9 Q& H8 _& d! s1 c

* _5 [6 B9 a; b4 t! ~3、时期时间函数 $ J% h, Q- y+ }2 s( _, B
dayofweek(date)   
8 G6 v5 A4 o" J7 w2 E" h6 Q返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
' O5 Y4 E$ K) M/ \# Q/ ymysql> select dayofweek('1998-02-03');    , u1 l9 B- @8 R8 a& R2 m, F3 H
  -> 3   
) @; T2 K/ M  F. f, q 6 J  a( F; ~: z3 X
weekday(date)   
" ^6 A3 }" @/ u2 e, B- ^) w/ \; N2 H返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
, o9 J4 }- U" B6 \3 r  b: R  6 h* M/ `! j/ g" f
mysql> select weekday('1997-10-04 22:23:00');    $ b. q/ [2 `" S0 X0 R- e
  -> 5    : O  k; X8 V( X% L2 Z3 h3 U
mysql> select weekday('1997-11-05');    " j( H/ j6 y4 j. h9 B
  -> 2    , }: x8 X- a) q
2 [+ ?4 r5 [" R& a5 E3 l
dayofmonth(date)    
& G8 F8 W+ X: x& E返回date是一月中的第几日(在1到31范围内)    2 A4 P8 a7 e9 F
mysql> select dayofmonth('1998-02-03');   
5 q# h9 w7 h  ^( ?2 e/ S  -> 3   
  L, y* a' z. N, J" x. o3 c 3 j) x( P; S' e4 c% r( A6 R4 P
dayofyear(date)   
+ @. R0 R, ?$ v9 q$ z4 \2 w返回date是一年中的第几日(在1到366范围内)    3 r7 g$ n1 t) [7 f6 K
mysql> select dayofyear('1998-02-03');   
  a. ~+ X( p7 r; F  m  -> 34   
6 V- V- x4 ~) `+ ?( {* ]- m   h) D9 `, s$ b7 V' A: I+ C* a4 x
month(date)   
+ v. ]6 i. u9 I. }: M; P9 a返回date中的月份数值    * f4 l. o7 g9 ~4 K/ G3 p! E
mysql> select month('1998-02-03');   
' O* d: q! h- h' n  Q! K  -> 2    * `( G  I& X( Y$ O' V
8 S+ V! m! W' w7 m
dayname(date)    8 @- C$ P  B* I) A
返回date是星期几(按英文名返回)  
- N" t5 Q" i' M- omysql> select dayname("1998-02-05");   
8 M# |" D0 E8 e; d$ x: ?. B  d5 W) m" p  -> 'thursday'    $ j) @) L1 Q$ X2 u! R+ ]

. O, p1 U+ f* I1 |; C: hmonthname(date)    
: @7 q/ q1 s7 g- ?" O5 Y+ ?返回date是几月(按英文名返回)  
" Q+ Y  S/ D  N( E) t8 I% Jmysql> select monthname("1998-02-05");    & `5 B% U# L, F
  -> 'february'      t2 Q/ S6 p) \; C/ x* U

3 h. f7 Q; d$ y8 V$ cquarter(date)   
% B7 d3 n; i; x- C8 a9 y: d返回date是一年的第几个季度   
# |) `; S" W' G# }9 j% z+ Dmysql> select quarter('98-04-01');    . w3 E6 D+ B. K; ?
  -> 2   
6 V, [* a, \2 g8 Z/ e( h8 N
2 h2 {; [( _, E3 R: \$ V+ C+ pweek(date,first)   . I% a3 F1 T+ T# H$ k
返回date是一年的第几周(first默认值0,first取值1表示周一是
3 O0 A/ g/ ~! S9 C周的开始,0从周日开始)  # q: g$ O0 W: D+ ~
mysql> select week('1998-02-20');    ; s% n, _; n+ m* I# p7 a
  -> 7   
1 N- ?3 k! B) h& Emysql> select week('1998-02-20',0);   
3 R  Z  Q  u. c' I: P# E  -> 7   
+ n4 `) s& P! P  Zmysql> select week('1998-02-20',1);   
3 Q( g# z" ^1 S  -> 8   
3 g1 i9 |! M, b4 P
6 R7 P# U1 D" D/ [. i+ wyear(date)    , e8 y9 n7 V/ J3 }% \% u( |3 v
返回date的年份(范围在1000到9999)   
' ]' u0 Y1 s9 P9 A/ h% O+ qmysql> select year('98-02-03');   
* x/ j1 {& [! n% C0 }9 z1 @  D  -> 1998   
+ r5 G0 Q4 H  M  d
6 V# J! u" @8 f4 a+ q! M2 ~8 \5 ehour(time)    
* a8 n: U/ J' K+ `9 T返回time的小时数(范围是0到23)   & ~, H& ^6 N7 b' \4 J: l/ ~
mysql> select hour('10:05:03');    # \- H" ]# O# _
  -> 10    $ e: \& E  M9 a# ?

9 K1 \6 ^, y5 V% D2 `8 Kminute(time)   
2 v) S8 n! W/ _3 \% O1 K返回time的分钟数(范围是0到59)    ( P$ `6 _) Q% N+ k: X
mysql> select minute('98-02-03 10:05:03');    % \  A: i0 |4 f
  -> 5   
( M" g  _% o6 Y4 J. T
! v; E  Z+ G/ bsecond(time)    0 U& c* N9 r1 r' i+ I- s
返回time的秒数(范围是0到59)     F8 Z+ ~" V0 e" w# l
mysql> select second('10:05:03');    " h; g0 W* a9 }% H0 d$ n2 W+ L
  -> 3    8 ]  S7 |9 z0 ?+ J8 V7 j
' X* v5 y' u, W+ r1 I
period_add(p,n)   
$ g2 x7 z- d" U3 a增加n个月到时期p并返回(p的格式yymm或yyyymm)    4 L. I! r, \, G) H) Q
mysql> select period_add(9801,2);    7 q7 O% O3 S5 y0 ?
  -> 199803   
# |' C8 l# Q8 }# {
" I3 T1 Q$ G" h8 j# t4 G- \period_diff(p1,p2)    # r5 v$ y" `; X' }% n# d: d( H
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  : e" J  X! k* F2 x
mysql> select period_diff(9802,199703);    ; A! {' ~+ W7 ?
  -> 11    3 C0 V( R' V" Z2 W" |' N; I( S, _
8 o: d. t6 \4 H3 f: I
date_add(date,interval expr type)  
4 H9 p9 V8 T9 k) S6 rdate_sub(date,interval expr type)    7 P; b* e4 s7 q4 y
adddate(date,interval expr type)      S6 i2 {5 G& b8 M9 L/ |$ M/ |
subdate(date,interval expr type)  4 y, R* Z7 |% A! e! ]
对日期时间进行加减法运算  ) u! s; ?+ f$ Y$ z3 G
(adddate()和subdate()是date_add()和date_sub()的同义词,也
. @9 U& w7 k: r可以用运算符+和-而不是函数  7 h* `! g8 g$ \9 j! k$ p, F
date是一个datetime或date值,expr对date进行加减法的一个表, I1 ~, Y: Z! v2 l
达式字符串type指明表达式expr应该如何被解释  
) p$ t3 W( J2 T* b' F6 E [type值 含义 期望的expr格式]:  
4 G. r3 v: s8 a9 V4 Y0 e, G second 秒 seconds    - q/ P; S* u2 t
 minute 分钟 minutes    8 `6 _" E7 n, v1 G
 hour 时间 hours    * Z0 d) x" y+ ?: f" Q$ C2 x
 day 天 days   
5 ~' S; K7 J/ m" ]& t, f month 月 months    5 L; a! h, X# ~( P# f2 ]2 z# H: X! u
 year 年 years    # k8 T; R* X' x0 e8 f
 minute_second 分钟和秒 "minutes:seconds"   
& I7 r7 b( |( |% w# u hour_minute 小时和分钟 "hours:minutes"   
6 f2 a! \$ F7 ^ day_hour 天和小时 "days hours"    $ |# A' |$ O# d: D% ^( m
 year_month 年和月 "years-months"    ! q9 p/ X8 c- Z1 X. \9 |
 hour_second 小时, 分钟, "hours:minutes:seconds"   
) ~& r* J' t$ C" [' _1 t/ e0 o" y day_minute 天, 小时, 分钟 "days hours:minutes"    : ]( o8 ~* z* v2 N2 Z
 day_second 天, 小时, 分钟, 秒 "days2 ^* {4 h2 U( e% i+ f0 x/ |
hours:minutes:seconds"
% p0 R+ N) ]9 ~1 I4 f. P) v expr中允许任何标点做分隔符,如果所有是date值时结果是一个
, L. I) W5 I; |6 C) {7 H/ d8 Tdate值,否则结果是一个datetime值)  
" G, o7 `2 V$ Q1 M4 c 如果type关键词不完整,则mysql从右端取值,day_second因为缺
) J2 Y! o0 |4 A* e0 N/ Z少小时分钟等于minute_second)  $ {, l: a, ^- y5 W2 B
 如果增加month、year_month或year,天数大于结果月份的最大天
" ~8 u1 D) y% |- X* r, W8 `数则使用最大天数)    7 {9 Q" x9 {+ i% T% K$ x
mysql> select "1997-12-31 23:59:59" + interval 1 second;  8 n; {2 \" ^1 F8 }4 O. l) Q/ a. U

) V9 e( K+ s- z3 k: m  -> 1998-01-01 00:00:00    ; J- b7 N+ Q. w; u
mysql> select interval 1 day + "1997-12-31";    ( q0 X" g) \" x# O- c# B7 z
  -> 1998-01-01   
) S, G- W" P% a8 v/ m; Amysql> select "1998-01-01" - interval 1 second;    , t$ h& k, o$ w  d
  -> 1997-12-31 23:59:59   
/ v* e% Y. g/ k9 n6 T! ~5 O; V! A6 Cmysql> select date_add("1997-12-31 23:59:59",interval 1; ?5 j5 a; f# J- F$ D3 q
second);   
0 x- e& [+ b+ Q6 z6 K3 S% d4 Z& V  -> 1998-01-01 00:00:00   
. n/ M4 @+ S! Y9 K/ i/ s  B9 Ymysql> select date_add("1997-12-31 23:59:59",interval 1
7 S9 ]. X# W) u+ a2 l  e: |day);   
6 {& ^) l; Q9 r, x$ l5 n' A4 b  -> 1998-01-01 23:59:59   
, p9 Z+ t4 z8 r( I/ ]: W9 ^, @mysql> select date_add("1997-12-31 23:59:59",interval
& d; q  U1 r: Y- ]4 w- V6 k"1:1" minute_second);    4 \  Y" F: i( |, M
  -> 1998-01-01 00:01:00   
6 z5 v. B+ @* s9 C- Y; pmysql> select date_sub("1998-01-01 00:00:00",interval "1
5 V& N9 v( w$ ^) a' e+ r8 R1 m" I1:1:1" day_second);   
# c% J6 n$ i! p6 @, O; Q  -> 1997-12-30 22:58:59    0 C% U  {$ \) B. h! E
mysql> select date_add("1998-01-01 00:00:00", interval "-1% @; e' }7 Q" |1 ]( Z2 r3 P- P+ s
10" day_hour);  ( ?& }% J6 J) X; ?  G2 b
  -> 1997-12-30 14:00:00   
% C/ h8 ^4 A$ _, s* n& S7 t- qmysql> select date_sub("1998-01-02", interval 31 day);    % ^$ P3 k: a5 ]" k3 \
  -> 1997-12-02   
1 X( {5 i8 \6 |, c* G$ T: Wmysql> select extract(year from "1999-07-02");   
+ c; z4 D7 [# ]4 g; N/ B9 [9 c$ K$ I  -> 1999    ; B5 o* W: u1 W. h! o* R: o
mysql> select extract(year_month from "1999-07-028 q& C# s& c4 l5 R) K* N# ^
01:02:03");    8 ^  Y9 q4 ?! d" J4 H/ T( f
  -> 199907    " c' [2 R  I& Y
mysql> select extract(day_minute from "1999-07-02
$ _1 ?& p) D# r. G01:02:03");   
+ V2 l% I7 F) A, Z- P% {0 P1 X  -> 20102   
* ]* d9 @+ E, x1 ]3 |7 ? ; B" k- o7 r7 ^1 s0 s, S6 [" `
to_days(date)    ! Y7 ?. B: Q& i9 o+ C
返回日期date是西元0年至今多少天(不计算1582年以前)  - i  i) b' y0 T; X& Y+ B/ d
mysql> select to_days(950501);   
  j6 G9 s' J* j: L8 H! _  -> 728779    . Y) V8 c2 @/ k
mysql> select to_days('1997-10-07');    , z! I. c- v8 q: R+ O* n& v' b! M4 e
  -> 729669   
' Q3 m: w9 M4 z4 I
$ `& Z% n( U+ ], mfrom_days(n)    ; t/ C$ ~' [; r& i' p9 ]% ^
 给出西元0年至今多少天返回date值(不计算1582年以前)   
0 O& W# A( G0 t( R3 }, Gmysql> select from_days(729669);    1 U' b! Q: S; N$ O
  -> '1997-10-07'    * B( _+ T. b8 x

* ~5 E' O5 c0 C3 f7 @# }1 e" E3 r, udate_format(date,format)    2 i% }* P' q" D* }( F, A
 根据format字符串格式化date值  6 h8 K6 S! U7 T0 x& r  n
 (在format字符串中可用标志符:  9 j, e; c9 P; C: [; H! C
 %m 月名字(january……december)   
; B5 l6 ^  U9 {, ~2 A %w 星期名字(sunday……saturday)    0 }& F) c8 i. _7 l
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)   
7 ^4 _5 ~+ t6 ]* r+ W* Z %y 年, 数字, 4 位   
4 T) C, B- r: H %y 年, 数字, 2 位   
  \- c3 c& ]* A) ?- ^! C$ }% X& b %a 缩写的星期名字(sun……sat)    , d) k& I8 f3 G
 %d 月份中的天数, 数字(00……31)    2 X& J+ d& o5 U+ N' s% W0 p
 %e 月份中的天数, 数字(0……31)      l# d$ ?) m. h$ K4 b) D: i
 %m 月, 数字(01……12)   
3 F0 ?2 e! i4 { %c 月, 数字(1……12)   
" F, F% w- D0 h9 d( c  i %b 缩写的月份名字(jan……dec)    + M. i( [9 W# _5 `1 ~; j' C
 %j 一年中的天数(001……366)   
3 ^, A$ r% f" ?; Q4 e %h 小时(00……23)    6 N: r& R* y! ~2 H0 F
 %k 小时(0……23)    & R& h* m- f3 x: Q# x/ q% l
 %h 小时(01……12)   
! q: H$ p' t. t, L( m %i 小时(01……12)    ' P$ m; r& r) {8 q& x: l
 %l 小时(1……12)    1 A# P1 \- [; y6 D- G# C; z& ?
 %i 分钟, 数字(00……59)    0 `/ }/ s" ?0 @
 %r 时间,12 小时(hh:mm:ss [ap]m)    + }1 C  A& Z+ D$ d4 Y: [  p' w
 %t 时间,24 小时(hh:mm:ss)   
0 c* ^1 C/ z$ f% f: k/ j8 C %s 秒(00……59)    + j/ I: A. M1 U0 X. d% @
 %s 秒(00……59)    0 O  n: Q4 M- M0 V
 %p am或pm    ) _( f, x/ U. A8 z6 |
 %w 一个星期中的天数(0=sunday ……6=saturday )    2 e0 Z* E6 }( O# S
 %u 星期(0……52), 这里星期天是星期的第一天   
! s9 n( ~: i- j9 ] %u 星期(0……52), 这里星期一是星期的第一天   
7 w- M5 o: q: B% u" B %% 字符% )  " p  m& e" G! t4 m% T
mysql> select date_format('1997-10-04 22:23:00','%w %m %
& }+ {! I2 K8 [; B8 xy');    + o1 q# E: ?: z5 ]
  -> 'saturday october 1997'   
% n* N- j0 J9 N- ^3 }3 Smysql> select date_format('1997-10-04 22:23:00','%h:%i:%
, M% @2 x" A: ks');    1 b6 A; c6 {6 M! A
  -> '22:23:00'   
0 c: x- K) {$ D! I9 Jmysql> select date_format('1997-10-04 22:23:00','%d %y %a
6 o7 t& z) E/ d$ D%d %m %b %j');   
: h9 E7 A3 _0 L8 o9 D7 ~  -> '4th 97 sat 04 10 oct 277'    7 z/ L; E8 U* E7 o1 B4 [
mysql> select date_format('1997-10-04 22:23:00','%h %k %i9 @% ?6 R& q* t) S
%r %t %s %w');    9 V, L* A6 A7 R! V$ i
  -> '22 22 10 10:23:00 pm 22:23:00 00 6'   
( \3 c5 J) j8 ]* d- K8 U3 G6 @
- v; {4 V1 d$ S* _: Mtime_format(time,format)  - n8 B6 @2 r6 |1 f4 \7 w
 和date_format()类似,但time_format只处理小时、分钟和秒(其
) P$ E+ h. C5 w0 [6 c8 V余符号产生一个null值或0)  ! i& O8 E0 G9 f
4 a) B% `) F2 s0 O
curdate()     
0 F2 G$ j$ E: Q* X8 ^6 n  @; ccurrent_date()  
3 @: z7 I  I  `1 X2 a# n 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
+ l0 U+ g9 n( R' ?5 O处上下文是字符串或数字)    & ?9 a; e( A  ~" f
mysql> select curdate();    : s- D' K7 j8 S8 O/ u' |
  -> '1997-12-15'    2 _* T! x4 M9 o! M0 H6 Z
mysql> select curdate() + 0;    8 |: U4 A; p! l+ W
  -> 19971215   
8 \/ y8 F. Y% Z) o9 \4 ` ! ^; K  w; W( b4 T
curtime()    0 R+ d; q- [$ X2 P; H! J
current_time()  
! Q0 M4 ]+ V, ?' I1 ^ 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上3 x& f% B, ~# M, Y# b
下文是字符串或数字)      
8 O- p: R( p% w! Qmysql> select curtime();    + I% S1 K) ~+ w1 `: L7 I5 Q7 }
  -> '23:50:26'   
! A: S$ N/ J, N7 u+ M& Smysql> select curtime() + 0;   
% U: T3 P$ L7 X  -> 235026   
! H% {7 }/ R* T6 |
. e0 h7 s8 r0 Y0 |now()    
: \( ^* c" p; T. rsysdate()    5 [& v0 S% s) L
current_timestamp()    b% X& i0 s+ q6 U! y1 l5 g
 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期5 _, H  @0 v- ^; j( X) ?
时间(根据返回值所处上下文是字符串或数字)     " H9 Y0 x# w. ?- s. g& P
mysql> select now();    2 F' }/ y! N/ Z5 r% S$ R$ U
  -> '1997-12-15 23:50:26'   
. ~' H% ~+ V' V( n2 b9 n4 Xmysql> select now() + 0;   
( o5 j7 ^& z5 @! J* ?8 f, ?4 M  -> 19971215235026    0 y0 g0 e% ?. X4 g

& Z, U( O* Z% Y" l8 D. Ounix_timestamp()   
4 L4 O5 U  a! @! Lunix_timestamp(date)    ! d, ]0 ]' |- Y" |/ a" w4 W+ m0 F/ o$ X
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒; Z$ c# Y1 r( D, [, |/ G  r
数,date默认值为当前时间)  
6 @* b5 k, B# x# h5 a& n0 ^1 Vmysql> select unix_timestamp();    $ G' B) d7 p. S' v
  -> 882226357    . v5 Y! O, G) x# E, \
mysql> select unix_timestamp('1997-10-04 22:23:00');    ' I) L+ H- v- ?8 w5 w, G! b
  -> 875996580   
" _* ?1 O9 {% j0 J! ]
2 y- \# T: p- Z% C9 }1 v( z' afrom_unixtime(unix_timestamp)    6 r, }: ]7 l7 `
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的
. i; V2 j% E6 r值(根据返回值所处上下文是字符串或数字)       E& R; y, V0 r* ?" ]! I
mysql> select from_unixtime(875996580);   
& M  Y# R- p/ Q- _6 S; V# E  -> '1997-10-04 22:23:00'    1 v( P( Z& _7 [$ ?; i
mysql> select from_unixtime(875996580) + 0;   
; I1 f/ @0 {9 f6 j7 J  -> 19971004222300   
$ O9 O9 o! V# ]7 h0 S8 v
5 G& l- I& J  _; u8 B  P' i8 ^' sfrom_unixtime(unix_timestamp,format)    
" Y2 t! r0 ~9 \  o以format字符串格式返回时间戳的值  
8 ~1 _; V' [' }$ u( R0 [4 Q& |mysql> select from_unixtime(unix_timestamp(),'%y %d %m %
, F6 Q1 X" }+ t& q% ?% t/ m1 s+ ah:%i:%s %x');   
! J& ~$ c3 N; c+ z7 {+ O  -> '1997 23rd december 03:43:30 x'    8 V/ I" w  O0 P/ i4 y, P* s
+ p  N% N+ b2 X5 S. f
sec_to_time(seconds)    2 X# ?/ o8 y, J/ j8 i
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
! a9 |! m" n9 w9 imysql> select sec_to_time(2378);    2 n' e9 \9 G+ c- t8 L
  -> '00:39:38'    3 G/ R5 y) w8 y5 q% L
mysql> select sec_to_time(2378) + 0;    - R! b% x8 B2 ]$ G! t. n
  -> 3938    " q5 u" o) v/ W9 c1 c+ \( Z

" d6 A8 D% Y  P+ h2 k% j5 mtime_to_sec(time)   
# e( I* J8 B/ `/ `' g1 Q0 A返回time值有多少秒   
. h9 s% k$ Y! n4 hmysql> select time_to_sec('22:23:00');    1 h& O5 @2 I0 ~7 |+ q$ Y
  -> 80580   
0 P) E  [  c1 s! Y. Fmysql> select time_to_sec('00:39:38');   
+ X- I  f; N. p/ K  -> 2378 . u3 I8 M8 {4 v! f. K) i

8 L+ V8 E# C2 v: F9 S& j转换函数. B4 |$ _2 A% C. d$ O4 ^
cast
0 N" t2 ?  S' s% X) T% r用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]
: g+ q8 N3 r1 j4 M7 \实例:select cast(a as unsigned) as b from cardserver where order by b desc;3 ]/ c# l  f8 H4 T, B7 {6 Z$ k
convert:
1 q3 L2 n7 s) l$ R: h2 i/ Q6 V用法:convert(字段,数据类型)
7 c) j) M3 I5 W2 Q0 w实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

) D6 x; p1 D" U# j' r( ^/ M& ^: Z  z
回复

使用道具 举报

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

本版积分规则

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