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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数' D, F% O7 U  ]; g/ P
ascii(str)   
9 A0 W+ x9 z% m+ {0 ?( k. [返回字符串str的第一个字符的ascii值(str是空串时返回0)  
" f; _( ~' R) k  j+ Amysql> select ascii('2');  
  F; _7 B* n& l; ?: \  -> 50  - `" v4 U3 Y+ }" [2 ]: o
mysql> select ascii(2);  
/ H% q/ e  w; M" I! v/ V  -> 50  + Q& ?, t( \- F3 F4 r
mysql> select ascii('dete');  
* d  ^6 W: E2 J# \7 l6 e  S  -> 100
# C8 }1 c5 V, h% @& w* t! x4 f$ v/ y1 {1 l
ord(str)   
2 u+ y4 U8 s$ W: s! K* [如果字符串str句首是单字节返回与ascii()函数返回的相同值。
5 }6 C5 T1 {0 b# j+ {% J0 D7 Z
: A+ B$ }& j" Z+ a+ p5 r如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  3 g) x* ]0 o$ e/ L# D; k- c% _
mysql> select ord('2');  
+ Z/ M- L& R2 u3 i. ]: d  -> 50  
: C/ _- [& b  n9 o5 w* ^- l   5 L$ R6 Q  ^" t: z  A0 R
conv(n,from_base,to_base)   
1 |, N4 I. Z% z# q# |) P( @5 P! C对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
1 j; E; G) Z. k4 _. ^mysql> select conv("a",16,2);  
! l6 r" y; v2 o9 x: s% D& B  -> '1010'
7 x2 _$ e- F3 Q  d3 l. Smysql> select conv("6e",18,8);  
2 F+ N. n3 e" F7 ]) G( l  -> '172'
! L7 Q. u; {! B/ ?. ]" \& R- lmysql> select conv(-17,10,-18);  5 `0 a0 q4 N% F9 o2 w* r$ \! K
  -> '-h' # P# \8 q0 N# q
mysql> select conv(10+"10"+'10'+0xa,10,10);  
/ H0 W# j9 s! x8 q0 N6 \; `  -> '40' 5 d1 D9 j7 O6 v! F: S8 Q% _6 ?; C4 {
   
/ [1 w2 q* g$ M& Ebin(n)   
8 r/ y' G8 C3 d0 D! A) Z把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  * C0 x) ?: W0 U  @
mysql> select bin(12);  
  T# R  t6 j6 O+ S6 m  -> '1100'
1 O$ Q7 i3 k' Y) ]7 d* J
7 Z8 `9 v! _/ t1 ]7 Q9 f7 q" soct(n)   . K& m. L9 m: ^. y
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
, W1 `) u5 m* Q  G# Y) rmysql> select oct(12);  4 \% i2 {) I# r# N9 T' \
  -> '14' 3 z- C2 B' [8 q/ a" @
   ! Q& i7 u( \% @5 k
hex(n)   , |$ w! y; b. V$ g
把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  
4 s5 E7 ~/ Z6 d: X* d) Kmysql> select hex(255);  5 Y5 o4 W2 d( j: y+ @- Z7 D+ m" x2 c
  -> 'ff'
. m! ?7 a/ `9 }/ i: D   ! \; k1 B* x; e
char(n,...)   ; B) h8 d! z# u2 z% D6 N- }3 }
返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   
& R7 Y4 Y* |5 s7 {) z0 @mysql> select char(77,121,83,81,'76');  
/ p7 Y  L+ A/ i& h( k! @; O  -> 'mysql'
: b" ^. q  b( L) y" Q$ Mmysql> select char(77,77.3,'77.3');  ; w' A1 V0 N' r, b
  -> 'mmm'
% E- D' c. Q3 B4 R   
. ^& N; z* R+ v7 o" {concat(str1,str2,...)  
1 \) v3 C6 m/ M% K5 `7 o把参数连成一个长字符串并返回(任何参数是null时返回null)  
" {) u; x9 |) C- \0 g) Jmysql> select concat('my', 's', 'ql');  3 f  u' u# E/ Y
  -> 'mysql' % x& P. Z: i+ A# W& [$ J
mysql> select concat('my', null, 'ql');  
2 [, _. ^* R; @* ?7 O& Q1 B% Y  -> null : F1 p4 j$ T/ Q9 Q9 F5 Y3 Y
mysql> select concat(14.3);  
9 W; `7 R$ e( a5 M/ T1 o  -> '14.3'   o8 v$ W/ t0 u8 J/ d' _

$ L% j" O2 @, Llength(str)   
3 A/ N) U6 ~. z% O$ L8 U* X( Toctet_length(str)  
* Y$ h9 h$ J  I/ ?* bchar_length(str)  + K# _, X. R6 w* C$ E
character_length(str)  ( Z6 ~$ I$ z3 M0 C5 d
返回字符串str的长度(对于多字节字符char_length仅计算一次)
4 n2 }; l- f* U5 X+ p, M, \mysql> select length('text');  
. s# a3 m3 r6 u7 ?3 l! Z7 _& z3 z  -> 4  
! p! p9 `7 t0 f  {  emysql> select octet_length('text');  $ t1 L: x& ]0 @" z* M% m" h
  -> 4  
2 K+ s' d/ ^% i" f
* Y# L# o& N# Y: x  n" tlocate(substr,str)   
' E0 E0 x; h1 ~5 Fposition(substr in str)   
' J7 r& ?% D9 h# M& g+ q' {返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  9 {9 X. A0 _/ l4 N
mysql> select locate('bar', 'foobarbar');  
9 \. M6 [4 F: r- m  -> 4  5 \3 Z8 H! O  C# j5 J, t  C& e
mysql> select locate('xbar', 'foobar');  ; v) N2 [- k" _* k+ ]0 L! M
  -> 0  / ^' k6 t( V. H1 l' S
    6 ~( ~4 L5 `/ V! D( r3 R9 Q
locate(substr,str,pos)
" d8 A8 a& L! D0 _返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
/ G7 R4 j$ R, m$ d4 }6 `mysql> select locate('bar', 'foobarbar',5);  - _+ a2 o! U6 ~& c: E6 w* U
  -> 7  
' f- P/ y, b; f  l3 g" {0 E+ E / p  S* \! v- N8 _7 \4 x, N' E
instr(str,substr)   ' t1 \) W8 y2 Z9 g5 ]5 C
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
# q. \  D9 m8 B9 lmysql> select instr('foobarbar', 'bar');  
5 {5 B: }4 L* d& {! ]$ }% n% ]  -> 4  
: ~0 W' |/ C1 B- D6 h0 Rmysql> select instr('xbar', 'foobar');    I2 b  p$ a' z, f: k2 v
  -> 0   
/ \# }% B4 d8 z9 e8 ]8 d 0 B2 s# f. p  a9 r8 y1 U5 k% K, q: |5 T
lpad(str,len,padstr)   
4 `' Y2 t, P0 ^0 D% z用字符串padstr填补str左端直到字串长度为len并返回  2 w* q/ s( ^, N: A1 a2 `
mysql> select lpad('hi',4,'??');  
, B; {) D" D2 |  -> '??hi'
9 c* c( p$ Z7 l   & o1 c  M- \5 q/ g
rpad(str,len,padstr)   6 s3 R) }5 O" r+ k3 C. i7 d! y
用字符串padstr填补str右端直到字串长度为len并返回  4 q: e7 f! w1 {3 U
mysql> select rpad('hi',5,'?');  
; A( p2 X- E% T7 u% F, _5 J8 B3 X  -> 'hi???'
/ \2 {0 ]8 K( K) Y: w 6 c& |/ ]) O2 `* U
left(str,len)   
+ k- |. ^8 t# f  z- m* r4 P返回字符串str的左端len个字符  
* D! Z6 k1 S) Y) q" g, kmysql> select left('foobarbar', 5);  # x" R# l0 `$ B; e2 {; O% L* k9 P
  -> 'fooba'
, R" i  E: ^, L. a, {$ o6 _3 }- T 3 i2 \; |$ C* h& U  B$ o
right(str,len)   
! V# Q- v$ t0 P6 b- p1 w返回字符串str的右端len个字符   
0 @) c3 R. ?& C' C- ]% ]( j' {1 Amysql> select right('foobarbar', 4);  
! d1 v/ l, X. p, o# G  -> 'rbar'
  u2 |! V9 d. d; X# g; Z) D 2 Z/ |/ B( Q/ l! z: j& }% B
substring(str,pos,len)   ! K- r3 k! D8 \& y* z7 x4 v
substring(str from pos for len)   
7 X8 n# n' w& Ymid(str,pos,len)     X, o& l6 P+ m( }+ T$ f! C
返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  # b) S$ X. C2 A1 ~" f* b7 Q+ J
  -> 'ratica'
: G8 W$ u2 A+ x0 ~9 a
5 Q5 _2 x6 Q" F8 w$ a  Csubstring(str,pos)   9 }5 V: r% d! L7 K7 S: h1 E
substring(str from pos)   
0 P! {: H: Q, v$ A/ P: T/ k返回字符串str的位置pos起的一个子串  ; _6 O4 n0 ?  X' y: W& F( l
mysql> select substring('quadratically',5);  / H& q, ?+ Z" Z+ w. h! [/ B
  -> 'ratically' * `8 f- a) Q& `8 T
mysql> select substring('foobarbar' from 4);  2 r- ^9 }; S. a8 z( h4 M
  -> 'barbar' : |6 }& V$ b9 `- [6 e

; `  d% R$ U6 [* H) _, [substring_index(str,delim,count)   
# \# \, a/ @4 R; ~2 j4 C7 ?" u! M, N3 v返回从字符串str的第count个出现的分隔符delim之后的子串
. T8 Q* v) u2 `  |# l+ L% `(count为正数时返回左端,否则返回右端子串)  
2 a( K0 p2 l: G/ Y) r6 {mysql> select substring_index('www.mysql.com', '.', 2);  
: J2 @7 p) R1 ?8 b- I  -> 'www.mysql'
, `. S2 b: m' ~  i# Z; Smysql> select substring_index('www.mysql.com', '.', -2);  
0 _9 [8 q& X% O( B: n" b2 S  -> 'mysql.com'
5 j& Z" O/ _) \% R# }- _: `/ R   F# |* F3 ^: j3 j, C! a4 I3 L8 }  f
ltrim(str)   9 _8 B0 w' s  O( x3 f
返回删除了左空格的字符串str  
0 x+ l+ X' h' V" cmysql> select ltrim('  barbar');  
& o. h: }3 |  I+ n8 m  -> 'barbar'
" j' x  l! E" M9 h ( v9 I6 N. F( T) F* e# x
rtrim(str)   9 [5 b) a2 F9 |% v3 h0 p
返回删除了右空格的字符串str  
7 {5 f+ o$ w# F7 ?/ J+ R+ ^6 x4 Smysql> select rtrim('barbar   ');  
8 _& ]8 @4 l9 W  -> 'barbar' ; Q2 c$ s. d: O: {( I
  `/ o# X& _7 X7 B
trim([[both | leading | trailing] [remstr] from] str)   4 X: p: {7 Z* P6 p1 B
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  : x6 I. t" _7 t& v4 m
mysql> select trim('  bar   ');  ; i/ Z+ G, V& {- C1 G, g
  -> 'bar'
6 T! L, {6 S! ]0 Y0 _mysql> select trim(leading 'x' from 'xxxbarxxx');  
* ^- t3 E1 ?6 I8 `! t  -> 'barxxx'
+ ~$ l; ^# R& A3 \; emysql> select trim(both 'x' from 'xxxbarxxx');  1 ?& q; o/ h: v: l. k
  -> 'bar' # z) X/ e; R5 l1 q
mysql> select trim(trailing 'xyz' from 'barxxyz');  
9 x. g# f) H2 ~( k" @" K  -> 'barx' 9 f/ s- U" Q1 U+ Y
  A, I- R& |# d$ z3 u/ y% u
soundex(str)   $ h& }/ ~* U4 V& j1 F& |  F: n
返回str的一个同音字符串(听起来“大致相同”字符串有相同的
6 a( I) h6 c; _同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  
* r9 k  f/ ~! ]; B) u& I! r8 pmysql> select soundex('hello');  
: }' x, d1 G0 Y& m4 J+ _) h  -> 'h400'
7 {1 x0 x4 L9 w& W" S; Wmysql> select soundex('quadratically');  * J+ I- u2 A& k( K4 `! V2 O7 a1 p) w: p
  -> 'q36324'
1 l6 W6 n* Y8 I7 p0 n) G   3 x9 W6 H4 g$ U
space(n)     N& o6 N3 P4 _0 @' i* z! c8 j3 \
返回由n个空格字符组成的一个字符串  - B, h) d+ p6 t" N6 K# _0 A( O  u
mysql> select space(6);  
3 Q2 A5 C* B2 Z# i0 ?" I+ D  -> '      '
1 o" k" g9 l, y5 E3 I  t1 ^   9 Q$ }4 d: {9 m6 ~  \
replace(str,from_str,to_str)   
* P3 U( _& g2 w% f1 i% d$ ^4 |% {5 Q. G用字符串to_str替换字符串str中的子串from_str并返回  
7 [- v+ ?8 X" u! Mmysql> select replace('www.mysql.com', 'w', 'ww');  
3 ?5 i! z" n/ m0 I  -> 'wwwwww.mysql.com'
7 z/ t* V8 _5 E. I
( e' m; r( g8 W( g" ]4 Y2 Erepeat(str,count)  
0 K, D( Q' D" t  U返回由count个字符串str连成的一个字符串(任何参数为null时
4 ~, E" ~% G4 D5 t2 X1 E返回null,count<=0时返回一个空字符串)  
  ?: X& t4 l' Y" V1 k/ q. Ymysql> select repeat('mysql', 3);  
( d; j$ {0 ?5 y6 v$ j. O  -> 'mysqlmysqlmysql' 3 ?: I0 p/ H0 x$ C% Z
   
/ H1 h* J) d: Q# greverse(str)   
+ m, k7 Z$ e. F" q! p7 N# y7 {# h颠倒字符串str的字符顺序并返回  
1 [  r9 L+ K2 ~mysql> select reverse('abc');  
! j4 ~, W- R3 v* @0 u' E  -> 'cba'
; @2 k2 y. h  t0 z& G8 o! H
) D* e- J+ l6 @9 n1 v. J" t3 minsert(str,pos,len,newstr)   
5 V1 W+ [7 t2 }$ W把字符串str由位置pos起len个字符长的子串替换为字符串- m. a$ |/ l& _" ?, X% s) e
newstr并返回  ) M# V9 G+ F# F  N/ k
mysql> select insert('quadratic', 3, 4, 'what');  : |( X4 Y! q# A
  -> 'quwhattic' 2 y/ t6 Q& h- ^) D: u' ~
3 W5 U' ]2 Z7 t6 {) j; b
elt(n,str1,str2,str3,...)   
& R7 i, H' t# u( s$ F8 c6 t1 w返回第n个字符串(n小于1或大于参数个数返回null)  - `: D7 K" L6 V" n) P
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  / h3 W4 ]+ D, N! B, m- y: I$ p
  -> 'ej' 7 c7 i+ M/ ?2 i+ u
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  
3 k( [( A! K' q( W/ R# k! y  -> 'foo' : ~+ [: I: J4 X/ Q9 I
+ r+ |" z4 P& g
field(str,str1,str2,str3,...)   3 r: f  }) B" e4 A
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  0 h; x, t; @- T3 L3 v
mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
, J1 V) ]: [+ J'foo');  1 f9 t+ ^, @! t
  -> 2  
* @6 h* Z. E& _4 y- Pmysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
) i6 K2 @- m: S8 v- D7 A'foo');  
# ?3 R# @  a! ^9 _  -> 0  ) k2 A# V. k  ~- k1 o' ?1 ^

. R! f: L: T9 ~# `/ E# @find_in_set(str,strlist)   
1 c8 V# g+ n1 T) M返回str在字符串集strlist中的序号(任何参数是null则返回
$ N& F/ e! p: @) knull,如果str没找到返回0,参数1包含","时工作异常)  
( j8 I) n, w. t0 v" Fmysql> select find_in_set('b','a,b,c,d');  ' M& L0 k* i$ w- k
  -> 2  6 @1 y9 r0 y1 S1 Y6 ~- {8 B  K8 v* n
   
% c1 [& u) ?/ A: V0 Rmake_set(bits,str1,str2,...)  & \. ~2 A* d! v- E. R' o
把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
0 `) s% x9 s+ m8 ]位置的字串选入字串集并返回(null串不添加到结果中)  / p7 n+ p1 u1 `7 k5 [' A
mysql> select make_set(1,'a','b','c');  
  a. }2 N" n3 n' e! F- `  V  R( I  -> 'a'
) T3 H, s) X5 R' B4 G2 B( [mysql> select make_set(1 | 4,'hello','nice','world');  # ?3 }5 \8 M6 t( o+ m
  -> 'hello,world'
/ s: _) n) R2 K* N0 n9 i/ {mysql> select make_set(0,'a','b','c');  
" q2 \# z7 f8 B0 Y  -> '' ; t/ i/ g2 r- g7 u0 C, x
9 r2 ~' ?! [# Q# w$ K
export_set(bits,on,off,[separator,[number_of_bits]])   2 g; P2 E$ v# _% b' H
按bits排列字符串集,只有当位等于1时插入字串on,否则插入, F4 v7 C( P0 _1 x
off(separator默认值",",number_of_bits参数使用时长度不足补07 L; U# F# z: G" E% [# L! K5 m  x
而过长截断)   
6 p, e& j. z  E) qmysql> select export_set(5,'y','n',',',4)  
: {, ^+ y9 [# M; N$ j. j  -> y,n,y,n   
. _0 c4 r9 n+ B  U& Y/ Y 4 {7 s0 ~+ p2 x- o* Y8 G. B
lcase(str)  4 g1 y% r4 N. g( Q) b
lower(str)   , ^) v% H) N6 H7 F2 t
返回小写的字符串str  
8 a0 S! D1 x# e# [mysql> select lcase('quadratically');  : ^0 p$ z  @/ P6 d. M: `/ ]
  -> 'quadratically' , Z* n: W' Y3 q8 z3 y( s9 c
   ( _6 d7 Z# Q3 H1 l4 t. N
ucase(str)   
, W+ S) p: z: X# H) f$ dupper(str)   $ s3 C$ ]- c- N+ U( s3 g1 |
返回大写的字符串str  2 Y5 U& M% ^! f0 z9 O; {5 I) f3 I2 b
mysql> select ucase('quadratically');  
4 L. g8 h" V8 u) @  -> 'quadratically' $ x6 m' F* t6 |: W1 `7 d  r. U

' j' n! W4 b6 e3 W2 Y8 V/ Sload_file(file_name)   
* ~4 C5 d" ^/ Q5 [5 c* ^读入文件并且作为一个字符串返回文件内容(文件无法找到,路径/ j5 [9 s5 a( v* E, l3 Y
不完整,没有权限,长度大于max_allowed_packet会返回null)  
" f% X6 d# Q6 _& G1 p9 w& r$ rmysql> update table_name set blob_column=load_file
9 E& K, F( L2 W: X6 l("/tmp/picture") where id=1;  
6 ~2 C2 V% J* _! v6 @! @ 9 K1 s$ B/ y; r
2、数学函数6 R' }1 P* h6 B% s, U
abs(n)
9 _' I2 l! N' ]返回n的绝对值  3 V! ~& g. Q* L0 t& V8 R
mysql> select abs(2);   
/ b# j  k) X3 u+ @6 R# N: J$ v  -> 2    " q* P1 I8 L9 D2 l7 [
mysql> select abs(-32);    : v+ Y& D- D& p4 A2 A! r
  -> 32    1 B. |& k9 g5 A- N& O
   
+ P  m. C5 y7 k, j  k9 R/ m, Nsign(n)  # J' O+ `, z2 \0 G5 j! H" P) [9 [
返回参数的符号(为-1、0或1)  ( v# O. I8 r- \) s1 ^
mysql> select sign(-32);    1 w# s: N9 Q% _
  -> -1    + v+ E. ]" @" r& X( r( u
mysql> select sign(0);    $ t& Z8 ]7 W+ d
  -> 0    / g8 y; Q/ g3 X, @; j# L: V& ^. s
mysql> select sign(234);   
1 P9 t: j  u. x/ S% W5 E  -> 1   
9 E2 `7 x: {7 ]9 q
# [- D' a. E: tmod(n,m)   
2 l0 ]; o1 ?2 v取模运算,返回n被m除的余数(同%操作符)    ' h3 {- s( v. U. C
mysql> select mod(234, 10);   
( w, j) ^3 u9 M: C! Y; V  -> 4      u6 g3 S* {2 \  P! H" H
mysql> select 234 % 10;   
: e. {8 F& s9 C) p$ h$ Y  -> 4   
$ x; @) f0 Q2 W0 D6 }$ `* Zmysql> select mod(29,9);      n! B; v0 p: H2 G# b8 X. e0 N5 I
  -> 2    - }! Z0 N: w- [2 F* E
5 ^2 S8 y* w# W9 T. v
floor(n)  ' A0 S4 m- H, j0 g$ j8 L& G9 o
返回不大于n的最大整数值  
% T1 o% W5 D% q. pmysql> select floor(1.23);    " x4 M  U! T) X) X1 P; ]) X
  -> 1    ( I. j/ f* f8 z$ J; H9 o9 `
mysql> select floor(-1.23);    * n* [: j! S- f
  -> -2      ]# t$ _8 B0 W" Z( G

3 p9 T& |8 M  G3 a* U. W& Lceiling(n)  
8 U2 b, G6 r5 n返回不小于n的最小整数值  7 b% R: F% n* V# ^$ G2 M' q
mysql> select ceiling(1.23);    ( C+ m" }# d! |
  -> 2    8 Z$ T" d9 @4 r! w) D  a# U
mysql> select ceiling(-1.23);    0 |2 e' |6 C: V- \0 y9 B0 M
  -> -1    * X% C8 a' d1 p: w# v

* K. A/ a4 |0 @round(n,d)  ' `) W: a- ]( C/ u1 E
返回n的四舍五入值,保留d位小数(d的默认值为0)  + M9 ^% }, L, ^) q; [& j
mysql> select round(-1.23);    " O5 |$ x* n1 @9 j8 [
  -> -1   
4 s& ]: ~; k8 Y3 F% V. f( S- kmysql> select round(-1.58);    ! Z+ S, T: a  Z; G- r
  -> -2   
8 u$ N  m  G8 C/ H1 Imysql> select round(1.58);   
& S. S4 Z0 G* I% D, j  -> 2    , N3 ~/ ~! |3 @7 `1 c5 q% x
mysql> select round(1.298, 1);   
6 [: x( K+ L/ b, d" ]1 }1 A  U  -> 1.3    ' P9 B% w# n3 x  w# [
mysql> select round(1.298, 0);   
* J5 c# P; _) v% U* K  -> 1    & H, j5 L2 K5 H  S* m
# D1 O* K8 n- t2 b& u: M" E
exp(n)  
$ |2 O1 \5 U# T' Z. \& F返回值e的n次方(自然对数的底)  
6 V+ \3 B8 p3 qmysql> select exp(2);    # d1 }+ S2 q, |9 |1 e. z
  -> 7.389056    - A" V6 {3 u" C& T% V
mysql> select exp(-2);    1 P3 v. I: q9 [  W
  -> 0.135335   
9 r! {, D9 J/ y9 y/ C3 [% g" l % p/ W/ T1 C% D  S
log(n)  ( |, }' X7 p6 j0 {" e( d) {0 ^
返回n的自然对数  
; O+ t+ l0 U1 O* I. K, O7 pmysql> select log(2);   
9 L7 n( u+ d$ p# Z, |  -> 0.693147    ' a8 a! f5 t5 A0 T3 ~
mysql> select log(-2);   
. W4 q: Z, h+ ~) |. f  -> null   
1 ]2 k- ?2 d' h. f  H9 X
: W/ t* ~  T+ }# w4 I; slog10(n)  6 c  ^. t6 h! z+ n/ `
返回n以10为底的对数  5 r/ ~9 u& C5 ^1 U2 ?
mysql> select log10(2);   
# k9 F* g& N; c0 m, B; L4 y1 V  -> 0.301030   
: L. i9 S8 c9 V2 z+ W3 O$ Mmysql> select log10(100);    8 L/ k, ]/ ~3 f$ v* V9 R, d5 Q
  -> 2.000000   
8 M, _: V3 U* qmysql> select log10(-100);    & }% w6 ]$ u1 A5 y8 a
  -> null    2 j$ z9 x7 C9 k
