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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数
. E% ^% X6 f0 K3 U7 y$ yascii(str)   
6 d5 h5 E6 g' b. ]- B返回字符串str的第一个字符的ascii值(str是空串时返回0)  $ @' x5 D! o3 S& T9 v
mysql> select ascii('2');  
2 T! t! C( H3 f1 `  ^  -> 50  
' |7 T$ _" N2 r: w. I$ bmysql> select ascii(2);  5 D( v& a! I$ \1 T# I
  -> 50  
1 Z! E, o* @& bmysql> select ascii('dete');  
5 ^7 S+ g% T3 S! e  -> 100

( N7 ?( {% j7 g# Y' tord(str)   
% s+ B) C$ z1 M- m  h4 t如果字符串str句首是单字节返回与ascii()函数返回的相同值。6 w" a  E* J: J: c
' b7 g, ^$ B& r! p( n
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  
2 P; ^; i% Y. `, d- s$ }" emysql> select ord('2');  
: ^6 |  X& f2 J4 z  -> 50  
; Z& x; h. Z# V+ f) @   3 A# W  ~5 b0 {( X, Y3 f. ]( L
conv(n,from_base,to_base)   
$ y0 W! }. O& y6 r; ?对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  + {' @' w, m0 c0 |5 g) D5 L7 [
mysql> select conv("a",16,2);  
& ]) L. P, r  Z  -> '1010' - ~* O( V8 K8 t# J! _: R# u
mysql> select conv("6e",18,8);  % g. g4 a0 M, L) v; z, @
  -> '172'
9 k8 m9 |( w! Bmysql> select conv(-17,10,-18);  3 y6 G9 }4 b/ k3 m; |1 ~2 A# H
  -> '-h' 0 \! {* H/ Q4 z/ Y5 q/ u  u. v8 B
mysql> select conv(10+"10"+'10'+0xa,10,10);    R# p  e  E; C' U, c4 c
  -> '40'
' F  g$ {4 D+ [6 @6 o' h, N# W( G' p   : w8 y% v( b8 q6 p, ?( z. F  [6 @; y
bin(n)   
8 \5 f, G9 |+ A5 r把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  , B/ i7 W6 k* h$ {+ C. `9 r5 o: E
mysql> select bin(12);  
( x; ]$ B; G7 V/ q( T  -> '1100'
7 Q4 M% i/ {! w+ e' H. A
! }2 n% }5 S) ~, c8 n% a# Toct(n)   
( Z; S" M% u3 a4 a  R- I' b9 J把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  : E- N! h/ P" Z) G
mysql> select oct(12);  
! F8 {. L3 D6 _8 }  -> '14'
- g+ ^% a: Z- u: J: e   
) a, o( b7 x. o, ?8 Chex(n)   
3 i. b" Q! f! ^把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  ; B; O$ `$ r7 x6 q9 t& w, f1 b
mysql> select hex(255);  
5 S) \$ f. ]5 s  -> 'ff' + `7 s7 I4 N' o8 q3 {5 C7 J
   
& Y% o( A+ T+ q' Gchar(n,...)   1 K: o; V7 X! K* C+ B# U$ d
返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   
" {" |: P; T- I( q3 X$ jmysql> select char(77,121,83,81,'76');  : d9 X  r  m: f7 ]
  -> 'mysql'   V$ s0 {# O3 G( V/ Z
mysql> select char(77,77.3,'77.3');  
8 ?4 V  [- X. V0 F- v+ f9 G  -> 'mmm'
( h0 X: \, g9 ]& |7 C   8 n3 B, j: ~' t7 o: A! Z! @- ~
concat(str1,str2,...)   ' U" ^3 l) |* h) o* a0 n" E4 W
把参数连成一个长字符串并返回(任何参数是null时返回null)  5 r5 ~4 O+ {" {/ C+ c
mysql> select concat('my', 's', 'ql');  7 f4 t6 n% U4 ~, v+ `, Y9 z5 R5 E7 G! S
  -> 'mysql'
$ i: j/ ?& X+ X: F& |# I; L- jmysql> select concat('my', null, 'ql');  ; I  X2 v7 W8 j2 g2 s' R2 h" B
  -> null
4 Y2 d/ I7 H9 `% o; _6 U) ^mysql> select concat(14.3);  + i. h% L) h) v  n& I
  -> '14.3' ; X3 U! q1 r& B. B/ F% \5 d
( v2 a9 S$ g( v( I
length(str)   
* f5 ^% w; P4 m3 M# [octet_length(str)  & D7 M0 q" O; R7 V
char_length(str)  
# m+ R) ~- F1 p+ n0 ?character_length(str)  
: P# k0 c* g& l$ C! q/ b返回字符串str的长度(对于多字节字符char_length仅计算一次)
! s/ f  a* n- s# |' H/ omysql> select length('text');  
0 {  U+ }9 H6 o8 d! v5 K  -> 4  5 z% Y0 G* p3 S2 U. T# l- e
mysql> select octet_length('text');  ' M# I" U7 F1 ^+ l; }% d9 T- g
  -> 4  % @) d! |* I* W7 v5 G/ h
# }0 A; t4 w; i; P  Z  u$ d
locate(substr,str)   ; R  C3 w9 l: b( o
position(substr in str)   1 k" n- x# g  t; N" `
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  0 d9 ^/ L7 a: J) n: Z9 R3 p* d* r5 s
mysql> select locate('bar', 'foobarbar');  : Y5 z. o% G7 n1 ?4 t9 i+ R7 }' G
  -> 4  2 v" ^3 g' P3 e; I7 O" R
mysql> select locate('xbar', 'foobar');  + O6 `, J% `& V# i" m
  -> 0  # O. G4 K3 |! G0 m- M( O" X
   
  J* P5 ^  @1 q% v& mlocate(substr,str,pos)
