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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数1 e4 V1 h$ ~, C% [
ascii(str)   
' c- v2 {2 v2 V) z5 a; y返回字符串str的第一个字符的ascii值(str是空串时返回0)  
: d/ P! z: }7 ]2 Wmysql> select ascii('2');  + I9 `, L  h/ u: i3 O5 A: a! A
  -> 50  
9 j/ J% n( ^2 {; jmysql> select ascii(2);  
4 f' D; z9 ^$ o" u0 O1 j  -> 50  
7 H2 N. _$ E9 \8 cmysql> select ascii('dete');  
- y0 V7 X4 y: O6 a  -> 100

2 m0 o" _  e. tord(str)   
( K5 v- X, N3 s! ^- `3 N如果字符串str句首是单字节返回与ascii()函数返回的相同值。
" i5 i" V8 z& W0 S; f
. {2 e' C$ F( J+ C" T3 {: y, f如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  8 m' a8 J5 P3 i$ {9 y
mysql> select ord('2');    `+ ]" Z0 o2 z7 |/ Q. A! U: R
  -> 50  + ^8 l  U2 ~& \7 x5 @
   ) b. E- C1 h- b# }2 a, K. E! j
conv(n,from_base,to_base)   
' B( G! V  P: n* d" L9 n! G/ |对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
" O+ t: ?2 k  ]mysql> select conv("a",16,2);  3 I. A: `. [9 Y7 U
  -> '1010'
& Y* p4 |. Y9 p; u3 k; ]) @! Imysql> select conv("6e",18,8);  
8 w4 s4 \! u$ E- `! N8 w5 Z' y( O/ O3 h  -> '172' % G1 `. e$ K* [) ~7 y
mysql> select conv(-17,10,-18);  
7 C& Q1 ^8 c( Q( B  -> '-h'
. W- U; I# R, L) Q8 w& K; wmysql> select conv(10+"10"+'10'+0xa,10,10);  
  K. w; F' k3 Z: b( d" W; S. C4 k2 Y, H  -> '40'
5 O0 u: c/ o2 c) v5 T( P% _   ( O5 l3 q, T! w! N5 W- }* Q
bin(n)   
$ ~) l2 Z2 R# A9 w5 F/ V把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  4 m4 B3 ~( m4 t! O- P4 Z+ R
mysql> select bin(12);  
; g. p% ?3 S$ Z) x+ a6 C1 }0 L  -> '1100' " l: Q% c) y# y
9 C# O* j6 M7 F! P( `
oct(n)   0 \: Q1 o; J" }* G6 g. F
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
4 \2 p/ e& r0 N: c% s3 Fmysql> select oct(12);  3 f# ~" c! D# a" L( F8 y* E
  -> '14' : i$ j% b' J$ L' B1 n3 {  a, ?
   ( K$ j6 B/ m- L; P" N# P; T
hex(n)   
9 p5 B7 q7 o' h# W4 k( o# A" {* Y把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  
2 i# {2 p/ Q' p- C) p! ^+ Hmysql> select hex(255);  
/ C, s$ G/ {) F  -> 'ff' % Q6 U) _. n# S1 k  \+ _( P
   
# q* h  H% r6 N/ F2 a' qchar(n,...)   
! D6 }" z! D6 u: Z* C5 j9 K返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   
, q, u& p2 }% d  e4 Umysql> select char(77,121,83,81,'76');  7 B4 x  e$ T8 B
  -> 'mysql' ! F" O: E: o- b9 k
mysql> select char(77,77.3,'77.3');  ) n8 U) B1 D, ?; U5 N" `( ?: h' X
  -> 'mmm' 3 k. r7 S* `5 D6 H' V$ h
   . S. _/ b% l6 ]: D: J$ ^! d1 J& b" N# \- T
concat(str1,str2,...)  
7 X2 T& Y: S( A( _把参数连成一个长字符串并返回(任何参数是null时返回null)  
0 X3 J5 A) n& q) Wmysql> select concat('my', 's', 'ql');  
0 H8 S/ O2 g, l0 [: I  -> 'mysql' 4 B1 _2 r, B9 W3 v9 b) X4 g/ W
mysql> select concat('my', null, 'ql');  
! k* X/ L6 e  y# E& T/ D7 q  -> null 0 r: e4 f) A; a4 X& b! @
mysql> select concat(14.3);  ) f/ l( h% i6 w7 s! T
  -> '14.3'
6 j  U3 s; S# Q" i. K0 C+ v+ { 8 m" m: a, h" r+ d' j
length(str)   
, J& P6 a8 E9 M' U6 J# D! Noctet_length(str)  
; ]+ y. n# H( E. o* lchar_length(str)  + @( Y  @3 w0 H( ?8 t+ Q
character_length(str)  2 u/ `6 _  b* J4 m' w& i" M9 D
返回字符串str的长度(对于多字节字符char_length仅计算一次)
& x$ j7 ^' ?4 K6 P+ z  [mysql> select length('text');  * j1 [8 b& `* C; C% @& f
  -> 4  4 d, R& _& A  B3 \8 Y9 Q
mysql> select octet_length('text');  2 s7 E- c! @9 c) i
  -> 4  * \2 J) H7 e9 N/ e; r- ?7 x' Z; [
1 i2 A/ |; m5 l$ V3 k9 N
locate(substr,str)   
5 R- l5 J: I( B5 B, y! K5 fposition(substr in str)   ' p9 M% v) D* e
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  ) [1 e+ R0 \5 E9 {# B
mysql> select locate('bar', 'foobarbar');  ! ]( p! Z4 }* }9 |' z
  -> 4  
( y3 M# J' {6 `mysql> select locate('xbar', 'foobar');  , D8 E$ l8 U  N- `: k
  -> 0    t9 S6 n! i$ D3 }( J
    1 ]7 ]  h: B" R, {' s) Q