+ G/ U+ V5 x, S( A+ X  h# n
pow(x,y)   
2 ]9 N" S8 a! i$ mpower(x,y)    ! V0 [% {2 z+ Y& l7 E0 u4 ], j9 z
 返回值x的y次幂  
0 G0 k7 a6 t4 _( d4 ^/ U5 kmysql> select pow(2,2);    ; G& `+ L  J9 @
  -> 4.000000   
. _  _/ W: b5 f" v' n4 dmysql> select pow(2,-2);    9 q6 ~+ J, h" b4 G
  -> 0.250000  0 a: ?) s; s, \: X$ Q0 w: S
+ p$ C; q; y) V4 l
sqrt(n)  * W  n' i; ~. Y% R
 返回非负数n的平方根  
8 w+ p/ A$ v5 M: K0 @2 Dmysql> select sqrt(4);   
8 J8 y! j5 J. v9 {  -> 2.000000    : J* g2 i+ @% b
mysql> select sqrt(20);   
, q2 u/ f% f' h# K  f2 j  -> 4.472136    * V, N+ G! I: W& K: j
5 Q9 c( H7 ]7 |
pi()   
& o% z7 K! y  u# e7 w; c8 y 返回圆周率   
$ A% F( J' z4 z5 ^mysql> select pi();    9 [  D3 x9 n! z- R5 P% H
  -> 3.141593   
" q! r! ^/ y! h+ V+ y
2 H' e  i$ q3 H/ x0 Acos(n)  
; \) D0 S* `5 _  r, G1 R  ?6 e 返回n的余弦值  
2 a, h# p8 n& m8 b$ [% H6 Rmysql> select cos(pi());  
0 v! @* O  J5 ~& r5 U, B7 P  -> -1.000000   
" k/ F/ G/ L7 w
' s+ m: e6 \5 K  _7 h5 G! ~1 ~sin(n)  & b; Z7 x2 y/ |/ T
 返回n的正弦值   
, g( W& Z9 Y, A' F* }mysql> select sin(pi());    5 q0 ~+ F5 _& y9 z
  -> 0.000000   
. h) ~; {, X9 a4 h& I% ?0 T3 J 6 T' a# L0 @! o7 _% |% S9 _
tan(n)  
" M$ O7 j5 a* L) d: N/ d' }返回n的正切值  + {' L0 R$ g0 T  c
mysql> select tan(pi()+1);   
' E4 c1 L1 D0 R( t3 }. G  -> 1.557408   
4 w: G8 B& v2 V$ \( k6 \9 [7 Z ( G: b6 w, J4 x% i; K% c' [
acos(n)  : S- e1 u. G  H0 Z5 s0 a
 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  
& L, h4 ?( M1 Q/ W7 ?+ ^, emysql> select acos(1);   
% A/ L+ q1 y9 q  -> 0.000000    : r1 h! F- M8 M! Q
mysql> select acos(1.0001);    * D/ V. S7 h) d3 Z4 _9 ?& j
  -> null    - w' H  Q5 r5 C1 ~3 O# y
mysql> select acos(0);   
: R* m/ k% ?& `( [  -> 1.570796   
4 u( y# s) b2 j, {% o & A/ W$ S- q! T/ N2 f
asin(n)  
7 K6 |* F" L# u# k) C" w返回n反正弦值  , g3 C  `9 s$ V1 Z! c+ _
mysql> select asin(0.2);    7 P# \' s/ B" _# }6 V# ~, w" c
  -> 0.201358   
# Q" B4 i; D/ N/ a7 Gmysql> select asin('foo');    " x9 a' y( e7 U" D9 z
  -> 0.000000   
$ S* \7 D$ |' r * }& n% z1 ^$ h3 X, s
atan(n)  
9 a% J# q1 o& G" p返回n的反正切值  , q. A* @& h5 d% R/ w
mysql> select atan(2);      M4 v7 g! ]: X+ h
  -> 1.107149   
4 F! ?6 m4 v  [9 ymysql> select atan(-2);   
- e& @& O0 @; D0 q' m/ ?  -> -1.107149    6 G! U3 ?- _. M9 f9 Y
atan2(x,y)   
) a) i- J+ N1 h+ ?. J$ r 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  
& q6 M( u6 A9 Z5 a- |7 [0 G1 k' Gmysql> select atan(-2,2);    1 a: J0 d2 f' E2 [
  -> -0.785398   
- k. K- O* ^) K: F3 Nmysql> select atan(pi(),0);   
7 |) S3 M- R, |9 x) `/ {: C3 j  -> 1.570796    + {: @9 L' W* w$ O
0 I- |, Y' g$ h5 c% N5 N
cot(n)  
# T( E) F7 g# M! v" ?; t返回x的余切  
' j( @  E; r3 F! s& e+ ?7 c& n; \mysql> select cot(12);   
6 \8 s, |* t! J  -> -1.57267341   
9 j; f1 `5 m8 mmysql> select cot(0);   
% N! J1 ]! K; o8 t* k  -> null    1 K/ A( O5 k3 d0 q: i3 j
0 B8 r' ^! _$ N- L
rand()  6 G: R$ Z$ T' n. {' P( a
rand(n)    , O% ?% @4 }% T# Z9 `
返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值) - E# a. w  c4 U0 J

( Q  V, T( o8 M! y' P5 lmysql> select rand();   
* t) T8 m$ F6 M& w2 X  -> 0.5925    # ?( K0 u! F) L, P# K' Y- I* H7 |+ q
mysql> select rand(20);    : N8 B. e4 j( B# K% `5 b
  -> 0.1811    ' G& K* m6 p% J
mysql> select rand(20);    0 I8 P4 z9 m7 _0 D9 q7 ?5 g
  -> 0.1811    " ^# F4 B0 ?/ |0 D: L0 e
mysql> select rand();   
6 R( ]9 v$ z9 V4 f: T5 p: A/ }  -> 0.2079   
; _1 h: X0 K1 |7 W8 X/ F' O  q! D' \mysql> select rand();   
" e" L% |" @( N+ W0 ^% [  -> 0.7888   
, H9 `, y% G& ^! _" a1 J * z. K5 j" \  P
degrees(n)  
9 G/ g. x/ ^  G; b把n从弧度变换为角度并返回  
* g8 E5 F7 I, r. L( c* |8 H3 Kmysql> select degrees(pi());    " _- m- M3 p1 I4 M: [
  -> 180.000000   
( o5 B, x- |3 A8 B% Q7 _1 B; x& V
: m3 L6 X6 w' ]) c1 Mradians(n) * e; h7 R/ X  a8 S0 H9 t  _2 d
把n从角度变换为弧度并返回   
# C* o( u- M" _# S0 p% bmysql> select radians(90);    + P# v2 b# b4 I# Y' r
  -> 1.570796    / p+ v7 O8 s8 Y7 M
. d2 v8 k4 {  h5 O) U
truncate(n,d)    1 l7 `+ V* d& y
保留数字n的d位小数并返回  ( }! _' x( @7 b7 ]
mysql> select truncate(1.223,1);    4 {7 T9 N/ m. b+ j5 u* h$ x% y
  -> 1.2   
  u9 @1 N- ], Z' V+ C* G0 E- u% qmysql> select truncate(1.999,1);    1 K& V* m" n4 O- `  Q7 E7 R
  -> 1.9   
: w. S0 M5 e' k) pmysql> select truncate(1.999,0);    3 g3 f. a& t' S$ e' L
  -> 1   
! ~5 Q0 d: d$ P ( y$ n, l0 C' C
least(x,y,...)    , ?9 h/ w% X9 {
返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
1 g7 r- Z% v+ z9 I7 H' \mysql> select least(2,0);   
& {( x! }) D* l1 X- q5 {8 P  -> 0   
9 g0 y3 ]/ t1 ^) Jmysql> select least(34.0,3.0,5.0,767.0);    8 K; k6 M- u6 k) t
  -> 3.0   
. O: f9 |9 W5 Z6 s! h3 Lmysql> select least("b","a","c");    8 p0 ]2 _$ t7 e3 K7 q
  -> "a"   
) N& H: j  x+ b
) D2 a/ Q% m1 m3 Q$ k! F8 zgreatest(x,y,...)   
, o) H" S) q& i/ i3 \% o6 O返回最大值(其余同least())  9 [- ?& V, [% K7 G3 \2 ?/ h
mysql> select greatest(2,0);    ' ^. R3 e" C- {9 \6 ^# H' e6 I/ P) c
  -> 2    , v  l: k* n( D6 ?- k) E
