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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数, U. i" R1 t$ m, D+ A+ \: ?5 q
ascii(str)   
" T3 b% d2 b/ n& Z3 c& w返回字符串str的第一个字符的ascii值(str是空串时返回0)  8 q; O9 D8 U! X: j
mysql> select ascii('2');  $ ~1 o9 ^( J3 t3 B- t3 Z, ]% D5 |
  -> 50  8 h3 b& k/ M. g4 z4 j$ S: c+ P
mysql> select ascii(2);  
; H/ R5 x( g& f5 d' y( G  ?6 w: G8 f  -> 50  7 c* e8 S3 D% B" k' O! i* Z
mysql> select ascii('dete');  9 {; R9 \% C6 Z( l7 [3 l, U
  -> 100
& p, u2 Q  s# s/ ?; H& K
ord(str)   " W" Z. M) u& w, x* A" m: M& r' o
如果字符串str句首是单字节返回与ascii()函数返回的相同值。
! o0 Q" [  H. t; w  B  [ ) i0 q( Y2 ]% Q* C2 v  P, L
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  
, j4 e+ J0 {: R4 ]mysql> select ord('2');  
, @9 ^* |7 ^9 L8 q" v  -> 50  
) x: d: ]0 n1 |6 i; L6 x- s   
5 g& G) _6 I4 J: b5 l& Y5 \conv(n,from_base,to_base)   
; o4 {& F/ y0 N6 U) M对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)    w2 x+ x: u5 {5 _: |8 I9 W8 [
mysql> select conv("a",16,2);  ' n0 D# \" N5 B6 z9 t
  -> '1010' * d2 x2 R- ^1 Q4 q* _$ h6 E- e* h
mysql> select conv("6e",18,8);  , B( C3 d; v. Q: c/ f- U
  -> '172'
9 I! o. h( ^! P+ n& H# C% Omysql> select conv(-17,10,-18);  
  [. x3 {/ U5 Y0 u  -> '-h' ; t9 x7 j: J3 Z0 S" V
mysql> select conv(10+"10"+'10'+0xa,10,10);  
" F2 p: ^' ?) U( R0 H  -> '40'
  `" m+ p% f7 @# r' J   
  `& T. @, z- g9 Y; a( S: pbin(n)   4 V; {" }* r/ |
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
5 M9 d( z, ^0 l/ T& Mmysql> select bin(12);  # D# m8 v8 L$ [& S8 ?0 x5 C
  -> '1100' : `0 t& w+ S/ d5 g
+ \3 q& q$ F1 i3 n! Y+ r3 G
oct(n)   
1 [2 M$ _% S" g$ v把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
3 c! i, L) h- |8 W, F1 D) P; gmysql> select oct(12);  
: b: w" X+ H& v- j  -> '14' 5 X; i/ X: ^; W3 L: R2 p& U* D  ^, c
   
, u+ b  Q  F. f- u! d& bhex(n)   
. C3 x$ Y' o: z( z; v把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  
& N7 o: e6 J( ^4 H6 Lmysql> select hex(255);  
* g/ c! u# u1 |/ J1 T( b0 r  -> 'ff' * z' f) M$ g, q7 U
   
' ~8 J# g) F! R+ `' e/ g2 _. xchar(n,...)   
! K. w' t# s$ g( q: c返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   
. ?# D5 m( @+ j+ e& |mysql> select char(77,121,83,81,'76');  
2 s2 ~" {; \! }( h( C/ E1 I  p+ p5 l  -> 'mysql'
; V+ s* N9 a( W: Bmysql> select char(77,77.3,'77.3');  8 k. }8 N& V- L: Z" g& Q
  -> 'mmm' 0 j* {; R+ {4 B. E, S
   & |# q$ r; m* h; Q  R6 Y
concat(str1,str2,...)  
- m$ O# u+ p8 u: e& F% n把参数连成一个长字符串并返回(任何参数是null时返回null)  
9 t. v2 r) r' e7 P! o# Q5 Mmysql> select concat('my', 's', 'ql');  
& A4 X4 h: c' t+ f: Y  -> 'mysql' 3 z" U* h1 W7 M6 X& A' P
mysql> select concat('my', null, 'ql');  
  j; ]: D' k4 |, h/ k4 y! k  -> null
+ O" L3 u: E: jmysql> select concat(14.3);  ; T+ S8 P, q6 s6 H* M6 F" y3 \
  -> '14.3'
& B/ i. S: j8 X) }$ Y# R0 l4 \ # P5 S+ Z# \" `9 X4 P
length(str)   
9 X) F( u3 @( Voctet_length(str)  " n5 A* X+ R! Q) d' d
char_length(str)  / N3 j5 i0 p* v3 P
character_length(str)  
: x7 d2 Y/ z  ^8 Z/ b返回字符串str的长度(对于多字节字符char_length仅计算一次), F' w6 l. ^( f$ U$ }
mysql> select length('text');  
$ q8 M' i- S5 z5 i! _7 D6 P. G; @  -> 4  
8 h, B' R- J2 v' `, Umysql> select octet_length('text');  
, J; P/ e- U$ r% p7 M& m  -> 4  ! e* K0 i' [) _! g; V- Y: m3 T1 u
0 k( q* D  ^1 [
locate(substr,str)   % D: m& F: \# W* @3 z8 R
position(substr in str)   ; P1 `& O- _0 x! M8 ~* r/ M
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
% g2 C3 D; d3 J7 W9 W+ bmysql> select locate('bar', 'foobarbar');  
% K' B! k1 i" {. u  -> 4  
! X: W5 h# m% Smysql> select locate('xbar', 'foobar');  & C) f* S1 n& \
  -> 0  
2 s9 F  B5 N8 _) H2 {6 L3 S- T    + b5 I( L- N. |2 X: P( P' N
locate(substr,str,pos)
+ {: u2 d2 E) a. p- i4 S% H! ~返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  . g5 a/ E! C! E  H% R
mysql> select locate('bar', 'foobarbar',5);  
. y: H! D9 a. v2 H0 q* J  -> 7  
5 b  @  k, a8 q9 K" V
$ b- {" ^% {8 Y' Rinstr(str,substr)  
/ B% E9 l! E) t) ]' m5 P1 n. R; y, {返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  ! y, B+ i9 W" e
mysql> select instr('foobarbar', 'bar');  
0 Q2 Q" N- }2 \4 C: }4 M8 z" w2 c  -> 4  4 M4 b9 g7 P8 P, @
mysql> select instr('xbar', 'foobar');  
, ~& y' a3 i/ S* a  -> 0   3 I2 W; n4 w2 r/ l, c6 X
. @6 d5 ^1 o! Y0 U3 o3 h
lpad(str,len,padstr)   4 G7 Z7 U0 H* x% y) D' u# [* B
用字符串padstr填补str左端直到字串长度为len并返回  
4 [; r7 e2 ~' }( h( W- h! emysql> select lpad('hi',4,'??');  
; J) A, i% ]- l0 `, t. b) Z  -> '??hi' : d  o# I  M0 h# ~( q  K5 L. \
   ) C# R7 |5 ^0 q1 C) H
rpad(str,len,padstr)   % x2 h0 F* d% r+ _" |% w/ {7 t
用字符串padstr填补str右端直到字串长度为len并返回  % D; C4 M; ]  |( W4 ?# e
mysql> select rpad('hi',5,'?');  ! ~# t) F4 K. h
  -> 'hi???'
. B5 R, K0 h; g0 Q
7 q- b5 u. ]) T# s5 F* }; x4 p* K* rleft(str,len)   ; y' T1 g# w3 f1 V
返回字符串str的左端len个字符  ! o6 l; A% X' V% Y
mysql> select left('foobarbar', 5);  
+ r# H' h( H9 ^# M$ `+ l0 Z  -> 'fooba' * R5 J! L4 B; v8 q0 t6 U

5 [- {6 M0 Z0 _& ^% K8 ?right(str,len)   
3 e( _3 _! |. m$ Y返回字符串str的右端len个字符   ) |  u6 G2 s7 _9 e! n
mysql> select right('foobarbar', 4);  
- e# I$ j, a: V& P( n  -> 'rbar'
5 ~0 N3 }* E9 _7 f% _) h
5 c4 _* m6 V! T, W. ]substring(str,pos,len)   ) {8 ]" `/ S! X9 j! E% X9 l
substring(str from pos for len)   - E! M2 `# N* A
mid(str,pos,len)   
0 Z& w: q6 P% ]% q8 a  X3 s返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  2 o  i8 J. }+ P# |1 B
  -> 'ratica' 1 h0 W# f4 [: b4 q& L

+ t) M4 s5 Q- r& D: xsubstring(str,pos)   
' @: ]4 J" f6 p  i( Qsubstring(str from pos)   
0 o! ~  A4 s0 Y: h+ p; p8 }返回字符串str的位置pos起的一个子串  3 [$ a, W) q; x" V7 u
mysql> select substring('quadratically',5);  5 q3 g) n, p% u3 H5 n5 M4 h3 K* P
  -> 'ratically' # B  l# \) S3 t( P7 b; u
mysql> select substring('foobarbar' from 4);  
9 l3 _  R( Q% R  N  -> 'barbar'
" c9 `& y- H% l5 U) m
9 T+ H& M" r4 A- Q8 h0 Msubstring_index(str,delim,count)   
5 d* g3 s" I6 b$ t" e  A3 k) I返回从字符串str的第count个出现的分隔符delim之后的子串- G. D) Z" t$ e, j9 U& O5 K8 r! \
(count为正数时返回左端,否则返回右端子串)  
& c5 i, z. l5 {5 b7 Kmysql> select substring_index('www.mysql.com', '.', 2);  * W1 d& v6 ^6 f0 I
  -> 'www.mysql'
* z, _( J% ^$ Xmysql> select substring_index('www.mysql.com', '.', -2);  0 F+ ]( E) v, s9 z; z  _! j/ Y& q
  -> 'mysql.com' ; s  H4 b3 G- F9 ]. ?* _6 m( {

) U. ]/ g; Y+ j& `$ _6 J# cltrim(str)   
5 @) g/ Y0 M! y/ ]6 W7 K# s返回删除了左空格的字符串str  9 P3 T% h% G4 c( N5 Z
mysql> select ltrim('  barbar');  2 q( Z6 A5 o4 X/ [5 T
  -> 'barbar' 3 L$ }9 [/ q* g3 x
9 _* B1 r7 I0 l9 @, {% r6 o) i
rtrim(str)   : }% x2 y8 {( ~- E+ t  C4 M
返回删除了右空格的字符串str  
* ?  [! q* v- P1 i* q) }mysql> select rtrim('barbar   ');  
6 J1 ]9 H" K- a  -> 'barbar' + r6 w, i9 P- P6 c+ z

2 ?8 D9 s& \% `* W% a# C! h, J0 W6 Ttrim([[both | leading | trailing] [remstr] from] str)   $ V& g/ ^- t& S! m- C
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)    O' K0 ?& S! v1 r8 I
mysql> select trim('  bar   ');  
% c. f. X3 y9 C; h$ T  -> 'bar'
( ~8 F3 m3 R8 z, n9 ?mysql> select trim(leading 'x' from 'xxxbarxxx');  ; q+ {% n/ K* y/ U
  -> 'barxxx' 5 s3 @# y; i/ J2 P; ]+ `  b
mysql> select trim(both 'x' from 'xxxbarxxx');  
) q, y8 ?7 T5 _1 G2 k: a  -> 'bar'
8 Z& b. K& b2 w" A/ b" m1 \mysql> select trim(trailing 'xyz' from 'barxxyz');  
. P1 y; W9 C; O$ J# f+ @  -> 'barx'
) j0 S$ D& I; a( _3 q4 a
2 d. C5 U3 u9 A# @soundex(str)   $ U1 |; \9 M' I; \/ m" k& ?! c4 ^, a  E
返回str的一个同音字符串(听起来“大致相同”字符串有相同的
  d5 x- q9 c# m; b" G同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  
; r2 d: V7 T$ B  r0 Pmysql> select soundex('hello');  
% c3 k% N1 c# |. o- \3 m6 Q  -> 'h400' 4 h& c3 s/ T, d; J. ^) h/ k
mysql> select soundex('quadratically');  
3 ?" d$ R( L/ U' J/ f  -> 'q36324'
2 g1 d! Z$ o+ v/ G* t* @   
9 i9 J5 y" `' V5 @( bspace(n)   
/ f0 o3 [0 V# g; _9 Q4 v4 K返回由n个空格字符组成的一个字符串  4 f6 X; @; D4 l( _7 X+ e" K
mysql> select space(6);  
: V0 N9 ]. N- V" ^  -> '      '   m" b3 T1 }+ n6 d
   ) s+ B/ S3 c5 }' q: T; l# S0 P
