找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 1358|回复: 0

mysql常用函数大全

[复制链接]
发表于 2018-3-21 16:07:02 | 显示全部楼层 |阅读模式
1、字符串函数: F% I7 k* h8 i% [! _- r
ascii(str)   ) |' k9 ]2 X& \3 V# W' u  n9 `
返回字符串str的第一个字符的ascii值(str是空串时返回0)  ' e! L$ R& r, d
mysql> select ascii('2');    M/ \' M! `( ^/ E* F5 h
  -> 50  
3 Q% p$ c6 Y, K2 rmysql> select ascii(2);  0 ~, m2 w! X: i) K' a
  -> 50  ; k( c! B- o) x
mysql> select ascii('dete');  
  d! e# G0 X# {3 v2 c  -> 100

2 ^7 p1 L, v7 {9 ~ord(str)   , f$ }' X8 ~6 `1 f8 C/ \
如果字符串str句首是单字节返回与ascii()函数返回的相同值。
1 d+ ^0 |6 a" Z7 ]! q8 F# B & U# y& ?1 P% k2 o3 w, P
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  
$ R  T# ~& f# ^9 Qmysql> select ord('2');    _8 S0 N0 U* \* c
  -> 50  3 j: ?$ T, Z  f9 C- h% K% f; X9 W
   