mysql> select greatest(34.0,3.0,5.0,767.0);   
8 P6 ?- ^, G' x$ m" b' N  -> 767.0   
3 P' S, q$ K) Vmysql> select greatest("b","a","c");    6 X: z/ [8 P) x/ O! {0 p
  -> "c"     + y. h: G% B5 R

: ~, F( v$ f. j3、时期时间函数 . r" {. z3 F( n
dayofweek(date)    ) C0 p, K0 b$ ]6 j
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
. `1 j! F- M% p4 \, o2 Y4 Ymysql> select dayofweek('1998-02-03');   
) m* a. [: G8 k  -> 3    ( p) E9 j: q" Z* v6 U- B+ N( o7 f5 G: S

5 @0 @5 ?: K* V, Uweekday(date)   
5 V) D4 G- b7 N' y' m返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。   ?" \! D, z; p+ X& \( [5 c- S; z
  
9 q' g. l- Y# [, ]* @/ umysql> select weekday('1997-10-04 22:23:00');    , `4 c4 R! \, t2 W7 S" i
  -> 5   
$ |, H- ~# Y5 C4 hmysql> select weekday('1997-11-05');      H6 W* z. p$ V! _- x' j$ i
  -> 2   
2 k2 T: F* T* I) e" }: W8 `; X
" k, B/ V( [5 n7 a9 O; Mdayofmonth(date)    * V) e; P6 x7 z0 Q2 r
返回date是一月中的第几日(在1到31范围内)    / q$ c" J: G6 `
mysql> select dayofmonth('1998-02-03');    , x  X; v& ?3 r4 u, x
  -> 3   