locate(substr,str,pos) 0 r; z9 L. {9 L! W2 q8 l
返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  3 ~+ `. @$ A- `6 k. _' z
mysql> select locate('bar', 'foobarbar',5);  % [0 T& z$ h$ H) b, t
  -> 7  ; Q; N( D1 z& \
6 K) o9 S2 x) t7 f9 e, Q. N7 {1 i
instr(str,substr)  
' t2 \3 F/ k9 y2 s返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
3 ^8 A8 i' b  S  n% vmysql> select instr('foobarbar', 'bar');  3 Z* ^8 m  S$ S0 f: o, t
  -> 4  
( A* p. L( d9 J0 qmysql> select instr('xbar', 'foobar');  . Y% [; C( g. r" v, @! j5 r* r
  -> 0   
  I3 k1 T, [7 v
" n" B! r. n# Ilpad(str,len,padstr)   * j0 O( N& L  `4 N! n" ?: ]
用字符串padstr填补str左端直到字串长度为len并返回  
! w/ v$ A+ K! Qmysql> select lpad('hi',4,'??');  
# M) P4 U+ O0 d  -> '??hi'
" H. n; ?4 Z, o5 s   
# A/ s2 A9 d( ?' ~, Qrpad(str,len,padstr)   " ^2 k# q. u$ f/ Y) d
用字符串padstr填补str右端直到字串长度为len并返回  
3 i3 [" y/ F  b# ^+ Bmysql> select rpad('hi',5,'?');  
" W# d& e% k# a. ?  z7 ~3 {  -> 'hi???'
2 S5 h5 l  w* N% k* |  o: v
4 b7 q' h  u6 kleft(str,len)   2 }7 _& m' U# z, |. }  r# U1 C
返回字符串str的左端len个字符  
+ L$ e! _% K( ]1 e( Amysql> select left('foobarbar', 5);  
( E/ I1 m- a7 K/ A6 P; x/ Z  -> 'fooba'
) _, u- |/ m, C1 y3 j) l 2 J' A; R  L/ a2 B+ s6 B2 v
right(str,len)   
1 a* y' V- y3 O! W7 c, j返回字符串str的右端len个字符   
0 T$ t9 p, D- E3 imysql> select right('foobarbar', 4);  
) z9 r2 Z% |5 J, f5 t( @. ], I% D  -> 'rbar'
8 J: f! N7 C: Z
# v# ^5 j% B1 c6 Xsubstring(str,pos,len)   
1 G/ I5 D  s8 Z2 @, wsubstring(str from pos for len)   - g# d" L9 y) Z$ a
mid(str,pos,len)     x7 s5 M0 q  f) z0 U  ?% @: n" |
返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  7 b$ g! E' a: t% [
  -> 'ratica'
' C4 \/ }! ~  e0 X9 a$ g- d ( p- _- t  X( o% D0 ^
substring(str,pos)   ; a9 U2 j. k- p
substring(str from pos)   ! e1 d3 h6 e6 o" M0 C# [, {( h8 c
返回字符串str的位置pos起的一个子串  
" Q' U$ Q+ ]) w! K4 I2 cmysql> select substring('quadratically',5);  3 K2 b. `& k1 {& S
  -> 'ratically'   V- y) ]" g8 g5 q9 `* V& w  U; |
mysql> select substring('foobarbar' from 4);  
8 U8 p( R3 m! i2 J  -> 'barbar'
- O6 q$ g/ l- z- m+ X   U% y  v% V& U# @7 B# Y' i& m
substring_index(str,delim,count)   
# ]/ \; p0 t) x  M/ I* j4 i返回从字符串str的第count个出现的分隔符delim之后的子串
) X: m3 i# o, `, Y: R/ x% o(count为正数时返回左端,否则返回右端子串)  8 a0 p4 r* T, v( I
mysql> select substring_index('www.mysql.com', '.', 2);  2 ?" Z9 n, r1 Y7 f  T& f. r- H' K
  -> 'www.mysql' 4 l3 A# J2 a8 H- p2 c' o
mysql> select substring_index('www.mysql.com', '.', -2);  ( {/ y8 Z& V  d( C$ {3 R0 `
  -> 'mysql.com'
" F% g! r9 |  B0 }/ e 9 }# n; z! V( U- }
ltrim(str)   8 Z4 [/ S! f. h# n$ s' Z+ E
返回删除了左空格的字符串str  
2 S5 q; `5 B$ X+ |& G. ], Bmysql> select ltrim('  barbar');  
4 W+ u( D( k: ]; q& `+ F5 C  -> 'barbar'
# q2 i: S- r* ^$ J; f# C 8 o7 I: z# E$ ?" p2 K" c9 U
rtrim(str)   
* g# {3 M  \$ N* s$ u/ q返回删除了右空格的字符串str  
7 B: {: A3 e/ N( _$ U: Y+ t+ R/ \mysql> select rtrim('barbar   ');  
- T7 k7 H0 b& O9 Y2 f9 s5 p: X  -> 'barbar'
5 J1 J9 F% S: k/ @7 @7 \ 0 r& v$ S/ g* z8 D% s
trim([[both | leading | trailing] [remstr] from] str)   8 E' q) ^% |4 H0 ~, g
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  , |# @* a4 _4 J; P3 P
mysql> select trim('  bar   ');  * N  G2 E2 V' Q3 b) h/ f4 B0 c
  -> 'bar'
/ Z2 q  X# G, f9 ^% Zmysql> select trim(leading 'x' from 'xxxbarxxx');  
9 i' A' o6 D+ w& D0 d! b, I  -> 'barxxx' , Q, t' _0 U) W0 m
mysql> select trim(both 'x' from 'xxxbarxxx');  
2 p* A' w: o' I1 \  -> 'bar' 2 C8 N# `. i6 }9 H
mysql> select trim(trailing 'xyz' from 'barxxyz');  " j2 ?6 E' d" g$ d% k( |0 [
  -> 'barx' - k2 ]/ k& O( e% Z  A- \
/ G4 ^2 h; O$ x; [$ z
soundex(str)   9 \/ a4 f) Y; Z( _1 Y( y# x
返回str的一个同音字符串(听起来“大致相同”字符串有相同的0 j# U+ Y& k: X  R5 ]; v
同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  " A6 u9 m! c* j# F4 t
mysql> select soundex('hello');  # v* m, y* |% O
  -> 'h400'
0 G8 K" w+ ~7 U. t/ ?mysql> select soundex('quadratically');  
6 u5 H7 D( v) e  ?; ^9 Q: e  -> 'q36324' 3 J* ?  e. U. L+ G
   8 Z) ?/ t* w1 |& m3 a4 e( s, ?5 t
space(n)   . R: T* w  s4 E( T. P" H. h
返回由n个空格字符组成的一个字符串  
: R& {0 k  B( v. }9 i& |7 N6 g1 ]& n+ Smysql> select space(6);  ! t& l: F% k- Z$ N$ I
  -> '      '
' \/ T% e8 W& a$ }9 R   
2 G+ U3 [  M1 j1 yreplace(str,from_str,to_str)   
1 }6 l! z8 B: C+ v$ r用字符串to_str替换字符串str中的子串from_str并返回  
, B9 J9 f* J: ?9 {1 Z& omysql> select replace('www.mysql.com', 'w', 'ww');  ( j7 ^2 g& P7 g% Q* c: I
  -> 'wwwwww.mysql.com'
0 E7 m& O2 K* C/ Z0 i4 m0 j " s. e7 _& L. {, O* p+ [
repeat(str,count)  
3 p/ I* M/ q( T5 E& A返回由count个字符串str连成的一个字符串(任何参数为null时/ R% V  [. Y) |3 V( @* f# Y3 |& i  m
返回null,count<=0时返回一个空字符串)  # ^; b0 \7 I! f! b
mysql> select repeat('mysql', 3);  
% H# Z( S; b; @! O' |7 V  -> 'mysqlmysqlmysql'
" L6 n9 o& h* I   
5 H1 v) N0 p! G0 ~$ Q7 B) ^reverse(str)   
3 K# O% h6 A0 k* _% X) ^4 F颠倒字符串str的字符顺序并返回  
1 m! D% a2 O; P1 A. omysql> select reverse('abc');  
7 s  S& h% {( S7 R+ b% M' a! Y  -> 'cba'
: \$ w4 @) d) v; k8 Q & G1 B- O( x& l/ I7 {1 O: n& s
insert(str,pos,len,newstr)   3 r+ j$ ]8 V- K: c# \* }4 C3 @3 J
把字符串str由位置pos起len个字符长的子串替换为字符串8 T! Q6 q: A0 M3 l' n2 W4 G
newstr并返回  # }! {/ t4 K+ u
mysql> select insert('quadratic', 3, 4, 'what');  
# e/ R! B1 h6 M/ j& K* Y  -> 'quwhattic' ; j; I5 Y8 I  g. z5 \8 I. ^

' p4 D  u! f. s: X$ v) n9 e# G* D6 Telt(n,str1,str2,str3,...)   
+ J+ ~8 \" ]5 F0 X: @返回第n个字符串(n小于1或大于参数个数返回null)  
/ @! O+ T. k+ U. U2 smysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  
8 S2 D3 Z+ C0 i  -> 'ej'
. D/ t4 x' v  \1 ?# smysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  3 g* J9 X+ J5 u3 C, `, K9 b0 w
  -> 'foo'
( `2 D5 B( s. T
/ K- `0 ?3 @* n6 F3 yfield(str,str1,str2,str3,...)  
, H2 ^" C8 g, Q返回str等于其后的第n个字符串的序号(如果str没找到返回0)  2 A& k$ @; `# c3 s8 p
mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
5 A8 s4 W, B& ^4 s'foo');  
0 C8 r+ p3 x& n* V1 w  -> 2  % E8 h6 ]' Q& y1 e& S
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',2 y( x0 {9 z; T; S: l, v3 I
'foo');  ) w& c5 ~0 \3 b7 _  P4 r; o
  -> 0  " v" m& Z* S. q3 r* A* K
4 h- u: W; D+ L( v' z( r
find_in_set(str,strlist)   
3 L# b' x' G& a. x. a返回str在字符串集strlist中的序号(任何参数是null则返回+ c$ O% W3 n' l
null,如果str没找到返回0,参数1包含","时工作异常)  
. c. P: Y% }) qmysql> select find_in_set('b','a,b,c,d');  ! a" O2 |  a4 r* e
  -> 2  / Q, r" {* {6 ?0 r8 R
   ; l9 @' ]: [) y5 x3 f4 s
make_set(bits,str1,str2,...)  
5 U& G" Q+ }7 f6 X: b把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应- X: j7 E5 ?. N% ^: E- F
位置的字串选入字串集并返回(null串不添加到结果中)  7 K( ^6 y7 J$ Q: P  v( @- N6 f8 B
mysql> select make_set(1,'a','b','c');  8 m; J4 x/ t& h/ r3 a% b0 G& k
  -> 'a'   V; |; _: y0 \0 Q0 v
mysql> select make_set(1 | 4,'hello','nice','world');  # T" {3 m5 o4 b3 H( f3 h
  -> 'hello,world' 4 t+ h# L& d! L( j* J- {' ], t& R
mysql> select make_set(0,'a','b','c');  9 e: D! ]  }$ }
  -> '' + R# e# O+ H" H0 P! ]5 w9 c7 h- {1 a
7 }; T3 {2 o- J6 r
export_set(bits,on,off,[separator,[number_of_bits]])   
9 e, M, b* h% X6 ]' Y) O1 ]按bits排列字符串集,只有当位等于1时插入字串on,否则插入$ q( M' E+ ^9 o6 W. @
off(separator默认值",",number_of_bits参数使用时长度不足补0
6 N9 E- x3 j7 U2 K: j' Z! _而过长截断)   ) w. n2 r& ^, w- {8 F+ d
mysql> select export_set(5,'y','n',',',4)    D+ C" `5 O% c" [
  -> y,n,y,n   
7 w0 S# C: g3 I5 q3 s
, v% {! A4 `) B* B# v/ ?lcase(str)  
9 k" ]- j1 ^" a7 ?- elower(str)   
/ Y( L4 |( I5 L* Q& i$ x5 l返回小写的字符串str  ' f7 ?& }: w4 x& M, h9 K
mysql> select lcase('quadratically');  $ K9 N% K! X8 U; d2 Q
  -> 'quadratically'
, V: E! f* e6 f' i; q( v   ! D6 c! B- c; ?1 V* X- t
ucase(str)   5 d4 m" A- Z. Q6 ^
upper(str)   * U0 w0 j# Y( P" X2 s
返回大写的字符串str  / W1 m) j/ D9 Q; n1 `
mysql> select ucase('quadratically');  
9 @; W; }, k6 |" s2 I' j* z  -> 'quadratically' ' [& [) v( U% `* ~, }/ e
0 S$ `9 a. C/ x# G7 d
load_file(file_name)   : p; A# m* R7 k% M( a
读入文件并且作为一个字符串返回文件内容(文件无法找到,路径" `8 ?$ w* E% I/ k& P" d1 d5 d; V5 d
不完整,没有权限,长度大于max_allowed_packet会返回null)  0 V% U* N* H+ o' P1 p
mysql> update table_name set blob_column=load_file
& O0 }( R  M  K% j3 C& Y("/tmp/picture") where id=1;  
1 h: U& N9 r  M" C8 m% } % Z: Q% N% a- v1 G6 O1 }! ^
2、数学函数
4 h/ U0 ]9 K4 ]& m# x; g+ x* mabs(n) / z+ w! |! p3 n4 K- k2 n# Y
返回n的绝对值  4 Q7 O* l0 T+ v# r, F
mysql> select abs(2);   
( i+ V0 L. a0 [2 r! b  -> 2    ' E& w. @% F+ D, U) l) i% o
mysql> select abs(-32);    0 u$ j* l1 W8 h
  -> 32   
8 A! |0 [  m1 n. G: L5 l! n   7 Q( z! @. F3 C2 U
sign(n)  : n: v2 [$ L9 a
返回参数的符号(为-1、0或1)  % u5 q/ _4 Y0 P! o! Y5 X2 K2 k
mysql> select sign(-32);    , ~7 y) r6 ?8 k
  -> -1    # \% N, C5 t+ K
mysql> select sign(0);   
) e4 }' ?+ ^7 t% q7 j* n9 D  -> 0   
: s. s% _8 |8 V* }/ c  i& umysql> select sign(234);    ) `+ p- S  ?7 |2 I7 L( E, A$ i
  -> 1    + C  `2 h. p% z1 J1 k
, [. l) \% q* @
mod(n,m)    1 |4 V5 S' H4 X" Z
取模运算,返回n被m除的余数(同%操作符)    / D+ p, l, P7 d$ I2 l1 A! ^! D
mysql> select mod(234, 10);    , k! Z! D* \) h
  -> 4   
1 x! Z, w! ?# l6 l& m8 tmysql> select 234 % 10;    ' V  E, @9 G4 f. Y8 \, J; y
  -> 4   
5 K6 t5 m6 I- c/ u8 T1 Tmysql> select mod(29,9);    " T8 v; F3 P! Z7 N! Q
  -> 2   
1 H5 F4 D2 M/ j1 r
# ~9 G. ]4 y0 i/ n* }floor(n)  
  S7 w  O0 F% I8 a1 _' }! @返回不大于n的最大整数值  
1 q  N4 a* H8 ]mysql> select floor(1.23);   
9 [' F" K, `: h( S, U" b' e  -> 1    0 w  Y- T9 T  Q' X/ k
mysql> select floor(-1.23);   
+ \  m: b* B1 V# G  -> -2   
' N9 Z) D& z. a2 ?9 B 6 R. h7 i! w! o$ y, T2 I1 q
ceiling(n)  
8 n2 y: i" p5 @3 x1 ~/ a返回不小于n的最小整数值  
  ?) W1 @" \3 v) K; ~, Smysql> select ceiling(1.23);   
$ p& N7 l7 k+ q  -> 2    6 T9 I  q& v: c% ?: D$ V
mysql> select ceiling(-1.23);   
  S0 G' ^7 H, E- l8 d2 I! r  -> -1   
+ Q" I) u2 x2 \5 d& p 9 V1 e$ j+ o# d7 Z8 ^1 t
round(n,d)  
& W( G$ R2 `% N7 R6 q返回n的四舍五入值,保留d位小数(d的默认值为0)  " t. a" A# @6 @2 C4 p
mysql> select round(-1.23);    $ f9 G  z* p" E! J* }! t. P  W* H$ a
  -> -1    6 c  N3 |0 m9 o/ G  p+ u+ U. K
mysql> select round(-1.58);    : j, `% e, b; o9 U: z. k
  -> -2   
1 x1 \6 Y$ Y% @0 D: L, tmysql> select round(1.58);   
5 Z& u0 _9 a" F- ~4 E  z- m  -> 2   
4 l& _" q/ @3 }3 p( [mysql> select round(1.298, 1);    + i& Z' N' T9 T) n6 {
  -> 1.3   
! A  U" R" Z2 M6 emysql> select round(1.298, 0);   
: ]. W0 X. ]6 b6 V  -> 1    5 ^0 Z+ P- \0 C( X
  {9 B( C3 m/ _7 W! F: L" v. O
exp(n)  
& b2 n. Y4 a% |5 e* X返回值e的n次方(自然对数的底)  
" Q) w( p3 }6 H- [mysql> select exp(2);   
; J/ B$ `/ `1 [2 o7 O  -> 7.389056   
# @. K6 ~7 X6 O( g7 O. F5 ?' ?mysql> select exp(-2);    7 C' g2 F5 j. b1 o3 ~4 O/ R& z
  -> 0.135335   
2 n7 R* s/ T$ b7 G+ O
# ]: U6 q% W5 R1 N% n& dlog(n)  
& {5 {* J+ N1 ^6 t  c* Y返回n的自然对数  ; o. A6 @; F) U- J# _
mysql> select log(2);   
+ [. W; I. k: _  -> 0.693147    1 F$ z( J/ b: L# w# l+ }
mysql> select log(-2);    5 A' y6 z1 F' M$ t: E
  -> null    $ q9 b  i$ I3 Y$ b% s; Y
) ]2 Z9 D# ^) s) I
log10(n)  
- r+ Q4 B7 B2 S3 X7 {9 ~返回n以10为底的对数  1 V, f6 @5 @( r3 S4 h5 F
mysql> select log10(2);   
/ R+ _' f8 g, @9 Q4 d1 c  -> 0.301030    9 [- }$ z$ L: y0 t: E+ u' E
mysql> select log10(100);    1 J, `+ ]# o5 r; a
  -> 2.000000    ; _1 p: _! k5 I
mysql> select log10(-100);    7 ^1 H) D. p) [3 H
  -> null    & b3 }6 _# Z2 L, a6 p

; ?3 K6 C* p- r: M5 rpow(x,y)    0 h( p# T0 \( P) W2 z  I
power(x,y)    + i  q) {! e. I/ b& g
 返回值x的y次幂  - l) W2 v0 D3 }: {+ H1 S$ g, H
mysql> select pow(2,2);   
! K# y7 a- h( z$ ?2 A" H  -> 4.000000    : X1 d' {1 F( b  p7 [' P5 x
mysql> select pow(2,-2);    " ]' j1 l. r/ l3 P: H* M- h# X
  -> 0.250000  - ]/ s6 B" K+ Z
5 _$ O& {! A: P9 N
sqrt(n)  
3 H4 }8 ^( i# K- |9 P% Y 返回非负数n的平方根  
. M; e. k% K- smysql> select sqrt(4);   
2 \" y! @. U& d, @  -> 2.000000   
4 _# _0 L& w0 t( f# a8 |. }; Gmysql> select sqrt(20);    6 Y. o3 w' V3 }4 Z, o4 w$ C6 {7 P
  -> 4.472136    8 T" A* u* v6 r/ ]9 t

. h0 z7 t# V' d2 \. |/ `) J2 |# y7 gpi()   
: d$ b$ d6 g7 J- F* o) r 返回圆周率   
; h' W- F/ l$ `0 Gmysql> select pi();    2 }* x3 B6 i" q
  -> 3.141593    7 J4 Q  l0 H7 K
8 c# o. I5 V6 P% r6 \# ]
cos(n)  1 ?' F) L1 }2 f$ A& L
 返回n的余弦值  
1 ?6 }* V- L0 s* u( n$ |% s$ U8 Gmysql> select cos(pi());  
+ S1 {6 f. b+ Q# F% h  -> -1.000000   
& T. W% T+ `$ U% m/ |0 w/ G
# G' j$ v9 e7 Qsin(n)  7 U, H- N% v% a7 J9 l
 返回n的正弦值   
. I7 [: w( \  e- p( Smysql> select sin(pi());   
8 L8 S/ C; d# w9 ~! k  -> 0.000000    ; R2 d/ x) e2 z' |2 t7 C1 {

, K. m0 ~4 j1 K$ B% Q: j4 Mtan(n)  6 d$ \& q& a# o+ J7 n
返回n的正切值  ) }4 C- V& X3 G" \. w
mysql> select tan(pi()+1);    : u0 S" U- I. `% n) U6 @
  -> 1.557408    % k7 R; V2 {3 ?8 x6 O
8 H+ o& n* g; Q0 _0 R
acos(n)  3 d  K6 H! A9 X& \6 B( M
 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  
+ G5 }6 t# j' }3 z! X  rmysql> select acos(1);   
! @6 [9 @3 T. o& V+ T  G1 T" m  -> 0.000000   
/ y8 w% _6 {6 f4 y4 Umysql> select acos(1.0001);    / Q! s9 M# x8 Y! c- x9 H
  -> null   
. W# y0 S, i6 |* a" vmysql> select acos(0);   
/ @- v  {' D1 a3 R# O5 e; |. B; J  -> 1.570796      {  {. ?. [2 L. G3 s2 Z

$ G/ q0 T. V. K" t: ]/ z: E' Gasin(n)  
; a" T1 N3 Q* Y9 \返回n反正弦值  
, M& c2 c" ?2 k, V9 rmysql> select asin(0.2);    % u& F6 W7 z+ D, I& B' ~: V9 T" A! x
  -> 0.201358   
) c% i  c: S# zmysql> select asin('foo');    ) ?, P2 a) q& ^( V9 i, L
  -> 0.000000   
& G! f% u. o4 c; A) I( E
6 K; |" P# S3 n! h7 v3 |# o; _atan(n)  8 ~: D" P* s* V8 r" R! |
返回n的反正切值  " c5 B& l! ]9 d* V) _( R
mysql> select atan(2);    $ ^: t' Y% {- n# M1 e' _1 \" u5 E
  -> 1.107149   
8 N" U5 }) n% x( w7 s6 a! gmysql> select atan(-2);    0 K  [- b" b6 F
  -> -1.107149   
" S5 j' ]; h, Y* G! Y3 P) u* Katan2(x,y)   
2 I  p! X( o! s: V* `4 O1 |# |/ P- J! s0 b 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  5 }$ h1 ~5 w. o( @1 z
mysql> select atan(-2,2);   
) Z9 K- l4 u' x( a/ k6 k  -> -0.785398    - H' n7 g. E: a# t& \! L) \
mysql> select atan(pi(),0);    . r+ S5 ]2 u4 w4 o6 ?1 x
  -> 1.570796    6 }) `& E5 Z7 h% L
/ P) n+ P+ c- @9 b( N  N2 D
cot(n)  ( n& b5 V. ^0 t5 {9 a5 w% o
返回x的余切  
) P7 w- L! y$ X/ j3 hmysql> select cot(12);   
- N5 I* H& O) R& Z  -> -1.57267341   
0 g8 J& K2 U9 N3 }  x& u, r$ v; |mysql> select cot(0);    & C& v  H7 X' _5 r* q
  -> null   
) B/ b* h$ R3 D, R/ Y* q
# r) K, R9 a  A+ jrand()  
& H7 j4 Q9 A; C. z& X3 L  d5 {' frand(n)    
9 u% E& ?: Y2 r" E2 {& i9 b5 ^返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值) 1 F3 c! s! Y1 c+ L

$ ~! K9 g; h9 ymysql> select rand();   
) c4 a/ f; N; ?7 P7 ?9 ~: g  -> 0.5925   
% \% }) A9 _: ]+ g* \mysql> select rand(20);    ) Y4 q1 [: c. ~, d& _. b( J
  -> 0.1811    ( m& w7 v" o1 j# c3 \3 Q
mysql> select rand(20);   
7 X. P/ [! g2 u  -> 0.1811    . h: M5 x$ W9 K1 F6 o5 a+ u
mysql> select rand();   
6 t8 W7 Y- N& F0 _9 W4 X; \7 H  -> 0.2079    , z: U, t2 P8 W1 r7 k# Y
mysql> select rand();   
2 W$ i# A- J, m$ Y1 B  -> 0.7888   
$ ~7 `" t. y) ?+ _! { 9 F! ]& s7 [9 _$ [* Y( b+ E
degrees(n)  
' }4 M: J, Y6 S5 ^6 j' c把n从弧度变换为角度并返回  : {0 W: h+ a. R7 o
mysql> select degrees(pi());   
# G# |/ d5 u4 o5 m  -> 180.000000   
% _2 x' n' ]& x- U7 }3 M8 l
4 R+ p- _0 r+ P6 F: _: p% qradians(n)
3 ~$ F5 y4 x9 g% Z, p- `, a$ k( L把n从角度变换为弧度并返回   2 A/ a9 W8 L; \/ G3 P. A# M
mysql> select radians(90);    & W/ \5 X& v1 S; o) G
  -> 1.570796   
5 R% b* q: }8 ^/ \/ ]! }8 _8 z8 \6 U9 X/ m
truncate(n,d)    6 _& D+ ]6 m* Y1 E
保留数字n的d位小数并返回  
; v& H9 G$ B! B* @- Omysql> select truncate(1.223,1);   
% Z$ E/ W& X  q+ k) o( y  -> 1.2    6 m, A* J( F2 t! m! T/ h% G
mysql> select truncate(1.999,1);    . \. k2 f" V' B& H
  -> 1.9    . i3 |- K5 R3 a* U
mysql> select truncate(1.999,0);    1 B' ^0 u0 y! a
  -> 1      f' r, X  |1 B/ y9 T2 i7 j
5 ?  e9 c5 a- ^
least(x,y,...)    5 {4 K8 _' z3 q# _6 O: W# |
返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  # d9 W9 t0 m. l* \- f* w
mysql> select least(2,0);    0 h, F* G7 P' V3 c& j, L  c* v
  -> 0    ( M/ D  m: S9 T' f
mysql> select least(34.0,3.0,5.0,767.0);    1 j3 a9 V( Y- H# p" ^" ]% T+ z
  -> 3.0    % U& w- e9 i3 e! {
mysql> select least("b","a","c");   
) ?2 o# |' M7 W% |  -> "a"    2 z% e3 L' b# c: o  m. ~7 h7 J

( F% [: v+ G* W5 agreatest(x,y,...)    ' _% Q5 ?3 t: [. s
返回最大值(其余同least())  
' k- c: g2 e/ k2 Q! [! zmysql> select greatest(2,0);   
; [  [. J5 Z) ?# h2 O/ s  -> 2    6 s( F* j  I% x# b8 k
mysql> select greatest(34.0,3.0,5.0,767.0);    5 K/ Y. N3 p, o+ B
  -> 767.0   
( j" C$ c. E" a  jmysql> select greatest("b","a","c");    ) b5 k6 N+ ~1 l$ M# J, E6 h
  -> "c"     6 n$ H& ^& p$ @) d; i% H9 c; d
. g5 w- @' f: R& g9 S& O* e2 l
3、时期时间函数 / ?; M* b2 s3 s
dayofweek(date)   
( a9 }* l) ~, K* y! E3 y返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
; ^* r) L. e( omysql> select dayofweek('1998-02-03');   
4 r$ B8 d/ F2 V  -> 3    : q" G" r1 A- `! R! x' Q
% g1 T7 G% U5 R3 D
weekday(date)   
$ B3 P! }; a9 c返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 " J. e7 j, j7 ~5 x7 r) W
  , \5 q; a& [/ l
mysql> select weekday('1997-10-04 22:23:00');    , b5 y8 w9 M) [% Z  E/ T
  -> 5    / |8 H4 a9 u* E( s' {8 I! q* j
mysql> select weekday('1997-11-05');   
5 S7 U2 Z- g( ~/ L1 F! U, W  -> 2   
9 @5 `" K! v! z, f' G1 x
( {" C1 X" l# Qdayofmonth(date)    
' K1 F2 V7 H! n: k/ _$ \9 N返回date是一月中的第几日(在1到31范围内)    0 ^$ W' m. V, X% c7 T
mysql> select dayofmonth('1998-02-03');   
, B9 y" @* T0 \5 e  -> 3   
7 x, K- a0 |/ ] $ {* c/ ~- @3 i  b5 ]
dayofyear(date)    : N; m6 I7 [. ?& m: n+ ]
返回date是一年中的第几日(在1到366范围内)    ; h4 e3 _; g$ u+ [* i: Z
mysql> select dayofyear('1998-02-03');    : B6 o/ ?. L3 ~9 j7 _1 [' Y3 K
  -> 34   
+ K: m( |$ @* w& a $ C9 F5 V* ]+ P1 i3 g+ @( K* d
month(date)   
6 Q! E9 W+ g( E/ O$ ]: k! d返回date中的月份数值    1 z* m. N9 C& ~
mysql> select month('1998-02-03');    2 F' k8 }2 Q$ O$ f
  -> 2   
7 M" S# G# K7 k( b' c
. J" T- G/ l8 L6 |7 [/ Bdayname(date)   
2 r% N0 Q" ^7 u: V: N- L9 L返回date是星期几(按英文名返回)  / ]" D/ h" f8 M6 [! t1 z1 }; T
mysql> select dayname("1998-02-05");    / t0 m; M. l. R% h) u2 ^* h
  -> 'thursday'   
3 C3 ?  f& M% Q3 I8 f
4 {8 I9 M9 B( Amonthname(date)    2 p$ F( V5 E2 _! J
返回date是几月(按英文名返回)  ) z: O8 I+ K2 i5 x. U
mysql> select monthname("1998-02-05");    ' n# `7 }$ {2 \' c+ x8 e7 W
  -> 'february'   
' p# B1 l% g6 S6 ~ 9 }8 I7 r" o) ^
quarter(date)   
5 b2 R" a, Q1 `+ L返回date是一年的第几个季度    " r$ q! g" @8 n* ?* T
mysql> select quarter('98-04-01');   
7 e: }: w4 }/ `! i+ r. f  -> 2   
# W+ f/ Z' F2 ]
# e2 n; A2 ]- ^7 l/ N' g4 `/ rweek(date,first)   
2 E& z: B1 y# o3 x& \/ t返回date是一年的第几周(first默认值0,first取值1表示周一是% ^# B+ J! Z6 X4 r5 b2 d, g
周的开始,0从周日开始)  
1 Z' k. k* ]: e8 k3 w5 s* P; Omysql> select week('1998-02-20');   
4 M! w& o: T* W3 q* Z  -> 7    2 A7 u8 A! \6 y! B; ]9 S! e
mysql> select week('1998-02-20',0);   
$ `* l4 ~# [4 G+ ~" k4 g  -> 7   
; Y/ `# X9 I6 bmysql> select week('1998-02-20',1);    3 j1 r8 g+ G7 E$ e$ F0 |
  -> 8   
4 \& b/ q! z6 }' n
! D7 L+ u7 m. j6 x* n& j+ c) i. _year(date)   
- o) k9 R' U6 p8 b7 ^) f7 _$ c返回date的年份(范围在1000到9999)    2 p; N; A4 i+ N
mysql> select year('98-02-03');    ) Z5 f, }. d5 Q. `
  -> 1998   
/ d2 |. C+ R1 @# R4 L / M* }- O( A' H5 V* x+ A( ]
hour(time)    2 x" ?. _5 ~/ M: c! d4 J
返回time的小时数(范围是0到23)   : U* g% V% O" ?  Y+ K
mysql> select hour('10:05:03');   
9 ?% R, u+ g" S* x; @8 x( l  -> 10   
% W6 `# u0 N. o8 [- b: a. O
9 \, p- s8 G# Eminute(time)   
$ f' N; Z8 I+ ]  ]' W返回time的分钟数(范围是0到59)   
$ u- [1 K- }  ~7 L% {" Fmysql> select minute('98-02-03 10:05:03');    + P' u/ |/ a' i1 c
  -> 5   
6 |% e6 r( z- e! H+ \- ]
, w% i. h  n1 K6 psecond(time)    
6 k& \4 E, s4 G# K3 ^5 X7 }返回time的秒数(范围是0到59)   
  D' g; S& X. l& c: w0 \( Q2 Wmysql> select second('10:05:03');    & |, F9 M$ F1 X: c# e0 Y) Z6 w
  -> 3   
) C9 v" Z: d  Z/ ]3 x% E8 g- l
' r. z: e+ }; |+ w& _0 @period_add(p,n)   
, ^/ Z3 }1 N- D- G0 O6 a8 g2 e增加n个月到时期p并返回(p的格式yymm或yyyymm)    7 x- I$ `6 `( i2 ]
mysql> select period_add(9801,2);   
- |7 w  s' O2 F6 T# C; }1 q) N  -> 199803   
- b9 i; f1 b  }0 v; `
; D- d! K2 A3 L. Z; ~period_diff(p1,p2)   
7 ~! o4 x8 l4 P- J+ Q返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  ( P) J* z5 f- u
mysql> select period_diff(9802,199703);   
# R; n: J& D! i9 W, u* f/ I6 _  -> 11    1 r* J3 w. `  V% g% T4 ]& w

0 z2 ~4 @/ Y5 y5 u& ~# Rdate_add(date,interval expr type)  
" ?' u6 R* S+ ]7 N  ydate_sub(date,interval expr type)    0 B( v/ g  O4 j6 B6 z! ?
adddate(date,interval expr type)    - x1 j6 B8 d$ x
subdate(date,interval expr type)  
4 e  r8 V! `% u7 D% x对日期时间进行加减法运算  " \7 o0 ~/ d6 Q. D4 S
(adddate()和subdate()是date_add()和date_sub()的同义词,也1 s$ f& D4 {( {/ t/ q- C
可以用运算符+和-而不是函数  
% w; F7 G* L! A- I! V) Udate是一个datetime或date值,expr对date进行加减法的一个表
  V& q, A$ b/ j$ q- N达式字符串type指明表达式expr应该如何被解释  
# H4 r& m3 S9 x [type值 含义 期望的expr格式]:  * Z4 E! u( t) Q1 D0 E: E
 second 秒 seconds      a, p+ n8 W$ ]0 o# Q
 minute 分钟 minutes    8 h1 R9 D# C& Q! y0 h0 N3 X
 hour 时间 hours    # S" p! D, J) b/ S6 D
 day 天 days    8 d5 i# @: e! r- s- s; j
 month 月 months    / J' ]5 F/ G# q: Z
 year 年 years      i, m; J6 z# I" m8 m4 k
 minute_second 分钟和秒 "minutes:seconds"    $ A4 z) T/ Q% x! ~, ~! z
 hour_minute 小时和分钟 "hours:minutes"   
$ y1 m+ {4 W% H, _( e* O; g$ I day_hour 天和小时 "days hours"   
; O/ h! [" C1 r year_month 年和月 "years-months"    7 O5 S$ h4 A+ C7 c3 R. a
 hour_second 小时, 分钟, "hours:minutes:seconds"   
9 M. V* i5 c# t: o2 ]& | day_minute 天, 小时, 分钟 "days hours:minutes"    ' ?4 ^( J) s1 [
 day_second 天, 小时, 分钟, 秒 "days$ Z2 T0 [6 u0 H2 b* n* d1 _) r( F
hours:minutes:seconds"
" o9 q+ D5 P! C% t) G5 [ expr中允许任何标点做分隔符,如果所有是date值时结果是一个
+ t* E8 \' t; adate值,否则结果是一个datetime值)  ) F/ B! x: F% A: b* u
 如果type关键词不完整,则mysql从右端取值,day_second因为缺  T7 x! D0 q+ y9 Y' v
少小时分钟等于minute_second)  
, \/ |( i! h8 U5 N1 u) x- W 如果增加month、year_month或year,天数大于结果月份的最大天
" V3 R3 w# o# _! o4 r9 j数则使用最大天数)   
" e: M8 M/ v# C1 T1 o2 M/ |; |mysql> select "1997-12-31 23:59:59" + interval 1 second;  
  o: R. t  }! T/ ? # o% \7 f# O) h8 A+ z
  -> 1998-01-01 00:00:00    5 |4 O' h+ D+ B+ L5 O3 b' S
mysql> select interval 1 day + "1997-12-31";    $ T( s, i4 ^9 y1 l" U& Y6 g: n
  -> 1998-01-01    , w7 B% [0 S# [
mysql> select "1998-01-01" - interval 1 second;   
+ w. G; K) _5 G; t. X% K  -> 1997-12-31 23:59:59    ; ^+ k: u' J( H0 ^# j0 d/ d
mysql> select date_add("1997-12-31 23:59:59",interval 1
& v6 K" w1 y% B* tsecond);   
, W) q) M8 T2 @8 L  -> 1998-01-01 00:00:00   
0 w" B3 D8 j* C* ~( Ymysql> select date_add("1997-12-31 23:59:59",interval 1
4 y; Q" J; t; n& uday);    4 c( Y! @# A* g$ J
  -> 1998-01-01 23:59:59   
! m) m) j$ v- K7 d. U+ O: S: e" zmysql> select date_add("1997-12-31 23:59:59",interval
6 D- p5 [7 I/ Z"1:1" minute_second);   
2 |* @5 a- D9 @% l  @% z1 x/ ]: n  -> 1998-01-01 00:01:00      {7 y5 E0 ?  j  g
mysql> select date_sub("1998-01-01 00:00:00",interval "1+ i- \0 D, W5 ?2 g7 ?, [9 _
1:1:1" day_second);    / a% i5 a. A/ ^3 q  u
  -> 1997-12-30 22:58:59   
- V8 {# c' N2 B1 B6 Z# `* t0 A$ Bmysql> select date_add("1998-01-01 00:00:00", interval "-1$ v3 t, {$ C6 a2 ]! j
10" day_hour);  
2 F! O3 \! \& n" _+ H  -> 1997-12-30 14:00:00   
+ g" l4 u7 h9 M& }) O4 X8 Dmysql> select date_sub("1998-01-02", interval 31 day);   
: ]+ Y; K. e7 ~! k6 c  -> 1997-12-02    / L( L2 E, I$ m% n, D& B( n& q! ]  W
mysql> select extract(year from "1999-07-02");    : ^3 y1 H- ~, h/ m  T5 @$ s
  -> 1999    1 G" o4 R0 A/ r1 o! C
mysql> select extract(year_month from "1999-07-021 w$ ~. v: [; t
01:02:03");    6 |9 \, n( k3 `7 n1 Y+ b: [
  -> 199907    - H; a( \2 Q, T* o3 W
mysql> select extract(day_minute from "1999-07-02
, \3 m) f  ^9 b/ W01:02:03");    / }0 i2 {( e& n1 C, U
  -> 20102   
$ @7 Z6 X: P+ [5 U) a * Z' ?) j3 z0 p2 X. N
to_days(date)    # {) Y  D( c  f, F! }: s- J
返回日期date是西元0年至今多少天(不计算1582年以前)  9 n& K! f' J6 m9 D
mysql> select to_days(950501);   
, {2 k: z) m& ]  d  -> 728779   
: S7 w* O- n: s6 _8 }# y! I6 Tmysql> select to_days('1997-10-07');   
) O# a+ r. K0 s/ L4 f  -> 729669   
+ ?* r4 h" m  \: a' `' d
& _  z1 a5 `6 q; o0 ^from_days(n)   
; ]% A( {6 q, {2 T% Q& e# Z 给出西元0年至今多少天返回date值(不计算1582年以前)   9 M* g0 ?) e( P7 B$ O/ ?
mysql> select from_days(729669);   
2 V( y. x* M# l2 [  O2 h  -> '1997-10-07'   
1 y4 b0 d' _0 _6 m) N 6 W( v% e% z9 o# u! s7 Z2 C
date_format(date,format)   
( [' x( E3 y( [4 W/ ?! d' b 根据format字符串格式化date值  
1 E, r1 @" z3 I3 [+ ?$ i" b (在format字符串中可用标志符:  1 k/ h9 j* J1 \5 I, P6 ]+ l
 %m 月名字(january……december)   
0 @9 |5 R1 g  q %w 星期名字(sunday……saturday)   
7 w$ z# |! Z" c0 b/ y %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    & J% p0 i/ M4 [+ x, ^1 z
 %y 年, 数字, 4 位   
* T& o& P# O( `  p9 P$ y# ? %y 年, 数字, 2 位    * P& A" k  o4 Y- F8 j
 %a 缩写的星期名字(sun……sat)    3 w" J6 O: [9 u/ R+ _* b
 %d 月份中的天数, 数字(00……31)    ' C% T  f9 h/ M3 M# Z
 %e 月份中的天数, 数字(0……31)    9 p2 U  _4 F: a6 Y
 %m 月, 数字(01……12)    : ~3 u9 Y5 w0 i' _! X# y; Y
 %c 月, 数字(1……12)    & B1 ?8 m  e: B. c
 %b 缩写的月份名字(jan……dec)    + l' J! P# J2 W0 X
 %j 一年中的天数(001……366)   
) A( t% I; H6 d- o3 D4 z8 \ %h 小时(00……23)    : P& T. g6 ]8 g2 O4 O
 %k 小时(0……23)   
) N9 U9 Y& N/ E" P  j' T %h 小时(01……12)      b1 M- q" ~2 X  g
 %i 小时(01……12)   
" t" q$ v$ F( ~) g %l 小时(1……12)   
2 q, T+ u* ?: R- u3 h  S0 J9 F %i 分钟, 数字(00……59)   
9 V: P6 e3 ~' S: d3 P %r 时间,12 小时(hh:mm:ss [ap]m)    7 U8 C, r% A% @# E0 N8 h9 R
 %t 时间,24 小时(hh:mm:ss)   
* S( `& a4 }, s/ w+ A %s 秒(00……59)   
6 m& f' |7 `2 T %s 秒(00……59)   
; a; f: N  h( h6 Y6 e: Y! L %p am或pm   
; a9 o- }) A. i! M# R0 r  l  R: y %w 一个星期中的天数(0=sunday ……6=saturday )   
8 r* s* A' J6 Q %u 星期(0……52), 这里星期天是星期的第一天   
* [$ i5 M* o$ |; } %u 星期(0……52), 这里星期一是星期的第一天    : B- m& m9 O$ v
 %% 字符% )  7 b' ?& g5 s, B- V! a
mysql> select date_format('1997-10-04 22:23:00','%w %m %
' g# o/ p* I0 Ky');    ! ^4 q% S2 I, I
  -> 'saturday october 1997'   
$ {8 F( V, x/ Q. i" B% ^mysql> select date_format('1997-10-04 22:23:00','%h:%i:%
+ A( A9 m$ r' M3 Gs');   
9 i% A& P* w; Q  -> '22:23:00'   
9 u' z7 C3 ?3 o) @mysql> select date_format('1997-10-04 22:23:00','%d %y %a2 u# W( }5 U  D. [* W& {
%d %m %b %j');   
) N1 n, Y8 w5 C0 {( s' ~8 [; d  -> '4th 97 sat 04 10 oct 277'      O" Q  E& Z* Y+ A
mysql> select date_format('1997-10-04 22:23:00','%h %k %i
9 |4 n( w8 I5 n%r %t %s %w');    : J7 _& z0 H7 H* Z( B. g  M& Q3 B) [
  -> '22 22 10 10:23:00 pm 22:23:00 00 6'    3 ~( q" g) d4 }! M8 R

  [$ H9 n1 I. Q( f% {5 n  x9 ptime_format(time,format)  
* q, m5 O) a, L0 T 和date_format()类似,但time_format只处理小时、分钟和秒(其
: ^  E8 O4 R4 X余符号产生一个null值或0)  
& x7 I: \4 `4 Z) V5 s 8 V' I) G2 R, Y9 y3 G
curdate()     + m0 F+ D; T; U- Y% O# J) }
current_date()  
6 o' N# }6 r9 z* P 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
5 c, c/ Z0 B# T$ J* i. n3 m处上下文是字符串或数字)    6 A* ]3 f3 Z* x4 \) C, K
mysql> select curdate();   
$ r2 I% X4 H- u) I! d  -> '1997-12-15'   
$ G8 q1 u1 Y3 P; O+ E! t3 Tmysql> select curdate() + 0;   
. x9 J2 v; N2 F& H7 O2 n  -> 19971215    8 r# o, d/ ]1 Y6 @
! W  C+ W5 S+ N2 k, t$ w
curtime()    4 T2 [  p+ Z0 z3 @3 ^& y. }
current_time()  ( t' e+ _" D" z0 l
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
) T0 E) k8 Y. X  @' A# i  S! ]下文是字符串或数字)      
* U/ \; ^% J6 b& P: e3 fmysql> select curtime();    / H5 D9 l6 b& |  Q& U
  -> '23:50:26'    + t+ i! x  T/ }1 y5 x& E
mysql> select curtime() + 0;   
: x$ }' b8 o, H  -> 235026    6 f9 b3 \" h* h- Y3 j, r

9 w0 O+ [. a5 B7 v# R+ O9 rnow()    
& w6 u# @5 d( _9 K* |. vsysdate()    : O2 n7 I7 B! v2 d6 l/ {) p6 \
current_timestamp()  9 n1 F% w$ u8 b: q" g' T+ x' Q
 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期5 W- M$ n# V5 z7 g) B# x! g& L7 S
时间(根据返回值所处上下文是字符串或数字)     . X' l1 \2 r' _& F' N
mysql> select now();   
, l) ~* U; Y. }+ G/ m. R  -> '1997-12-15 23:50:26'   
( k# k2 h. a3 N* W1 v& h% ^6 F6 {mysql> select now() + 0;    ! y2 t0 r. S- l+ F. ~8 d
  -> 19971215235026   
1 `* Z& E- m0 ^% P+ v' v
/ d+ t$ u# }; }" N2 p5 vunix_timestamp()   
+ J7 v# `) d# z9 _unix_timestamp(date)   
/ O1 i7 \  f) Z返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
! O8 K* E2 N8 U7 K' v数,date默认值为当前时间)  % y- K" f3 B7 }6 S* |; s
mysql> select unix_timestamp();    + P. G8 n1 \0 J" y8 q
  -> 882226357   
. \" m8 i* }  _4 {mysql> select unix_timestamp('1997-10-04 22:23:00');   
4 l1 _, e* ^( }  -> 875996580    8 }- G- X- b  C3 N& y

8 }2 f6 Q6 K( l% Pfrom_unixtime(unix_timestamp)   
$ w# u8 C* R; d0 Q以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的1 h) O% k& i2 v5 u
值(根据返回值所处上下文是字符串或数字)     
! g! j$ @: ^4 \- C. |mysql> select from_unixtime(875996580);    3 z" V( A* x5 e; v
  -> '1997-10-04 22:23:00'   
9 n  y. U# g3 V8 U. ^mysql> select from_unixtime(875996580) + 0;    2 C$ J+ k" S; R; Q3 T- ?
  -> 19971004222300   
0 ^  \- ~7 e, f5 L/ I0 ^, _3 [; d
& o+ ^. A$ T- q% T6 h% ^+ |) zfrom_unixtime(unix_timestamp,format)    , p/ Z  B2 t( N( @" Q
以format字符串格式返回时间戳的值    a' p6 L1 `* I
mysql> select from_unixtime(unix_timestamp(),'%y %d %m %
  l& X/ Q# q* K* [" Ah:%i:%s %x');    3 T# K" L* c' |: G  y$ v
  -> '1997 23rd december 03:43:30 x'   
2 m' X- z" ?+ b& [& `0 `% ^6 C 3 K: F& Z3 s# ?1 e8 q
sec_to_time(seconds)    . D6 x1 e( g1 ?* U7 d
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
, Z  [) F9 @4 Smysql> select sec_to_time(2378);   
: S0 f# w) Y; X) Y  -> '00:39:38'    % E* P' D/ Z; \; Y$ H; G) P% z
mysql> select sec_to_time(2378) + 0;   
. x$ E7 p* j' t  -> 3938   
( b: M. `0 ^6 A$ K
8 s$ f) {6 ]: X3 |/ n! g2 vtime_to_sec(time)    2 h) s+ k5 @7 T' D0 W
返回time值有多少秒   
& g* U6 v1 D+ n6 N* A9 s& vmysql> select time_to_sec('22:23:00');   
7 _4 A( Y' N7 p( G2 d2 v  -> 80580   
& Q1 A3 X8 c' W5 M  }; V; F6 wmysql> select time_to_sec('00:39:38');    # l* ~" m9 g- B4 g" o: @. b
  -> 2378 + b) ]8 `$ g/ l' m  v) H( w1 k  C" G
* p5 n7 z5 d7 T* B3 P7 K" S
转换函数
& W7 g+ T9 R! p) `0 bcast8 ~8 I" `' L( t4 B8 ~5 Z
用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]
5 ~% G  D: [' z! p3 Z实例:select cast(a as unsigned) as b from cardserver where order by b desc;
6 }3 y! i( E$ n8 P$ pconvert:; q% E) m9 Z! [2 c$ P
用法:convert(字段,数据类型); x0 X! }5 G' R
实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

) b% Y  m( _- \6 `4 }5 x! H) z2 x7 G3 c
回复

使用道具 举报

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

本版积分规则

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