8 Z% w2 M  E3 Nconv(n,from_base,to_base)   
) [# |3 B2 G8 I) k, g# a对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
" B$ o1 v" C  ?! m2 K' Umysql> select conv("a",16,2);  $ X1 u3 e) ~$ D$ T$ E
  -> '1010' 5 B* n3 ~+ R0 @  N+ N0 E
mysql> select conv("6e",18,8);  
/ P4 Q( a2 F% E" U2 {  -> '172'
: u7 M! q' X, B. A( umysql> select conv(-17,10,-18);  * o1 F0 W% ]; o
  -> '-h' . o4 H$ y! C1 q8 ?7 N7 h
mysql> select conv(10+"10"+'10'+0xa,10,10);  
& L! P! g. s; ~( f  W  -> '40' . W3 f. Z- M- s5 J4 g5 `3 \
   
' G1 A! _6 w' f0 G8 {9 ]bin(n)   
7 s  W# W' x+ [2 S( A, g" P# S把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
8 R! t3 k* o, R0 Z$ _mysql> select bin(12);  
: H3 t) y  \* B" y  -> '1100' : U8 ~' O( _! g$ {, s  g
; D9 _2 r* Q7 C; {, r: d
oct(n)   : w8 G1 ?5 [2 Z2 w7 u3 F
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
$ U/ e8 I  p* T0 t' V0 Q. ]mysql> select oct(12);  
' i% f+ P4 S" i& _' E0 s( u3 H$ L  -> '14' ; U9 O6 N- A) p7 z' a
   $ X5 r7 g3 i6 M  Y0 N% h
hex(n)   & f. ~( _2 z0 G1 Q& ]/ @$ U! w9 X' r
把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  8 J; l6 Z- u: _% ]% N
mysql> select hex(255);  - A+ o8 D6 Y! Q7 o2 D
  -> 'ff'
0 i6 y5 \, \& r7 O   2 w& z( y! a7 `, n! j, e* s6 i6 H
char(n,...)     Y& C2 s8 k7 u# {
返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   
8 s: ?& P2 a8 M! h4 Umysql> select char(77,121,83,81,'76');  , ~3 _' a! l% d( ^, P
  -> 'mysql' 8 f7 f1 Q, w" {# ?
mysql> select char(77,77.3,'77.3');  
; T8 @* {! c& j# w- g- U  -> 'mmm'
7 f& f6 o" W: X4 [   
4 W8 \9 C, @% q8 j* M( rconcat(str1,str2,...)  
; R! v3 F2 U" x8 d' f1 |把参数连成一个长字符串并返回(任何参数是null时返回null)  
! p1 l6 |! M, }* imysql> select concat('my', 's', 'ql');  " M. I0 T0 Y. t1 ?
  -> 'mysql'
1 Z0 K6 ?- k/ ?3 I9 v! q) U$ cmysql> select concat('my', null, 'ql');  : O/ m7 J. S) O$ c
  -> null
" I( N" [3 Q& v4 y$ q( [% T9 umysql> select concat(14.3);  
! }) B1 l0 d- r# `$ @" w. {# P  -> '14.3' 0 w2 N5 S8 k2 a. m, o. r
7 w0 k0 I5 k5 s: P  [0 B/ d# S
length(str)   
$ h1 Y9 S4 Y1 p; l7 q/ a' Qoctet_length(str)  1 F0 V! e, ^! O7 G( ^
char_length(str)  
' \: T5 u. M0 z% B2 \0 w5 B$ G4 [character_length(str)  * v- F) H8 R' s
返回字符串str的长度(对于多字节字符char_length仅计算一次)7 E$ J) y% h6 b1 E! g) y6 X4 M
mysql> select length('text');  
1 e0 E+ }- [1 r3 p6 ^  -> 4  
+ x  n2 [/ F. E# G7 N. J4 vmysql> select octet_length('text');  3 ~+ \1 G2 z0 ], ?8 Y
  -> 4  
4 B  V; w' W) V1 ^" I: R( L 9 D% `  R6 Y- }) {) s. ~
locate(substr,str)   
; k4 }  k" j4 ^7 s* l; `7 x& _position(substr in str)   
  x& [! ^. t' |* n( a% g返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  ; F$ l2 ?1 h2 ~# A8 N2 G5 q6 b
mysql> select locate('bar', 'foobarbar');  
! i, u( v: u, q# v+ m  -> 4  
7 A$ `( R5 g6 x- i. g9 O0 o6 p  `mysql> select locate('xbar', 'foobar');  8 A  c$ i5 K( _; t; h" S: K2 R
  -> 0  
0 S4 h2 J' {" {- @" g$ C$ Y   
8 g. ^2 J' ?' o" V3 Tlocate(substr,str,pos) # U2 H5 r$ u0 a' [* t
返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
& B( b  F, L  Q; Nmysql> select locate('bar', 'foobarbar',5);  
6 @2 }# e. E% M2 p* {  -> 7  6 M! u$ z% e" u2 C' d  Z
9 K5 D5 ?2 s/ _3 e  m! K. s3 ~) N
instr(str,substr)  
/ j: |3 c6 x9 [6 I& m/ f返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  , V' {2 X3 W* T- z: [
mysql> select instr('foobarbar', 'bar');  
+ ^* ?1 d( h* n/ {  -> 4  : J, W6 z! n7 ~" E7 n; k8 ]  c
mysql> select instr('xbar', 'foobar');  $ p: p$ l2 w* J/ S. \9 J
  -> 0   
: k) J, }1 {( C8 a & b. v8 ^' ^0 n* f" X0 D# @
lpad(str,len,padstr)   
8 G+ o% {0 E: T3 L4 O用字符串padstr填补str左端直到字串长度为len并返回  
/ j* r/ \% ]" b: d  k* Rmysql> select lpad('hi',4,'??');  
3 ?; X4 K$ w; R  -> '??hi'
% a" J2 ]" I: w& L) G   - W5 ^" y: Y; I( D5 p
rpad(str,len,padstr)   . I' H/ O8 m, j+ |4 u1 m3 J
用字符串padstr填补str右端直到字串长度为len并返回  
6 c" u; d# F; n: j% `mysql> select rpad('hi',5,'?');  # h4 N1 o0 x# z* V
  -> 'hi???'
" f3 {5 i& p& l- K& }$ C8 y
  t8 b8 A7 x* {+ ]6 i. Fleft(str,len)   
& `& H0 `4 `( J9 ?6 q返回字符串str的左端len个字符  4 @2 s) `$ I% _
mysql> select left('foobarbar', 5);  
: P8 ~2 S% A) R  -> 'fooba'
+ U* O" ]# G' B3 B" K
% e- ]  p( k; R+ X0 H  qright(str,len)   
$ l+ C. Y+ a& A% [& W返回字符串str的右端len个字符   
5 l% N% V; ~' r5 P  e3 Umysql> select right('foobarbar', 4);  
: z9 W# S  E, X  -> 'rbar'
- X$ C; l1 m+ m8 {& n  ]# W ' |7 v# j" m& Z) u/ \* o; {
substring(str,pos,len)   
; D1 r3 S# ]* E4 e- D+ psubstring(str from pos for len)   
- H! c7 T+ G7 C- J( p1 |mid(str,pos,len)   6 \" A( [- @5 n4 p  Y3 l6 q
返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  
" A  P5 R6 Y% e5 v  -> 'ratica' . j0 W) t* K! P

4 [/ r! X& x7 M2 msubstring(str,pos)   , a6 B" H9 y0 V- s" _+ S
substring(str from pos)   
; L8 Q! s3 D9 F& a% w返回字符串str的位置pos起的一个子串  * z* y6 ]/ H3 h/ I
mysql> select substring('quadratically',5);  
6 Y+ Z$ e6 g5 P+ r4 T! J  -> 'ratically' ( X2 I' M- J  e! f2 Q
mysql> select substring('foobarbar' from 4);  / h. b$ M7 t% h8 R+ W
  -> 'barbar' , j4 `$ |+ R8 g# \0 e

2 g0 S; w0 _" i4 g6 msubstring_index(str,delim,count)   2 P1 B8 e8 e) D2 R; l/ [: L" `; I
返回从字符串str的第count个出现的分隔符delim之后的子串" G" w: h, }4 p! d; S# L8 f9 {
(count为正数时返回左端,否则返回右端子串)  
' n$ P; g3 e7 fmysql> select substring_index('www.mysql.com', '.', 2);  2 i" B, i. M0 C' A7 M5 ~
  -> 'www.mysql' - U: @3 m. O! N( N5 y8 v9 u
mysql> select substring_index('www.mysql.com', '.', -2);  # k3 G9 b0 y4 ~# v2 c
  -> 'mysql.com'
0 _! d0 v7 d9 d4 V
$ i' P( {3 K$ H5 R/ fltrim(str)   , @2 I3 Y8 I/ K6 [9 x
返回删除了左空格的字符串str  1 E1 m) I! m! a! g2 ~- c7 X
mysql> select ltrim('  barbar');  
; T' D% h9 h) B( `  -> 'barbar'
  N* H( R: Y0 v& ~* e
  R" H: i* }' p+ prtrim(str)   6 ]+ h4 P$ `) C7 \0 b% S  [
返回删除了右空格的字符串str  
: f7 d/ ?9 Q% C! P" A) C, vmysql> select rtrim('barbar   ');  
; y8 L' d5 c3 @0 C( K  -> 'barbar' 3 k3 e$ ?( p$ m9 i7 }$ }% @

* Y( h( I0 r$ ~. g3 f7 h- Vtrim([[both | leading | trailing] [remstr] from] str)  
- w. w( M" X! }% }/ E* V返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  5 {; s. Q4 m( I, \* r! {( V' Y/ ^
mysql> select trim('  bar   ');  
4 j4 r. N. W& Z0 [( D& G9 U  -> 'bar'
4 y  P+ P0 D/ N3 }mysql> select trim(leading 'x' from 'xxxbarxxx');  6 l5 s. H4 d2 y4 A  s
  -> 'barxxx' - z2 X6 F3 k9 M% G; e
mysql> select trim(both 'x' from 'xxxbarxxx');  
5 x. j9 p) c4 f( g9 m  -> 'bar'
) x. B& h# S: \7 y: u3 tmysql> select trim(trailing 'xyz' from 'barxxyz');  
, E1 X! V3 J0 z* \8 @1 t& o9 H  -> 'barx' 5 Z3 P) K" b) r. e. n8 U' V# S

3 J4 J# U5 W# P. ysoundex(str)   4 P6 c: w9 |8 z0 e. f' j+ i
返回str的一个同音字符串(听起来“大致相同”字符串有相同的  {6 U% v5 T6 }
同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  
- w8 i# ]: d9 Dmysql> select soundex('hello');  8 c" S. p- W' e$ X" S% y6 h( ?
  -> 'h400'
9 N, ?: U; j! Pmysql> select soundex('quadratically');  # i1 j* J; @; m. V8 K4 `
  -> 'q36324'
# m3 [. H+ T" M4 d, G0 ?   
( c# y8 I" Z1 u' e2 Wspace(n)   
9 }) g9 B' g/ F- S. a6 W+ t返回由n个空格字符组成的一个字符串  
+ t. [3 U/ m) [* F. Imysql> select space(6);  ( `, h$ A( J3 m
  -> '      '
/ W; ]# P- g/ _* v' }, a% t   
' d6 ?# L6 f. p  ?% sreplace(str,from_str,to_str)   3 H% a1 h9 T7 t( O$ A; ?
用字符串to_str替换字符串str中的子串from_str并返回  7 q. U9 d0 T  R$ l- T
mysql> select replace('www.mysql.com', 'w', 'ww');  
6 l$ i2 F- N0 `1 u" A, ?  -> 'wwwwww.mysql.com'
  _6 r, v7 h. d& |$ Y2 p1 F/ h
8 b% ~* t0 y4 r0 W( `repeat(str,count)   ! t$ I6 U- q$ t7 |' v# s% g' \
返回由count个字符串str连成的一个字符串(任何参数为null时
/ L. s: `6 H. s2 ~返回null,count<=0时返回一个空字符串)  
: q% H; B, m5 b7 q6 Nmysql> select repeat('mysql', 3);  
' t5 ?! X& u9 N# \  -> 'mysqlmysqlmysql'
8 P; m  j3 ]6 j$ E   
" o2 u# d* [6 g" lreverse(str)   % I. L" o' H% F! G
颠倒字符串str的字符顺序并返回  
" p3 t) O$ J: T; `, f3 zmysql> select reverse('abc');  
9 y+ o" R  P$ h" ?  -> 'cba'
' \3 }& R# b, M5 f3 y + H+ c- K2 T. E1 |( g
insert(str,pos,len,newstr)   
7 W' r$ b- z( j4 f把字符串str由位置pos起len个字符长的子串替换为字符串" x' t* m5 E( z7 d3 g: M2 W% a
newstr并返回  * Y/ T- y& n/ d; E: S3 e  q
mysql> select insert('quadratic', 3, 4, 'what');  - X- B, H2 g% h1 [& Q! C
  -> 'quwhattic'
' y+ ^7 ?; ?! V& E( q: g# E! {" Y   a2 B! @" k' t- l7 N0 e9 {
elt(n,str1,str2,str3,...)   4 e+ H( e! }0 q9 Z3 Z; Q
返回第n个字符串(n小于1或大于参数个数返回null)  6 N6 ~0 _  ^5 [/ P% e9 ~" B, ]
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  8 @- h% ]9 U9 p$ `  L  ?4 [3 U, m
  -> 'ej'
4 y- H( t9 _5 |, d9 jmysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  ) \7 [1 b" @6 k( [
  -> 'foo' / o* ]; I1 J- g
# v' G7 m2 \1 F8 Q& J
field(str,str1,str2,str3,...)   % R) j% v; v: o! W  i0 Y
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  9 b# L  M# U/ x; S8 C2 D1 ]& h5 M
mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
0 A- l, f3 p$ N2 t'foo');  / w- F5 O6 U: I' M% r
  -> 2  
$ t- J3 D  ~6 I: ]8 _mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',% a/ J7 t  Y7 M+ Q4 k) h$ t
'foo');  & F+ g1 O0 S$ Q3 _: Y5 J. A" z8 W
  -> 0  
( U" l; j% R) a- I1 k" c. L
  P$ `0 t3 m. I6 T4 Q, V) y+ i1 [find_in_set(str,strlist)   # o$ e4 @' G. M- q
返回str在字符串集strlist中的序号(任何参数是null则返回7 N, O+ X6 ]( ]& O
null,如果str没找到返回0,参数1包含","时工作异常)  
, B, i( S  L! n8 D0 z/ gmysql> select find_in_set('b','a,b,c,d');  " a: \+ ]3 u3 p" U
  -> 2  
* ^* k1 j& z4 Z/ L   + Y' c( T+ _) P7 V9 {3 ?
make_set(bits,str1,str2,...)  
& w3 w! E/ `- x* S把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
  n+ O3 T, Y: p! R位置的字串选入字串集并返回(null串不添加到结果中)  & k3 p& r( ^! t& F3 ^% b8 Y
mysql> select make_set(1,'a','b','c');  % e* [9 d3 a4 K& H* _
  -> 'a' 5 N6 e: L. R" Q' {4 a' B, K5 }
mysql> select make_set(1 | 4,'hello','nice','world');  & S, e- z' p! E% T, s! x9 D% e) e
  -> 'hello,world' 4 X) T. A- F9 A9 b/ e8 ~7 r2 T3 R- ~
mysql> select make_set(0,'a','b','c');  
1 z# ~: }9 s7 {. P  e% J& p  -> '' - K  D! V6 E/ J; i
2 _5 ~; d' c6 U( a
export_set(bits,on,off,[separator,[number_of_bits]])   9 w4 m5 ^/ F1 f% w% P7 n6 w4 D5 Y
按bits排列字符串集,只有当位等于1时插入字串on,否则插入) K" P7 C! e& g, h
off(separator默认值",",number_of_bits参数使用时长度不足补0
. N9 j2 v9 ?3 {, _, i而过长截断)   
& c' R& o# \: m8 B/ r" w' u" y, L2 e( nmysql> select export_set(5,'y','n',',',4)  1 k! y3 ~# I) j9 ~0 V; o0 B
  -> y,n,y,n   
: U9 Z$ j3 [" h1 o" ^ 7 [/ E; }2 A3 x
lcase(str)  
% h" k. T, @; x. ?lower(str)   . s: e8 u+ i$ k) r& V- I: `/ d- g- A
返回小写的字符串str  1 [1 w2 B9 v, b& T; ]1 r0 v
mysql> select lcase('quadratically');  
% s! K5 P' `" b( y  -> 'quadratically'
' N( R& x1 N3 u# @   - ^/ s- B" }$ E& A. G- c5 n
ucase(str)   8 F- k- u1 i# m% D
upper(str)   . i8 |, ?% A# R5 r2 ~9 I
返回大写的字符串str  
' {9 N1 h4 ~8 n  s9 s' Amysql> select ucase('quadratically');  
7 [2 z- k( g* W6 o% w  -> 'quadratically' % f, @, ~) W4 N- j5 ?6 o, H

6 U/ K+ B! B0 e/ b' v+ Kload_file(file_name)   
4 q. I" s  ~+ m; z8 Z( n. @4 l9 i% F读入文件并且作为一个字符串返回文件内容(文件无法找到,路径1 `* ]6 P3 l, n7 b9 q
不完整,没有权限,长度大于max_allowed_packet会返回null)  8 X# J9 u- T2 }8 ~& b
mysql> update table_name set blob_column=load_file: E1 P4 s3 |% _% n
("/tmp/picture") where id=1;  
/ ^" v9 h! Y5 Q1 M5 P) v% L
2 ?% y  f0 I9 r  P7 E/ y  b( p2、数学函数8 R* x0 L& O0 J# Z
abs(n)
) D! g" @1 d! P* s4 B6 X4 G3 g5 |2 H! L返回n的绝对值  3 b6 l2 ^4 ^8 N8 U8 P
mysql> select abs(2);    7 |0 J5 S% q1 o! ?
  -> 2    / b  H" \5 O! ^9 T/ {; ]
mysql> select abs(-32);   
% Q' N: \$ ?3 M) ^  -> 32    $ S; b, c2 J/ \; g0 C
   3 P6 ], o5 N- ?
sign(n)  $ O! H; S. Z" Z/ r( {
返回参数的符号(为-1、0或1)  
" O% U1 Z; ^+ E$ ]mysql> select sign(-32);    # U3 }5 `% ?; a; E2 k
  -> -1   
* U' v- ?, Y& ^# L' M4 G0 `+ Zmysql> select sign(0);   
4 H! W' r) r% A: x; ?! _( r  -> 0    / f/ q* t2 Y4 |/ A
mysql> select sign(234);   
5 E3 R# t) J0 V9 V  -> 1    3 x! h' r6 c8 Z) {: S

; n9 }' X0 M) }8 G8 x& Y' r; Cmod(n,m)   
) l6 T! M, P( y2 _9 L7 m取模运算,返回n被m除的余数(同%操作符)    9 U% u- ~7 g9 k: g+ N: B
mysql> select mod(234, 10);   
5 v: k3 t' G0 ]5 X9 x; W- `  -> 4    4 s9 B1 p8 }) ?! Z8 T
mysql> select 234 % 10;   
9 z6 N+ ?- i( |" s2 f0 p7 G0 g  -> 4    8 `8 j4 w9 o8 w% ?8 Z7 T
mysql> select mod(29,9);   
  \: J  `3 r2 Z' y: d  -> 2   
- p, e& e; K0 u# q1 e/ Y8 m1 b8 l 6 G5 R$ [' u1 B8 k- ]8 v. S5 B3 e5 C2 e
floor(n)  ) V" H# Y4 g6 G
返回不大于n的最大整数值  
/ ]2 x# P3 q! u% _$ ^' Umysql> select floor(1.23);    4 Z7 `2 ~- W8 e5 ^$ ?
  -> 1    * H( |9 u+ I# ~. O, M; ?
mysql> select floor(-1.23);   
- ?+ E, m% _. A2 I/ Z# S  -> -2   
9 }0 r: Q" [8 B: q/ v3 L
/ D3 k, K" O% y+ Jceiling(n)  6 b) z; N/ B8 O; g/ P6 M8 P7 V
返回不小于n的最小整数值  2 {1 s: @$ @" X' ^4 @
mysql> select ceiling(1.23);   
5 k+ c& u3 P9 N4 {$ G6 F3 P! `  -> 2   
3 p$ Y( B9 Z) Y8 a% Omysql> select ceiling(-1.23);    * |6 ^! i0 Z$ h4 _+ Q+ E
  -> -1    / ?& }0 D: Q/ G
7 F+ x4 {( L; [& a7 q, I( c1 j
round(n,d)  
# X$ v. t, [' t返回n的四舍五入值,保留d位小数(d的默认值为0)  
/ N* [2 Q; {% L2 q) Vmysql> select round(-1.23);    - N& w3 u% @6 }& D* Y
  -> -1    2 l" i* \6 z) }6 A/ r- v
mysql> select round(-1.58);   
0 H6 H8 m2 B+ J* f8 X* C( F  v: ^  -> -2    + b) w) p' z: q+ A% s# j
mysql> select round(1.58);    3 X# P: a6 c' W, ?" P1 E' h
  -> 2   
0 s1 }3 W" E/ s0 k+ Z" J, _mysql> select round(1.298, 1);    6 [/ v+ H& J4 M+ E
  -> 1.3    * A) N7 }! I5 C
mysql> select round(1.298, 0);   
6 }8 J1 `% g, b% z! }  -> 1      r3 {7 T- f3 w- f, S

) c  V$ X% D( t- ?+ \. w3 _8 ^exp(n)    U  P' i8 H, t" s! j0 S6 K' [
返回值e的n次方(自然对数的底)  
; H* y' @( h) e0 E; fmysql> select exp(2);    " k+ D. g) v* \. M) ]
  -> 7.389056   
7 Q$ @' m. F* E5 H% H6 R( f. _: q; Smysql> select exp(-2);   
: S! ~+ k0 r+ Y5 l# O  -> 0.135335    ) ~& _7 R& v# N8 R
) ~7 E, S% |; ^) c& J: [
log(n)    V5 _% s6 s" l4 R/ I7 X3 c
返回n的自然对数  
7 @+ e# o' i* r0 W  ymysql> select log(2);   
( f  O1 {- j6 W4 {$ j  -> 0.693147   
6 V9 I; S! B5 e" F) Qmysql> select log(-2);    ) @" z& s  v. m/ p4 b5 Z
  -> null   
& x% |; \% Y6 _/ |7 Z
/ ]2 Z5 [! i" v. i5 flog10(n)  2 A1 A! h* P5 a$ R
返回n以10为底的对数  , l2 ~1 A- T/ i6 A
mysql> select log10(2);   
$ |8 U0 e7 I9 i4 a1 T6 X% L  -> 0.301030    7 D6 s$ v5 j* r/ O& D
mysql> select log10(100);   
3 ^" W- f+ n9 f: e% Y' _  -> 2.000000    & W. m4 E$ z2 C; z. G) E
mysql> select log10(-100);   
$ g/ S1 a$ d0 a! D* e; @8 R) N  -> null    3 M+ ]2 _; m6 p/ }4 h
" J0 P. {+ n1 P% {( f8 f: S
pow(x,y)   
9 B% G1 g8 p% ^5 |' h0 jpower(x,y)   
1 G# X6 D7 B9 N& P4 \ 返回值x的y次幂  
, Y7 g: [+ ]6 gmysql> select pow(2,2);   
3 S. ^1 U/ Z7 D$ n5 Y  -> 4.000000    9 a! K* A' y  J, C" `* u6 u
mysql> select pow(2,-2);   
% D" ?* e5 e$ I5 C( ^  -> 0.250000  , _: Y% t" M, ]. \  ^) V. v

% P4 ]: g( I4 w' t6 `# |sqrt(n)  
: r& z. l4 M  O4 D' V 返回非负数n的平方根  
4 U9 S$ o$ Q' emysql> select sqrt(4);    ( A4 r5 I6 r/ f
  -> 2.000000    " q, x7 ~* a4 \! |9 i
mysql> select sqrt(20);   
! F4 O1 F5 B: S' t- V: j  -> 4.472136    ; E( u& L0 ^) h! y

5 D( L$ ~4 q' F& Dpi()    * q2 \0 o5 R. [) F" N: f
 返回圆周率   
# r: u0 ]& ?% l* l" h; M; P' mmysql> select pi();    ; R0 G& J/ o) ]
  -> 3.141593   
9 A( n! O# @9 W* o# u7 W- k/ h / U  T/ y2 @5 n  W
cos(n)  
1 @: }' V; _0 k+ s2 p 返回n的余弦值  ; q( d4 ~: Q9 t% ]+ t
mysql> select cos(pi());  
! m& G+ e0 D, f  -> -1.000000    ' X3 ^' I- n8 t' J) V+ Q

) q2 T1 i% c( L* M0 v$ e4 Ksin(n)  
( z4 H9 Q* J6 c& i2 y 返回n的正弦值   
' s7 b' a1 \; y; omysql> select sin(pi());    6 \' J6 E7 g0 P! ^- F7 }+ k
  -> 0.000000      d9 e0 W- p) U

# z: o4 _, N9 X* o( x' Ktan(n)  : Y6 G. q2 L) L  C4 h! K0 P
返回n的正切值  & D  y) q6 V' j* E) A  U; }
mysql> select tan(pi()+1);    ) P5 R* @% X: _7 `$ S
  -> 1.557408   
! J" K+ \) c* D+ X # A' B  O5 i% C3 g# g7 z& }
acos(n)  & D! o2 A- }7 k  e; p
 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  
) X+ A9 x' z1 y# ~: z3 n* ^6 Fmysql> select acos(1);   
! A( Q$ l* A9 R' k: f# G  -> 0.000000   
7 N1 j7 g7 d0 v6 Y4 w- Tmysql> select acos(1.0001);   
, V# M* L. b) o5 j7 L4 G  -> null    0 W4 y, a( c9 _3 j
mysql> select acos(0);    8 x. V8 }" z! C5 f. K2 J: X& |: O" O
  -> 1.570796   
: O8 @) u3 D3 O8 z' e2 m! k3 w # ?7 g' q. m. S' j/ |& X
asin(n)  
& V9 G* t0 f7 t8 m$ u返回n反正弦值  
: U; y; S# M  Q  w6 d8 Fmysql> select asin(0.2);    $ v" h2 e: l: D# _, e! @
  -> 0.201358   
1 I, d- D: l6 g, K7 f( o0 Rmysql> select asin('foo');   
  \. Y3 |  w" Q  -> 0.000000    ) y+ A6 [- [, h2 @7 [) Q9 f
' t0 \5 f3 l5 a/ ^5 a; b9 ~/ ~
atan(n)  8 O. H: Y0 n/ g: ?0 [1 |
返回n的反正切值  
# O: }3 l% w4 n: m  Kmysql> select atan(2);    7 `' O2 x1 I; Q% x1 B1 `% N  K
  -> 1.107149   
) |  G* r, r* Y: }: u- N  H* Emysql> select atan(-2);   
, l0 C& z6 Q7 O  -> -1.107149   
* r3 a" m+ b4 N# k' ^atan2(x,y)      n( k1 n% ]% C4 C
 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  * x" p! t; c/ Z7 n* ?( V  k# J
mysql> select atan(-2,2);    0 }* Z# l  o, Z; [! ^
  -> -0.785398   
; U, Z5 t' A7 t" Y* p: Nmysql> select atan(pi(),0);    $ Z7 T, `9 O1 P  Q  K9 v4 W
  -> 1.570796    8 F/ \* ~6 ?5 b2 {9 S6 X. ^

( W! }6 G+ A' z/ C' t6 vcot(n)  6 E9 L7 [7 ~, T; M4 H# c' c
返回x的余切  . e2 x; B: d( G+ P6 k: y7 B" |. `3 U
mysql> select cot(12);   
! W9 X  g( q3 y" E" D$ ?0 B" ?  -> -1.57267341   
: }& p; M0 p0 S( T- W! V  wmysql> select cot(0);   
$ f3 z: S  b6 u  -> null   
& h' M) T3 |- {' d7 M
# |& C0 f- ^/ c; h4 Lrand()  7 v* ~; J* ]( E; m* w% A# Q$ x
rand(n)    
. f7 Y' A9 @8 }8 W返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值) * c. F3 d# M! [/ a3 C

; y+ H$ B7 }$ I3 u: Qmysql> select rand();    ! {$ a* b% L0 F5 `' j" x% q
  -> 0.5925    ( s& v# P) x( E. a" ~& H
mysql> select rand(20);    ( u! p$ ^+ t  K  a" H
  -> 0.1811   
6 R3 N) ~, C/ L- Q  Amysql> select rand(20);    4 i& F1 I" m( X  ^3 C! I
  -> 0.1811   
9 ^! j2 ^8 n9 J4 B# c. imysql> select rand();   
8 y! L, m* P7 f  -> 0.2079   
6 A3 j9 x' T% G) Lmysql> select rand();   
0 S& X: u( \: s  `. Z  _% D0 F  -> 0.7888    * M; n/ J/ {  j7 a( E7 j
, z( y4 v8 J6 _# y' H, n
degrees(n)  ) `( e$ Z5 x% w
把n从弧度变换为角度并返回  
! ?1 X$ g; d; O* }mysql> select degrees(pi());    / z4 n- E2 z1 `+ A+ o
  -> 180.000000   
- u3 ~7 @6 m6 R+ W2 D; D0 I4 x: g # g. L5 g6 O7 H) |# i) B2 @
radians(n) ! A; B& P; q5 R& i% Z$ l8 o
把n从角度变换为弧度并返回   ! R# h; L$ Y1 K" O9 v
mysql> select radians(90);   
3 Z( U1 C% w  V( ^; H  -> 1.570796   
8 U" E4 d3 K" z" d: f
$ W& T8 G3 N0 |& Z  d3 K7 `) b  Etruncate(n,d)   
8 Y! `6 h9 k- q- U9 }保留数字n的d位小数并返回  & s! ?8 H9 K: x" q9 Q" S
mysql> select truncate(1.223,1);   
# k1 y+ ^1 c' y* U- U  -> 1.2   
5 C3 J- q$ f: Z! tmysql> select truncate(1.999,1);    : Y0 @, k: l# P) E. C0 g  a
  -> 1.9   
7 i+ ~# s/ F7 F) I$ a; r7 _/ X2 pmysql> select truncate(1.999,0);   
( I# c* T. u% L, B. m  -> 1    * Y- @* L8 y* r  Q, l6 v

1 C1 G4 x0 p/ _: V2 q/ _& ^least(x,y,...)   
, ^( ]: k7 n3 L4 B返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  . R6 S: q  q2 y5 u& J) p4 o, z/ x
mysql> select least(2,0);    0 x: K6 M. A0 ?. z' B. U
  -> 0    / T6 I( U7 c7 D' z
mysql> select least(34.0,3.0,5.0,767.0);   
4 Y6 B! |; P& F8 S4 v. K9 H  -> 3.0    8 t9 M* J1 Q3 y8 j5 b- o$ y
mysql> select least("b","a","c");    ; o/ L* N) M7 {/ B
  -> "a"   
8 u' k! |, Z* W: B  {0 X % P/ F1 g3 e2 \4 n8 O" c* U8 z
greatest(x,y,...)   
2 ]. q1 I5 K/ f& l) t返回最大值(其余同least())  
3 z& C% w. ^, T7 K$ {2 Mmysql> select greatest(2,0);    ) b" C7 h2 |9 L$ \  `- l& L2 @
  -> 2   
0 n/ W7 t) P( Omysql> select greatest(34.0,3.0,5.0,767.0);    ! q) d- H$ `- r$ j; T& l* y
  -> 767.0    " Z, H% k4 G! `+ }
mysql> select greatest("b","a","c");   
# o1 T  L& k  i  -> "c"       z( [4 ^( g  E3 F. O- r6 K' E  @
' q  L5 y  a6 V; ]* q8 s
3、时期时间函数
$ R2 y# O& z$ s% a* x$ ndayofweek(date)   
: d( m4 a. Z1 F6 _5 \返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
% }- O" u3 l& G1 ?" l: Zmysql> select dayofweek('1998-02-03');   
: A. z1 _9 Z  q  -> 3    8 J' Y2 }" W7 R
& _) i1 `3 m7 c7 n% O( T
weekday(date)    . V7 Y' m. N- a1 [
返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 7 d4 V8 J0 o, f8 l. ?2 a! c
  ; v. b' o9 \& d
mysql> select weekday('1997-10-04 22:23:00');    ( @* h4 ]! |+ f5 a
  -> 5    & x5 P( V- ^/ B7 ^
mysql> select weekday('1997-11-05');    8 }4 {+ q- h9 A& K" t1 `
  -> 2    * G5 S- E- K) ]) K: w

; Z# D% X) c6 V8 Z* bdayofmonth(date)    : [& T! b9 ^5 j! P. d7 b/ |2 u& i
返回date是一月中的第几日(在1到31范围内)    8 {/ T- A7 p- q3 P( ^; ~3 K
mysql> select dayofmonth('1998-02-03');   
. H. g6 f7 l2 G$ G$ E  -> 3    : {" k. X+ U1 a+ b7 ^

2 F) ], |* \. B) u* zdayofyear(date)    $ f: t0 I" E3 b0 x0 ~0 V
返回date是一年中的第几日(在1到366范围内)   
2 {5 E; r, y9 C, M$ {  imysql> select dayofyear('1998-02-03');    ! D. ]6 c8 D. k3 g: t; C( |2 s
  -> 34    8 l  V7 @2 ?! W' X2 P  f

& D, _# }1 ~) z! k9 N3 Vmonth(date)    % O5 m- t% c! K
返回date中的月份数值   
; y! i" N( F, a( p" ^mysql> select month('1998-02-03');   
9 r/ ]+ b7 H. I) x: B- k  -> 2   
, q7 G& [& m8 T9 {" I, n % @: J% z; H& I3 k1 F7 c
dayname(date)    / d; y+ u9 C4 ~
返回date是星期几(按英文名返回)  9 ~8 y  B0 a- [% G2 `& y# ]
mysql> select dayname("1998-02-05");    8 b+ C4 m- q& a; |1 m9 I
  -> 'thursday'    2 K! e& Y4 k5 I7 |, }

0 \# ^6 {% h. [- Mmonthname(date)    * I  G% s7 ^: p: G
返回date是几月(按英文名返回)  + t9 [! E. J' q% F2 L
mysql> select monthname("1998-02-05");    1 i3 K8 G# t: U2 v4 c2 E
  -> 'february'   
; h5 X! A0 o" o* l
. B" W% _0 `3 O" hquarter(date)   
6 }( S" x! y& R$ i! T返回date是一年的第几个季度    + E: s  y! W2 }1 F& v1 Q
mysql> select quarter('98-04-01');    + q% F8 j3 B- ]4 V8 E9 _& _# N+ g
  -> 2    2 L& v8 J5 f9 a8 n7 \$ \0 @$ z% }' @
7 n' @5 o3 ]+ Q' \  V% U# `: n
week(date,first)   
9 B0 K1 t- N6 c) S) F& V7 c' `4 `返回date是一年的第几周(first默认值0,first取值1表示周一是
; _2 U# @9 {# j- T周的开始,0从周日开始)  ) Z! w7 k* A* Y- H& p3 e/ h* d
mysql> select week('1998-02-20');    # l- w# C6 o/ l
  -> 7    8 R6 @" L& _7 @0 `. ?& [' p9 I7 Q6 G
mysql> select week('1998-02-20',0);    - w8 x% d- o# A
  -> 7   
1 k2 ^5 \, S2 B- J' q: omysql> select week('1998-02-20',1);      V+ G4 {: H3 S! R1 |$ X! h
  -> 8   
4 m* W+ g( x0 n # m0 j. f; g& l6 g5 n9 k
year(date)    9 w- {' O$ {. A( z* Q, ^8 J
返回date的年份(范围在1000到9999)   
2 k! K8 D0 C+ Y6 tmysql> select year('98-02-03');   
; }7 l3 f0 _8 N9 T) P  -> 1998   
  B; C1 d9 M6 ^; h4 b  F9 T7 t
7 Y' a$ I# ^, v# R4 r3 n1 s, B0 Ehour(time)    & J# D% U4 k2 p
返回time的小时数(范围是0到23)   
, s1 x0 l+ X5 J0 h2 Wmysql> select hour('10:05:03');    " v/ |3 Y" a. Q- m1 }( k  q
  -> 10   
0 t3 S7 v7 u* V' c
2 B- {  e/ {% C! kminute(time)   
. U8 d' W) ^; F% O) u4 n返回time的分钟数(范围是0到59)   
0 J$ L& c; w: [7 \" T% kmysql> select minute('98-02-03 10:05:03');   
3 \1 Q6 k0 v/ ]+ _. @* _6 _  -> 5   
  q4 o" p7 Z& a1 q6 c
4 z2 v3 Z& e$ a( ?* g+ Ssecond(time)    0 Q  x3 g$ Z9 [$ r5 q* J- g4 z, E( a
返回time的秒数(范围是0到59)   
2 A3 T0 G# w& E4 f! x; Hmysql> select second('10:05:03');    9 A/ |7 n9 W$ M, B
  -> 3    ) k* \6 R1 |# S. l% E

( b$ L  K5 a- H2 Operiod_add(p,n)   
% ^5 w  P7 b3 r* {# _4 V+ |! V增加n个月到时期p并返回(p的格式yymm或yyyymm)    " d/ X6 Y/ ^+ [( u4 h4 u1 K# z
mysql> select period_add(9801,2);    * |6 Q5 [; v0 q& B
  -> 199803    + C2 r% D0 G& `' s5 H
; h, F3 m9 B3 h( g5 c# R
period_diff(p1,p2)   
. k( Q3 X% |  V7 P8 F! ?6 n; T返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  
$ A. t0 [3 E8 z- |! _3 B! gmysql> select period_diff(9802,199703);   
4 q/ Q1 }! c% T; N6 e  -> 11   
, Q2 z$ f6 ]( m, s9 K# E
$ K% \+ F2 T/ C' ~3 e8 s1 D; ^date_add(date,interval expr type)  
7 ?6 c( ~! k" r: g* M5 pdate_sub(date,interval expr type)    ; q; C! |; K7 E' q* N
adddate(date,interval expr type)    ; l+ w) H+ l# ^
subdate(date,interval expr type)  
' V( F# o5 M. p1 c- e  X+ q/ p8 b对日期时间进行加减法运算  " \% u% G" |' }  e! B
(adddate()和subdate()是date_add()和date_sub()的同义词,也" J: a& q, C) f2 S; n( t
可以用运算符+和-而不是函数  ' q: V2 @* P9 ?
date是一个datetime或date值,expr对date进行加减法的一个表
& w" B' w3 _( c4 M, c" R达式字符串type指明表达式expr应该如何被解释  , F. J. [$ a, [6 e( a( r
 [type值 含义 期望的expr格式]:  1 b2 S# a6 O3 E' A2 D- W: Q
 second 秒 seconds    3 s/ G) F- d# N) x. G3 w+ _
 minute 分钟 minutes   
! A7 q6 F4 B4 V8 S% a  M hour 时间 hours   
. m" `8 g+ @& g  A day 天 days    ( b! E; b. n1 }! S7 E) M
 month 月 months   
8 x3 o8 y. }6 I1 v year 年 years   
# w5 e) `% x& p# e8 X minute_second 分钟和秒 "minutes:seconds"    1 r: Y: C3 k1 P8 P
 hour_minute 小时和分钟 "hours:minutes"   
# C, b' F- k/ _8 C7 h1 D6 r7 v day_hour 天和小时 "days hours"   
  c: x- }0 L. [& w) t* Y9 Y+ |! ~$ v year_month 年和月 "years-months"   
4 r1 \! s- X8 ~5 E: y2 | hour_second 小时, 分钟, "hours:minutes:seconds"    : |' M% n; j5 o& i
 day_minute 天, 小时, 分钟 "days hours:minutes"   
2 m1 i0 a% e# F1 F6 O& S day_second 天, 小时, 分钟, 秒 "days& t( j3 L! M; R3 x$ c1 T2 l
hours:minutes:seconds" 9 u9 c) m$ h7 }! z2 U# x
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个
  J4 M  m: K8 Ndate值,否则结果是一个datetime值)  
+ K2 x8 {' e& K1 ^ 如果type关键词不完整,则mysql从右端取值,day_second因为缺2 q% ^0 A! [3 _3 @& r% Z% ?
少小时分钟等于minute_second)  " E6 O6 i6 D; I& Y
 如果增加month、year_month或year,天数大于结果月份的最大天
0 u1 g3 _( E$ V$ h" r$ I" K数则使用最大天数)    - N9 E$ M/ D+ Z7 X3 R% t' u
mysql> select "1997-12-31 23:59:59" + interval 1 second;  " \# \$ h9 N+ F

: B6 G+ N9 j% w6 }6 U  -> 1998-01-01 00:00:00    - t* ~6 a* |9 i8 l. O! M: P& O
mysql> select interval 1 day + "1997-12-31";    , I  y$ ^5 P% `
  -> 1998-01-01    / W" _. s5 w5 Z8 {: l
mysql> select "1998-01-01" - interval 1 second;   
) t+ v' q4 K9 A! t/ C+ N  -> 1997-12-31 23:59:59   
; a- y  @  {7 U; Pmysql> select date_add("1997-12-31 23:59:59",interval 1
3 _' h- B4 _+ T) w$ f7 h$ P3 y$ |second);   
- ^4 y1 }3 z% N1 Q; U. D  -> 1998-01-01 00:00:00    $ a- S2 K6 F, I6 F1 ]8 L$ q. r
mysql> select date_add("1997-12-31 23:59:59",interval 1
# `" L) Z" g& ~' _5 E1 pday);    9 v! K: U9 v" ^7 W/ A# v. C
  -> 1998-01-01 23:59:59    , \5 e) ?. p3 |# z& R
mysql> select date_add("1997-12-31 23:59:59",interval9 h7 b1 |- Y- [2 X( v% o
"1:1" minute_second);    0 Y9 N8 h& N* P5 A
  -> 1998-01-01 00:01:00    ' D5 {( O. T1 u, p! H
mysql> select date_sub("1998-01-01 00:00:00",interval "1) }0 [( T1 v4 t' U: z7 n/ ]5 e
1:1:1" day_second);   
) P3 M* Z* N/ X+ ]0 B  `  -> 1997-12-30 22:58:59    $ D1 }% E- b" W
mysql> select date_add("1998-01-01 00:00:00", interval "-1$ I2 c# Q. N9 E# l
10" day_hour);  % I+ a. x* V% y. Q- ~* F  r
  -> 1997-12-30 14:00:00   
7 |' m9 o3 A0 X, ^) X. o5 ~" zmysql> select date_sub("1998-01-02", interval 31 day);    5 u- h: L  S8 V- Q
  -> 1997-12-02    7 _: O& W4 i1 H
mysql> select extract(year from "1999-07-02");    $ E1 Q* }7 t6 t+ r/ s
  -> 1999    1 W% B' X# v" @; Q$ f# b
mysql> select extract(year_month from "1999-07-02
4 p" \, ~1 K. g8 [6 A01:02:03");   
3 M  ?) t* f8 q& [! |, J* C9 Y  -> 199907   
6 O) O4 R% u; c9 hmysql> select extract(day_minute from "1999-07-024 _0 E6 `6 C3 l5 [9 p
01:02:03");   
, F3 ~! Q& {. Q6 t- T9 y  -> 20102    7 L  q6 a# U; S( _+ f! L' c8 ?

/ s. s2 b; U" [to_days(date)   
$ Y) B; u7 F& m- E4 C0 t1 \) h; x返回日期date是西元0年至今多少天(不计算1582年以前)  ' |- H/ e4 g* ?1 j
mysql> select to_days(950501);    - O, Y  U& s( ]$ i( M  F
  -> 728779   
6 V7 W9 X+ ^& r; c- Zmysql> select to_days('1997-10-07');   
( e2 f0 m3 F$ z, a- e  -> 729669   
9 D8 A# L$ b% ]3 @, v ) U- A2 _$ ^! T+ d7 h
from_days(n)    : C9 R; R0 y4 |& o) _
 给出西元0年至今多少天返回date值(不计算1582年以前)   
6 ^# P9 i. \" m4 e* V: umysql> select from_days(729669);   
4 F4 w6 n5 _) X% J% {* V  D# x3 Z  -> '1997-10-07'    ! z) ]* s7 A" l; h2 U# W' `6 v0 N
( h8 |+ L8 l, _
date_format(date,format)   
% L7 ?; F1 ^  w8 d; Q 根据format字符串格式化date值  - |( x/ N$ I# P, O! O4 l% m" A
 (在format字符串中可用标志符:  
2 B' t% k: q9 t% D2 ~+ \1 q  L %m 月名字(january……december)    + G" |; {9 C( f' Z# x
 %w 星期名字(sunday……saturday)    / P2 a- [% Q& V' P
 %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    ! n$ t5 d' E8 B5 W0 g
 %y 年, 数字, 4 位    / J4 N2 U) H: a* m- l5 E
 %y 年, 数字, 2 位    * d: _) Z# Q" d6 U
 %a 缩写的星期名字(sun……sat)    , Z  L2 a8 x* H9 U" U# H
 %d 月份中的天数, 数字(00……31)    % ~+ a6 O# p! V$ S+ {
 %e 月份中的天数, 数字(0……31)    : V. {1 M2 `% O. `4 f, S
 %m 月, 数字(01……12)   
- W8 i8 s6 r! t  Z! Z5 J %c 月, 数字(1……12)   
) p0 {( D! B" I8 z3 a( h8 G& ` %b 缩写的月份名字(jan……dec)    ' ?+ S3 s7 N! R
 %j 一年中的天数(001……366)   
; E* b9 Y9 d0 W( G( C %h 小时(00……23)    1 \) d! T: @9 h$ p, }% u2 |
 %k 小时(0……23)   
7 r8 l+ n1 s: N% S3 Z& R& ~ %h 小时(01……12)    7 x1 p# W: P4 l( p- [
 %i 小时(01……12)    3 P( |2 G2 t6 F& [" y
 %l 小时(1……12)    , L+ O; A, {" T& z# e5 |
 %i 分钟, 数字(00……59)    / @% J3 d' V5 M9 v1 D
 %r 时间,12 小时(hh:mm:ss [ap]m)    , j* R- J3 D& u, k' B
 %t 时间,24 小时(hh:mm:ss)   
/ s" T5 a, N$ L9 _3 } %s 秒(00……59)    8 b7 A; e- s' Z' k6 q- U% J
 %s 秒(00……59)    % H) {+ J& V  q% `0 n: Q% V
 %p am或pm   
9 f8 O/ q7 M/ J! n9 A %w 一个星期中的天数(0=sunday ……6=saturday )    # b5 h; x& E6 R7 r
 %u 星期(0……52), 这里星期天是星期的第一天    ) X+ e  l# I5 a( {, U9 F* @
 %u 星期(0……52), 这里星期一是星期的第一天    3 n! P0 x4 x7 c4 b. G8 O
 %% 字符% )  
. t( X4 `) D9 Mmysql> select date_format('1997-10-04 22:23:00','%w %m %
* B* M# ?9 Y$ z; Qy');    0 O- s/ }- T4 g' ]% J
  -> 'saturday october 1997'   
) @  i& v+ M. L/ B1 bmysql> select date_format('1997-10-04 22:23:00','%h:%i:%
' y2 }; {6 N, `$ i3 Y# bs');    8 H1 }5 o) N3 @& D( u) i
  -> '22:23:00'   
( `7 q' b& P' A5 [4 H( J  Pmysql> select date_format('1997-10-04 22:23:00','%d %y %a- ]/ z8 z' X) z$ O8 i
%d %m %b %j');   
7 A4 Y9 K% O7 D: H  -> '4th 97 sat 04 10 oct 277'   
, N) \2 V+ |7 }/ h0 p' |mysql> select date_format('1997-10-04 22:23:00','%h %k %i
# I, R& \) h* z- ^9 E/ h, p%r %t %s %w');   
7 [( c7 ]" c  {- [& m0 Y: [1 m  -> '22 22 10 10:23:00 pm 22:23:00 00 6'    $ j) ]1 Q2 P$ f$ p
: D( S) ~/ |- u6 N
time_format(time,format)  $ C0 i5 p2 R5 D0 D) N; e" r2 G$ u( q
 和date_format()类似,但time_format只处理小时、分钟和秒(其7 X/ q# n4 h0 h) o6 _, Z& |# j
余符号产生一个null值或0)  % e$ Q. ~6 V' @( z
6 r- j4 `6 ^/ \6 L
curdate()     , j; f+ i3 B" ^2 Z- I; A
current_date()  # X, s+ c: W& L" ^: k% w8 b
 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所0 C7 m  D$ U3 ~4 n& A5 ?( u
处上下文是字符串或数字)   
% W4 n: `  }/ Z; L9 [6 ?7 Zmysql> select curdate();   
- k4 ]3 }! C& X; D  -> '1997-12-15'   
  S" \( V5 j& L0 G& z" G; w8 umysql> select curdate() + 0;    ) R9 H4 F- I, y, q' l$ t
  -> 19971215   
8 @" i; l  i6 K/ v9 f7 `, w, T
6 u  I9 L' j# ?8 \; j5 Pcurtime()    . F8 \; P) [4 t/ X
current_time()  
* x, A7 i( u  s! r9 l5 d, B 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
  }% Z9 K5 E% \& L3 z: E, m下文是字符串或数字)      3 i; Y5 l9 c# D% \+ W3 N3 H
mysql> select curtime();    7 I0 Z. [# v4 c
  -> '23:50:26'    " ^5 G7 P4 M$ y% i& W4 F/ s$ p
mysql> select curtime() + 0;    + m' _2 [9 c( D! y3 B# ?' x
  -> 235026   
6 E- [+ F& v/ b0 R+ T$ D
7 ?) z! i5 D0 n& v. b  e8 |now()    
% z# F6 m/ B" T4 W+ osysdate()    
0 n: a# d- R6 ^$ x0 N3 i9 fcurrent_timestamp()  5 c" I6 }1 x+ B4 ]0 `
 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
( U  J) L, m% W$ {, ~6 {' |时间(根据返回值所处上下文是字符串或数字)     
5 C. R9 P5 X. Hmysql> select now();   
# G7 N1 X  H/ O- I  -> '1997-12-15 23:50:26'   
7 K% r8 R3 f" K5 a: @& ?mysql> select now() + 0;   
# Q& r5 f7 \7 v  -> 19971215235026    - Q+ n3 I/ A+ P/ O: f. F

7 n- u& `9 y* |! I! T2 munix_timestamp()   
4 h7 L( ?. I% O, sunix_timestamp(date)    $ _8 `1 ~' O+ h' ~' Z8 o( ]
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒+ N! e3 ]3 j# Y4 c
数,date默认值为当前时间)    o0 p4 a3 S6 ?
mysql> select unix_timestamp();   
. I! V2 W4 l8 A6 _* q4 c  -> 882226357    3 \- M0 a4 c! ~  p, w
mysql> select unix_timestamp('1997-10-04 22:23:00');    4 l' @2 h+ c0 o# t1 t1 [4 ~
  -> 875996580    # {4 Z/ O( K+ b1 S2 O" X( ?
# g! b7 T6 q; i  O  B1 Q2 B
from_unixtime(unix_timestamp)   
' ?" P2 F  b# R以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的  g; N7 f3 V  y2 N8 Y
值(根据返回值所处上下文是字符串或数字)     
* K5 ?: G. e! l# Umysql> select from_unixtime(875996580);    7 _0 x$ r0 k3 [5 R% R$ X
  -> '1997-10-04 22:23:00'   
7 n- m$ {7 U2 E' q$ lmysql> select from_unixtime(875996580) + 0;    4 |1 j4 Q' S7 g
  -> 19971004222300   
; ~$ x5 i+ M2 p; N3 d; v2 Q
; z# s6 D7 C- p: [# U* ^from_unixtime(unix_timestamp,format)    ( F# I) i' v! }1 x( d6 h
以format字符串格式返回时间戳的值  3 V+ i4 R6 C$ o" s0 @; |
mysql> select from_unixtime(unix_timestamp(),'%y %d %m %
1 D4 N6 p' m. l" Hh:%i:%s %x');    6 W9 E! D. s8 j$ O% S) V
  -> '1997 23rd december 03:43:30 x'   
1 E' ]' H9 e  K% b8 [ ) h) Z$ B0 L/ P/ k
sec_to_time(seconds)    ) O3 z! n8 B4 p& }4 F# |, V
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
9 g$ t. D" b: O' w) ?# m/ Dmysql> select sec_to_time(2378);    2 @/ `/ O- E# `8 j. |  u
  -> '00:39:38'    0 v! Y/ d4 B7 E- m. r4 ^
mysql> select sec_to_time(2378) + 0;   
/ ^# H$ [; `3 H5 Y2 m  -> 3938   
) L/ K* e$ ]* Y' l
! w8 l7 q: R# @, n7 b3 ^time_to_sec(time)   
0 b  h5 l( t& ~3 }1 O返回time值有多少秒   
4 |! S3 S2 w0 o/ n; M2 x. E# Qmysql> select time_to_sec('22:23:00');   
9 Z, _7 l, C6 D  -> 80580   
) [( g; T. v8 M- gmysql> select time_to_sec('00:39:38');    ! J$ U. @0 N1 X( X9 F( ~
  -> 2378
/ Z2 v: }+ V0 D6 ]% x# g& p% V8 x : {$ I1 d$ k& L/ M" y
转换函数
4 h" @- z  j2 Ccast3 e( Z  p( ]7 L. w3 x  y
用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]8 A* R9 v7 g0 J* {
实例:select cast(a as unsigned) as b from cardserver where order by b desc;
3 s% r( t& U- Fconvert:
9 y7 s- s9 }5 c% H& Y$ c: I( Z8 z用法:convert(字段,数据类型)1 V, x( [  p+ p* K/ ]9 J
实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

3 [8 G# T: K* Q% }( ?; {9 t4 I+ g
回复

使用道具 举报

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

本版积分规则

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