: {! E9 J3 R1 Z5 i8 V7 i
2 L2 N( E2 m6 Pdayofyear(date)   
$ N& m5 {) K: \) A: [0 ?+ d/ Q" \  C* D返回date是一年中的第几日(在1到366范围内)    6 L9 A1 T  u: s# L' A# ]7 z: R3 w) T# S
mysql> select dayofyear('1998-02-03');    6 p8 D, D' b) W  f" s: A
  -> 34    2 L; a& ~  {. d

! V  ]" G6 E' \- z6 o& Nmonth(date)   
) H9 z5 `0 J' k8 E返回date中的月份数值   
3 x* ?6 e6 m2 w; ]% }3 Bmysql> select month('1998-02-03');    4 ]- R* ], y6 i) x! I
  -> 2   
6 o: C6 ~+ ~$ D% |6 G3 w9 @" h" A ; H1 S& N6 V9 x$ y* }
dayname(date)    $ s4 L  ^$ e" h# q) p6 u  r0 L
返回date是星期几(按英文名返回)  
; n9 W* L3 M$ e( K7 Vmysql> select dayname("1998-02-05");   
/ a3 _1 n0 C8 u  q! u7 `  -> 'thursday'   
% E  s" x2 u6 y5 k, z0 l1 ?
4 w1 m7 [0 O. q' |- p; |1 Dmonthname(date)    
, s9 I5 C6 a. S0 e/ O, N" i- A返回date是几月(按英文名返回)  5 ?1 U5 q, ~# p$ X3 b- O, [9 w6 J
mysql> select monthname("1998-02-05");   
' }+ k& q* W6 v, `: X  -> 'february'   
0 f2 a0 J( J( s: F4 D! ^0 J ' R2 }0 {/ j- s8 e8 d) W
quarter(date)   
8 u5 o7 R% z2 ~. ^" U8 v( i9 h' \0 v返回date是一年的第几个季度    * ?) o2 H# }6 B* _9 I" p
mysql> select quarter('98-04-01');   
, ^6 }0 n- _) U+ b2 f: Z  -> 2   
/ U5 b  p0 ?4 U  T: H& _, H
+ U5 m7 j/ L* }) z+ ]: Cweek(date,first)   ! l  Z: x. r6 O/ y
返回date是一年的第几周(first默认值0,first取值1表示周一是
1 y4 i, b- f! L周的开始,0从周日开始)  * N8 g# w3 F' Y& z; I
mysql> select week('1998-02-20');   
6 L5 w9 m, y  E# y3 x  u# T  -> 7    " t& Z6 X- O2 W+ C& I
mysql> select week('1998-02-20',0);   
+ n$ Z  [9 m7 M! g  -> 7    $ B! O- t' O3 U: X& w2 T, S
mysql> select week('1998-02-20',1);    ) E7 y. f8 j, m, ^
  -> 8    7 Z' v4 D0 O9 V# k' T

