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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数
  r; w5 C( j* Y6 pascii(str)   ! K# G' i1 `" A+ X7 ^- e/ R' R
返回字符串str的第一个字符的ascii值(str是空串时返回0)  
* ]8 O/ c8 P' Pmysql> select ascii('2');  
  |( v- T9 [/ i( b+ T7 a) [( l  -> 50  - y0 r7 l; A+ i: }# k
mysql> select ascii(2);  2 M# R9 u1 ^6 v/ P/ M5 s9 R
  -> 50  
' |! r: [. c  Nmysql> select ascii('dete');  
7 K; l: T- I$ S. z( W1 A* X, n. d  -> 100

" E: x9 D% p" v  ~8 Pord(str)   
% r& Y$ y" D  q$ O6 z' }如果字符串str句首是单字节返回与ascii()函数返回的相同值。8 S  O. d% }% f5 E* T

$ J' R& s/ f& n/ Y如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  
6 \+ z. }% ~- R4 S! v! A: Tmysql> select ord('2');  % l% J& a9 w& S5 k7 L. ?/ O* b
  -> 50  6 B( `& y. U8 ^* I  O
   
/ ^. G1 A( _' r% b) }conv(n,from_base,to_base)   2 V! F2 J( W0 x4 b2 |, i* M
对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
. E; `$ R- r$ B  tmysql> select conv("a",16,2);  
! W0 E. y5 Q4 A  -> '1010' ! I/ T4 G3 G3 n) X0 R6 p8 u
mysql> select conv("6e",18,8);  7 j5 C- N5 S- [5 x9 Q( _0 b3 P/ f' g
  -> '172' . b6 o2 L4 [& y* k
mysql> select conv(-17,10,-18);  5 c/ @* c  B, i) |
  -> '-h'
2 e' `3 K: v% u2 @" |mysql> select conv(10+"10"+'10'+0xa,10,10);  0 Z0 f; b! Q! W
  -> '40' 2 h. K, b7 z. O( P# d
   
/ `0 g" T% c" n; f, _bin(n)   # l- r% V, F. d0 x
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
% e9 s7 [0 E# R" cmysql> select bin(12);  
' c  z0 g  e4 d7 [1 i  -> '1100' - b8 }) G. W+ I
+ [4 \6 C' U: V
oct(n)   
2 n- r# J5 v, c7 E7 T把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
% d. e! q3 O& ~8 U6 a+ o/ Ymysql> select oct(12);  / M6 n9 a/ o; Y; o! a$ Y
  -> '14' 2 D% I: B! Y" v1 j; M
   + [  q5 i9 a- w8 a: s7 {
hex(n)     S0 ~2 Q9 ~$ P" m+ y6 X" G4 Y& `
把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  
( v, q' [) d& v! K# Zmysql> select hex(255);  
7 ^- K7 L6 d! C7 W4 ]  -> 'ff' 6 `( F  r9 n9 A) ~  Z% y! l
   6 V, p# P" h, X8 ^+ e
char(n,...)   
- L0 G! E8 T% C/ r2 o( ?返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   , T/ A. @; t$ U! |4 K9 |
mysql> select char(77,121,83,81,'76');  
" p+ V4 g, N1 Z  -> 'mysql'
. b' {" T4 k/ E, ~mysql> select char(77,77.3,'77.3');  ! K5 D/ d/ c% e6 |2 f2 l) O
  -> 'mmm'
7 g0 m0 U/ _. b9 U7 Y4 y" Q: b   9 S# t! c4 k8 e  j
concat(str1,str2,...)   ! \  l- `: D- |: a# V
把参数连成一个长字符串并返回(任何参数是null时返回null)  
; Y# ?& [6 i& I8 q8 Dmysql> select concat('my', 's', 'ql');  , R1 q# N( ]  Y6 e
  -> 'mysql'
- z* H7 Y( F. [2 i# G. Zmysql> select concat('my', null, 'ql');  % W3 }( @, c) b% a7 n4 g5 a
  -> null 6 w7 W: K$ \$ f
mysql> select concat(14.3);  3 n. ~3 `1 m- N% [# g, C  W
  -> '14.3' ! `% O0 A7 P' j( B% k& W$ X
4 p7 K, G4 b+ K+ p9 \- }
length(str)   ! Q+ d. e( [8 I% t7 }& P# j
octet_length(str)  & M# h3 O0 E, u& g8 R) Q
char_length(str)  4 v/ s0 J- `9 z7 m6 r+ i# ^  \
character_length(str)  
0 K. |2 m+ S& r7 r7 d8 r1 d4 j, ?3 w' \返回字符串str的长度(对于多字节字符char_length仅计算一次)
6 A9 w. a% D( e  J- f* R& tmysql> select length('text');  3 S% W2 K' K/ M& l  J( |
  -> 4  
" H, z- B: J5 i6 {9 `$ jmysql> select octet_length('text');  
1 w4 f/ L) R% F! C$ x* a  -> 4  - H% U% H7 O( n3 [! _
! i! o; i% [4 {% ~$ P( ?% ~
locate(substr,str)   
% {5 o1 C, b2 E2 s) n% Y" qposition(substr in str)   
1 a9 ?8 V# T) t7 l  l返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
% Y6 q6 J9 \5 Q, C" b- C% Qmysql> select locate('bar', 'foobarbar');  ( s9 s% ^( I$ e, r; e& f4 D6 B
  -> 4  6 x+ Z; A0 {0 i/ b
mysql> select locate('xbar', 'foobar');  
7 t' B+ t' k/ k; B6 H0 W  -> 0  3 n& r0 A& x# ?# |' K
    8 Y% G% P; v5 B; B  z
locate(substr,str,pos)
3 ^, a" \5 R& |) W; I. \返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
* s  r; ~- ^6 e1 ~8 Dmysql> select locate('bar', 'foobarbar',5);  ' M/ ~$ Y5 ]) F# Y8 d8 `
  -> 7  * a- {3 E2 O2 l2 O: n, D  f1 E

' ?+ ~2 Z3 Y* G+ `instr(str,substr)   , m8 }4 I2 n) n' |7 m3 H3 L% k
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
: w0 i, x3 H$ T. w0 Imysql> select instr('foobarbar', 'bar');  7 p) G0 m6 u! N
  -> 4  
' `% ?6 j( K0 o! ?mysql> select instr('xbar', 'foobar');  
* W- a0 `1 g8 m, h# o( f4 k) L  -> 0   
  [  l- _+ S3 E( o' c
  M, a& S$ M$ F+ Tlpad(str,len,padstr)   
2 m$ U! `' P/ x+ `% J: S& m用字符串padstr填补str左端直到字串长度为len并返回  
0 Z3 x+ E6 j. A6 nmysql> select lpad('hi',4,'??');  - \8 ^* X! r; t  y9 Y' ^" |* G" S& S
  -> '??hi' ; }5 N* E3 H1 [' j4 w3 S
   
4 [/ t, q$ `$ G1 D) V; |' O! Urpad(str,len,padstr)   " j. Z  l0 {( Q/ O5 }
用字符串padstr填补str右端直到字串长度为len并返回  
0 R, j& b- B$ Z5 F1 Amysql> select rpad('hi',5,'?');  - K0 i6 J5 |) l; h$ G0 [
  -> 'hi???'
0 v  V5 E# i$ s( c
" [" o* [- A( X1 _left(str,len)   
! m1 G+ Z1 r4 z6 y5 l2 j4 I返回字符串str的左端len个字符  7 g7 S* Q4 ]0 n4 Z% M
mysql> select left('foobarbar', 5);  - P$ b/ G$ y* J# r
  -> 'fooba'
4 W" u) c& _8 w4 O
! W5 v% `, O) m! X8 Kright(str,len)   ! X+ F; k3 G6 H: a& l& P+ s1 }6 z8 l
返回字符串str的右端len个字符   
9 \- S& I) a& {mysql> select right('foobarbar', 4);  6 L, `1 i( I/ |3 ?; e: R  G' T) u
  -> 'rbar'
' I* X6 f  a6 s, ]
' J& V, A( V% e9 T5 J+ hsubstring(str,pos,len)   4 J4 b) M) @  F  D  r
substring(str from pos for len)   * R+ S# i1 [2 G# I: w- B
mid(str,pos,len)   
2 o4 \7 `# B2 L; D0 @) i返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);    J; b7 a+ Z& }4 j0 x( ?
  -> 'ratica'
% _/ M( Z/ i0 R( S, e  T ; ^1 C$ `6 H( s/ N8 O
substring(str,pos)   ' \% o2 B4 P) _) c" J$ }! w
substring(str from pos)   
9 R7 q2 K. C- s返回字符串str的位置pos起的一个子串  / `) i7 F$ i4 Y. A. \5 s6 _
mysql> select substring('quadratically',5);  / x/ G/ Y6 u1 C+ ]5 `3 f: f% w" g
  -> 'ratically' - V6 M2 f2 g1 I. G" J" m
mysql> select substring('foobarbar' from 4);  7 N) E: O" e, O. f7 v
  -> 'barbar' ' b: U$ O- A& o8 r

* k4 x8 q! l5 ^* Q. zsubstring_index(str,delim,count)   
4 U4 `, e$ K3 ?* _5 |4 E4 |返回从字符串str的第count个出现的分隔符delim之后的子串
4 T) \, [. I" f- A2 B(count为正数时返回左端,否则返回右端子串)  
; ~0 c6 K0 o9 umysql> select substring_index('www.mysql.com', '.', 2);  
: u: f% [; n/ l$ X, w& v  -> 'www.mysql'
* ~8 K0 z. ~: m3 G3 umysql> select substring_index('www.mysql.com', '.', -2);  ; z- K; B( n& I  a. z7 W
  -> 'mysql.com'
- k4 K7 j  w- v% ^9 m  F
$ `; u9 o' m& p  ?* G0 k% Mltrim(str)   ! m; J+ K, V, {, \$ L  g
返回删除了左空格的字符串str  
  H) R! n- h/ _8 W8 cmysql> select ltrim('  barbar');  
* B4 E: n3 I. ]& {  -> 'barbar' # L- k, L- A, i0 [2 s7 `, |

) @' O  g  P( crtrim(str)   ' s9 N6 q: H- k+ f) T! I0 r
返回删除了右空格的字符串str  
# X+ Z& Y, q( s. a8 @2 H+ k) Kmysql> select rtrim('barbar   ');  * w3 V! M% z% d# M
  -> 'barbar' 6 [, ~3 F- h# e; D" h' i8 {- s# x

  b9 {4 ^1 r# j! H0 @: ~trim([[both | leading | trailing] [remstr] from] str)   6 [( H. V$ N* N9 L( ]' c
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
2 \: s0 a, P( q6 @5 U: ~) u! Mmysql> select trim('  bar   ');  ; M  q& c4 Z! V( C( Y
  -> 'bar' 6 Z. A' e, }- w' ]( X! G
mysql> select trim(leading 'x' from 'xxxbarxxx');  
4 w- A/ Y& s" \! [6 [" G! T* D  -> 'barxxx'
5 g  S" d( M  G! J3 u: @& Gmysql> select trim(both 'x' from 'xxxbarxxx');  
3 O3 }1 u. ?0 E2 l: ^1 N  -> 'bar' 1 L% y7 |/ B5 z& q$ N
mysql> select trim(trailing 'xyz' from 'barxxyz');  
8 U. n# P, v& j  -> 'barx'
5 n1 B' H7 @  T1 T . X6 m1 J: J/ k& g/ u9 E% @( x6 _/ `
soundex(str)   
: Z! c5 P4 t4 f- U1 O返回str的一个同音字符串(听起来“大致相同”字符串有相同的  C2 e. A+ L% I0 V2 w/ [% U
同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  " L" A9 a1 w! H: x' b
mysql> select soundex('hello');  * Z" c1 z8 {* X4 Q) q8 p; C: a
  -> 'h400'
: |5 E) @! a. N: Z7 O; a  Pmysql> select soundex('quadratically');  
# }, d: Z& a9 z) ~& l  -> 'q36324'
3 W4 c" H3 v, F" P3 i   
, j/ H3 E% s" X% Z% @space(n)   : L9 R( C4 t+ D: y/ l' j) t
返回由n个空格字符组成的一个字符串  
6 a7 x; C# u* o9 `4 z' Ymysql> select space(6);  
' Z8 L2 M% C) I9 r5 o  -> '      '
) N7 J2 F+ k# G( _' ^   : c5 R( I. O$ }' \
replace(str,from_str,to_str)   
( |' C4 {4 F, Z3 ^1 `3 X用字符串to_str替换字符串str中的子串from_str并返回  
5 C/ U9 V$ g6 w5 rmysql> select replace('www.mysql.com', 'w', 'ww');  2 C5 n  Q" ~, s; }
  -> 'wwwwww.mysql.com'
* \4 K4 R9 _* d 0 o9 _8 R3 f, ]" S. D  {
repeat(str,count)     I5 t5 s/ i4 \% p( ]- W2 `9 b
返回由count个字符串str连成的一个字符串(任何参数为null时
1 i+ o; F9 L! ~& G2 I) n: ]/ U返回null,count<=0时返回一个空字符串)  
# _" D) i7 |& x# p5 g$ [+ smysql> select repeat('mysql', 3);  8 J' I, p+ ]; l3 \8 M1 ~& n
  -> 'mysqlmysqlmysql' 2 X0 O" G' x4 o; N$ d
   
' H4 w; c- e% N) Sreverse(str)   
& A7 _  N, x  m! K# v, k颠倒字符串str的字符顺序并返回  + J+ y" f+ E2 A1 E
mysql> select reverse('abc');  
# K9 U0 p" N; l' V  -> 'cba' ; j4 f0 M! T/ A9 P
3 i; D! K6 ?" O& ~; W) I- ~
insert(str,pos,len,newstr)   
! R2 L6 z% u1 y4 ~: f+ A& u把字符串str由位置pos起len个字符长的子串替换为字符串2 ^4 l& u, k3 \6 F4 |5 Z
newstr并返回  
! S+ Y" F$ G) G3 l+ a/ ?mysql> select insert('quadratic', 3, 4, 'what');  6 l4 Q* t/ y, l  r. R  h5 [
  -> 'quwhattic'
9 d+ e- U) P! M& F  S
8 F, m7 L! ^  T: d2 d3 A2 eelt(n,str1,str2,str3,...)   
2 E  j/ N( S" Q8 V0 u. ~  J" c返回第n个字符串(n小于1或大于参数个数返回null)  
8 l# n6 ^5 ~. o' K/ c/ Gmysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  
+ f! M$ L+ z9 b0 x  -> 'ej'
. d/ J- @4 \$ smysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  9 y* N* X5 s3 q' V
  -> 'foo'
5 }" o* N% I2 z: B1 Y0 @ 1 D# B1 C+ `. y  H4 ^7 h
field(str,str1,str2,str3,...)  
0 F* w( a( Q) f) i返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
+ J2 h. q+ {1 B6 Kmysql> select field('ej', 'hej', 'ej', 'heja', 'hej',& g6 l/ \/ q' [2 ^3 F0 ]* E
'foo');  5 @2 ~) b* P( N) [# V3 [! m- y
  -> 2  
  ]8 B5 c5 K6 v# n; m2 omysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
' I; i, V  y6 n9 _! R: O( J'foo');  # @( X0 x) }- v
  -> 0  
3 Z& M. F6 c3 g$ l1 c' M' i5 C* }' A ( ^5 a" w+ |- T3 U) h
find_in_set(str,strlist)   
# f/ d6 }! D: s. q5 k返回str在字符串集strlist中的序号(任何参数是null则返回
4 [: A2 F- f  E4 L2 Z: F( y) Gnull,如果str没找到返回0,参数1包含","时工作异常)  / e% m' V8 g7 C# ?# |
mysql> select find_in_set('b','a,b,c,d');  ; O( G! Z0 p, m
  -> 2  9 u7 X* M: g7 q7 R. C. N
     o" @+ Y+ `" W  R8 w1 ^- `0 P
make_set(bits,str1,str2,...)  6 a* V0 N' U$ p: h, g, ]/ A
把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应# H% D; N9 C$ \) N9 m& r% l( `
位置的字串选入字串集并返回(null串不添加到结果中)  
9 ?, P; |$ h2 R2 y% y- Zmysql> select make_set(1,'a','b','c');  
5 v" n' q% a" W. e% u; C% _  -> 'a'
8 u/ T+ f, q6 T; r+ Qmysql> select make_set(1 | 4,'hello','nice','world');  4 b( V1 Y& U! O- k$ j! b& \
  -> 'hello,world' 0 h7 _; ?, o4 a' S% w5 \; p0 e
mysql> select make_set(0,'a','b','c');  
0 r+ Q7 l0 ]7 N) }* t5 Q/ P6 n: B  -> ''
( L. N: t  T) @7 V( o
/ v$ }! g: J* G) u& \4 _export_set(bits,on,off,[separator,[number_of_bits]])     ^& e- x4 j, O2 ]# I; ^* \, D4 H
按bits排列字符串集,只有当位等于1时插入字串on,否则插入
4 s' y1 I, U/ |7 T- u) ^6 {( Woff(separator默认值",",number_of_bits参数使用时长度不足补0* r- q, ?& t" h1 [7 B1 i
而过长截断)   / Z- Y% f. _1 E/ }7 Y8 \$ ~" S( s
mysql> select export_set(5,'y','n',',',4)  " ~; U9 W3 v' r" N  {
  -> y,n,y,n   ! q6 A0 J# f( N8 b% A- S# v' Z

8 C% t7 s7 Y2 L: Clcase(str)  / [1 K0 _2 k. T* ~% l# |) q$ s
lower(str)   
) c8 L8 Z# }# f; R7 S) _) f返回小写的字符串str  0 H+ O- ?7 r7 u- U
mysql> select lcase('quadratically');  
  s/ y$ N* N% X$ |) ]& X9 }  -> 'quadratically' ( F9 W$ a7 _" Q- E) p
   ' t2 q3 {; ], G1 f' S5 L) T0 R
ucase(str)   % |1 H+ O  r& U! k2 ^
upper(str)   : c& O9 _" @) N8 z3 }
返回大写的字符串str  
% k/ k3 K* J* J0 e0 a6 Qmysql> select ucase('quadratically');  3 }  j( K" B& ~
  -> 'quadratically'
( Z$ }& l* \! ]0 o) k
3 O7 _% p, r% e# z& j3 hload_file(file_name)   4 p! n# q- p; ?9 N! p* @
读入文件并且作为一个字符串返回文件内容(文件无法找到,路径
7 V* r2 y8 ^) a) J: c不完整,没有权限,长度大于max_allowed_packet会返回null)  4 _# T% `# k6 w* [0 S5 S
mysql> update table_name set blob_column=load_file/ {! X+ l7 e* r) `
("/tmp/picture") where id=1;  
5 i; s" d! u8 m$ F  _' x
' n/ C" A7 d1 Y6 ]2、数学函数
2 e$ ]' {2 ]2 Oabs(n)
# @- g# G& Y# S2 {' v返回n的绝对值  
  d3 q/ i. J$ F, K9 V  ]* imysql> select abs(2);   
) S, _# `' {0 k8 m6 P1 a  -> 2   
/ j" {8 c8 @7 J. j+ i& J0 Smysql> select abs(-32);   
2 E! f! B3 y: x7 E+ ?, d  -> 32   
1 e+ I4 |/ c9 ?. Q  q  [6 U   9 [* V8 Q( u1 {( `2 P% b
sign(n)  * L& h: m' S# f) y
返回参数的符号(为-1、0或1)  
9 x: S0 w4 c/ vmysql> select sign(-32);    2 x* G/ [& P/ I$ u5 D
  -> -1    ) {1 G0 o$ O9 c& L8 ~2 r) S& R
mysql> select sign(0);   
8 p+ R% s! E7 m9 r( G: f  q  -> 0   
- Z  \- C; U% u1 b% ?mysql> select sign(234);    . q9 x9 u# _$ Z* M4 a9 J5 m" e9 P
  -> 1    - p( T, o- c9 \8 B8 G+ `- O0 O
5 K7 `5 v( t4 b! \0 t6 F  K
mod(n,m)   
! D* v* L9 r0 Q/ {' F% u取模运算,返回n被m除的余数(同%操作符)   
3 X: T3 G! h) l$ Qmysql> select mod(234, 10);   
+ Q& i& R+ m( A  -> 4   
! B+ U) W4 @0 h5 I) d) j! N- w- wmysql> select 234 % 10;   
. K2 t3 ~; j# v  D3 l; z5 U5 e  -> 4   
5 i# I+ z/ C% _; b# P4 Zmysql> select mod(29,9);    5 C5 m! q% a; N0 C3 m) X9 |8 G
  -> 2    8 x. ^  G0 h1 ?
* V" A5 u" f4 P9 ^
floor(n)  
+ U  T+ a1 V7 |; N7 ]4 v, a返回不大于n的最大整数值  
/ `9 p+ ?- p6 G8 R- ~mysql> select floor(1.23);   
( I7 \/ @1 |6 @  -> 1    # T0 h) r8 A  d9 x8 I, x
mysql> select floor(-1.23);   
/ ~5 T# I. ^) k  -> -2   
3 L- U: Y* j  s" a
9 y3 q2 F/ ?6 k: a( ^5 c+ T) v* Aceiling(n)  
: X/ k7 s: S9 `返回不小于n的最小整数值  
3 c/ q4 m) S" b! M& o2 a7 K/ Fmysql> select ceiling(1.23);   
: P( `8 V' m* t+ u  -> 2   
2 S+ H% w4 ?9 t1 O! ~mysql> select ceiling(-1.23);    ' X1 g( I9 {( E
  -> -1   
1 `# Z& |% N5 U
5 `+ p( \/ H$ R& lround(n,d)  
, n5 v: Y8 \, x: g# ?( t# t8 d返回n的四舍五入值,保留d位小数(d的默认值为0)  
7 }- `( M+ Z' X! [. B9 jmysql> select round(-1.23);   
1 R' Z' G4 w) x" l9 C7 j. ?  -> -1   
. J0 x8 L: y- x6 D* \$ T, hmysql> select round(-1.58);    ) b" e$ O, V. D9 k1 T2 h
  -> -2   
5 o* Z% ~" J5 ymysql> select round(1.58);   
! O8 X: U' Q" @. S& V  -> 2   
1 W7 L; z! d* O6 umysql> select round(1.298, 1);    0 S- `0 m3 G, z. |
  -> 1.3    & R* }4 I/ H9 K* h: [
mysql> select round(1.298, 0);   
  n* @2 B; A* [  -> 1   
. e4 p6 \& T' ? - e" M: _8 x, d3 R# M! q
exp(n)  ; n* H2 X; |! K, t- c! g
返回值e的n次方(自然对数的底)  , C, i7 `  Y* ]. z* L
mysql> select exp(2);   
5 n+ u5 R1 [5 O  E  -> 7.389056    0 n4 r  L: ~8 Z& I! V, a# W- w% v
mysql> select exp(-2);    ; t) E$ c7 ^9 l) Y' V) t
  -> 0.135335    ( p- k' b3 j0 P; a

3 [& K0 r2 m3 J3 ~, k# u" R) ^log(n)  
! G5 S- d8 G# J  E6 G9 F% Y1 s返回n的自然对数  ( p' l' M/ O4 B2 s7 P0 H& `
mysql> select log(2);   
  {& j0 R+ L5 a9 f4 E" c- Z/ Y; {  -> 0.693147    / a0 m+ F3 C; L% `* g
mysql> select log(-2);    0 p1 d( p# Z6 _2 g& j: ~4 i# Q
  -> null    ; m8 L8 f1 l1 a( ?
3 M' D' q3 V2 o: L. |! X
log10(n)  : A" N" X; K+ r. }
返回n以10为底的对数  
& Q9 k# R: l' w% x- zmysql> select log10(2);   
( R4 \% U8 E$ l  -> 0.301030   
; p+ H9 a1 `# w0 K' hmysql> select log10(100);    " Z+ ^$ {& K) ^2 m8 {: F) G
  -> 2.000000    1 E. Q. ]! D8 ~
mysql> select log10(-100);   
1 _1 Q. h! }" E  m  -> null   
. ^) L, |& K3 c1 R; l
6 u: N* j  p% ^) \% Spow(x,y)    ' T( s0 F* f! _
power(x,y)    7 X: G0 G7 ^' H
 返回值x的y次幂  9 x* _: c1 L( M* |# p) \0 i
mysql> select pow(2,2);    ' I( n& T. N5 m# a
  -> 4.000000    - s1 p2 T6 e) W* y" J. \0 W5 v
mysql> select pow(2,-2);   
0 q/ K6 j1 e% E' F$ Q  -> 0.250000  4 V  L, y- p6 n" ~) u2 B
* x4 C. y1 ~7 K4 u2 }- j
sqrt(n)  
9 D, w% l  e/ h$ b7 i; V 返回非负数n的平方根  ! T. m0 n% R; H3 D, f
mysql> select sqrt(4);    , O. e2 C7 {  T4 [3 e
  -> 2.000000    7 V6 Z/ @: ?4 `  v- W
mysql> select sqrt(20);    ( N1 Q" O8 o$ a$ u" b5 X  t
  -> 4.472136   
8 i; Q# m9 |8 g/ N  Y+ x' ]+ ]8 P1 |  o 8 k6 l2 E" R  P0 e
pi()    - j% S0 M" p1 }  j8 Z% M) u( \
 返回圆周率   
8 {. w; {  ]% V2 h) v8 Xmysql> select pi();   
# l0 Y( J6 x1 q* @7 c  -> 3.141593    3 ?2 a# [# T" D: i7 V

$ p$ H; i: g7 d1 gcos(n)  
1 ^! Y# M& j4 m 返回n的余弦值  
/ ~8 m0 l$ ^1 Z  Qmysql> select cos(pi());  3 J$ i4 g* X& X, D. K4 i
  -> -1.000000   
4 P6 j- y! S' y) F9 H3 v ! e5 K* v3 r  F0 x8 C
sin(n)  
" u0 n4 v+ f$ t' [& p7 @ 返回n的正弦值   
8 k! ]9 \% t/ t- l2 I6 u5 J6 E: m, Cmysql> select sin(pi());   
% D# O* I" L% J  U  -> 0.000000   
! x" H5 Z: @  i3 w+ ?" ]% U) F " A9 q+ h( R% y
tan(n)  
+ T. h5 D0 r( W( T0 @返回n的正切值  - A( V0 @9 `2 _7 W
mysql> select tan(pi()+1);   
- `- M6 s3 I9 K& X* U  -> 1.557408   
3 J2 _& P; u: s3 G: S8 l( b
% q  K- b2 z3 q1 |7 k6 h6 iacos(n)  
" f2 f/ F# D4 ]- N9 R( T 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  2 n: U( F6 \3 B4 h4 H1 d% W" E) ~
mysql> select acos(1);    & X' [1 O. _# O9 x  D# O
  -> 0.000000   
" V: [* t+ r9 X' Q# C0 U6 ], `, c- q2 Omysql> select acos(1.0001);    ' B6 D5 D4 V% w& G8 {+ w
  -> null   
9 j( {: L" W9 Y! H3 imysql> select acos(0);   
6 G! _3 J* o" k; G; {' ]; m* K) ?. p  -> 1.570796   
2 n. s/ ]1 G" ~ ( U% M- J) `/ [# }3 p& {0 e/ h
asin(n)  
/ |2 A5 ?2 w/ y返回n反正弦值  
3 {! G4 X( ?' x; g* f) J! Gmysql> select asin(0.2);    / L8 B3 T$ a6 o) ^4 q
  -> 0.201358   
1 A7 o& V+ N) Q( Xmysql> select asin('foo');    6 }7 }% S' L* f: t/ |
  -> 0.000000   
: ?9 B) G/ V# W, I! P( r
4 w  ^+ h8 t0 A* z  satan(n)  
! C/ t4 }! \$ ^( q$ C返回n的反正切值  . @  Q. u, `/ v8 ?. {% d8 T
mysql> select atan(2);    " T- ?  o! ~6 d
  -> 1.107149   
7 o: M# Y( D2 umysql> select atan(-2);    # b+ J! v9 q1 Y( m
  -> -1.107149   
  \) H& P( n$ F7 ~7 hatan2(x,y)    7 P2 \$ y! @$ c
 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)    M  ]3 a/ W3 E& v2 ~8 H. A
mysql> select atan(-2,2);    2 [+ o. a# y6 _1 |, a- R' m8 p
  -> -0.785398   
* i3 i) s- V  `" Smysql> select atan(pi(),0);   
2 N7 a) \& B8 g- d% r! }3 }  -> 1.570796    ! N, X" B  B+ c4 J5 ]2 k7 s
/ G+ \1 @+ c6 F7 z
cot(n)  
% V6 ]! A& K+ z返回x的余切  
5 v) _4 K8 N1 _' |mysql> select cot(12);    : f7 T9 E* a& R7 F. ?
  -> -1.57267341   
" r; K5 P5 x/ ]- Pmysql> select cot(0);   
0 o2 v5 B! D" @) [1 w  -> null    ! _, R) b3 E  \8 f( M" j6 w
* E5 ]" l6 V, N8 O: C
rand()  3 R1 H1 }$ W, k. a5 }9 r( h
rand(n)    ( j2 Z, T' |7 @, [9 q' ]
返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
0 U$ B, ~: I$ o, P " a  n; t( m/ O- c" I9 V' q
mysql> select rand();   
1 Y/ l9 @2 u2 w6 S  -> 0.5925   
' R# Z; Q  i  ~mysql> select rand(20);   
+ W. d8 i: B+ B$ h  -> 0.1811   
, v' N, ~; `' h' v- ]0 Jmysql> select rand(20);   
: M% b0 c8 f& u' V  -> 0.1811    ) c! M( ~2 B- m" s% F% x4 N
mysql> select rand();    ' r% F% U2 e+ c( Y$ c+ \1 ?# d
  -> 0.2079   
( r* `0 A, X% ]6 b) Nmysql> select rand();    0 u1 D! |& F$ N$ q
  -> 0.7888    / a1 c2 g" O" g* _2 S
3 v: w1 @& k5 z5 x) N$ \
degrees(n)  ' y5 X$ R2 q% L
把n从弧度变换为角度并返回  * ?# o# E% T$ d3 p$ r. q( ^& O/ C
mysql> select degrees(pi());    * o9 f) l* T* L: U+ r. G
  -> 180.000000   
7 S, y9 ]0 O8 T
* X1 N( ]3 H& J/ U6 u" h  a( T! yradians(n) 4 d8 ~- d4 R# \( r. _! e
把n从角度变换为弧度并返回   ; n4 S% \9 K: m1 w; R
mysql> select radians(90);    1 J; w! N: P) k% P& ]2 K, R( e
  -> 1.570796    ! T2 A; h4 o' ^; ^- f! J
( l7 l. Q" r" E: J, o, E
truncate(n,d)    7 M, j) H" S! Y# w% l- Y2 ?; D
保留数字n的d位小数并返回  ( a0 [# r; X( {; [5 A5 ?
mysql> select truncate(1.223,1);   
6 y+ O$ }0 H+ B( l. s  -> 1.2   
( \$ Z" G: }" a; H+ E( d: S5 ~mysql> select truncate(1.999,1);   
1 ?4 G) k1 f2 g3 {( b! Z, g3 m  n( f  -> 1.9    , y4 k% @) n5 U9 F6 z
mysql> select truncate(1.999,0);    5 |7 s* w, V  O; n6 {2 {( ]% X3 y9 X
  -> 1    4 r0 Y/ A  O& ]  ?3 I7 T0 x
! |5 `. x2 O9 H. V) [
least(x,y,...)    + `- m0 [) W+ O* t. s& z
返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  6 [( b2 i: [1 D4 v
mysql> select least(2,0);   
4 x4 w- ^  Z" x7 o  R: G( I: D  -> 0   
; i0 s+ E0 }1 _* ~& f* x, Nmysql> select least(34.0,3.0,5.0,767.0);    & S$ ]; e5 ?' X* G; s& `
  -> 3.0    $ ?( L+ C9 z7 m3 H0 `
mysql> select least("b","a","c");    5 O5 {" s0 u# {0 O1 E6 n5 U
  -> "a"   
& P' s# f$ [+ k4 j 1 k- r: y! q" N
greatest(x,y,...)    9 J/ ]" [& N; J: U
返回最大值(其余同least())  
" ~1 e6 u" o0 n5 h! S3 [mysql> select greatest(2,0);    1 V; [( I% h7 r& v
  -> 2    1 C  l; c' l  M' l! w3 ~9 }
mysql> select greatest(34.0,3.0,5.0,767.0);   
( g, k+ @  A! K0 {5 l) u# ~; }  -> 767.0    : f: B' a" s5 S6 K# \3 f
mysql> select greatest("b","a","c");   
% @2 O( p- }: F! h: u/ f  -> "c"     
2 ~7 C: e( D2 l, u
- C! [/ X0 e+ `) v9 _9 n6 f4 \3、时期时间函数 7 s3 C) |% S. q- o' o
dayofweek(date)   
4 h8 Q$ w# M; ?/ C8 m; G; A# o返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
( \& o: O+ ^- O  n2 ^' |mysql> select dayofweek('1998-02-03');    8 r4 N! D& S5 o) E
  -> 3    2 Y; O. c$ t: o( M9 n
6 o" d/ r. Y$ B' H
weekday(date)    . Q( a9 V$ z! m/ \
返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
) }1 l- C( l: @4 `  
2 V5 O- j  x2 O; e  _) z( U' {mysql> select weekday('1997-10-04 22:23:00');    2 Z) ~7 O! t8 _& N- A0 J
  -> 5   
5 M; S6 L4 m6 C. ]0 _3 h4 m& Fmysql> select weekday('1997-11-05');   
! Q9 Q* Z5 O8 J; H0 v  -> 2    1 c4 @9 M; X: I. `& {0 \
) K( |  v* S( y
dayofmonth(date)    ; Q0 Q! U+ ~6 j$ m  F( e" A
返回date是一月中的第几日(在1到31范围内)   
9 |- l' w4 m9 q. Y. hmysql> select dayofmonth('1998-02-03');    7 Z& a# f) w; b% w
  -> 3   
8 c' h$ i8 \+ W. R: C0 g! ^# E 6 O1 B" k! O* S1 P& R1 W: |
dayofyear(date)   
+ Z) v" @; R: ?" z0 g返回date是一年中的第几日(在1到366范围内)    & d* |8 T2 v/ U* m. X2 l
mysql> select dayofyear('1998-02-03');   
9 e9 I3 q" a- b$ s5 l' _  -> 34    . @! {; \, u- V6 O. K. ]0 F; |

/ |, Y# `0 m9 [4 y1 [4 ?, amonth(date)    0 `* ?/ O: M+ y/ z" D8 v) A
返回date中的月份数值    0 V9 Y/ u2 O! ?8 L4 \
mysql> select month('1998-02-03');   
% H* e4 C& v5 {  -> 2    : w8 f8 D% V2 B
5 o8 i- l4 ?- g7 [5 ?! Q" d( Y
dayname(date)    0 v; t  e6 b7 b& D, W- u
返回date是星期几(按英文名返回)  
- }* m" h$ N9 c9 w& Xmysql> select dayname("1998-02-05");    ! X" C* M; i+ }; p  U* O
  -> 'thursday'   
" u& p6 Z+ \& N( R# _ ( g8 D2 E/ y+ b
monthname(date)    * v, n( e$ h3 B; [9 o/ T
返回date是几月(按英文名返回)  $ g3 x+ [- h3 F! N
mysql> select monthname("1998-02-05");    + O  ?; H- {8 N  G9 M: C$ O
  -> 'february'      j) b) C# V: U/ K
8 V; A6 q5 a: p
quarter(date)    & {* m  i+ @2 D5 p" a3 M% G; F
返回date是一年的第几个季度    # `5 y) R3 ?  F) b6 i6 M6 `+ [
mysql> select quarter('98-04-01');   
  O9 v5 J: `& c, l; ]; s6 s# Z  -> 2    0 P, O+ l( _/ y

- R9 i! P7 r1 i% B6 Y* l: X1 mweek(date,first)   5 Q% X( B$ a2 v8 c
返回date是一年的第几周(first默认值0,first取值1表示周一是: H+ a' c* z/ h# h: ?: ^1 T6 C
周的开始,0从周日开始)  ) C, `# @8 x3 ]5 H0 K
mysql> select week('1998-02-20');    ( T4 u% l0 z, ]3 j! \
  -> 7    $ |* j9 {" T' u+ t, z. r4 R
mysql> select week('1998-02-20',0);    , x" I! l1 {+ `
  -> 7   
) k" V7 ~  D. }mysql> select week('1998-02-20',1);   
5 T' M& R* ?( g; w  -> 8   
- _7 |) T( |5 E6 X
$ W) M2 A  V( i3 U, r2 Nyear(date)   
3 ^9 j9 `! S$ Q0 {9 f+ H返回date的年份(范围在1000到9999)   
$ E0 }1 W6 X( _' C6 E/ C- ]- qmysql> select year('98-02-03');    3 F; c( o0 Y6 X# p* J, ?5 `
  -> 1998   
7 Y6 d) I2 ]3 F, e& {8 l- ] 7 \6 z4 R$ \2 U# Z) \
hour(time)    
! V4 f$ [& v6 Y4 ?# U5 J1 I, v返回time的小时数(范围是0到23)   
$ P) o# h, z/ ]- O5 R( K& a- rmysql> select hour('10:05:03');   
/ j4 ~' h! c9 c' h: P8 t& `  -> 10   
, v1 f; ~! F% Q
& s% z/ `/ r& a9 L& P6 h! `) q, Iminute(time)   
" H8 k( e5 Y3 D$ y- P/ @$ X3 N2 G返回time的分钟数(范围是0到59)   
3 K' c( p9 N! [mysql> select minute('98-02-03 10:05:03');    # [$ _  P# h& B7 y# h9 o& j- G
  -> 5    ) E0 p1 k: E! R- [
6 L+ F# L. X$ K* y& b6 o
second(time)    # ]/ ]; G7 i2 ?! c2 H7 O5 t# M) {
返回time的秒数(范围是0到59)   
+ _/ \) K( v+ G( k& ^mysql> select second('10:05:03');   
) H7 F4 t% r' v6 v8 \! D  -> 3    # w* C3 [) a- {" `
! ]  E' X1 f5 v3 d+ V5 O3 ^
period_add(p,n)    ) g# ~$ p% i/ a4 X2 }+ r
增加n个月到时期p并返回(p的格式yymm或yyyymm)   
+ h7 P( Z& D- E' r- z" Vmysql> select period_add(9801,2);   
; u  L5 @. ~: o  -> 199803   
6 x; t. g! c( k3 n; E
# m5 `' w0 {# J* \: V, K9 Speriod_diff(p1,p2)   
1 I% a. I. K$ V/ ^返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  
7 K! f$ K! l5 F, u9 L; p2 d6 K' cmysql> select period_diff(9802,199703);    5 G- n$ b3 p4 c  n+ n3 z! {
  -> 11   
# d4 Z, Q! h1 p1 K& o; v( C9 x ' g" y/ _6 P) a+ |6 t2 I: c% E% L
date_add(date,interval expr type)  1 {7 _. y1 ]+ T/ ~3 X/ ^
date_sub(date,interval expr type)   
# {; K$ A; r* [0 `. ?7 Padddate(date,interval expr type)    ) k% T4 a) ]  y+ ^
subdate(date,interval expr type)  ; ^+ k$ ^! @9 f. j. u0 D0 A: j; \
对日期时间进行加减法运算  9 P2 k- n$ ^4 G
(adddate()和subdate()是date_add()和date_sub()的同义词,也& J2 \8 t/ c  t* H2 b
可以用运算符+和-而不是函数  
6 o, i. L, M& z4 ]1 ]date是一个datetime或date值,expr对date进行加减法的一个表0 a) |2 v& o8 p" O$ a6 }
达式字符串type指明表达式expr应该如何被解释  " c1 _4 @0 P# U
 [type值 含义 期望的expr格式]:  . k+ P; _, w; q) B" f" |
 second 秒 seconds   
; m5 |* S" W' f minute 分钟 minutes   
' `  S; O" b: k) o hour 时间 hours      o/ w* r5 z1 D7 B+ k2 [: c% q
 day 天 days    ' E* u3 e1 N+ h5 O  v# \+ {
 month 月 months   
5 c; N* r# c3 b  r& q year 年 years   
0 O9 ?: ~6 w: a! z5 ~ minute_second 分钟和秒 "minutes:seconds"    6 U$ l* E$ ?9 F3 F4 Z4 Q
 hour_minute 小时和分钟 "hours:minutes"   
0 d' N! M8 c7 i. A, Z. z day_hour 天和小时 "days hours"    9 i  ^* a4 w5 Q2 p
 year_month 年和月 "years-months"    $ [! `& k6 V  b0 |! j
 hour_second 小时, 分钟, "hours:minutes:seconds"   
# O$ P8 O$ h4 _% M5 _# T day_minute 天, 小时, 分钟 "days hours:minutes"    1 e. R) t: Y1 |% m# h
 day_second 天, 小时, 分钟, 秒 "days' C9 M9 R5 d5 L: ?3 j
hours:minutes:seconds"
5 _! s- V# d. V+ u8 ` expr中允许任何标点做分隔符,如果所有是date值时结果是一个8 y# q; X+ g, X3 Y% K. ~
date值,否则结果是一个datetime值)  * `3 B' ]+ O' P' g% B, [1 b
 如果type关键词不完整,则mysql从右端取值,day_second因为缺3 S" H% }; i) M6 D% r0 @% x
少小时分钟等于minute_second)  
+ X2 B5 S7 P) T7 [' g" j* s 如果增加month、year_month或year,天数大于结果月份的最大天
% ?6 b$ ~: J4 B数则使用最大天数)   
; c7 E# Q. E* x( a; f0 @: Jmysql> select "1997-12-31 23:59:59" + interval 1 second;  9 ?$ U% i" \0 T& b) m2 L
- j& F# b' j3 H5 T9 f2 ^
  -> 1998-01-01 00:00:00   
3 m, J# f0 _1 V. f# l. {mysql> select interval 1 day + "1997-12-31";   
5 b" U7 M0 h: N$ H  -> 1998-01-01   
) F! _" p( ^4 u2 B: I/ P' o  tmysql> select "1998-01-01" - interval 1 second;   
$ q. Q0 d# z" k5 [6 f* ?9 y  -> 1997-12-31 23:59:59    1 u% ]6 u0 g' \+ R% y
mysql> select date_add("1997-12-31 23:59:59",interval 1
' W- f- X2 ~1 x* a; Gsecond);    & q) K+ u8 r; o& R9 b! l
  -> 1998-01-01 00:00:00    " G5 W! v9 t+ m3 }0 h0 M7 e
mysql> select date_add("1997-12-31 23:59:59",interval 1
0 S- d: `8 G1 S$ c( `day);    . a& N$ H! o/ m  w3 Y# T; t
  -> 1998-01-01 23:59:59   
. a' K. m4 p1 S9 F5 wmysql> select date_add("1997-12-31 23:59:59",interval
$ i, t9 p2 F- I"1:1" minute_second);   
( B9 k4 r- M0 K2 I7 n  k  -> 1998-01-01 00:01:00   
2 Y* r; n0 c" Y( U7 M* Mmysql> select date_sub("1998-01-01 00:00:00",interval "1/ c7 D, Q* R. G
1:1:1" day_second);   
9 D0 g& l/ S, t7 G6 C% l7 a  -> 1997-12-30 22:58:59   
2 _( t& q% w% d( g0 V& i- omysql> select date_add("1998-01-01 00:00:00", interval "-1  |4 K4 E. @% A. d/ u3 b
10" day_hour);  
8 Z. [0 w, y& u4 s2 u- i3 B  -> 1997-12-30 14:00:00   
( ?- e% n* u% r2 Smysql> select date_sub("1998-01-02", interval 31 day);    $ |. p' B& r; i# {3 d
  -> 1997-12-02   
) A/ \' O& X0 |3 v# `  |mysql> select extract(year from "1999-07-02");    * Y9 W; w  ?% {) E
  -> 1999    & |. [( l) N8 f! Y, d' s; ~
mysql> select extract(year_month from "1999-07-02! n2 S* \: x# a( M) w
01:02:03");   
) i' I2 W/ u5 Z9 d0 ^" {  -> 199907    0 ]8 f: M6 u0 Y& z& p
mysql> select extract(day_minute from "1999-07-02! x* @5 N- u8 r$ }4 {
01:02:03");    : w' u- j- \( T" ?1 h" }" z
  -> 20102    # \/ z/ [; ?- R9 k7 O0 e/ x
/ m. X* ]# X4 B
to_days(date)   
2 V/ b# G5 c6 ~3 ]! P) n返回日期date是西元0年至今多少天(不计算1582年以前)  
2 g% ~/ S/ v* J0 kmysql> select to_days(950501);   
% H! H7 E8 W5 m! J. }  -> 728779    & d9 L1 J; s* k
mysql> select to_days('1997-10-07');    , @$ Z/ j6 B: ]$ r, p/ E# G  I
  -> 729669      ~" [; z- T2 a% [3 T/ c0 T3 ]

, _) Q& W2 S+ z2 G3 q8 u: rfrom_days(n)    3 K/ \$ n0 L3 K. c  b# H
 给出西元0年至今多少天返回date值(不计算1582年以前)   ; `# z2 D3 S6 _+ y- z
mysql> select from_days(729669);    2 P6 R. @$ [0 z1 J3 _
  -> '1997-10-07'    . C1 Z# x" K/ p/ P
( O* @& B) j; j8 |5 h. \
date_format(date,format)   
  ~3 H$ b& r- R2 H+ P, z  F 根据format字符串格式化date值  
2 B5 {+ _2 _8 Q (在format字符串中可用标志符:  
# H7 ]' s& R3 D %m 月名字(january……december)   
* h, J- F# d7 X4 Q2 R, b) ] %w 星期名字(sunday……saturday)    ) K4 s; F8 ~  J. u9 N
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    ) m  E! D9 `2 t* Y4 T
 %y 年, 数字, 4 位   
/ D3 D9 [9 e+ [+ B  Z' M9 s3 M %y 年, 数字, 2 位   
0 ]6 Y2 @1 M! ^ %a 缩写的星期名字(sun……sat)    / M2 A& M- m' f2 I" \
 %d 月份中的天数, 数字(00……31)    - l/ B" G) [) G' @* i
 %e 月份中的天数, 数字(0……31)   
5 g9 e* u2 I) j# ?# g %m 月, 数字(01……12)   
7 _  F3 @: X  o, [ %c 月, 数字(1……12)    0 c- o* N# r- ?5 q  I
 %b 缩写的月份名字(jan……dec)    8 Z  e- I8 b( ~( S
 %j 一年中的天数(001……366)    & l& [/ u) n) F* J8 {( _" R
 %h 小时(00……23)    ' X; \+ ~8 j! z
 %k 小时(0……23)    - w# Z# a3 R2 M4 t& [+ `# ^1 b! \
 %h 小时(01……12)    . Q: `& u, C; u
 %i 小时(01……12)   
. s) }/ G/ Z! _' h %l 小时(1……12)    . E# ^" Y# d6 V, U
 %i 分钟, 数字(00……59)   
3 A; c; k; S7 j5 V; c %r 时间,12 小时(hh:mm:ss [ap]m)    9 [# L$ T5 Z; `8 u. o, F9 K5 O
 %t 时间,24 小时(hh:mm:ss)    ( I8 @* n" [8 D! o- c! l; J
 %s 秒(00……59)    ; A- J% s  U" {
 %s 秒(00……59)    0 R- L3 S6 d6 k- V/ A! |
 %p am或pm   
; f- H4 a( m3 Z0 u5 u7 f %w 一个星期中的天数(0=sunday ……6=saturday )    & U' V4 Z1 D, }9 ?9 M
 %u 星期(0……52), 这里星期天是星期的第一天   
4 f% t! d# O% _2 { %u 星期(0……52), 这里星期一是星期的第一天   
! G: \0 l3 D1 S) d" R( r2 v %% 字符% )  : ~/ m3 g8 e% p7 }3 q
mysql> select date_format('1997-10-04 22:23:00','%w %m %6 _8 C, W7 }& M% E
y');    ( n3 G0 }6 f7 X1 L! ~  k; k
  -> 'saturday october 1997'   
; U3 k7 t  J  l* bmysql> select date_format('1997-10-04 22:23:00','%h:%i:%
$ O2 @8 U4 y4 g8 w0 @& ?7 ^" L8 l7 gs');    ( T, v4 z: j& c8 o
  -> '22:23:00'    ; I) ~+ W9 W7 z3 I
mysql> select date_format('1997-10-04 22:23:00','%d %y %a* R- t: J9 m6 |. D5 ~: c0 S" P& [& v
%d %m %b %j');    $ w2 e  a5 F& l- u: C2 T4 T" W% d
  -> '4th 97 sat 04 10 oct 277'    7 D& N& C2 C8 g; t8 O: j
mysql> select date_format('1997-10-04 22:23:00','%h %k %i
* H7 [1 Q  ~% p. h3 _; A* N5 e8 P' j%r %t %s %w');   
/ k0 Q( x# q( I, K+ P  -> '22 22 10 10:23:00 pm 22:23:00 00 6'   
9 g- w( A$ r& R$ ~' q 3 X0 }1 [% Z: F' g( V
time_format(time,format)    T/ h9 D+ Q& F0 }% x, l1 H
 和date_format()类似,但time_format只处理小时、分钟和秒(其) F5 G# G0 e3 G+ b6 l
余符号产生一个null值或0)  9 @: J- v2 g3 f  X

* j1 F7 D0 c9 v' z/ H! Acurdate()     - B9 c3 D% h! U. P, f) s
current_date()  3 E5 y5 ^, G! R! v2 Z
 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所1 W2 @9 H! `5 K: C
处上下文是字符串或数字)    7 O8 Y7 l0 M* ^: ]
mysql> select curdate();    ) t1 x. a: {7 X' l+ Z: v- p1 p
  -> '1997-12-15'    & G: ~  i! W8 w3 o8 K' g8 s' A& |
mysql> select curdate() + 0;   
( Z1 z5 E) c2 q( ]* V  -> 19971215    6 r3 I9 X- E; w' @6 u

  q; t% A3 a+ Xcurtime()    : c% Z, i7 M6 \& ?6 F. q
current_time()  
  \( H) ]8 n7 L 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上: c- k7 P' _) K" u5 f
下文是字符串或数字)      
* [# D. w* a4 @5 E) xmysql> select curtime();   
! W* a7 q, M9 {  -> '23:50:26'   
' L7 D/ v$ S8 C1 l+ Emysql> select curtime() + 0;   
5 l  K/ a& B* `- a/ P  -> 235026   
4 L( x+ t; l. i1 Z0 Y" _ / Y! ^9 }( H8 c& K3 a+ \. @
now()    
' F) J7 ^2 `* P- U" Csysdate()    
$ D8 h6 p0 N" F3 f  _  ~current_timestamp()  
; n8 x" |5 ]' ? 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期/ ]& `' c3 D9 d! G  X# \4 G7 D* K
时间(根据返回值所处上下文是字符串或数字)     
  f/ H/ M3 D' \, r5 Fmysql> select now();    : h/ m1 r# p$ v) p% {
  -> '1997-12-15 23:50:26'    9 P' G' \; n' d- J- V3 S$ P
mysql> select now() + 0;    ; p. d/ Q* G8 j) `7 Y* t
  -> 19971215235026    5 G" ~: c! m4 D9 }" [, C, z5 s

" J4 N5 ~% Z2 ^3 K! P# L) aunix_timestamp()    % L$ n' W4 c  ^
unix_timestamp(date)    4 ?; W: w+ `: k* H4 A6 y
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
: {0 V" c2 R4 k数,date默认值为当前时间)  * U7 l; J) o( r  T' M' e% Y
mysql> select unix_timestamp();   
6 a' B& D: }0 v6 o4 Z  -> 882226357   
) @6 A. r) M# V! i, `, r) f, h- xmysql> select unix_timestamp('1997-10-04 22:23:00');   
. h% W/ d9 G5 b# M; u9 L3 F) [( N  -> 875996580   
" n" u. N+ D9 @1 c( p. n) k 1 z% w; T% I1 w+ \
from_unixtime(unix_timestamp)   
' U, U: F9 H8 g以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的6 u8 |& L% b# o: @" ]0 L4 I
值(根据返回值所处上下文是字符串或数字)     . Q" W; ?2 P6 j2 u
mysql> select from_unixtime(875996580);    / k: h# o$ d1 O0 @
  -> '1997-10-04 22:23:00'   
- t# q8 f( c; D! o4 d/ dmysql> select from_unixtime(875996580) + 0;    ) P  o) y- H; |5 M+ o# z& S. j
  -> 19971004222300    , l  x: n0 q& L  u$ B
% B+ C. H# b% t4 F$ g2 d) C! Q
from_unixtime(unix_timestamp,format)    1 `; x* e3 S) l4 J
以format字符串格式返回时间戳的值  
  o* x* {) n' H& N. W$ p/ Mmysql> select from_unixtime(unix_timestamp(),'%y %d %m %
1 E6 u( d1 Q6 h7 L: Y' o. |h:%i:%s %x');   
$ q; {+ j6 L7 p$ Y  -> '1997 23rd december 03:43:30 x'   
/ T: n+ ?* ^7 s& _1 l
4 c( U3 _4 e! E4 [sec_to_time(seconds)   
) Z$ c4 G6 `. X$ {" y以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
% v" y, J) v3 V7 {6 Z6 C) qmysql> select sec_to_time(2378);    , U5 U  V: a3 R! ]  F
  -> '00:39:38'    4 c) @5 Q8 y, u% g/ g, s  E5 U& B
mysql> select sec_to_time(2378) + 0;    & l' T. P: K7 A/ L* q/ @$ W7 V
  -> 3938    4 B8 V: s3 P5 o7 r/ P/ V5 \

; t0 S+ f9 }, Etime_to_sec(time)   
: n# {& x3 l+ @: ~3 ^  j9 N+ p返回time值有多少秒    ) n5 ~3 R( j' }
mysql> select time_to_sec('22:23:00');   
  ], y5 Q& S1 ^9 K0 q( D1 A' Y, t  -> 80580    # R, {0 e* |; A5 b0 _& Y3 E
mysql> select time_to_sec('00:39:38');    9 W: n2 U* |9 Y5 I/ I
  -> 2378
. z. G% p6 D" y2 k
& ~" r9 z4 ~7 m0 }8 x9 c" g! L转换函数
" P/ ?, R7 S' {  S0 a- b+ Tcast
2 i; A" A1 j* ~* z- P- G用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]
$ V  k, L7 u6 `# J0 I- @9 L8 `实例:select cast(a as unsigned) as b from cardserver where order by b desc;
) T/ g7 w& K; s- k, c. l* j2 r1 tconvert:
9 k4 Q2 Z1 @) s' S( G用法:convert(字段,数据类型)# V& _  C+ O* v& Z4 r
实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
: Q; _8 \( A$ w- M1 {; g+ J
回复

使用道具 举报

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

本版积分规则

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