/ ~1 x; a; E& X5 }7 Q/ L返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  . O, |" @& Q$ Q9 i0 }: `8 n4 M( L2 ^; j
mysql> select locate('bar', 'foobarbar',5);  / v# m+ Y: R1 V  J9 C/ }2 _. n5 T
  -> 7  
  y8 `- I* G. ]8 [' R4 @8 O
& I: V$ k  g9 \3 ~instr(str,substr)   ; o+ E9 _# r7 B- _6 a2 N* d2 M/ k
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
8 L; v( I$ l  s8 rmysql> select instr('foobarbar', 'bar');  
( h! a) g# [& T+ [) x' ^; M" |  -> 4  
$ D) b  p  l' o* rmysql> select instr('xbar', 'foobar');  + V4 D( \0 F( C9 D
  -> 0   
% Y6 Y1 |: B$ Y  r) |5 a   k" T+ |# _1 W, l. x
lpad(str,len,padstr)   * A! v) q4 d0 N2 y  T
用字符串padstr填补str左端直到字串长度为len并返回  
7 U. g% H: U8 v8 G5 h/ o1 G% ~mysql> select lpad('hi',4,'??');  4 w7 P$ o: R( }" S3 G# u3 H
  -> '??hi'
1 z% K4 `3 |, h/ T" \   
/ N* T* \. ~2 U4 Krpad(str,len,padstr)   3 Z$ e6 a+ \- i! v3 W) {
用字符串padstr填补str右端直到字串长度为len并返回  - E/ I6 t/ M5 a9 d! `( p# C( o9 n
mysql> select rpad('hi',5,'?');  
8 L5 }, A6 E- B  -> 'hi???'
8 n! Q$ t# ~, w9 L+ \ % u$ o/ r& G* f
left(str,len)   * u4 f$ m" g% S0 ~7 Q6 s4 K6 P$ D! K
返回字符串str的左端len个字符  9 J; u9 @+ v: w$ a& h' ?
mysql> select left('foobarbar', 5);  ; d9 S- j' B& n% O& K' W
  -> 'fooba'
# }; N. C' u, c+ ^; G - @/ i2 r$ `. @4 T8 U& i
right(str,len)   + Y! b9 y/ H2 _/ v8 u
返回字符串str的右端len个字符   
/ f0 o$ B/ l& Y: C# @! {  ^9 b% k  rmysql> select right('foobarbar', 4);  . H* m" V: I# e9 q4 R  G
  -> 'rbar'
7 W# e( ]& j7 m
% o+ i. [1 @+ c! _0 ?substring(str,pos,len)   ' M1 c( n1 [5 {# L# x: e
substring(str from pos for len)   % v  P6 w* |6 h$ m
mid(str,pos,len)   ! t2 |/ Y! F/ D# M
返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  7 B& v, J: K  N8 }' S( ]& u* O' s
  -> 'ratica'
: P5 T, Z3 o; L" H+ q+ Z3 a& L
4 a! d) ~% D. qsubstring(str,pos)   
4 R. V( @, z7 L( Fsubstring(str from pos)   3 H( x0 \  Q' u) R! u
返回字符串str的位置pos起的一个子串  5 k1 f) D: J/ ^( d
mysql> select substring('quadratically',5);  # q- u4 ^% G, o9 ?$ Q  u) [/ D
  -> 'ratically'
8 P0 e$ k0 I2 d) y. v# O* qmysql> select substring('foobarbar' from 4);  
9 ~8 l5 }. w# {7 M2 @& t  -> 'barbar'
( Z: e: d4 y. v' F
" ]1 m0 \2 b- Usubstring_index(str,delim,count)   
( r9 W# t1 U( u- [# e+ ?0 E返回从字符串str的第count个出现的分隔符delim之后的子串
9 g: G# n: g% s! d2 j$ c/ F: a. z$ s(count为正数时返回左端,否则返回右端子串)  ! X7 t. T7 Z8 [- d
mysql> select substring_index('www.mysql.com', '.', 2);  
7 }4 a9 }- D2 f& I  -> 'www.mysql' ; k" C1 Q: i0 n; n
mysql> select substring_index('www.mysql.com', '.', -2);  
, p0 C6 b7 D3 \0 j6 ]3 Z& A  -> 'mysql.com'
  Q! ?" S! G' \: Y# F, w% k- I