( D2 v9 y( j: W/ s7 ^year(date)   
1 U/ ]/ b4 }  J! t' E8 S$ I返回date的年份(范围在1000到9999)   
( y1 B7 j* b, `; T, W! W; amysql> select year('98-02-03');   
& e! p6 y! u% s5 b/ m' C& d5 E  -> 1998    : N5 l" E# ^, O3 V, d

1 ~5 ?$ X3 a# H: Yhour(time)    
7 Z2 E$ q5 b2 l: T4 y- w- U* }返回time的小时数(范围是0到23)   
4 |$ @- C. q* I' }mysql> select hour('10:05:03');    % c$ o8 G+ `/ a2 |2 ]. E0 l
  -> 10    1 a0 E: ~  Y  u' Z2 Q+ ?# R

9 d" C! T9 H6 f( i/ Pminute(time)    ( C9 {( p* w$ i
返回time的分钟数(范围是0到59)   
) f1 B/ z4 i8 Y# J9 R: _mysql> select minute('98-02-03 10:05:03');    " d& Y% Y( `! R, ?! m
  -> 5   
! o  Y  s. q  j. ~  w8 E
8 t1 {5 a: q" q) w3 r+ k* Psecond(time)    # p7 E1 m, l  C) M2 A9 a$ I" t4 k
返回time的秒数(范围是0到59)   " n/ W4 ^7 Q, x- F
mysql> select second('10:05:03');    3 W$ @7 R2 k4 G/ ]6 q
  -> 3    2 A) N7 }2 P$ L6 G0 p