replace(str,from_str,to_str)   
3 P  ^& ^+ ]4 R; K( W# U7 K用字符串to_str替换字符串str中的子串from_str并返回  7 E7 I# X4 v. S8 @4 v8 t2 k
mysql> select replace('www.mysql.com', 'w', 'ww');  
. P! A# T8 s7 m; s; S. S  -> 'wwwwww.mysql.com' 8 p8 p# b: Y& f3 [! [$ @
+ y& S! y4 n/ P
repeat(str,count)   0 N- E# ?4 x" F
返回由count个字符串str连成的一个字符串(任何参数为null时* n! |' I, u, Q+ k2 t
返回null,count<=0时返回一个空字符串)  
& U& F) g3 b! j0 }6 [mysql> select repeat('mysql', 3);  
+ h* C) u/ }' d3 ]* e& T4 e* p  -> 'mysqlmysqlmysql' * E. y! J+ h. K0 j1 V
   0 X) ^; W8 {) Z, ~8 d& L
reverse(str)   
6 h, F# q! c1 D1 o颠倒字符串str的字符顺序并返回  & ^4 {, y! L& Y+ C: `; r$ F2 ]
mysql> select reverse('abc');  
8 h! R. v5 L( E* f  -> 'cba' . j1 I- N1 n8 y

5 h  ^' D5 ~' z$ o& Ninsert(str,pos,len,newstr)   
! Z' @5 I- Z+ a1 B把字符串str由位置pos起len个字符长的子串替换为字符串0 I# E: ?+ E: R( b9 g/ ]
newstr并返回  + h6 r2 A6 O; W4 m8 r/ d  K
mysql> select insert('quadratic', 3, 4, 'what');  " c7 X  _6 z5 a* S0 D7 V
  -> 'quwhattic' 4 [+ a2 \# T5 L) a, @
- P4 o- j  ~1 }1 x! {0 s- J( q
elt(n,str1,str2,str3,...)   
2 N) A- _0 Z; J返回第n个字符串(n小于1或大于参数个数返回null)  ( o# |( c/ b0 K7 B
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  
% Z  E$ B, C, V  -> 'ej' 1 U3 K5 _3 h# b& n# s+ o
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  
3 C% n3 d! x8 s  -> 'foo' 3 d3 v$ z; K1 C% z% Y1 v

! S* C5 M1 ]" c5 b- ?field(str,str1,str2,str3,...)  
- ~7 G5 W* b. ~返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
" Z$ }" }5 ?, Umysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
3 G# n# h& E- d0 w'foo');  $ q5 c( {: ~. O2 q
  -> 2  ) Q/ u& \0 p6 Q$ p+ ^
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
. g2 _2 I, k/ e! o8 z1 c'foo');  
( a/ g3 M) X3 V" S) T  z/ U1 B  -> 0  
* A4 ~$ k8 }4 W$ `; F6 |, [+ |
& s0 ]) g& W' [) Lfind_in_set(str,strlist)   ) ]' R0 M2 N- m9 z4 t  l# p
返回str在字符串集strlist中的序号(任何参数是null则返回/ ], j# a' Y; X8 O- Q
null,如果str没找到返回0,参数1包含","时工作异常)  
, M$ B) h- C. zmysql> select find_in_set('b','a,b,c,d');  9 s$ F$ r! n3 l/ O4 s3 q
  -> 2  
3 C$ x8 w+ m6 p   
8 c) S1 D& g% Hmake_set(bits,str1,str2,...)  7 S4 K" k: ?9 L9 m
把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
3 z5 d) m! w9 s位置的字串选入字串集并返回(null串不添加到结果中)  
% f0 h( T" S5 J- K! Omysql> select make_set(1,'a','b','c');  % i3 B2 D4 \+ g# x1 X
  -> 'a' : v+ z- h# S; P& `! i