0 k) ^9 v( f7 l6 T+ t2 R0 Ultrim(str)   6 B$ {! u' X3 t- w4 K
返回删除了左空格的字符串str  
5 [, J- l3 \7 G/ P! Ymysql> select ltrim('  barbar');  ( u# q# S2 {- _! @$ y
  -> 'barbar'
) J% N' W2 [: V8 z$ e% V
1 C6 I! w0 x0 D3 B/ v- v2 Krtrim(str)   
! r: U: k7 ^6 O7 n5 b$ P3 l& ]返回删除了右空格的字符串str  
& ?; w' {, J6 q; P$ t+ F. W( [mysql> select rtrim('barbar   ');  
4 B! E( K3 B( g4 y  -> 'barbar'
. ^1 L$ l. E' J
: }5 V* B) M. C- B2 ztrim([[both | leading | trailing] [remstr] from] str)   " U; `9 S% s- }+ _
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  6 v3 f' n2 j3 s/ r  O
mysql> select trim('  bar   ');  
. c  B% `4 h3 @  -> 'bar'
- }: S2 t/ o3 gmysql> select trim(leading 'x' from 'xxxbarxxx');  
6 x9 E$ @6 [6 R% {, Z, }. o  -> 'barxxx'
) Q, W% {5 o9 T  }mysql> select trim(both 'x' from 'xxxbarxxx');  - C( |: b! P5 q1 R# v1 i) S
  -> 'bar'
1 B: a6 j% I% N/ H: m, l# O# T( r! Hmysql> select trim(trailing 'xyz' from 'barxxyz');  % ^: h" Z2 P* D  y3 ~5 }6 a7 _+ o
  -> 'barx' ! Q, U2 @: q% F# N! @' t
2 Y' c+ h; C) Y' j7 Y
soundex(str)   , q* v: Q/ T. T
返回str的一个同音字符串(听起来“大致相同”字符串有相同的
9 d5 l/ I% D- }9 |同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  
3 t5 J' `' X6 L: ymysql> select soundex('hello');  & x5 x$ {: I4 {
  -> 'h400' , c+ F8 [+ D; n7 {/ [
mysql> select soundex('quadratically');  / z, x  ]9 ]% {! x
  -> 'q36324' " R" i! N4 ~( F# W& J
   
& F: z( n) ]7 Z3 v1 qspace(n)   4 S: e0 w! i0 D
返回由n个空格字符组成的一个字符串  " T& O' l* t3 t2 ^
mysql> select space(6);  1 ]% K2 |  G. i% w. D2 g$ H% E
  -> '      '
' q" _" {/ {' J* X% z   4 X: ~* f3 N* v1 {7 y1 o7 p
replace(str,from_str,to_str)   7 y' y- l8 K# j! h4 x# S
用字符串to_str替换字符串str中的子串from_str并返回  
$ f+ ]% K6 A. u* `  y7 _mysql> select replace('www.mysql.com', 'w', 'ww');  
" U# O6 {  w6 i1 j5 x% `  -> 'wwwwww.mysql.com' * x* B; S. p- k; A/ e

6 K% l; p& h- J! h- C' srepeat(str,count)   $ u: H$ O0 [& N* g
返回由count个字符串str连成的一个字符串(任何参数为null时  q5 u* W4 {8 S
返回null,count<=0时返回一个空字符串)  , f0 e# ]2 E; H* R* D9 ^
mysql> select repeat('mysql', 3);  
9 P. k* d7 ^! j% A  -> 'mysqlmysqlmysql'
2 J8 C  K* z7 {   + u: G" Z9 ]  w1 Y2 A' x' |
reverse(str)   * {; q4 D5 s7 Q' P
颠倒字符串str的字符顺序并返回  
7 z4 d$ A0 N$ P7 qmysql> select reverse('abc');  8 N) z+ p  M- c7 K2 k
  -> 'cba' 9 Y  E( m4 Q. @7 \& {3 y) z. i

+ _% @% L" l2 v) |) kinsert(str,pos,len,newstr)   
5 M* K- }1 ~  d3 Z0 T9 N3 A8 l5 q1 y' J5 H把字符串str由位置pos起len个字符长的子串替换为字符串1 B' K$ c% B+ I
newstr并返回  
7 H  p" |1 q( o1 o3 p) J, o9 gmysql> select insert('quadratic', 3, 4, 'what');  
: N* V! d4 C% F8 N- n# D8 x  -> 'quwhattic'
* c5 t6 [: ?2 O % }" }. u( K& B& S* W# F4 w
elt(n,str1,str2,str3,...)   2 b, ~% `" P4 P# A* [( X
返回第n个字符串(n小于1或大于参数个数返回null)  ( Z; u* E) M$ p7 O
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  ) G" r7 X5 M! y) O6 v
  -> 'ej'
8 @9 J1 i1 M  o( I$ @7 zmysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  
" Z- i& |5 u8 n4 t  -> 'foo' ; ^; F5 D* P" M9 h$ F
; h* {. z+ Y, L1 d% s5 o& [
field(str,str1,str2,str3,...)   - _$ P3 g. a0 L, v  N8 k
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  + N1 c3 Z* x; w" A  U0 h* R, B" ]
mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',6 b$ R& n, g0 B  W2 m& s
'foo');  ) v" `) B7 _4 N1 C! p9 [
  -> 2  " B: C! R7 g) ?7 w6 ~
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
! M# U; B3 |9 U. G: y- R: \'foo');  % e. m- f6 S; m! w
  -> 0  
8 m, r$ [) x8 A3 p2 |$ h
5 g' z: x* A( I5 z0 w( C7 |& U# hfind_in_set(str,strlist)   : L) b5 K% w6 M- o$ t  n  F
返回str在字符串集strlist中的序号(任何参数是null则返回3 @/ Y( j* K. Q. K& E; Y  g& z) F
null,如果str没找到返回0,参数1包含","时工作异常)  ! j7 K& c; t0 S3 }  Q4 e
mysql> select find_in_set('b','a,b,c,d');  , J4 q, P) D+ C  _
  -> 2  & n" h6 B+ g5 q  q9 Z4 ]1 J
   
- K/ d7 g+ {3 e" s- s/ t3 vmake_set(bits,str1,str2,...)    b0 M9 m, r2 P- U" l
把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
0 M% {, T* v. T' D位置的字串选入字串集并返回(null串不添加到结果中)  7 ]% X6 G+ Q" E8 A; g
mysql> select make_set(1,'a','b','c');  ; f  [/ u- t4 z
  -> 'a'
$ D* i* @( N( \) h0 ~mysql> select make_set(1 | 4,'hello','nice','world');  3 a- J$ H1 A5 d6 P$ g6 X! S4 O
  -> 'hello,world' 1 n% V: C; ?& T, L7 \. G  t2 `
mysql> select make_set(0,'a','b','c');  
# }2 c$ [9 V0 S: \  -> ''
3 p3 g  u; x( X. J. E( q
, [( Z' Q* d- s- `  j. dexport_set(bits,on,off,[separator,[number_of_bits]])   8 A/ E, j0 `! G/ B3 I7 Q# f) i, L
按bits排列字符串集,只有当位等于1时插入字串on,否则插入
! H5 C5 m+ F0 D0 C: A, v% t( boff(separator默认值",",number_of_bits参数使用时长度不足补00 Y/ d7 R# d- l  X
而过长截断)   0 h1 A1 x' l+ J; m6 {
mysql> select export_set(5,'y','n',',',4)  
) u2 O# @5 `% ?  -> y,n,y,n   
* Y8 Q% [3 a% J' k) J9 a $ C6 W3 T4 V# r0 u) F
lcase(str)  % h5 L8 F: \' g; Z' O0 ?. o6 l" g2 N
lower(str)   
8 h( f1 N2 Q1 q- v: a返回小写的字符串str  
0 W$ M. e7 ^1 O( u7 W8 x. Kmysql> select lcase('quadratically');  6 _0 k; W8 Z5 Q1 [' w
  -> 'quadratically' 4 K! o. P8 \8 R/ }8 x7 U- q
   
5 j6 f! y, E5 P$ {+ H, bucase(str)   + M% \! ]; X, _8 Y' n0 b
upper(str)   & z- P% t1 V( G9 U  l' U6 [
返回大写的字符串str  
) y( ?" m. B9 X* R2 i6 F. ^/ Vmysql> select ucase('quadratically');  
) z0 g: U2 G  s# {  f/ F0 x! L  -> 'quadratically' % n0 {7 Y: y3 z: x9 u' w

% N& Q' o" k8 M2 c- gload_file(file_name)   , l( `. }/ X3 M" K# ~2 J7 H
读入文件并且作为一个字符串返回文件内容(文件无法找到,路径' k3 ]6 Z6 c0 [4 `& f
不完整,没有权限,长度大于max_allowed_packet会返回null)  
& z  I! D) D: g- Y- n' O# q2 U8 jmysql> update table_name set blob_column=load_file2 f- e0 s" u) k1 t8 q9 @% x3 q
("/tmp/picture") where id=1;  
. {9 ?6 l8 q6 _ ! [% h' [7 H/ ]  e# N
2、数学函数/ h, V/ O  i+ X8 v4 F$ B
abs(n) ' q/ P1 s, y& U" @0 l5 ~
返回n的绝对值  ! d: h" C# x" E, W0 x. Y- F
mysql> select abs(2);    , F) k) _/ n1 b* y
  -> 2    3 H. f3 P- e- T
mysql> select abs(-32);    + s0 e3 ?# z# l  A
  -> 32    : K5 d) b( ^+ i! a, J
   
7 {' W8 a. Z% z7 x. i/ Rsign(n)  
" G- F* _6 A# P& w; K, B返回参数的符号(为-1、0或1)  
3 Z5 F& e" f. j+ c/ S# }: mmysql> select sign(-32);    ( a2 z+ ]* f& v9 K" Y
  -> -1    8 \6 Z5 y8 k5 c9 P: I! R+ R
mysql> select sign(0);      [/ v9 E- S2 N& g
  -> 0    ' a9 B3 Q. w) d5 c; G
mysql> select sign(234);    ; V6 J6 e7 A. z# Q4 [
  -> 1   
( p9 w- W" @6 V7 o
8 p/ l3 A& x8 S, y# Hmod(n,m)   
' f+ Q4 S! D/ D0 K- \7 @, Q取模运算,返回n被m除的余数(同%操作符)    2 P+ C* y8 z0 D- g: A  E: P
mysql> select mod(234, 10);    $ j. p, _/ h6 A1 F. @
  -> 4    ( i/ z" o  x/ f4 x, v# C
mysql> select 234 % 10;   
2 ?! t3 W+ j: }: e) `: K  -> 4   
! s" L& x9 H% |5 Y  tmysql> select mod(29,9);   
7 r- T# L: `5 p3 A# {3 o  -> 2   
- V& L6 z: H8 w
; A* Y6 b7 r4 q$ m8 h" \floor(n)  - K  A! @8 t! f4 R
返回不大于n的最大整数值  
, X; {$ Y3 Z% X+ M7 ^* z+ _! E$ y2 {mysql> select floor(1.23);    : [) ?0 c$ |  H' [( u. ^/ u) b# Y
  -> 1   
; M5 M- j; o- ~4 q$ A! p# {$ omysql> select floor(-1.23);      b3 i6 i+ \" w+ n
  -> -2    " @& m* S$ ]$ ]0 |* {9 x5 S
3 P0 s$ A6 h( E% M+ k
ceiling(n)  & n6 u9 G2 l5 z! A; A
返回不小于n的最小整数值  
% z, @( p9 ?) tmysql> select ceiling(1.23);    - X; ~  _5 X; |# j2 K
  -> 2   
' l5 N2 ]+ g% s  W* M% p- hmysql> select ceiling(-1.23);    ; n8 `8 S( s, t0 W' M6 I
  -> -1   
* Q8 M7 P% t; F! U( x
% X( V! n2 ~0 r/ c, y& ]% lround(n,d)  & I2 G& \1 l& C( z$ h0 W9 E
返回n的四舍五入值,保留d位小数(d的默认值为0)  
: }% R+ {  m( {; g0 e3 a4 Dmysql> select round(-1.23);   
" X  r) R8 C; w' V  -> -1   
9 Q7 f* U! P0 z, Nmysql> select round(-1.58);   
" d! i) R! ]' c; @  -> -2    , v$ Q$ ?5 S  G% s
mysql> select round(1.58);    7 b5 c6 r: y; A8 n- N8 N; [& B
  -> 2    ' D1 k4 K' U3 |. l
mysql> select round(1.298, 1);    ( n2 x9 n; Q& T# Y0 O% F$ o
  -> 1.3   
$ I/ @/ e3 J+ ^0 M9 _/ z0 Fmysql> select round(1.298, 0);   
: r& F: t+ l1 }3 o, Y  -> 1    ! D5 M- W! F. `
1 m. o+ u9 ]  o. k
exp(n)  
- }1 d# X- J' M) b返回值e的n次方(自然对数的底)  
, ~4 p: V  x! S+ tmysql> select exp(2);   
4 J7 e7 r/ k2 ~, i% x% Q1 ?0 K  -> 7.389056    - u8 X- C( q- I& [
mysql> select exp(-2);   
3 i" Q; b; M  ?& `& \) x4 o8 i  -> 0.135335   
0 P  n% m: c8 T' `0 Z. t1 D
$ r) ~4 D5 L4 Y( Blog(n)  1 p% z/ E6 P8 x
返回n的自然对数  & z0 B$ e7 v3 m7 P; c4 h
mysql> select log(2);    8 n( k! B! ~6 f5 U" K
  -> 0.693147    3 r8 I& |/ s) `. w% C' z+ e
mysql> select log(-2);   
. Z4 q. z. K( Q# ?  -> null    $ ~6 w1 v6 i% m2 f6 N
, \9 o! T7 m. ?) `% G3 _2 w) G
log10(n)  # ^2 z% h! c) l9 R# f
返回n以10为底的对数  7 n8 a( K/ ~7 D+ P1 [5 M
mysql> select log10(2);   
& l1 Z& H/ p2 \6 ?  -> 0.301030    % q. O1 g, k1 M% G/ J# H
mysql> select log10(100);   
1 [/ ?' `/ ]8 ?: {7 S7 L  -> 2.000000   
( g! a7 z" p0 c9 K$ O9 I8 g" C% omysql> select log10(-100);   
- F1 A+ m/ P1 f. J9 C& i6 g  -> null   
) F' m% d* R4 I
* Y( @1 F% L$ s# o0 Epow(x,y)    1 v1 w; Y, F3 s6 t: a# G- K3 v" @6 @$ u
power(x,y)   
% V" H  K) @. Y" x$ K; r6 v 返回值x的y次幂  
7 P, I/ l4 p) n, }% [5 g8 H4 Ymysql> select pow(2,2);    ! B& d% s& j( f7 s* z& g. x
  -> 4.000000    ! U8 d  T2 l. k, t! m
mysql> select pow(2,-2);    3 t  i. A" c' s2 h: r4 h  M1 r1 h
  -> 0.250000  % E% z- l/ `! \4 a

  W  x. F: k$ u" ]) O& _4 {; [sqrt(n)  
/ |! G7 N; H: W) ~# [ 返回非负数n的平方根  
3 |0 u6 c6 S8 W+ H; {1 O; Rmysql> select sqrt(4);   
) q6 x1 h9 `: a  -> 2.000000    $ \6 k0 j, ~  H8 U& I( P" e
mysql> select sqrt(20);    & r7 d0 _, C; h* d$ a9 p' R5 P
  -> 4.472136    & W6 p* E* L/ A# U2 P0 c' k! s
) s% x5 u2 ~2 o/ f
pi()    % L' X* J9 D7 ~! W; p6 w
 返回圆周率   & V  V. H7 T% q9 _1 {! {
mysql> select pi();    6 Y* s% o0 L7 f
  -> 3.141593   
" x+ J$ c# x; _( p/ W) D. G
, [4 ]7 M2 t) J( Q3 Gcos(n)  
: A, p' }% k, C& D* _/ W 返回n的余弦值  * z+ p' o- f0 d4 s3 a/ y
mysql> select cos(pi());  6 g- k$ d7 r; o9 s
  -> -1.000000   
  R+ ~  U0 X- C3 D/ p5 X$ W) Z
: c, q( }2 _! ?( ~( Q- osin(n)  9 O. c, O, r9 n, }* G
 返回n的正弦值   
) S0 l5 P9 H0 E' `mysql> select sin(pi());    7 C' z: Q9 Q+ g" w% s% r! Y
  -> 0.000000    7 I- n8 K0 f: {, e/ P; S( h
& U5 T" [: j- \; G" U! z) h+ \
tan(n)  
, J& A7 a" k! x返回n的正切值  ! G2 u* Q" v  G7 x' |3 i; L1 P
mysql> select tan(pi()+1);    5 a$ w- Y$ ~' j0 x' r) n- Y+ T# I/ F3 E
  -> 1.557408   
+ l' e. K6 f" s6 T6 _& \( C1 v ; h, C( c; b! q0 B
acos(n)  - J7 l& e2 n2 Q2 v7 u8 k* e2 `% w
 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  
( ?# q9 D" x$ g: @. ]mysql> select acos(1);    ! f( q* }6 q+ ^8 \
  -> 0.000000   
' v; G  ~& g6 u% z7 R' z& }mysql> select acos(1.0001);   
) m4 H1 G: v2 P' n  -> null    ( f7 U5 W# X1 R2 i& ?
mysql> select acos(0);   
1 S1 z( G. |- I/ x7 {. v  -> 1.570796    $ h6 S) W: q! m+ }1 O" n

, a. V* I; K4 l: H6 h- dasin(n)  # d% R  j4 [& }' S+ W& q
返回n反正弦值  + l' r4 k2 a- P5 W- S) ?
mysql> select asin(0.2);   
8 C+ |1 G( ^1 \3 o  -> 0.201358    % [) M* M7 n2 u6 W9 y( ]5 N
mysql> select asin('foo');    ' h0 T) ]6 ~6 i9 D  ^! q1 `" S
  -> 0.000000    0 Q  b, C; o- J. `$ j
/ F' e% F. H- o3 W- j( U1 ]4 q
atan(n)  2 g+ ~- d8 j" N9 a& S( |
返回n的反正切值  & D1 Z4 K; `* V) P: K! t( g& q
mysql> select atan(2);    * Q$ ^* W6 h2 r/ J1 }3 T( i
  -> 1.107149   
. N" N1 A" B5 e. g; C* Nmysql> select atan(-2);    9 `( }1 o1 H! |; d* g+ H0 c' D' Y
  -> -1.107149   
' O% \$ y6 K  n6 ]: w& H" Jatan2(x,y)   
- L4 `, o( z& K) i9 i. J 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  4 a9 a- I  ~( Y$ b4 T+ l& E( A* p
mysql> select atan(-2,2);   
! ]: q9 W! z" C( g6 ~2 u  -> -0.785398    , n3 D  f, H4 o2 I
mysql> select atan(pi(),0);   
& Y  Y4 K1 x- O& G) i2 j9 v  -> 1.570796   
, }0 V! u7 u/ g- x2 X, H4 `
( ^3 \3 J& d  D& [; |8 s; rcot(n)  
4 {' i6 Z( h7 y9 @# m4 s返回x的余切  
9 T. ?( f1 d/ c6 i8 `2 mmysql> select cot(12);   
5 {8 q% y" n7 K  ~2 t  -> -1.57267341   
, m1 s% B  |$ Fmysql> select cot(0);   
1 R  B! c' x9 A" p) N% L+ m' p3 f# @  -> null   
: u* ^" }7 W; C' R9 {+ i
8 ]4 R- m  W$ w# X% P1 L8 lrand()  
) y" N, L( v) O4 ?, n) Wrand(n)    ) |% f4 r1 U8 c# w9 H! d( \& p. G
返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
6 g6 s3 ]( @' e
/ }6 U7 x! i3 y! gmysql> select rand();   
$ R7 |2 N. p9 a7 h; L8 E  -> 0.5925    ! m2 S2 t; f2 p1 I5 ]
mysql> select rand(20);   
6 D# d5 }$ m! |- ~: b8 {) V1 b9 A3 B  -> 0.1811    " t" q9 _% a+ |3 _& c# X7 L) D
mysql> select rand(20);    4 x; a6 r/ r  r. t& E% H
  -> 0.1811    " u/ E: T# d% o3 m
mysql> select rand();   
! T" O- @6 c4 c9 R  -> 0.2079    0 r1 t$ k8 v1 E' n8 l7 i6 N
mysql> select rand();      s6 |9 u' o9 E" u
  -> 0.7888   
6 O6 @' J- B0 m3 M3 Y% y8 F8 c, Y ( X7 t6 T- H/ s# ~
degrees(n)  " g' x  G, s" @; {
把n从弧度变换为角度并返回  9 J! ^# r/ @  h) h3 |# W' A
mysql> select degrees(pi());    4 \' H7 I* q+ p  V$ H/ Y8 U: G
  -> 180.000000    6 k+ M" m8 b7 Q
9 t4 ^; b' ?5 }3 P! M8 f
radians(n)
9 E1 N5 i( }7 r, t% f把n从角度变换为弧度并返回   
; \# r0 A6 Y- rmysql> select radians(90);    ( F3 u- G+ i3 Q2 t7 D
  -> 1.570796      c# A7 ?* R: [. t! V
  g7 ?0 ^8 e8 H! S& C1 G, d
truncate(n,d)   
) s* ^% }) C2 q保留数字n的d位小数并返回  
/ K. m2 X6 f: f- V# w4 I+ Y. hmysql> select truncate(1.223,1);    8 t( y# m- D3 E/ F0 G+ }6 O; v' j( A
  -> 1.2    , f  A2 Q- V4 K1 W/ x: ^
mysql> select truncate(1.999,1);   
& \8 B# v4 J: R3 A: I( G  -> 1.9    & F+ c8 a/ r8 R
mysql> select truncate(1.999,0);   
$ z# `: S# Q5 h! E# e/ B  -> 1    0 ]3 [1 e, ?* w0 D3 n

% J5 x5 d2 b7 G. ~* b- qleast(x,y,...)   
, Y5 A, w& F/ U: ?% }返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  : Q8 b5 ?9 e) I# v9 x; x( ?5 D
mysql> select least(2,0);   
4 s: ^) k( a$ N  -> 0   
5 j5 r9 |) X* \$ z+ tmysql> select least(34.0,3.0,5.0,767.0);    - I! Z1 _: b% I% o- S
  -> 3.0    5 q  z6 Z* P3 }) s8 R2 ?
mysql> select least("b","a","c");   
+ X$ f$ b5 K2 j; @1 I( q  -> "a"   
' M1 e: A9 O6 U: N
1 l6 m0 n* N' i: h3 P: l1 bgreatest(x,y,...)   
8 e" ~4 D+ c2 d8 d0 _: `返回最大值(其余同least())  " \; B# Y) Y: L
mysql> select greatest(2,0);    8 ]7 q  g! ?) V; e+ z: H2 P- P
  -> 2   
7 }& e& j9 N" t6 O2 e- }mysql> select greatest(34.0,3.0,5.0,767.0);    6 U/ w: @1 ]  o. }# c4 D0 m8 E
  -> 767.0   
6 r6 Z( m" O' U# ~7 A6 @3 x. Fmysql> select greatest("b","a","c");   
$ k! i! M/ C) W% q( N  -> "c"     
. J) N& v) u- X1 o" R8 f: e# I/ T$ R3 A0 x1 k
3、时期时间函数
& i3 K$ z9 T2 t' X) Z% V1 Qdayofweek(date)    1 m: q& F, n! S+ `9 T  y& U4 O  L8 c
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  0 ]8 a$ m# n' T% Z& b
mysql> select dayofweek('1998-02-03');    1 g, h  Q6 w4 V8 g) p$ }
  -> 3    ; L( R% b. j: G1 W0 `

3 I3 L  Z, G/ u$ h. x$ `weekday(date)   
* f+ ^) r! c0 z8 k9 D' Q. N& Q返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。
) j1 r  G% `. x, n+ j  3 ^- R1 s1 t( c6 w. X
mysql> select weekday('1997-10-04 22:23:00');    9 K& I) O1 C1 z& M# a
  -> 5   
- u, R; U, t. h2 \mysql> select weekday('1997-11-05');    . [" v: s/ p& r4 Z
  -> 2    ( ~' y9 N1 @8 b& {9 c$ r5 d7 O) {

6 s+ o2 ~0 g8 o6 p  g* Sdayofmonth(date)    
1 ~: S9 e, M* C9 z' E5 @返回date是一月中的第几日(在1到31范围内)   
: G) H- y% \+ s% y3 X6 Jmysql> select dayofmonth('1998-02-03');    6 b! f2 j# z1 z( r+ B; C# O) x0 |/ D
  -> 3    ) H% k% A  P- x3 P

1 a+ t  ?. F$ b, F( M+ Qdayofyear(date)   
  [! v. P4 c, U, d8 v- |返回date是一年中的第几日(在1到366范围内)    - S; }4 l' j7 F4 w, |) Q/ ?
mysql> select dayofyear('1998-02-03');   
  C4 ]3 g! ^6 U3 W+ R6 B* x4 @  -> 34    * j5 B9 u0 U9 o8 T: x/ D% ?

0 k) j; c3 b! m9 j3 Vmonth(date)   
3 Z) Z8 o! s* W, i) C' D9 }! m返回date中的月份数值    ( a6 T3 o8 ^8 D. }3 P$ r: A3 Y+ D  ?
mysql> select month('1998-02-03');    4 [$ \' P" z$ B
  -> 2   
: {1 R" e, _8 ]7 T. X* Y! r$ R
5 ^$ V7 Q# K# w: \9 x9 y: o& zdayname(date)   
# v: \6 [8 l& U7 y& I5 }/ E返回date是星期几(按英文名返回)  
9 t5 T- w7 _0 F/ qmysql> select dayname("1998-02-05");   
1 B9 G. c' B4 \3 c1 U: Y  -> 'thursday'   
: v; m, f  ^8 B: w5 y* c
, k, F4 l. l. d: T" tmonthname(date)    0 A1 w7 l9 X9 i$ @. n/ w
返回date是几月(按英文名返回)  % w: N* N. l. ^7 a* ~
mysql> select monthname("1998-02-05");    , N5 h8 s' H: p+ s8 |' {5 p
  -> 'february'    0 Y- d; K- u6 [1 J
+ J; C8 I0 x5 S; y4 Q
quarter(date)    & {3 W, w5 S1 O% U0 S2 k
返回date是一年的第几个季度    2 P& a9 D- F2 H+ }
mysql> select quarter('98-04-01');    + S2 Y- x3 E/ c! U
  -> 2   
% j( F) Z, v+ j5 G( D
  U3 [  u6 u3 m$ Vweek(date,first)   
, @: _8 T4 R; X返回date是一年的第几周(first默认值0,first取值1表示周一是1 b& _9 g4 s- x$ x' N4 G
周的开始,0从周日开始)  
, C8 d! x5 ~. w1 X0 Emysql> select week('1998-02-20');   
" L" {$ T+ U! u) r  b  -> 7    / m: |3 W9 d" y5 k
mysql> select week('1998-02-20',0);   
& X0 k# e6 N; ^+ b+ d3 F  -> 7    : T9 X6 G/ w$ ~/ f# Z
mysql> select week('1998-02-20',1);   
3 w$ Q! l) G- |+ C$ p: b& g% o2 K  -> 8    2 W! g# O( w/ F1 J9 P9 p

* l4 X' g- `/ O- K- A5 ~7 }4 dyear(date)   
& a7 s. g0 s1 Q返回date的年份(范围在1000到9999)   
! f" t/ p1 c) H% i- `% [: O; |' Bmysql> select year('98-02-03');    ) @- M* w' v  J* s' p. c
  -> 1998    : Z& y$ D" D1 q  P+ j

- n8 m  P' n) r2 Hhour(time)    
+ {4 l* }: Z. i! J2 g& M返回time的小时数(范围是0到23)   
: s. b2 i! J0 C" o7 [mysql> select hour('10:05:03');   
. L% W- ^% C8 d/ I" _  -> 10   
+ w9 j5 Z+ ^1 \  }+ W# q- _ ; D) J# L8 d! N- [- |! l
minute(time)    # X/ t0 @' k; \! g
返回time的分钟数(范围是0到59)   
) Y* k4 Z/ d/ T7 Z9 bmysql> select minute('98-02-03 10:05:03');    3 B8 S$ f+ g& ?% l
  -> 5    * C2 B1 G" T" a

4 F/ ^0 G0 w0 K) I! E+ Ysecond(time)    
( L! \! T7 ~/ y# g. Y  ^返回time的秒数(范围是0到59)   / N# W; d- G5 X; s' A' ^
mysql> select second('10:05:03');    4 F' A0 b5 Y4 }$ h3 G  @: D: K7 H
  -> 3   
6 [, n, P7 P  u0 z0 a. C
7 S4 {( [/ j8 Q4 \! U- Z& |" Pperiod_add(p,n)   
$ j& q6 q1 i& M  p增加n个月到时期p并返回(p的格式yymm或yyyymm)   
# f; b; [  W8 ~# @% \mysql> select period_add(9801,2);   
, D5 R* w/ |$ {) K7 q  -> 199803    5 W6 \" Q1 N+ W3 r) N% F6 |

# @' k. i7 [' B7 x# a9 uperiod_diff(p1,p2)    & D# P: n: B) b. r. ^2 K  A
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  
0 w- A5 {$ f! g1 A! ]" Vmysql> select period_diff(9802,199703);    , N& [0 T6 i8 k$ L5 y8 I; V; R
  -> 11    % h) P) _: t7 F0 y8 y) o/ y! A

. v3 ~$ c0 w1 jdate_add(date,interval expr type)  
, {. d& p# L, `; ]+ w6 e) wdate_sub(date,interval expr type)    ( F2 V" a- g2 m0 M
adddate(date,interval expr type)   
( K) t# V' c/ q6 Z6 I. {subdate(date,interval expr type)  
3 U* O) c1 h& f% ?对日期时间进行加减法运算  " y# E( U% n- T4 k; m( J9 |) m6 M% @
(adddate()和subdate()是date_add()和date_sub()的同义词,也
: T; B0 o) N. A& k1 q可以用运算符+和-而不是函数  
$ G3 H' W, B0 j* X& ydate是一个datetime或date值,expr对date进行加减法的一个表/ y# F2 F& R1 u- T" w& g
达式字符串type指明表达式expr应该如何被解释  
3 S( A6 z7 Q$ A1 D* O [type值 含义 期望的expr格式]:  3 s( I- X2 N  n1 ^& W1 n7 k6 ]
 second 秒 seconds   
+ z, ]) @  V9 Z! K/ n  x/ _, J4 y; _ minute 分钟 minutes      b/ w& Y, ~0 N  Q$ g% Z, Q3 G0 G  {
 hour 时间 hours    ( G5 X$ a9 w& j: u2 J+ j9 y
 day 天 days   
1 |  i4 ^0 Q$ i# ]: R3 o) s+ i month 月 months    7 v. J! _* E% N7 y* G
 year 年 years   
3 `$ B6 B0 @$ I, n0 N& U8 M minute_second 分钟和秒 "minutes:seconds"   
/ y3 m- m0 a: N4 I( E hour_minute 小时和分钟 "hours:minutes"    . i! y4 i# w( U5 ?& a+ @7 V
 day_hour 天和小时 "days hours"    4 ~) ?8 t8 \* T1 g7 m! w% t* E- q( \  v
 year_month 年和月 "years-months"   
5 P$ P0 L; ~) ~0 z- \& G hour_second 小时, 分钟, "hours:minutes:seconds"    + }, d1 `" E( [; h6 G+ U& K
 day_minute 天, 小时, 分钟 "days hours:minutes"    5 j$ ^3 @. Q2 y9 {4 @8 l( W
 day_second 天, 小时, 分钟, 秒 "days7 [5 A4 `# A( \, c$ H- ^) P3 W8 Y
hours:minutes:seconds" # [% N1 i8 V4 I# Z2 c
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个; [1 g2 Z+ n& j- R3 |5 h
date值,否则结果是一个datetime值)  - c& r* S5 c, I' K; }3 n$ f
 如果type关键词不完整,则mysql从右端取值,day_second因为缺$ i6 J$ B; j" r, Y9 K' f7 @
少小时分钟等于minute_second)  
1 g; f  s* n7 | 如果增加month、year_month或year,天数大于结果月份的最大天' E6 G5 K6 ~1 N3 a0 w2 x/ E
数则使用最大天数)   
$ `' j6 A3 \9 Z, U9 x5 K& U& W% R8 umysql> select "1997-12-31 23:59:59" + interval 1 second;  
' j7 v# T3 e% Z# y8 s7 |& F6 X2 t8 P & T  X; y+ s# N5 a! ^0 j5 d5 f
  -> 1998-01-01 00:00:00   
' i' i, s6 ]* _% _# j" Rmysql> select interval 1 day + "1997-12-31";    ! E5 ]. k  |( {1 v6 x' @: p
  -> 1998-01-01   
6 j5 c- _0 I4 g& ]* M# N+ hmysql> select "1998-01-01" - interval 1 second;    $ s$ n* b2 x$ u; G9 \; z
  -> 1997-12-31 23:59:59   
! O3 u6 h. E/ t! }, }5 K/ zmysql> select date_add("1997-12-31 23:59:59",interval 1
7 {/ y5 d: s$ ~/ W* T8 r: L: ^second);    & g* R7 {3 S  p% @( c: n
  -> 1998-01-01 00:00:00   
% m, m! N' I7 t) `3 \% Nmysql> select date_add("1997-12-31 23:59:59",interval 15 y3 g* _9 ?. Z* M1 ?! f
day);    % Q2 [: g9 N+ E8 v& M3 ?* w
  -> 1998-01-01 23:59:59    2 l7 V/ N% k+ ?2 s! ]
mysql> select date_add("1997-12-31 23:59:59",interval
4 \* }; i9 t+ x& n4 I$ m"1:1" minute_second);    9 m& J: n& q, z, _- H0 d* Y) _
  -> 1998-01-01 00:01:00    + Z  |7 s4 c4 u1 T* q7 t! O3 X
mysql> select date_sub("1998-01-01 00:00:00",interval "1( g: N- H% n' V+ k1 d- H8 ~
1:1:1" day_second);    7 X# o" Z5 V  d# r
  -> 1997-12-30 22:58:59   
8 R/ D0 V. d: L: J" c+ z$ P6 K& gmysql> select date_add("1998-01-01 00:00:00", interval "-11 N& z! M/ _7 C$ z$ ]3 R
10" day_hour);  
( ]! e; x5 h6 T- f  -> 1997-12-30 14:00:00   
' x4 ^" w1 {; W+ c( ymysql> select date_sub("1998-01-02", interval 31 day);    2 t& J/ v' ?6 n, [
  -> 1997-12-02    ! Q  x4 Y" s0 P/ M9 V' Y5 N7 G
mysql> select extract(year from "1999-07-02");    5 h" S: i) Q: O: J- w
  -> 1999    * i; J5 s! R/ ?/ i" f- F: D
mysql> select extract(year_month from "1999-07-02
( ~: h8 Q8 U7 ~0 P! r$ l) h4 s- ?01:02:03");   
( G/ @+ i& V( G' W  \/ f0 o$ S  -> 199907    # Q( x. M5 j8 P6 h
mysql> select extract(day_minute from "1999-07-022 |5 [$ d5 h2 y# U# G# c
01:02:03");    2 J7 c. f8 G: r8 x5 l" `$ _
  -> 20102    9 F, \$ ]& [% x- `

6 K5 n% Q: p$ r6 x5 ~/ u, oto_days(date)    7 ?! a# U" l" M3 }, q# h% b
返回日期date是西元0年至今多少天(不计算1582年以前)  # l! R, J' S5 n+ |  x
mysql> select to_days(950501);   
& K. _( y, j* q  -> 728779   
( W/ c* `1 `  {1 O3 g, I7 Bmysql> select to_days('1997-10-07');   
7 F0 B+ o2 Y/ f2 e  -> 729669    7 H$ G- a7 `4 C; S' Q) a6 _4 C
+ E' ~' a1 Y3 d
from_days(n)    ; z4 ?& o8 e( h8 B: @, U  p
 给出西元0年至今多少天返回date值(不计算1582年以前)   
9 w* X+ l) O! d; p, d2 ~- b! [mysql> select from_days(729669);    ) D/ g$ W% y" f5 m4 P3 s. R& z/ g# p) _
  -> '1997-10-07'    9 i7 L; I1 L6 V8 n: E

9 u3 Y7 a9 o: W( zdate_format(date,format)   
0 q7 v! v  D$ L" I& d6 ~$ y% P  e. ? 根据format字符串格式化date值  
; t5 X; i! `1 ~4 P* L! _% c (在format字符串中可用标志符:  
/ L" G  d- R9 t6 Y %m 月名字(january……december)    % Y1 L, n# N, g
 %w 星期名字(sunday……saturday)   
( n$ E+ O6 [( X7 j %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)   
4 e9 s' r' D3 i1 [! M %y 年, 数字, 4 位    - O3 }/ N1 k6 @% v0 w
 %y 年, 数字, 2 位   
3 h$ C3 p6 t( s; X, J: Z6 l" q2 q %a 缩写的星期名字(sun……sat)   
- `1 h" _6 `" @4 p$ K2 ^3 w; w  Q* M %d 月份中的天数, 数字(00……31)   
7 t' M$ g. z9 X  X3 `  I  v! A %e 月份中的天数, 数字(0……31)    ; j' Y0 u+ D  X0 Q; t1 A
 %m 月, 数字(01……12)   
" g; V2 R6 q. `" |2 z" Q) | %c 月, 数字(1……12)   
; a2 c4 f5 ]  y. m( K! O2 u6 ^$ }+ c %b 缩写的月份名字(jan……dec)    $ ^1 w. B: g& }' [) k) {& @9 P
 %j 一年中的天数(001……366)    ' `& {7 G5 |- y* @! j  q
 %h 小时(00……23)   
: d" b$ E0 r& F' S, r! F; U %k 小时(0……23)   
+ l9 X4 k# v( @" D; b %h 小时(01……12)   
( V8 C* m( u6 R* J( w. M2 N %i 小时(01……12)   
5 |# y, W0 ^* M& ] %l 小时(1……12)   
# N/ C, d( Y' e. a+ @8 v %i 分钟, 数字(00……59)   
/ W4 M4 B' I8 A4 U %r 时间,12 小时(hh:mm:ss [ap]m)    & o  W! J6 x8 x6 e, y
 %t 时间,24 小时(hh:mm:ss)   
, a: C0 S3 f6 p) j %s 秒(00……59)    ! b! ~9 r! ~- x- ?* S/ E( a# v
 %s 秒(00……59)   
# t6 T; F' G8 _ %p am或pm    . d& J* q* a3 i) l" s
 %w 一个星期中的天数(0=sunday ……6=saturday )    9 h* c- y, r3 n$ ]9 H2 d) E# _
 %u 星期(0……52), 这里星期天是星期的第一天    / ^+ s+ ^  b5 o4 E7 @; R1 ~8 R
 %u 星期(0……52), 这里星期一是星期的第一天    ; B0 P4 E( @5 K( [/ X( c' r7 u- S
 %% 字符% )  ) j5 r7 q) [, e, p
mysql> select date_format('1997-10-04 22:23:00','%w %m %
- n' _- b. x7 D5 ^y');    ( f0 B" D! b. t& o- C- v
  -> 'saturday october 1997'   
9 J5 s0 g  |8 Q: A7 \mysql> select date_format('1997-10-04 22:23:00','%h:%i:%
% B, E& r& ~7 b3 S/ Fs');   
3 z; r5 Z( A1 p4 l  -> '22:23:00'   
6 O) A9 ~/ ~& {' u- j6 K8 Z1 g, Mmysql> select date_format('1997-10-04 22:23:00','%d %y %a
; A% l0 n& x2 m+ ?3 f%d %m %b %j');    7 D" t3 P* w% ~# T9 g
  -> '4th 97 sat 04 10 oct 277'   
8 `8 h4 a; v6 I6 V5 L* m4 M* B3 v# cmysql> select date_format('1997-10-04 22:23:00','%h %k %i+ }* ]% Y& A8 t8 h2 s- j
%r %t %s %w');   
  y8 A1 R' u4 H* [7 a' S8 m9 P  -> '22 22 10 10:23:00 pm 22:23:00 00 6'    2 x6 K' H$ g1 ]/ x# Q

4 \! J! Z- K; K( ?" Z) Q4 mtime_format(time,format)  # |, A; z8 d! c% F- U
 和date_format()类似,但time_format只处理小时、分钟和秒(其+ I* a& D; S+ G% P
余符号产生一个null值或0)  
; k  @3 G9 @" `1 t
7 X& {% [: d; S  `curdate()     * W+ @$ h9 ]" C5 x8 d6 v( ^
current_date()  
$ l7 t" x, J4 X% Y% z  |' M- F5 _' X 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
# U9 e! M1 b7 O% f处上下文是字符串或数字)    . ~' Y. i1 f. W( v0 m, W
mysql> select curdate();   
: M; d" R2 f# Y* H/ e4 b  -> '1997-12-15'   
* l! A. h) l, m. I- J8 O, h' emysql> select curdate() + 0;   
* k; C- W2 W) s3 {  -> 19971215   
& g# V) x/ Z5 X+ w5 `  X' U: D
. G3 \5 t& A  {5 ]$ }curtime()    ! K0 T: E  r+ g5 V  r6 N9 V
current_time()  
$ k! h( g" g! _0 e  R4 I7 k+ U 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上6 X5 U% \! O9 m
下文是字符串或数字)      $ ?6 j) V8 P2 V: E8 P  |1 l, M+ e
mysql> select curtime();   
- u0 ]" g4 ]. w+ H% |) ?2 @  -> '23:50:26'   
. B, J( T) N8 h. H; wmysql> select curtime() + 0;    2 G; ~" `2 Q, I6 s
  -> 235026   
2 n- j6 D; N$ D2 }% y / j$ g3 O2 X# Y7 d
now()    
1 M8 R2 T+ F+ y" o- a, L* w4 C' nsysdate()    
& L1 v5 Q% L0 ^2 Y. K4 Z1 Tcurrent_timestamp()  
* k  i; F1 A7 p/ E' `4 V 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
' ?6 E1 s9 I$ e, A) k时间(根据返回值所处上下文是字符串或数字)     
4 A4 q* W' M1 amysql> select now();    & d. ?* j! S! R( c
  -> '1997-12-15 23:50:26'    : o1 `) G/ O" p
mysql> select now() + 0;   
) ~( z+ T7 W  G$ H  -> 19971215235026   
8 ^6 V! d! T. m* l) W6 Y/ `, B6 J4 Z
' n# Y$ b: S0 C' B1 Funix_timestamp()   
' ]" P, g1 W* G, B" a8 ounix_timestamp(date)   
! F; p/ O& l2 @. Z" V3 k4 ~5 Z返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
6 Y* r' c: D+ `% P* B数,date默认值为当前时间)  
' r, J6 h8 ~( i% ~; gmysql> select unix_timestamp();   
. [! |) k! P! e3 s2 x  -> 882226357   
# s9 d: b/ Z$ M8 k& B0 z6 Zmysql> select unix_timestamp('1997-10-04 22:23:00');    1 {" `7 k8 E/ E+ l4 N
  -> 875996580    0 `+ \# F9 n, r: O" F% m: n, Y

" l: g( f0 x4 a' ]! G1 c5 }) ^from_unixtime(unix_timestamp)    ' I9 F3 E  v& c0 Z
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的
- @0 R- S$ c6 C3 z, `: ^; g( w$ Q% n值(根据返回值所处上下文是字符串或数字)     $ K! B4 k3 E% S4 H4 P7 w. o
mysql> select from_unixtime(875996580);   
2 u! U, [- s8 T# Z- \  -> '1997-10-04 22:23:00'    4 H. C/ w1 _1 K' q, K* w
mysql> select from_unixtime(875996580) + 0;   
3 C  t& ~( a* h! T# X+ f: d. p2 ~  -> 19971004222300   
/ F* ~/ z- ~' ?% d3 N! S4 M6 @
* |" o/ c' h+ `2 Jfrom_unixtime(unix_timestamp,format)    
$ v/ j1 A3 s! y" ]以format字符串格式返回时间戳的值  2 v. D# E- d2 Q9 a. M- F
mysql> select from_unixtime(unix_timestamp(),'%y %d %m %. f: g7 f+ a2 s7 R
h:%i:%s %x');   
8 B* Z  F+ m* f8 l" N& N  -> '1997 23rd december 03:43:30 x'   
9 _$ R) Y- U2 H
) D/ P  j9 z1 Y/ n/ Y) c: dsec_to_time(seconds)   
4 Z. b2 g0 ]8 {- L以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
, I4 H7 B3 r% c* G" p* t0 e$ vmysql> select sec_to_time(2378);   
) i* Y! W* b# l) q4 @3 M  z, Q  -> '00:39:38'    ! u) a4 ~1 M7 I7 f' D: ]
mysql> select sec_to_time(2378) + 0;   
, [" w1 j5 E- q1 M% K0 U  -> 3938    1 H/ ?$ b5 [: z, B) W

) N5 z2 _$ y3 j5 j1 q4 ttime_to_sec(time)    5 w5 ]) n) N2 t2 s3 V9 p
返回time值有多少秒   
* H: j# [/ [1 w' H% P. n) |mysql> select time_to_sec('22:23:00');    9 f0 Q# D+ o  T2 c
  -> 80580   
- d  g0 N! a  j) B; O8 h, G" \mysql> select time_to_sec('00:39:38');    2 b/ o& y5 d+ L; l
  -> 2378 " x2 M0 ]: Q$ h! p

5 ]  [% Q2 Y+ o1 l# L" y+ i转换函数
& _4 x* Y5 a  j5 g- Lcast' n, b* Y2 e6 ], X7 q* H
用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]1 `+ @/ m9 i# |) P: w' e# ~
实例:select cast(a as unsigned) as b from cardserver where order by b desc;! ?. p5 |$ G  I
convert:4 Y+ o1 Z# O1 c" P$ H9 Y
用法:convert(字段,数据类型)" v. [" w3 Y* o# L
实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
+ ]$ |/ Z! P' ?8 @, w
回复

使用道具 举报

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

本版积分规则

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