, X  P6 Q. T: ]3 Tperiod_add(p,n)   
) G9 O/ m4 P& C% c+ Q增加n个月到时期p并返回(p的格式yymm或yyyymm)    % A0 k- h( L9 d
mysql> select period_add(9801,2);   
! A- W4 ~* J6 b( _. T8 z: K) h( y6 l  -> 199803    : \, i$ M6 K" m4 P( n- N
4 H# }( P# Z7 E8 z' s# P$ F! n
period_diff(p1,p2)   
- Q/ j- U: ~" m+ C9 E- v返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  ; C# V5 \; Q" c- [
mysql> select period_diff(9802,199703);   
+ r8 U7 u$ P9 k9 q1 m& {. J8 b  -> 11   
# Z) W9 w% D. @; j. S( W7 R% b1 H+ j 5 f! B; c: F6 |5 ?" H, f9 y" |
date_add(date,interval expr type)  
3 s) R+ o/ f! ~6 ]' h3 c, ydate_sub(date,interval expr type)    7 g$ Q: m  E! I, C  m1 e/ }
adddate(date,interval expr type)   
! G# m. ]8 \. X2 K: R4 G( P) z1 |1 ?subdate(date,interval expr type)    v3 a- U1 b3 v' u
对日期时间进行加减法运算  
" W) c# ^/ u* ~  L$ a(adddate()和subdate()是date_add()和date_sub()的同义词,也
$ I! ^4 U2 p* L: q' D0 Z. Q1 y可以用运算符+和-而不是函数  . f9 q: f) D; A; a, f9 Q$ B
date是一个datetime或date值,expr对date进行加减法的一个表
% A- c6 T: J) L$ M; H2 ~/ ?) D达式字符串type指明表达式expr应该如何被解释  6 U- q/ }9 w. L: Z  Y8 E7 z0 o
 [type值 含义 期望的expr格式]:  ; w* r/ P9 m  z% y
 second 秒 seconds   
3 `% n! A, o2 Q/ j minute 分钟 minutes   
, B7 F! _5 D3 k( r: o1 z" \2 M hour 时间 hours   
" [4 z  r! U. _' Q/ L/ q day 天 days   
+ k1 ^; ~1 }5 L# Z5 ^% H month 月 months   
  m. B/ {5 i8 \ year 年 years    3 |8 ]9 B; r0 ^8 W7 E+ ]
 minute_second 分钟和秒 "minutes:seconds"    ) v! J2 A+ H9 T& m" P
 hour_minute 小时和分钟 "hours:minutes"    1 R) N. n" ?7 j4 I" D
 day_hour 天和小时 "days hours"   
- [: R7 H5 d$ W! m9 p( d year_month 年和月 "years-months"    ; ]6 \8 q; I8 a7 X
 hour_second 小时, 分钟, "hours:minutes:seconds"   
, |7 i0 ]! _, ?# |8 x/ @4 {1 f1 k day_minute 天, 小时, 分钟 "days hours:minutes"    + t7 p% A. V; L5 i5 x
 day_second 天, 小时, 分钟, 秒 "days% k: c3 g" ~; _. F# G: G  H+ u% Z
hours:minutes:seconds"
4 ?5 m' }! r5 a( K5 G' H expr中允许任何标点做分隔符,如果所有是date值时结果是一个: K" X" o" I( m7 \" {  z
date值,否则结果是一个datetime值)  % P# ?& n2 X% |) g. d
 如果type关键词不完整,则mysql从右端取值,day_second因为缺
3 {$ w5 c) {. @6 D) A* F* D8 B少小时分钟等于minute_second)  ( H1 p) P0 ?" Q5 ]0 D
 如果增加month、year_month或year,天数大于结果月份的最大天
3 @$ b1 F3 j3 g& r5 q数则使用最大天数)    ) o5 P: U% D" w4 E9 o4 L1 E$ {8 r
mysql> select "1997-12-31 23:59:59" + interval 1 second;  
  b/ f: M7 x7 K  c! B: m' Z 4 K. [+ g9 [/ p5 s7 C7 X
  -> 1998-01-01 00:00:00    ! z4 {5 `5 F# k/ w