mysql> select make_set(1 | 4,'hello','nice','world');  
+ C1 V& W  z. q- n  o- r  -> 'hello,world'
9 U# r) L+ C& [9 o; x# {$ kmysql> select make_set(0,'a','b','c');  ) K% z: `8 N1 v& K3 r$ I6 S
  -> '' 8 Q$ m8 T8 y2 b# C! B: g* l
8 ]4 W/ o! d: k: \4 o( C( y& s$ }
export_set(bits,on,off,[separator,[number_of_bits]])   
, X" j( N! p2 }5 H7 B) Z5 M9 V8 ~按bits排列字符串集,只有当位等于1时插入字串on,否则插入1 u0 W6 ~& M) @3 L- w1 f5 r4 C5 a
off(separator默认值",",number_of_bits参数使用时长度不足补0
8 }% k9 ]& @% L而过长截断)   ; a1 p# n# b( M" l9 i
mysql> select export_set(5,'y','n',',',4)  3 p3 d) C3 p9 z; h5 a+ x/ R' V
  -> y,n,y,n   
+ R# r: G; v/ M8 W+ X$ ~0 _- n   r! [! X9 m/ `& c4 S
lcase(str)  0 o. G# Z, I8 d4 f$ q) [- h' j. o6 ]
lower(str)   
) j' w% {, Q" z9 Y返回小写的字符串str  " T2 Y2 X  W9 K( |  q9 r- L
mysql> select lcase('quadratically');  ! s$ ^2 |, g8 K# q
  -> 'quadratically'