mysql> select interval 1 day + "1997-12-31";    ; A. w/ f# W7 m2 {+ k. U
  -> 1998-01-01    3 V' B$ N7 j! e) B6 V2 o; C
mysql> select "1998-01-01" - interval 1 second;   
: T: H" t6 s" s, Z2 Q  -> 1997-12-31 23:59:59    4 c* ~8 o6 f0 h
mysql> select date_add("1997-12-31 23:59:59",interval 17 D9 Y- H" e1 \1 @/ s
second);    $ B$ {0 b0 t) U( j0 n. U
  -> 1998-01-01 00:00:00    ) {+ n- R, D" V5 g- H" ?7 _; }
mysql> select date_add("1997-12-31 23:59:59",interval 1
* B, t9 e; G: q6 Bday);    6 n* W$ F; t3 e% b% }
  -> 1998-01-01 23:59:59    4 @0 ?  C8 K4 T( X
mysql> select date_add("1997-12-31 23:59:59",interval4 K$ `# `9 ^6 H3 D$ i
"1:1" minute_second);    # M5 _2 x) @7 O  p) Y# `
  -> 1998-01-01 00:01:00   
( i. }7 R! v1 x0 vmysql> select date_sub("1998-01-01 00:00:00",interval "1
& A2 }3 f& }8 W# J7 x1:1:1" day_second);   
- n; B+ f, T0 B  -> 1997-12-30 22:58:59    5 k7 |6 Y6 v- v) Y
mysql> select date_add("1998-01-01 00:00:00", interval "-1
0 n5 s% G6 w4 ^$ V0 }- Q10" day_hour);  8 H* i% |; w: D4 ^
  -> 1997-12-30 14:00:00    4 x1 w  l# Y) r6 M- t& ?
mysql> select date_sub("1998-01-02", interval 31 day);   
' E5 q$ u, Q: `. |9 J: _  -> 1997-12-02    . o8 |. [1 g5 [6 C; S7 w2 C
mysql> select extract(year from "1999-07-02");   
3 |  S& n$ ~0 G, Q  -> 1999    7 g( W( e" a8 n+ V
mysql> select extract(year_month from "1999-07-026 R+ I% ^0 J/ {6 F" H
01:02:03");    ( U3 s- {: f8 t% u
  -> 199907    ( R# k% g* |8 }! |5 N0 N
mysql> select extract(day_minute from "1999-07-02: P7 K* R# l9 H9 L
01:02:03");    7 K, O8 M7 u- ]! C/ r2 J
  -> 20102    ( O  b1 w  d1 h1 s' G

% D# P* J2 Z" lto_days(date)   
6 r  O- ?$ R, c8 E$ r& L返回日期date是西元0年至今多少天(不计算1582年以前)  3 {1 f7 r  @# D9 \: M
mysql> select to_days(950501);    2 @1 _) [! g$ y  y- o1 R
  -> 728779   
5 m1 G5 n/ @7 S6 @mysql> select to_days('1997-10-07');    / v% F% U: u& d( E
  -> 729669    4 w6 l! U0 M4 B7 d

  R8 Z8 Z6 f7 K5 ^from_days(n)    5 b: n7 N5 h" n# s; T
 给出西元0年至今多少天返回date值(不计算1582年以前)   4 J  D( [6 w6 J0 P/ U7 _, M
mysql> select from_days(729669);   
+ `& V7 i& r% }( y4 H$ T, \$ e  -> '1997-10-07'   
$ h+ L4 \! J" W3 [4 P1 I ' Y/ W) f% h  ?3 i9 e
date_format(date,format)   
0 O+ V2 O$ j  b, B( a, x 根据format字符串格式化date值  
1 t" ^; |7 t( ^, A9 L (在format字符串中可用标志符:  2 C. p! M. a) O
 %m 月名字(january……december)    , ]. S. m7 ^6 |
 %w 星期名字(sunday……saturday)   
; f: J) o: y2 B8 S& I7 O %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)   
' v7 F6 v! ?" t* P8 u %y 年, 数字, 4 位    - F  g0 J3 B( H. t- I
 %y 年, 数字, 2 位   
8 ?+ n  \  V4 j- a, z, J* p %a 缩写的星期名字(sun……sat)    4 O; m; F9 d! k2 l7 O. m
 %d 月份中的天数, 数字(00……31)    3 n+ n% A3 a/ e3 a% ~! c
 %e 月份中的天数, 数字(0……31)   
) }, ]- W, G) P' \4 [ %m 月, 数字(01……12)    9 r1 P( R2 i& C4 x- W3 B# r3 l
 %c 月, 数字(1……12)   
! P  D$ U* k8 e: M* J$ t %b 缩写的月份名字(jan……dec)   
6 m& h5 N1 u: I %j 一年中的天数(001……366)   
2 r( E- x$ S9 A %h 小时(00……23)   
1 ~+ H& h% Z# i %k 小时(0……23)   
" s/ U% @* }4 h %h 小时(01……12)   
* _) f/ D2 u* k- ]! w! t' x %i 小时(01……12)   
- V* e# J7 e: r& b% r" q3 c# ] %l 小时(1……12)   
. h* h3 R# {3 X9 p6 X" g %i 分钟, 数字(00……59)    4 t% `7 H" M  j! Z* x* N: H* I
 %r 时间,12 小时(hh:mm:ss [ap]m)   
! N% a+ t6 o( A+ ]! v8 D1 \ %t 时间,24 小时(hh:mm:ss)    # K5 i6 \: B! O6 r3 W' A* B* ~) @
 %s 秒(00……59)    8 Y4 s/ h: e* w: [9 C" k1 `
 %s 秒(00……59)    ) q% q3 y3 G4 R6 l; W
 %p am或pm   
; V( i' K3 ~6 }( c% ?% @ %w 一个星期中的天数(0=sunday ……6=saturday )    " b& o6 J8 l- q& q
 %u 星期(0……52), 这里星期天是星期的第一天   
0 B4 b, \/ A4 [3 E+ J6 ^ %u 星期(0……52), 这里星期一是星期的第一天   
/ N8 C$ l7 c9 E) {* X8 S %% 字符% )  
$ w; h; `# h$ r! ?) _4 jmysql> select date_format('1997-10-04 22:23:00','%w %m %
0 k( v, H  I" Y. Ty');    4 l+ g- m6 V3 M3 X
  -> 'saturday october 1997'   
  Y( z$ T6 I! L( [& h" omysql> select date_format('1997-10-04 22:23:00','%h:%i:%
, }. p0 C! P0 y; F2 Ls');    $ y, g8 p! U% u# S1 ]: {: o
  -> '22:23:00'   
9 K& ]- l! y1 g7 Wmysql> select date_format('1997-10-04 22:23:00','%d %y %a0 H+ p3 c7 W3 e7 |( c, ^- {
%d %m %b %j');    ' B. I5 y8 d7 ]4 J+ z3 n, P
  -> '4th 97 sat 04 10 oct 277'   
; C- R1 ^/ T  _% Gmysql> select date_format('1997-10-04 22:23:00','%h %k %i3 W8 X( I0 H8 Q
%r %t %s %w');   
$ z/ Q3 M; M0 b+ r3 r! j+ x  -> '22 22 10 10:23:00 pm 22:23:00 00 6'   
. _& {: t8 ^0 I0 C
5 L6 u8 f7 d8 A& ?time_format(time,format)  
5 S/ Q! v* h8 l 和date_format()类似,但time_format只处理小时、分钟和秒(其' i/ r4 H% \& l  L
余符号产生一个null值或0)  9 F* Q, q+ T8 y. e% B7 c
1 Q" [' H7 Y$ c1 [8 ?
curdate()     6 ~4 }# j- b( ~9 F3 |7 `+ S
current_date()  , u; D& H! n" |. |6 F
 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
+ d# r, k7 x, r5 F, R处上下文是字符串或数字)   
, K& Z& ^7 c5 Y  _mysql> select curdate();   
- K4 N; P4 u" B7 ?$ H  -> '1997-12-15'   
, D3 w: \1 \# emysql> select curdate() + 0;   
% P; H' X7 X; L3 A! }  -> 19971215    9 ?4 M3 b( d6 Q4 u! T2 u

3 I- ]2 ?  a6 Lcurtime()   
- h6 h1 c/ G( E, P  ?  d. tcurrent_time()  9 D) e% Y( J5 H0 G0 R7 q4 u) W, B" ^6 |
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上( `- G- Y; k* p& Z7 a
下文是字符串或数字)      
& {& `- V4 ^8 @# G( W, emysql> select curtime();    & V8 ~, N3 D% {; ?; x  l1 s
  -> '23:50:26'   
$ a9 [2 i% m3 R8 |1 nmysql> select curtime() + 0;    4 Y" n. J1 ]5 e+ P7 C- G/ E
  -> 235026   
% X% p! M. O8 Q
9 O9 ^% @9 l4 ?/ |- r2 G. Lnow()    
. ~3 N* D8 e2 dsysdate()    - s# P/ c# |2 \& X
current_timestamp()  
( a' i. |# e3 q9 U: ~ 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期2 z' M7 h" F; d0 d$ D# b! _5 b
时间(根据返回值所处上下文是字符串或数字)     
, k* d, X7 E8 \! ?, c( p# Xmysql> select now();    ( f# N7 q+ C# b% i
  -> '1997-12-15 23:50:26'    $ `0 e/ B* y1 w) ^; n: z: [
mysql> select now() + 0;    - {! I5 }! P& x3 Q: e' q
  -> 19971215235026    ; B  W) Q$ l2 M# G
% |% O; G7 i0 A7 o
unix_timestamp()    $ M$ \0 o* v; K7 w0 _
unix_timestamp(date)   
1 m# B' \! N& p. S1 @! v" h返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒# I% S1 X( _( r1 b" u* s
数,date默认值为当前时间)  
7 ?/ W  z; b, r) m& {' @9 Gmysql> select unix_timestamp();   
* L; t$ [, F0 u+ S, g" m. E  -> 882226357   
# Q" r  M+ ^( h1 amysql> select unix_timestamp('1997-10-04 22:23:00');   
6 Y3 H% \/ |$ s  M  b! @  -> 875996580    ! i  h4 x" A5 V6 z9 T' O% _# Z, S  \
8 @* ~( R8 }: Z% y( d5 X
from_unixtime(unix_timestamp)    , ]: H& n: X% J* U
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的& l( h- k9 c: e7 ]1 p7 y
值(根据返回值所处上下文是字符串或数字)     
0 A) M' [1 s# Y2 r1 nmysql> select from_unixtime(875996580);    3 ?2 t" Q$ U0 o% E  S
  -> '1997-10-04 22:23:00'    9 l. U2 q8 r" f1 I3 H( Y! L$ t- ?
mysql> select from_unixtime(875996580) + 0;   
6 K- E0 U  K  @/ L2 |- a5 P  -> 19971004222300    ; {7 J! J0 b4 N9 X1 I5 O8 Q
1 ?! y2 g1 Q4 c3 ~
from_unixtime(unix_timestamp,format)    " u5 ]6 l2 q: `7 O( g
以format字符串格式返回时间戳的值  
5 H" R% d3 s: D( Zmysql> select from_unixtime(unix_timestamp(),'%y %d %m %
. r* d$ m. r( G3 z5 ^h:%i:%s %x');   
# Q* Z) X9 \# t' u0 u7 E  -> '1997 23rd december 03:43:30 x'   
: B0 M( D2 S9 x0 ] 6 l3 ^# B  C3 b7 n- w$ _: s$ N" K, M
sec_to_time(seconds)   
5 Q& ]6 T; I6 F% U* P8 |& |; ?以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     ; F  Y* Z* Y7 N: z
mysql> select sec_to_time(2378);    - r8 U0 M0 P9 O! L
  -> '00:39:38'   
+ M" g6 A, ~# y5 [0 Amysql> select sec_to_time(2378) + 0;   
; f3 ~% `1 u$ z+ ^9 l: R3 t  -> 3938    , @% g+ [; E2 q3 y  c  |
; l' D/ y' `; t. d
time_to_sec(time)   
; ~( j) r1 E7 }+ J4 X' {2 `返回time值有多少秒    0 i, ?) ^8 U' C# |' I' @) p
mysql> select time_to_sec('22:23:00');    ( G8 [5 i& f( O0 x7 @$ I
  -> 80580   
; g. M4 U0 q( p) t7 _% }mysql> select time_to_sec('00:39:38');    - g! y( x$ z$ V% R) k
  -> 2378 6 n* a. `8 Q$ S. v

4 ]$ a( ?5 f  B9 ]9 M. i/ p转换函数5 D( g, y0 A, e" L' _4 `. O
cast
1 y0 f  Z3 e% i% I, c用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]
3 L7 }, U. ?1 _- O' T3 v# l实例:select cast(a as unsigned) as b from cardserver where order by b desc;
3 J8 U2 O5 H* a3 y+ i2 |6 Vconvert:6 W. x" D& i+ L* r  W% R+ q+ q
用法:convert(字段,数据类型)
) S/ M# @  S* J. U1 k& _实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
5 }$ C1 m% D/ z7 [6 \
回复

使用道具 举报

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

本版积分规则

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