5 g& l% K3 S% B4 u6 [% |   % w3 I7 w/ f0 ~7 X. |
ucase(str)   ( b# H! u+ L+ S! f# I. p5 x. K% R
upper(str)   . ]6 k- k% h1 j( {% X3 r
返回大写的字符串str  4 c9 ]7 ]- R' C
mysql> select ucase('quadratically');  
+ ^( F4 v2 c) k  -> 'quadratically' # \4 S; t- S. U) ~
8 l5 ?3 S2 J; Z8 x9 o& e3 \
load_file(file_name)   
2 L* F, L/ Q! n3 e读入文件并且作为一个字符串返回文件内容(文件无法找到,路径
9 o1 X$ Q; U$ B7 I3 E7 s不完整,没有权限,长度大于max_allowed_packet会返回null)  ( U0 T' g8 ^+ H1 Y, |
mysql> update table_name set blob_column=load_file. j& J) h3 _0 M" r
("/tmp/picture") where id=1;  * E3 b1 x, l0 c1 P4 ^& h3 b

% w0 g' W# J% g/ K5 A( r2、数学函数6 }2 L! s8 r  x( Y: O4 P3 u% A
abs(n)
, V8 M) t' N% v7 j9 l: T* l# [0 V6 a返回n的绝对值  
5 I* q8 ]8 Y% P% H' p0 Rmysql> select abs(2);   
! T' U* A+ Y0 Z& b$ w# m% @$ l/ ?  -> 2   
0 p# o/ @4 k  E4 k+ x% smysql> select abs(-32);   
9 ~8 J4 q" R  s9 f: k1 L5 Y  -> 32   
9 v$ \) s  |* y' t, G% n   
* K( ]! S: c* Wsign(n)  0 K5 m4 [8 u$ r4 V  V5 {# b
返回参数的符号(为-1、0或1)  
: @; Q' I/ D. d9 T" e2 |mysql> select sign(-32);   
( X+ e( w  V/ T" Z6 W& q8 Y: W" A5 L  -> -1   
( p6 k0 o( V, m/ amysql> select sign(0);    & s- X7 c- O: d! Q4 }+ t' U
  -> 0   
" E; N) j$ n* g# D  D+ Q8 pmysql> select sign(234);   
8 T& M% C8 w5 }$ F+ s6 P  -> 1   
0 R! ]% _$ h; z, }% P
# R& ]7 F3 ^$ _* W* ^2 Gmod(n,m)    ! ~; U- H3 ^) g8 T  t
取模运算,返回n被m除的余数(同%操作符)   
  B8 Y' q+ a) f% |mysql> select mod(234, 10);    , W% p) \# q+ R8 w6 z1 w% |) A8 z7 g2 X
  -> 4    : P- A% P5 a  d; s
mysql> select 234 % 10;   
5 ]: A( S0 V, q4 |* q! v- K( o. ^  -> 4    0 t8 M( L; _/ S  G! h6 A
mysql> select mod(29,9);    $ T3 z) R7 R7 |1 H) x
  -> 2    " x9 C6 e( m2 o) z
  |8 _6 A: w* V( R
floor(n)  9 p' w  ~, @3 j8 R. D" Y/ Q
返回不大于n的最大整数值  
* O" Y+ Q* [+ e# `/ `* |# l( u  qmysql> select floor(1.23);   
: W; ?1 Y& @: E. {) c% \' J( T  -> 1    / ?/ F, p1 V( X2 s; ^; D9 ?
mysql> select floor(-1.23);   
% g& d  J- X; u  w  -> -2    6 y4 |9 ^1 c- G% ?2 ]" P
( n. C+ b: {# s9 w
ceiling(n)  
, V3 c# `, x- l返回不小于n的最小整数值  
  i; N" d) S/ ~# W. ]7 [mysql> select ceiling(1.23);   
  \0 @% t$ s8 F5 B  -> 2   
1 z: |7 G+ N7 |- wmysql> select ceiling(-1.23);    ' m, `1 {! ~- Y3 ]8 ~7 u+ |
  -> -1   
2 q& t% W; z% C- ?. e9 Y% S 7 @# K( e& v( ?( d9 ^) s/ I3 P
round(n,d)  
3 |/ J; f& |: P返回n的四舍五入值,保留d位小数(d的默认值为0)  
. k: T" |3 g8 j; |" Amysql> select round(-1.23);   
0 r% T4 p; E: L+ Y% {6 B# F: e* G  -> -1   
1 f! Z2 Z% i9 }. R9 y8 ~mysql> select round(-1.58);   
* \5 l9 J3 B; Y  ^* g2 m  -> -2   
; [& z4 A( O  P: {mysql> select round(1.58);    2 o7 w' D  S- U* l: @3 s
  -> 2   
' I3 }4 l8 d/ K. \$ Bmysql> select round(1.298, 1);   
1 f! E9 e7 d7 k; z" `  -> 1.3    ( h" H- m. z2 i
mysql> select round(1.298, 0);    ' ]3 c9 X% `( Z
  -> 1   
: ^; ]# {$ X# X+ Y8 ?! v
8 C  N3 k% \" H8 c7 ~' n6 yexp(n)  . r/ b% e/ i; M2 Q' }# s
返回值e的n次方(自然对数的底)    |- l/ {+ R3 j: y5 h# X, F- l+ {
mysql> select exp(2);    & w9 A. h- R" w
  -> 7.389056   
4 n; s+ n( @7 I+ kmysql> select exp(-2);    % p, ~3 ^* F. I% u' {8 W. O
  -> 0.135335    . J9 S; a4 V2 `# D) Y
" J0 {0 ~  z: F4 `
log(n)  6 r7 i9 S2 C$ G4 Q, G! g
返回n的自然对数  
/ Y* z* p9 q% {( W3 c" Fmysql> select log(2);   
; s4 ?, ^4 w8 {# o) h& O) d# m# |6 `  -> 0.693147   
0 t& C. L0 v! V& A6 ]6 nmysql> select log(-2);   
  f6 _$ d- g* }8 F/ e  S4 C* ^  -> null    % y* F& l7 Z% D" M0 P
) O, Y: j6 y: _7 V
log10(n)  
& j. |# D, A* k" T1 Z! L返回n以10为底的对数  
7 n5 P) z! O* W2 l+ Fmysql> select log10(2);   
9 g& e5 ?/ M& t0 z  -> 0.301030   
! g) M: T8 ?1 K/ s3 e$ Qmysql> select log10(100);   
( b. ?8 H/ s& h& Y1 I7 h6 a7 M  -> 2.000000   
5 r/ N3 P, a' n- S* f1 R0 Emysql> select log10(-100);   
4 @+ f( j) F; H9 e  -> null    ; q) W4 P" C6 h4 b% K7 u* n$ a% n
8 L/ r$ H+ Q! V% y
pow(x,y)   
2 n, G7 s$ S  h- {4 @power(x,y)    : `) O( J* e/ q$ o7 A
 返回值x的y次幂  7 d7 t1 m: ~* _+ l+ y
mysql> select pow(2,2);   
6 I# R4 s6 U9 q  -> 4.000000   
3 u9 b9 t$ H: G5 Bmysql> select pow(2,-2);    ! g8 {( p' x2 ?* R$ O$ D; E% Z
  -> 0.250000  5 H' s: C0 k  n

! v0 T3 X( `8 O0 R( Isqrt(n)  1 t+ z4 w* \' j( B; N2 |& |( h3 X
 返回非负数n的平方根  
3 x; @: d6 r, p3 w7 _5 Smysql> select sqrt(4);   
# K) z' n- S6 G) P' N6 Z3 j7 l  -> 2.000000   
6 w% c- p9 i0 N1 ]& |( fmysql> select sqrt(20);   
# {9 L1 r3 N- G9 B  -> 4.472136   
2 I% }/ E# {* E: c% { 6 v3 V( ?" D* b8 Y
pi()   
, n( {) e' q; v7 j& n7 K 返回圆周率   
7 Y4 u8 w" o9 Gmysql> select pi();   
- d9 [1 _& P' T9 k) x  -> 3.141593   
, D  w9 K0 R, I4 p3 Z, i
) k6 h+ m7 _* R7 z2 o* ycos(n)  
! x. Z, u; S+ k5 e; l3 B. y! c% P 返回n的余弦值  
# i6 p* D9 P5 y0 l0 O4 cmysql> select cos(pi());  2 |: T/ U1 u" R
  -> -1.000000   
) F  [. M/ b' G* m1 \$ G" J
8 D8 ?8 Y/ _$ e& U; ssin(n)  
" |, U; S5 x6 y 返回n的正弦值   
) _+ Y2 k! `0 X6 Q/ ~: cmysql> select sin(pi());    ' M$ \# V; d- Q9 r
  -> 0.000000    ! \' i" t( o) m" D1 I
8 y+ T* o4 q3 P% l, [2 M" ^
tan(n)    p! [7 J# f* ]! a& r
返回n的正切值  
6 d- f* D$ S& N7 Y4 H& Hmysql> select tan(pi()+1);    # o2 d+ f' h3 Z" ]! g
  -> 1.557408    9 [) C  \- X& n) h

7 t; |1 Y- G& ]$ Y8 P$ m; O- Facos(n)  
  {  `  N5 z1 W; @: e  R 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  
4 V- l1 J7 I" X6 ]- D" Vmysql> select acos(1);    8 E. F1 T' y* w; f
  -> 0.000000    6 W. N+ n/ C7 X) ]1 }0 k, W
mysql> select acos(1.0001);   
! b7 [& n4 k+ g+ j  e% I; ~/ Z  -> null   
. f  I( i9 w8 U/ L& E8 emysql> select acos(0);   
& C, I, Y- m, w; X; X/ y, f  -> 1.570796    . ~2 t# J# }# u" U& K' ?
% c; i0 o3 Z% v  A& U) X0 o+ u
asin(n)  * k4 w. L; z+ @- ?
返回n反正弦值  . k& K8 S* f+ J1 q4 c5 y
mysql> select asin(0.2);    3 A$ \8 H8 \: H2 U0 p! ]
  -> 0.201358   
5 o' i+ b7 _. C! {mysql> select asin('foo');   
+ v8 `! e, U  `2 M7 z5 U  -> 0.000000   
- w# ^: C2 t0 I2 g# R7 j4 ]
% a4 l/ |& [; g1 b" S. Patan(n)  & G4 |- _: x% Z& `* {* o9 L* K
返回n的反正切值  
# t8 q+ l% z- J0 g2 j4 ]! V1 L  Pmysql> select atan(2);   
% I5 o- T* H: O4 P" m  -> 1.107149   
2 L% f# L0 f0 i% R3 w) a+ |mysql> select atan(-2);    - N, D$ R8 f& V7 ^! \
  -> -1.107149    2 z7 [& J2 {! t" o& v
atan2(x,y)    3 o! Q. `0 l* _' `" L
 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  2 ^8 G6 E5 F* s/ Q1 Z2 L
mysql> select atan(-2,2);    1 y3 G) b' Q1 K& O
  -> -0.785398    * E& q/ ~: L' R5 u; N
mysql> select atan(pi(),0);   
8 [& u  {2 `2 V7 t& Y# A; Y0 _  -> 1.570796   
" ]/ R9 a3 b1 m0 t / ^6 i7 ?, s. B$ g+ R) v
cot(n)    d2 U, H  r5 J6 q% S! Z3 M
返回x的余切  * Y9 f8 R) }1 N5 z
mysql> select cot(12);   
6 t0 W  k6 [( h9 o  -> -1.57267341    ! i9 @: ]6 B+ y' j* U* `
mysql> select cot(0);    4 m  k/ O9 [- W& ]9 l5 W
  -> null    # U/ I9 E$ k: L) q5 z4 }

5 T+ R. g! z' K. @! z  d* a: Grand()  
* {- R1 u) X+ @; s% trand(n)    
1 w' w. L0 R2 |! ], s! A返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
; H9 l3 s/ W0 g" p 4 A; |, d) |3 T1 P
mysql> select rand();    " r0 m" o& H' c# M  l6 u! L0 Z
  -> 0.5925   
: g" h  O- {: o+ D5 ~7 P* G5 Jmysql> select rand(20);      h' X! @+ \. x1 ]7 U) M! i) I  O6 s
  -> 0.1811    ; |% [7 A; D1 N
mysql> select rand(20);    ) _) L$ Z# g9 I5 C% n2 i
  -> 0.1811    - I- l+ n* |/ f: ?
mysql> select rand();    8 X: u+ O4 m. H6 y0 h5 _6 S
  -> 0.2079    : b* f; V/ L/ @
mysql> select rand();    + Y4 o; M+ f6 l' T* q$ g  w
  -> 0.7888   
& ~% Q5 g. h7 E# G6 U + c6 l" o% R; ~( S$ H* O
degrees(n)  
! W3 l* k/ X, _% C9 S( Z把n从弧度变换为角度并返回  7 r) l6 J: |' Y8 [2 ?1 [/ L9 w, O8 s
mysql> select degrees(pi());   
' {! u# v! y8 `3 s6 I3 I0 y5 V/ X  -> 180.000000   
  @1 L' c# g# ^% N8 Q* [& C4 ~ & h9 ]: V. u& ?9 `3 \
radians(n) # ~: @7 ?+ T4 S1 Z. O
把n从角度变换为弧度并返回   ! T, Y  Z& m$ p
mysql> select radians(90);    # G6 |. x. h' Q6 o/ P0 O6 G
  -> 1.570796   
/ D1 H9 m/ v# z. o! ]" r
& W& X5 |3 \# z4 a8 a1 B' U1 `truncate(n,d)   
# ^4 B. g! O2 F保留数字n的d位小数并返回  2 h5 B/ m5 S8 Q) Q  w% L
mysql> select truncate(1.223,1);    0 H) D# m, I2 f; J
  -> 1.2    # p! t/ v2 d2 |  G
mysql> select truncate(1.999,1);   
) h2 h5 m( G3 [6 |2 x" g) x) L  -> 1.9    : l, r# k2 J$ u9 C" L" j
mysql> select truncate(1.999,0);    ' [' |+ J. ^2 ]" K5 `" L( W
  -> 1    " {  V" g2 U( m3 K: ]4 W* c5 Q$ L

- ]6 U+ m! F+ }5 eleast(x,y,...)   
. K* S( K& }$ z, {, O; M返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
9 b6 [4 P& x) cmysql> select least(2,0);   
# e4 N0 P! I% F! x: J( Q: Q# _  -> 0   
& B. y* l. D. p, @' `" K9 B( s9 Mmysql> select least(34.0,3.0,5.0,767.0);   
; b1 C- A+ l) w! F) X, y) `  -> 3.0   
1 \5 H3 v- m" W6 K* W7 Y# Xmysql> select least("b","a","c");   
& d& J% P6 l. c, u9 T* S0 ?  -> "a"    5 E& Q- D- q3 e/ h
& I1 p8 E' }7 U7 R3 U- Q
greatest(x,y,...)    3 \4 V! h: J4 V8 R# ?& N
返回最大值(其余同least())  7 h, o) p1 e4 v, e  m
mysql> select greatest(2,0);   
4 S# S  [# D: h- g9 P5 p  -> 2    / Q( r2 {& T. E9 h
mysql> select greatest(34.0,3.0,5.0,767.0);    7 I# b" I  Q: ~, @( F* q9 c
  -> 767.0    , M# Z( Q( n3 t$ Y+ d- n
mysql> select greatest("b","a","c");    $ N! Q6 s- W- M3 K3 [
  -> "c"     
5 t1 w5 Z( h9 j* M
! X% f, v2 M" w3 R0 g2 J" W/ ]% y3、时期时间函数
, t- h# S& I: ?. m, L: i& Ldayofweek(date)   
" e9 z& _- I) Z! v; A2 g& l  N返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
: ?( T7 }# j4 dmysql> select dayofweek('1998-02-03');    1 @) u/ H+ T7 k# Z. X
  -> 3   
. U1 b0 w# G8 ?+ H. x- V( Y
9 j& U9 B2 f4 w: t  f" K7 Zweekday(date)   
1 R$ m6 \/ Q9 n2 u返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
3 B& J: V) s  W, b    Y, Q" C0 p* m7 S9 r8 Q9 y
mysql> select weekday('1997-10-04 22:23:00');   
) E5 R4 U; s" l; z2 X, y) L  -> 5   
, t0 z0 V, u3 k" o8 fmysql> select weekday('1997-11-05');    9 r; ?5 f: B0 m( x
  -> 2    , b- B  g5 G; D* l4 Y

: m5 Y9 ?2 n6 F7 N! M" g1 Ydayofmonth(date)    
. P9 C5 g& x; @" Y" h- X返回date是一月中的第几日(在1到31范围内)    ! a8 t5 n) s$ J. C
mysql> select dayofmonth('1998-02-03');    * Q) |+ z1 s5 K* z
  -> 3   
7 W; e6 w; W/ x1 ^$ P; j5 t 2 e& T, r) x& T# `
dayofyear(date)    * m( z% v, ^3 r! n$ H% {1 }
返回date是一年中的第几日(在1到366范围内)   
  }1 L- E" J$ q; emysql> select dayofyear('1998-02-03');   
! K1 [" D. e+ U( V6 B  -> 34    5 ^3 m" O/ x( q: b% j- J0 K4 N

; p6 ~, ~# [+ l' g5 Umonth(date)   
  z8 j. Z" g) S6 f# j; b# s返回date中的月份数值   
" V2 e3 W  a; V5 b9 @mysql> select month('1998-02-03');    5 V+ M. ]- V$ n
  -> 2    , p9 f" }: [" Z# J. D+ h: ~

( W0 X, h  [' o! udayname(date)   
% p& g9 Q! P7 W4 Q+ e返回date是星期几(按英文名返回)  ( s3 V( C7 [* {
mysql> select dayname("1998-02-05");   
7 M4 ~$ r! `( M& N- a1 L- b" m  -> 'thursday'    " n# |% z0 G& n8 s* P

3 l: B2 r, E; bmonthname(date)    ! D. ]; e, u2 p1 a
返回date是几月(按英文名返回)  2 Z9 p: z3 z2 ?( _" U
mysql> select monthname("1998-02-05");    + E  Q% e" G; G" F) |
  -> 'february'   
  a! R$ y; C: P
. S! Y' Y$ w" Q8 `8 cquarter(date)   
( s* o0 K7 ^* Z- i# ^& w- b: d返回date是一年的第几个季度    $ V) Z( ~; w  F
mysql> select quarter('98-04-01');   
5 N6 J9 ^! U) E3 `) I  -> 2    , q7 _, s, W" d, h6 z7 h  \' i% }
, W; G. S+ R/ u
week(date,first)   : x9 ]7 \- Z9 s# v+ u/ d
返回date是一年的第几周(first默认值0,first取值1表示周一是5 ]/ l( Q3 w9 S2 e6 K  }4 A
周的开始,0从周日开始)  
: \) R  Q5 s5 Emysql> select week('1998-02-20');    & L7 \9 q) ?+ k& N
  -> 7    3 \! |) I% T4 o- \7 }( g$ F
mysql> select week('1998-02-20',0);    ) _- M( W; K& |+ w- p
  -> 7    1 R" H6 v4 E9 n2 l4 H" @0 ^
mysql> select week('1998-02-20',1);    - k: X+ _8 E6 x
  -> 8   
1 A, K' G6 q' W7 W $ ~4 s# X  v! o7 t( g$ U1 n9 l1 l3 x
year(date)   
$ Z6 q' E; v3 l) ]返回date的年份(范围在1000到9999)    3 k: R, s; u5 l. ^6 j- j! t
mysql> select year('98-02-03');    + Z  b4 R( n7 W
  -> 1998   
6 L" _+ v! \4 j9 y 7 |$ X4 ]+ h) s" R' o6 I
hour(time)    
: M) e) `5 A% M3 G返回time的小时数(范围是0到23)   - |' D2 ^& P, \
mysql> select hour('10:05:03');    : t' K2 [  F, }1 [
  -> 10   
& Q1 V, o8 C6 a9 B/ Q6 R: j
' y( q! S6 N8 Y5 }minute(time)    / u, ?* Z( c; a' }. H& p2 _+ q, k' y* I
返回time的分钟数(范围是0到59)    1 I& `$ V0 j* d- b8 b
mysql> select minute('98-02-03 10:05:03');    ! F5 b2 u4 ]6 U1 h4 s
  -> 5   
& u6 V- N: t1 d! d2 Z7 l ; O& o+ L* s3 e9 M4 h5 b
second(time)    
  `3 ?. `. {( k7 M( u8 s3 F9 t返回time的秒数(范围是0到59)   + p$ Z& a4 B) o; X+ F  \: d
mysql> select second('10:05:03');   
+ R8 n# A% M2 C8 {0 v4 J- [) _9 ^  -> 3    ) h5 X* W+ X9 R& Z6 M* S

: T( d+ x7 ]3 X5 D& S5 V$ ^0 eperiod_add(p,n)   
5 G- m* h2 h# R) [增加n个月到时期p并返回(p的格式yymm或yyyymm)    3 P2 @9 D9 J( w+ }8 T  l9 s
mysql> select period_add(9801,2);   
- Z" E; [' X& i3 z* a5 @  -> 199803   
3 k1 i5 m" d5 k) H" }8 X' J0 J ) T6 K7 n  u. d% d8 j- M) m
period_diff(p1,p2)   
' X4 W0 z: p4 c$ t( F* A5 \9 b5 P% J返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  . @$ L1 r; w' k; x
mysql> select period_diff(9802,199703);    6 c9 o8 {* d' o9 V
  -> 11    + @) ~8 H- N! {, Q

% G0 @2 {& S# X* d4 q* |! [* u+ Qdate_add(date,interval expr type)  
/ c; a+ h1 U0 W  n; ^date_sub(date,interval expr type)   
- m9 f6 R0 E, P* e- g: ^( Tadddate(date,interval expr type)   
0 U' G$ J& H" [, Ksubdate(date,interval expr type)  
: H4 H* V+ `1 [2 a/ ~! E对日期时间进行加减法运算  ) J0 r3 e8 a4 n& p( n/ J' O
(adddate()和subdate()是date_add()和date_sub()的同义词,也5 I9 m; Y+ J) e1 x" O3 _
可以用运算符+和-而不是函数  
* x: J& p: L$ U7 @date是一个datetime或date值,expr对date进行加减法的一个表
+ @' e0 I1 s' j, m+ g# g+ W4 e达式字符串type指明表达式expr应该如何被解释  0 Q7 N; {5 w# p
 [type值 含义 期望的expr格式]:  
0 Q# i& ?+ {9 L+ K second 秒 seconds    ) h/ G  E- e1 N- i6 d& F1 s
 minute 分钟 minutes   
6 c6 J0 B3 @! B9 ? hour 时间 hours    ; H# v* O9 f9 U) N7 A; _, p
 day 天 days   
1 X8 Z. m3 R! w3 F8 N month 月 months    0 |) }5 J1 s- l( K) }
 year 年 years    % {( w; W2 j) x# w
 minute_second 分钟和秒 "minutes:seconds"   
; N2 @( L$ r, R. }$ d hour_minute 小时和分钟 "hours:minutes"    , ]' D' J7 p1 u! H& F* `7 D
 day_hour 天和小时 "days hours"    8 @1 n; A, f0 X, M" H$ w
 year_month 年和月 "years-months"    4 Y* k- F9 L7 w' V5 t9 ?- ]- O# r
 hour_second 小时, 分钟, "hours:minutes:seconds"    . b7 a4 v  B/ h
 day_minute 天, 小时, 分钟 "days hours:minutes"    % z9 Z# O/ b1 |; w6 Z
 day_second 天, 小时, 分钟, 秒 "days
2 e; I3 ~0 F- Rhours:minutes:seconds" 0 V3 Z/ K0 C' X
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个9 J: }3 y1 C$ ]# F( i) h5 H0 [
date值,否则结果是一个datetime值)  ' i* Z! h- S- a- \* f. X( q
 如果type关键词不完整,则mysql从右端取值,day_second因为缺
  q* l5 {" K+ m少小时分钟等于minute_second)  
/ ?. Q2 p- U0 h# @ 如果增加month、year_month或year,天数大于结果月份的最大天3 x0 i3 {8 D( c- P5 l7 F. V0 O
数则使用最大天数)    ' K2 D0 Y% a/ i
mysql> select "1997-12-31 23:59:59" + interval 1 second;  
+ ]+ r+ x( j5 |6 C) [* V) B  o( m. E + i; n) t9 O* X7 U; Z% s3 R! [
  -> 1998-01-01 00:00:00   
! l- m+ w5 b9 f0 ^mysql> select interval 1 day + "1997-12-31";    8 M/ w. T# K! w! a! E4 Q7 W1 ^
  -> 1998-01-01   
. r* Z6 g* i: T* ?, {' Fmysql> select "1998-01-01" - interval 1 second;    : ^, f. X9 b" Z
  -> 1997-12-31 23:59:59   
8 p! E2 I# {: g+ u5 ?0 \mysql> select date_add("1997-12-31 23:59:59",interval 1# M% A$ @* ]5 n7 o" @& f
second);    # n( A+ s- Q% N4 ^) g% H% o
  -> 1998-01-01 00:00:00   
# _$ z5 k) I% U9 W) omysql> select date_add("1997-12-31 23:59:59",interval 1, V  Q$ V7 T( H# D; _# K6 x
day);   
) s$ X% w# j- c( ?  -> 1998-01-01 23:59:59   
! ?* d2 ?# U, @4 ?, f% dmysql> select date_add("1997-12-31 23:59:59",interval
$ f/ J  o+ E' N2 s"1:1" minute_second);    & g1 Y  d* o8 X; O" l6 \$ _
  -> 1998-01-01 00:01:00      [) [7 k% f# H3 t' q; o5 R
mysql> select date_sub("1998-01-01 00:00:00",interval "11 ^( x8 M" S* y
1:1:1" day_second);    ( n2 i% w% v5 m
  -> 1997-12-30 22:58:59   
" J. ~5 K5 F  cmysql> select date_add("1998-01-01 00:00:00", interval "-1  g# b/ R- V5 a. G
10" day_hour);  5 Q( R+ o/ J# @/ N
  -> 1997-12-30 14:00:00   
1 Z4 r, G! M! kmysql> select date_sub("1998-01-02", interval 31 day);    7 r7 v/ z: w6 L2 H' |
  -> 1997-12-02   
% a' }2 h0 n# o, [! U3 ?; Vmysql> select extract(year from "1999-07-02");    # O9 @2 A4 a: `# `( E
  -> 1999   
4 o" c; X2 F  m3 a/ P- T( g2 Y& V6 Zmysql> select extract(year_month from "1999-07-02) T8 O) I3 b2 P1 z' z. l( F8 m
01:02:03");   
& b9 F9 |# ^/ l$ u& M- |  -> 199907    4 p( k" Q# ?2 f$ j0 r
mysql> select extract(day_minute from "1999-07-02
+ y* d& l% n1 Q$ a5 o) [7 G01:02:03");   
1 M) R  m- p1 I- y1 s  -> 20102    . I$ L5 m6 J' o- c. A

2 P% ?/ A# l' F( @/ R; fto_days(date)    ! U, y, l- e2 N  V- N( Z! E
返回日期date是西元0年至今多少天(不计算1582年以前)  8 d4 s, D3 I" l/ J
mysql> select to_days(950501);    9 r- {6 R0 v* G8 q8 Y
  -> 728779   
" H/ Q& I2 C' m: P3 P/ Qmysql> select to_days('1997-10-07');    ' `' j5 g, d% d% S
  -> 729669   
" D8 s$ |, n# ? 3 _! j" e6 B' G- ?
from_days(n)    7 x* h* U: R1 v5 g3 Q2 J
 给出西元0年至今多少天返回date值(不计算1582年以前)   
/ ]8 f: V! G& h6 d# T8 U. s0 X1 gmysql> select from_days(729669);    , F( H2 w2 L0 C/ ?
  -> '1997-10-07'    ! s" T. n& h* I; y; [9 ]% M& d! h

/ [6 ^6 _6 I5 X  i: {% n7 Zdate_format(date,format)   
& X% n3 Q. T* f 根据format字符串格式化date值  
" S- n! Y- d/ z9 C3 _& [8 O/ F (在format字符串中可用标志符:  
; O& a4 U0 n+ `! B  {# \ %m 月名字(january……december)    ' \8 S/ b5 O- v' ?
 %w 星期名字(sunday……saturday)    2 l" ~1 o, K& y+ p) W
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)   
" M+ {, V7 @. G& P; m  B) Q %y 年, 数字, 4 位    . e. f2 o( O* m
 %y 年, 数字, 2 位   
% P: a; G0 |4 X0 ^& G %a 缩写的星期名字(sun……sat)    6 P6 g: |' [5 S( Y3 N. J7 _/ U
 %d 月份中的天数, 数字(00……31)   
, o4 W8 j9 B- o8 w0 t5 G# F %e 月份中的天数, 数字(0……31)    " }# ?+ H+ X+ c9 h/ [5 L
 %m 月, 数字(01……12)   
3 M/ p) g" D) O; V %c 月, 数字(1……12)    $ A  e6 Q( z3 x; {9 p
 %b 缩写的月份名字(jan……dec)   
2 Y9 @. v5 k* A! ` %j 一年中的天数(001……366)   
2 _9 X  I, ^2 e, E# _4 g  S %h 小时(00……23)   
! l; {3 ?0 F  d* W! M5 | %k 小时(0……23)    7 F% |4 a9 @5 C- X
 %h 小时(01……12)    ' @2 b# Q! \: E- l1 p+ R, h
 %i 小时(01……12)    - s* I0 a1 O8 b7 H8 w1 t4 d6 w7 B4 d# D
 %l 小时(1……12)   
( k( z; Y- j2 c' o0 {4 i: O %i 分钟, 数字(00……59)    3 B  r$ E4 a3 u* X
 %r 时间,12 小时(hh:mm:ss [ap]m)   
4 \9 }0 {5 k1 }6 x2 y3 V) _) L. @ %t 时间,24 小时(hh:mm:ss)    8 G& u3 P% t* U, z& ~  @
 %s 秒(00……59)    " G% O8 [9 J) {" w* m+ H+ ~
 %s 秒(00……59)    & a5 T( s$ O4 W  J5 ~) u# N
 %p am或pm   
' i1 @* a+ }8 U) d %w 一个星期中的天数(0=sunday ……6=saturday )   
7 e% U2 G# D- Z: N) h) J& ~ %u 星期(0……52), 这里星期天是星期的第一天    # ^+ F' M! E9 P: n% O) f" g$ V
 %u 星期(0……52), 这里星期一是星期的第一天    1 H9 x7 v$ E2 G! K4 A
 %% 字符% )  
  _0 X7 S9 \* k  _mysql> select date_format('1997-10-04 22:23:00','%w %m %! P! g, t+ I1 j5 E) v
y');    5 b) T! L+ j5 C4 \* d
  -> 'saturday october 1997'    7 Y4 c  S" ]: r- n6 \
mysql> select date_format('1997-10-04 22:23:00','%h:%i:%3 g  [$ r. G5 g4 x" o2 C3 B
s');    / i4 c6 o  o1 e! B  q0 H8 B" F
  -> '22:23:00'   
7 k* d, [" e& kmysql> select date_format('1997-10-04 22:23:00','%d %y %a
+ n. X+ I' o" A5 y+ i: s%d %m %b %j');    ; U" M% A* _( I  t
  -> '4th 97 sat 04 10 oct 277'    4 g& ^$ Y# V7 Z
mysql> select date_format('1997-10-04 22:23:00','%h %k %i
5 @& V5 D6 g8 Z1 d' `  G7 u0 `%r %t %s %w');   
' G+ C6 L$ o7 X4 O5 A9 R  -> '22 22 10 10:23:00 pm 22:23:00 00 6'    : V% g: x( X7 X* l$ _/ ^
/ U* c, X. y% {0 P
time_format(time,format)  - A# t6 ]. k: p. c  w$ t
 和date_format()类似,但time_format只处理小时、分钟和秒(其# ]7 W; P. N/ A% p* o/ F/ V- \5 E
余符号产生一个null值或0)  
. K; m7 q6 c- d
6 T0 W! ~$ C/ W8 F: g, [6 icurdate()     $ A, B) I# R1 ~9 @5 Q
current_date()  1 v( r3 z" i2 {( O
 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
# C) y( Q' R6 N. P% Z处上下文是字符串或数字)   
! {. W# `/ Z, }9 |2 x2 y) |mysql> select curdate();    : a( A& I0 Y2 U0 a
  -> '1997-12-15'    9 k0 T! u- a# v- j- o6 V9 L
mysql> select curdate() + 0;   
: m0 t, z$ U- Y  -> 19971215    / u/ L0 Z! M% U% V4 C
- j6 Q5 G1 V, u. B2 z  g6 z9 f
curtime()   
3 k7 m* ~) ]0 d, L- Acurrent_time()  / G$ p& R( \$ K. f! ^
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上7 t, U( t, C* V3 H# A  y# ^: b- s8 g1 m) x9 O
下文是字符串或数字)      
3 A* `7 x9 }( `mysql> select curtime();    9 l* |' o8 j+ @4 O
  -> '23:50:26'   
( x9 X- x$ Z7 E  B: V/ S3 pmysql> select curtime() + 0;   
" t& D1 N3 a. q6 m0 }* v  -> 235026    # C' C' Z2 c8 P$ t4 b: _

( T  h/ b! V) T* N. b4 u- {now()    
- n3 W; C" U4 Y; Y, _2 h+ Asysdate()    # c+ ?: r$ n' S0 R1 C% v
current_timestamp()  3 _& `) g, [( }& D. Q+ r4 U/ q2 o
 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期0 e. H. `0 ]& B, C# r* @+ W
时间(根据返回值所处上下文是字符串或数字)     ! Y* Q: n2 Q/ n# M5 Y( K
mysql> select now();   
$ c7 ~4 V7 Y4 r  -> '1997-12-15 23:50:26'    0 a; h8 f' }! Y7 |, c* Q( [
mysql> select now() + 0;   
' F3 X* T& l, i* Y1 `7 d1 O  -> 19971215235026    * {1 w( c1 n( n# v. U

8 ]! H! l4 e4 y* nunix_timestamp()   
$ w1 k. l; ]; |unix_timestamp(date)   
% Q9 W6 G2 q8 g* ?' ?- _3 [返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
% K7 U7 F+ D( c- n3 S1 _4 O数,date默认值为当前时间)  * V' a4 g3 m. e2 _
mysql> select unix_timestamp();    3 o5 K& K2 S* u$ @) r
  -> 882226357   
! l3 g5 D0 g- l, B; Omysql> select unix_timestamp('1997-10-04 22:23:00');    7 f! n! b( S  }1 n2 g4 H- p" I( B
  -> 875996580   
; @- A  B# R; d( j  ?6 n - m, @4 r5 y' H( b
from_unixtime(unix_timestamp)    - N, m" a  H; k; q1 _3 B1 B9 @
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的
( s0 \9 V: K! ?6 t" @值(根据返回值所处上下文是字符串或数字)     7 K4 ]6 r% l1 j  C6 h; r
mysql> select from_unixtime(875996580);   
3 C& ], A, k' t4 u  -> '1997-10-04 22:23:00'      q& }( k1 N# z1 ^7 \
mysql> select from_unixtime(875996580) + 0;    6 h/ d+ T- \1 p& N
  -> 19971004222300   
  Z4 D0 E9 v: g" L
: g& w/ ]$ k2 A4 J7 i# A8 G9 ufrom_unixtime(unix_timestamp,format)    
( y3 ^9 z4 k0 _8 a+ o0 c以format字符串格式返回时间戳的值  ( j: h- L' ?4 n- Y) z* w( M. s
mysql> select from_unixtime(unix_timestamp(),'%y %d %m %% m1 ]/ ]9 Z. V& x# B1 m# N
h:%i:%s %x');   
$ s' q+ V9 X5 g' y: x% a0 h, A. V, C  -> '1997 23rd december 03:43:30 x'   
( v2 r* T! p/ c9 e & D# ?  j# _9 u8 {: g% g
sec_to_time(seconds)    + u3 s. r5 s5 }6 @
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     # g4 p/ N0 ^! Y1 M/ l6 S7 K
mysql> select sec_to_time(2378);    % H" V4 }7 e! X# Y1 u7 U, d
  -> '00:39:38'   
* f8 W. u/ G5 G8 t) {; R: p$ X2 d8 y! L3 [mysql> select sec_to_time(2378) + 0;   
  }$ y8 k4 \# E4 e' O5 A  -> 3938    # R& l! ^, r1 G! g( x4 A) r
0 x7 ~' |: `% B( j
time_to_sec(time)    3 v& v  j/ v: W, z% N# L* I. b
返回time值有多少秒   
5 D3 m" r4 _7 O4 N+ [' \' y$ bmysql> select time_to_sec('22:23:00');   
9 H" M7 \8 T. i+ \% p9 `3 P7 E1 @  -> 80580    & \. |; p2 r% b) [- s8 [5 Q  p
mysql> select time_to_sec('00:39:38');    6 {6 c& W7 p5 `  o: Q- x
  -> 2378 ( M9 v: W8 y7 Z
& ?, `' B" U3 M; i4 E
转换函数5 t) h/ e6 l8 X/ j
cast
. }5 D, k8 U8 Y8 e用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]
  d, i  \- J3 G, S- B, V, ^: Y实例:select cast(a as unsigned) as b from cardserver where order by b desc;
& Y" ]: |  l2 i2 k' zconvert:$ I) c; R7 B. Z% a$ A
用法:convert(字段,数据类型)% g: L- N6 N( z: l+ `/ I7 w. M: b" ]. C
实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

1 ^  p( @0 ?7 ?; N1 j2 j, A* o
回复

使用道具 举报

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

本版积分规则

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