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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数, m4 `$ H* P. d1 A/ k
ascii(str)   
8 W7 w  w* C7 M% v; N0 z' N返回字符串str的第一个字符的ascii值(str是空串时返回0)  % N; u; T* h* |" o1 t
mysql> select ascii('2');  
/ V  _( E; e: P( }9 I  -> 50  6 i  E9 q" g6 z0 t
mysql> select ascii(2);  
/ F3 t7 [' J# j, ?! s  -> 50  
4 F& [- k) G( Q- n. o% k5 zmysql> select ascii('dete');  # _2 f+ Y* Q, c2 @( s  y
  -> 100
, I; q, A4 l4 f* y  b6 D: ]
ord(str)   + y: s; u( Z: O
如果字符串str句首是单字节返回与ascii()函数返回的相同值。
) }6 i0 `9 K: v- y% D% T2 q
2 Z1 C2 I( r3 j/ z1 L5 \如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  5 q1 |' ^3 O; O& r- G
mysql> select ord('2');  
$ y8 i3 t  a( i6 w7 v/ W3 V3 h  -> 50  
* w) l. ~  ?4 {$ g   & ~. _6 `* B0 I- o: A7 w+ d& }; J
conv(n,from_base,to_base)   $ s9 h" c# T! x: x0 T# D) T
对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
$ |$ _6 n; A1 x9 e& Gmysql> select conv("a",16,2);  
3 J/ ^0 C4 H* S  -> '1010' 0 V& x( q6 y4 i, t. n
mysql> select conv("6e",18,8);  
! x3 t1 G4 U( _  -> '172' 6 {; L  g$ W6 ]* J
mysql> select conv(-17,10,-18);  
6 S' g5 z4 I$ x) r  -> '-h' + N5 w( ~% }( K0 f
mysql> select conv(10+"10"+'10'+0xa,10,10);  
3 q& b" @9 E7 x. j* u  -> '40' 0 }* s5 z6 V0 y4 G
   
! k6 }' _( C) i, m! }9 Ibin(n)   
3 B; D5 ?8 @6 H2 \5 B1 Y把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  + J8 a) J9 G) `0 @
mysql> select bin(12);  7 Q( ?4 I% @& I& N* r( E
  -> '1100' 7 v5 z1 N$ \  d. ?# {" ~& H4 p2 C$ M
8 V% j1 H! ?1 i. F9 B, X
oct(n)   9 k2 U1 S3 y& A
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
. {4 D  v0 V& S1 ?8 Xmysql> select oct(12);  
" _7 ]5 T% p& ?  -> '14' # x$ T( E! b* a1 ?: \
   4 \1 z: i: J1 @" M. q
hex(n)   % p( o" u' d( p3 Z( n
把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  
( F0 c9 l( Q* j" t, _6 H3 R, Emysql> select hex(255);  
6 K1 F7 p+ I" G8 s+ n  -> 'ff' 9 }- y: y" K7 r: j& c
   ( c5 m, j+ W1 l" J$ ^% R+ R
char(n,...)   
5 u6 D* a6 [' u7 X- t( p/ ]( W返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   
" A8 \' c4 r# R  o& ?) E. ~mysql> select char(77,121,83,81,'76');  
! }, o- y" ?% y5 |% K/ l. L  -> 'mysql' ! ^; D, Y6 u, ?, q" T4 T) b
mysql> select char(77,77.3,'77.3');  
, `# k8 o+ m- h: I1 d  -> 'mmm' 3 c! l  w0 W0 Q/ r5 q
   
5 v; A6 e3 i! O- v8 h  tconcat(str1,str2,...)   ! E3 }" n+ n( B: s0 E4 S. {3 t
把参数连成一个长字符串并返回(任何参数是null时返回null)  
# y, j9 p$ v; e  _mysql> select concat('my', 's', 'ql');  
/ o: X/ X* Y" ^# S4 k2 D  -> 'mysql'
& J4 b1 Q; E- U0 E2 ?mysql> select concat('my', null, 'ql');  
: X+ {7 Y2 U$ V& E" ]& ?% y  -> null
* {( X% P- `/ m- P  ?6 N  dmysql> select concat(14.3);  2 o" E* T. z  {
  -> '14.3'
2 C, s7 [, k1 F, ]: `. g
: E3 C' R; Z' D! f) @/ mlength(str)   
* P# I0 m7 W# K  yoctet_length(str)  + h' L8 K1 E# Y" R, e5 l" E
char_length(str)    T+ T$ ]0 k$ _5 V' O: F1 x0 m
character_length(str)  
' {/ @* p- h/ L- Y8 Q+ h返回字符串str的长度(对于多字节字符char_length仅计算一次)
9 k9 b% \% E* l6 e7 hmysql> select length('text');  
4 G+ V- _% T/ k. K* a5 t  -> 4  4 }  G4 K: u+ l+ c1 ]
mysql> select octet_length('text');  5 ?8 y0 n8 I; V1 G! d/ o6 {
  -> 4  
8 j* `1 T8 L# A7 f  J% a: {
7 z6 t1 H" Y& M* y2 Xlocate(substr,str)   
6 V* Q: a  h. W4 F  h% Q3 Iposition(substr in str)   
: Y+ V5 S/ X7 G0 i/ q" b8 r, ~返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  ) u2 i& i/ A' m( b: d# ?! l
mysql> select locate('bar', 'foobarbar');  
  p, D1 e! u' e5 v2 q  -> 4  
* s  j: s3 o7 K- Emysql> select locate('xbar', 'foobar');  
9 }) D; Q/ x% c, L* G0 X, D  -> 0  
; N0 T: @, ]8 f  M" T4 B  R    % g( ~0 q( c% }& K& Y+ E' w9 z
locate(substr,str,pos) " Y( }) F& P$ H# k% u7 e0 w- H' N
返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
6 y' {+ s7 ~& |mysql> select locate('bar', 'foobarbar',5);  1 j1 F# F9 S; m& j
  -> 7  
+ J- S* X9 s# Z1 Z" c3 i! \0 D
" `  Y/ v9 P& cinstr(str,substr)   % X9 f3 Q- W" r8 ]. A
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  0 ^$ f- Q: D0 \. s7 E5 X
mysql> select instr('foobarbar', 'bar');  
& I& F/ @) ?% N8 b  -> 4  9 f5 V6 m& H' T
mysql> select instr('xbar', 'foobar');  
$ z' I9 C9 a2 {  -> 0   
: \4 S. }0 D+ L3 u' y 3 r* b* [) ]1 i; ^7 c
lpad(str,len,padstr)   
% r, [% G! {8 q& ]% V4 s用字符串padstr填补str左端直到字串长度为len并返回  
# r9 Q# ?( N# q7 bmysql> select lpad('hi',4,'??');  * B# i0 k# {$ j* X. K  S+ D
  -> '??hi'
- A8 z% J7 z8 V- t& M   0 o, V; K9 A  \" x9 V+ S* \
rpad(str,len,padstr)   
/ w" i0 U) X" q; A用字符串padstr填补str右端直到字串长度为len并返回  
/ X1 ~6 \3 o: x! m) l& m/ Umysql> select rpad('hi',5,'?');  
- D2 r0 t& @) ~  e  -> 'hi???'
' @8 a& a/ S) d$ C' B
' Y* Y( W; B6 b* mleft(str,len)   
& y# b* v! S: |2 Q2 q5 V返回字符串str的左端len个字符  
6 x9 K' [& M1 ~' J% bmysql> select left('foobarbar', 5);  
" Z- F0 S5 p' w$ V  D2 M4 p( g  -> 'fooba' % {/ X, o  y7 [4 o

5 D" ^  ^  p# g( M. S* Sright(str,len)   
  L  w8 A! S0 B& h6 Z; p* G. Z返回字符串str的右端len个字符     D, ^' W2 ]# k
mysql> select right('foobarbar', 4);  
' A5 e) o: ^8 p+ F! Z  -> 'rbar' 1 c0 x9 R2 m) @/ n) |" \

; J% L6 l" J3 |9 p( I& isubstring(str,pos,len)   . [/ m* O8 W% R
substring(str from pos for len)   
" Q; G5 E# O! E( ?* l% P7 Qmid(str,pos,len)   ; y: O; r1 f3 w4 h. k' J% ?
返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  ; l. |; ]% ^- i# ^# |
  -> 'ratica' # P- Q/ J  `7 y' H8 ?
* W- M6 f9 r$ \0 b5 ]* P# E% |
substring(str,pos)   ; m" e& ~! c6 F* a
substring(str from pos)   
1 g' R" X, {/ Q$ j返回字符串str的位置pos起的一个子串  ( E1 x( |) h# j
mysql> select substring('quadratically',5);  
, d  T& }$ b  C( y- _( a  H& ^+ v  -> 'ratically'
/ n8 D4 ^4 v/ a6 M2 b# Lmysql> select substring('foobarbar' from 4);  * x2 e7 }, n4 a( f7 Z; G
  -> 'barbar'
2 X+ o$ n5 C9 b" x# O+ A
0 Z$ C; q  D! e$ @, L; isubstring_index(str,delim,count)   
3 ^6 G( t  R$ m返回从字符串str的第count个出现的分隔符delim之后的子串! f% x* N, t/ T7 B+ V  l
(count为正数时返回左端,否则返回右端子串)  # z. K  A& I: [, {7 o0 i1 b
mysql> select substring_index('www.mysql.com', '.', 2);  2 i9 q% n7 Z7 j2 Y( R& s# H  E: y0 |
  -> 'www.mysql' ' r' B/ U- r! M" y
mysql> select substring_index('www.mysql.com', '.', -2);  + z0 @, l$ b# s/ I8 l$ e* ?1 y2 z" F6 T
  -> 'mysql.com'
6 ]4 f. }/ p& X5 H" L- w, H$ G ( `& O, Z& r# |- Y$ s, y5 B& d
ltrim(str)   - H" n* K: z$ \2 A
返回删除了左空格的字符串str    o3 z3 m& I! _2 E# n7 \) t
mysql> select ltrim('  barbar');  
" n! S6 M  l- I  -> 'barbar' + j! r) Y% {7 y8 Z8 v, g; [! j
3 r8 d- ?- v- Q
rtrim(str)   ; Y7 e! P* {# I. }
返回删除了右空格的字符串str  
. I/ N. h" h/ ^! m* h; {mysql> select rtrim('barbar   ');  
9 {' Q! A+ X2 I  -> 'barbar'
# I& R% O' Y4 [' h4 K4 _; w
9 U$ ?8 M5 x/ y( D3 @9 @trim([[both | leading | trailing] [remstr] from] str)   4 J, z! g9 n* G) x$ ]
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)    K& c* T1 K/ G
mysql> select trim('  bar   ');  , Q, g1 z1 k. X4 |0 I5 _+ k* q
  -> 'bar' ' E! x$ A* r9 c7 \* m
mysql> select trim(leading 'x' from 'xxxbarxxx');  . M5 b: |, z: I: ?' v# a. r9 X
  -> 'barxxx' ) V1 S3 w8 I9 [) f  k: m3 ?$ m8 L( e# s
mysql> select trim(both 'x' from 'xxxbarxxx');  
/ p, z' Z1 ?) \3 s8 V4 |  -> 'bar'
+ X1 A+ V( l1 z% tmysql> select trim(trailing 'xyz' from 'barxxyz');  , L# F- R: Z) g8 n9 r( V
  -> 'barx'
' v1 K" j" D% @% {/ A6 `8 w0 p
6 T( x2 n( N" {: X1 o0 ~% _/ ksoundex(str)   ' N4 U8 `9 N4 M5 @5 a* [1 n
返回str的一个同音字符串(听起来“大致相同”字符串有相同的6 H  g8 L* W! f4 s6 L' g
同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  
* x! N7 r8 L, c' F( mmysql> select soundex('hello');  # ]- F  a. x' Z. B0 ^0 y
  -> 'h400'
( `9 ~# ]4 G: s# T* `mysql> select soundex('quadratically');  & f8 k8 O, V% |  X' n( C4 y
  -> 'q36324' 2 k& F. S1 X4 b/ K2 n. D( b& N! c, j$ K
   7 I& ~, ]8 d' H8 c3 ~
space(n)   
" `+ D! x0 M. O2 [- ^' D6 V返回由n个空格字符组成的一个字符串  # z! i- b" o' ?/ Z9 h+ i" B# C9 V8 k
mysql> select space(6);  
0 R  d7 n  F! ?, a5 ]5 C  -> '      '
+ h+ Z  U; E& T/ I   
% w2 A& n0 ^, Z7 s7 y( Nreplace(str,from_str,to_str)   
  v4 Z2 y. t) m" B, V用字符串to_str替换字符串str中的子串from_str并返回  ) d3 Y$ O5 R; \; ?6 s, L, b
mysql> select replace('www.mysql.com', 'w', 'ww');  
6 g9 ^1 G6 S( y" K8 L) u  -> 'wwwwww.mysql.com'
! M4 ~4 H2 {. R* x
  \3 B" g3 w# g& k% Hrepeat(str,count)   ( z/ k0 R& K+ a6 ]6 F. X
返回由count个字符串str连成的一个字符串(任何参数为null时5 q: I. t+ P0 E5 J2 c
返回null,count<=0时返回一个空字符串)  
# m# w& k0 \8 U! i# i$ Y$ wmysql> select repeat('mysql', 3);  
' Y, i" I  b8 O. r7 _  -> 'mysqlmysqlmysql'
0 V% \% f  H4 w( ~( r+ m   
! |1 J: m% _! W3 a) l* Jreverse(str)   
# I. j, d& G( K+ H颠倒字符串str的字符顺序并返回  : p2 g  M% T$ n2 n4 [  N
mysql> select reverse('abc');  
, E$ ^) v  X6 X2 }3 P$ v  -> 'cba' 5 |  T/ @' E: x# R2 s! b8 P

$ D5 Z, u6 R6 W0 i" `9 _insert(str,pos,len,newstr)   
' ^/ W7 q& H. O& r2 L' z' z把字符串str由位置pos起len个字符长的子串替换为字符串
9 d8 x" g2 Z3 W1 B' v* O% ^newstr并返回  
! D" t# T1 W5 G  }& R5 amysql> select insert('quadratic', 3, 4, 'what');  
) E  ?% R/ l+ h1 O1 i3 D  -> 'quwhattic'
1 T- j( U2 L9 n% Z/ w / v7 E" o/ a9 v/ @7 {
elt(n,str1,str2,str3,...)   / }7 X  f- Z$ j5 n
返回第n个字符串(n小于1或大于参数个数返回null)  
/ b0 S. k# t, Q5 c/ ?9 xmysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  ( S$ U# N8 s/ B5 \) k
  -> 'ej' . P" X: I1 N" L# ?1 I
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  8 Z8 \* q' N3 ~8 ~% Z
  -> 'foo'
; B1 N% \( a) ? * w3 f; ?1 c- W! N8 {3 v
field(str,str1,str2,str3,...)   ' P6 J* J5 f9 V0 L
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
$ y" @4 m/ Y: [mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',0 y5 E, v0 @+ o2 t& D2 k" G! g  U
'foo');  
7 s% b" s# D- T9 a+ n  -> 2  
( \. N$ W# s% `! A% Umysql> select field('fo', 'hej', 'ej', 'heja', 'hej',+ a1 S2 F% c3 G2 K  [3 O, C: f3 @. [
'foo');  : N5 \) Z& [$ a5 ]( u$ ]
  -> 0  
, Q1 E# f9 ^9 m3 J5 q+ Q- y; t
6 l+ U; J1 \! m& i& _% A  p. wfind_in_set(str,strlist)   
" f9 i+ N1 n: U& x* ^返回str在字符串集strlist中的序号(任何参数是null则返回
' |8 p- h) _- J- U# K4 A  Hnull,如果str没找到返回0,参数1包含","时工作异常)  & t% p# |' E: C% X
mysql> select find_in_set('b','a,b,c,d');  $ q/ L' D2 v% {7 D6 U6 {6 d: V
  -> 2  " E9 @4 Q" I3 g, T8 h, e( E; Q
   
& O8 @7 j4 [- |) O! B0 ?* Ymake_set(bits,str1,str2,...)  7 Y5 L* L" _$ |3 B1 |: l! l8 ~! v# F
把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应% u+ K$ h5 @  L1 Z7 k5 @$ x, X/ K
位置的字串选入字串集并返回(null串不添加到结果中)  : W, m$ g8 w; W! o
mysql> select make_set(1,'a','b','c');  ) O( N5 {5 m0 |9 k
  -> 'a'
' R6 x8 Q7 H- ^' q, Qmysql> select make_set(1 | 4,'hello','nice','world');  
) {. Q& \0 X4 f7 U  -> 'hello,world' 1 {8 C' n  V* L* a' b$ F! w
mysql> select make_set(0,'a','b','c');  1 V7 O4 o7 ?! V  t  }: z
  -> '' 9 }0 }8 Z3 B4 h2 e( ^
# x" ]% E8 T# G0 K% b  X
export_set(bits,on,off,[separator,[number_of_bits]])   5 w% T; w2 U# G: ]
按bits排列字符串集,只有当位等于1时插入字串on,否则插入+ K. k' ~$ u: ?( D) ]
off(separator默认值",",number_of_bits参数使用时长度不足补0
3 J; u6 Y+ |: X, F4 G而过长截断)   
  z4 P; q$ \" W2 Fmysql> select export_set(5,'y','n',',',4)  
- |# _, z0 o  ^2 n9 [3 u  -> y,n,y,n   
  w) J3 g) L) L/ ^ ) F, J8 r+ M6 ~  C
lcase(str)  + c/ x7 E. B$ i- q. |3 l. G0 U$ C
lower(str)   
3 l! i3 }. g6 {% ~1 k' h' {返回小写的字符串str  
  ?/ c2 o8 X2 q4 {mysql> select lcase('quadratically');  * b3 i* g1 s2 X4 S2 y& c
  -> 'quadratically' + T" H5 q8 H! j. V, C
   + T/ M7 [( W- v5 n
ucase(str)   
/ }) e# Y0 U' O7 q% l$ kupper(str)  
" P& @5 d+ @) d* n5 ?! Q返回大写的字符串str  " m6 j  k! g$ ?% X! p
mysql> select ucase('quadratically');  ! o2 p. ?0 [. ~  l( K
  -> 'quadratically' . I0 W- |0 Z/ h" `
4 O2 A8 K2 m* W+ f' ^
load_file(file_name)   * C3 |: m: v9 b7 ?! b- G  @
读入文件并且作为一个字符串返回文件内容(文件无法找到,路径; O" W8 g" \, c7 C, h1 `
不完整,没有权限,长度大于max_allowed_packet会返回null)  7 s) ~  e5 R/ V+ M% l
mysql> update table_name set blob_column=load_file4 y+ s3 g+ _5 D; }5 O
("/tmp/picture") where id=1;  8 v8 X8 D! ?* N9 D2 F

+ o' W4 y# C% I. B0 I2、数学函数
' m* e( n# s! }. r( \& }# {abs(n)
  J' l5 n' c' U; c- W返回n的绝对值  " ]& Q6 ]$ c9 i0 a1 N" C
mysql> select abs(2);   
; k2 J6 n% d, x  -> 2   
4 k" P- x# g: i9 z/ mmysql> select abs(-32);    " U2 R) H/ n3 G1 ]: r! E6 N% h
  -> 32    5 b# C' D6 C% s
   . l5 l1 p8 M; t1 l. i" ^: H
sign(n)  " J# j) v, w7 Q# X$ S
返回参数的符号(为-1、0或1)  3 ^- C* U( y7 l
mysql> select sign(-32);    ' k- y7 x% `$ K2 x, q5 X! P
  -> -1    1 O/ Q( R* v- L/ Y* x
mysql> select sign(0);    4 k: T+ W+ d. \: T
  -> 0   
2 _: L+ e1 Y$ p* d0 Imysql> select sign(234);   
$ |' g% T) y2 |3 o: Q7 s" x2 d  -> 1   
4 j0 v+ c$ y4 h
! s# T$ ~8 V) x( vmod(n,m)   
$ f1 _) i' S5 C& S( T取模运算,返回n被m除的余数(同%操作符)    4 P- ?1 ^  Q6 f- c
mysql> select mod(234, 10);    0 }0 R3 M! M+ P: m. F
  -> 4   
9 y8 I# a$ W! c, K+ ^" S9 f* e$ c  }mysql> select 234 % 10;    $ i  _+ F2 t$ h: d0 K0 v
  -> 4    " u$ ^+ }& k/ M+ J  U
mysql> select mod(29,9);    4 o, h$ M- P" _& g
  -> 2   
9 x% F0 J7 d4 f( x5 {& f; q# _" U4 h % u" B$ d: j( S6 d0 P; c: F
floor(n)  
. {0 O4 \2 D/ C% r/ X2 t* x返回不大于n的最大整数值  
$ k: e: ]; v* x. r2 R% t' k7 w& Omysql> select floor(1.23);   
$ x9 i! Y( r4 B9 o% C. S5 c  -> 1    1 g+ J! `2 E9 k. f3 f
mysql> select floor(-1.23);    7 j1 Y  d7 p: l1 X$ x3 @/ l
  -> -2   
. T3 R2 ~* h" n5 M1 a+ T
" w  i; M9 f# w/ ~- V9 `% }5 qceiling(n)  
- T+ }- @& y7 @# v" J返回不小于n的最小整数值  8 ^, k: I; e6 U+ _
mysql> select ceiling(1.23);   
6 S. [1 ~+ I# N2 `& C' r4 X  -> 2    ! v0 l0 E; X3 [% E: K
mysql> select ceiling(-1.23);    & A8 k; g$ u! q3 @" k/ O4 a
  -> -1   
  D) J& M1 d" O9 o: H 6 F$ D1 k5 n7 Q/ P! g5 H
round(n,d)  
" x' r# E. t9 e  u7 @5 B6 T. N; ?- \返回n的四舍五入值,保留d位小数(d的默认值为0)  9 {. _  c+ v& e+ X8 z
mysql> select round(-1.23);    # H2 _: V8 ]3 }" A8 |5 z# x$ ?
  -> -1    ( ~  X! U; `  Y: b/ l; X
mysql> select round(-1.58);   
" X& s; b) Y2 _$ L  c# d  -> -2    , s9 J9 W) i9 \
mysql> select round(1.58);   
3 ^1 h6 }, B9 g, D  -> 2   
" U8 X! B( _6 dmysql> select round(1.298, 1);   
0 x# E' a7 e; ^* X, n  -> 1.3   
% {2 j$ k. o' O( z! ^) u* x* G, M& [mysql> select round(1.298, 0);   
0 J2 l' c! Q! V. n  -> 1   
; }, n" ~# w) s% U + X# q9 r0 [9 `% P/ g$ p) I
exp(n)  
( V) c7 w6 U, F1 R" T: W8 K5 w7 |% C返回值e的n次方(自然对数的底)  5 q6 o' m. A3 [7 q8 W
mysql> select exp(2);    5 G& C9 ]! c7 e* Q
  -> 7.389056   
$ J' h' H" v+ ymysql> select exp(-2);   
/ ^3 N2 R, @% M5 S  -> 0.135335   
, f2 |  y, ~; u5 j3 R$ U
' {; O. M! z( F) X4 ]+ Nlog(n)  
# x0 Y0 G% g5 D3 L4 ?返回n的自然对数  
3 Y, L/ `8 d3 Qmysql> select log(2);    , t8 a) h, r3 Y, D
  -> 0.693147   
/ Y# ]% w) p! R8 k1 u/ D7 V9 smysql> select log(-2);   
2 O: C8 o% w, U! E2 K: m4 T# m" K: u  -> null   
' n+ S5 M( y" k% [ & Z3 }5 ~" P8 Q2 C
log10(n)  ) H8 I( O- n  p  h5 A8 _& ?7 T
返回n以10为底的对数  9 l( U! l+ [" ^" ]5 ~- @& a4 z5 p
mysql> select log10(2);    : s5 _0 F: E  s3 v: `9 i! y9 O
  -> 0.301030   
6 R% N2 \& X0 x' @: j$ t- Fmysql> select log10(100);   
! e8 b2 N* m0 b, p8 {/ ?  -> 2.000000   
' a! G8 ~4 Y8 u3 ^% q! l& d; Umysql> select log10(-100);    ) ~- @4 Y2 I; i. ~: V
  -> null   
# Y- C4 h7 \1 M, H5 H# e 2 p9 W2 C4 o/ N" B
pow(x,y)    " ]. R0 s  K& r7 ?* \
power(x,y)    5 E( l; r% `! @& l- i
 返回值x的y次幂  ' m  y# R( Z. D7 X: \6 V* c
mysql> select pow(2,2);    5 ~) [) x% V& c( J9 d6 c2 F
  -> 4.000000   
9 d/ v5 O# W4 G4 imysql> select pow(2,-2);    2 {. y8 o( _5 t) m  h
  -> 0.250000  - I  ?$ _8 |2 \
: w2 u' B# i! d$ ?+ }+ O  h
sqrt(n)  * \4 D/ D" T( S! P* j
 返回非负数n的平方根  2 q8 Z+ F6 {6 {, T
mysql> select sqrt(4);    - R# {8 f1 l* U9 C3 `
  -> 2.000000   
- b& _, U& q) v+ S& Ymysql> select sqrt(20);   
  P0 c1 [+ y# p' p0 a  -> 4.472136    7 B! i; I  u7 o/ T
3 `1 n- f1 D: j6 N! i$ F
pi()    # v0 ^4 `) \2 D0 Q( P8 E
 返回圆周率   7 V+ w" }3 _- S' T0 M
mysql> select pi();    $ r" R2 E( c* d" R7 f6 u
  -> 3.141593   
. h, U1 t) V* L" m1 _/ g7 M
; M! D7 s) ^2 E3 ]! P6 h/ }' Ycos(n)  
2 N  o) {/ }3 K3 y6 _ 返回n的余弦值  
/ T: c% p8 l6 g& J; F( Q% zmysql> select cos(pi());  ! M3 M6 H' [$ Y  ^# z+ H
  -> -1.000000    8 y" m' s9 @  C
% Y1 m) x3 m0 p3 H
sin(n)  
3 X- ?& N# x1 I2 D) H' j6 E 返回n的正弦值   
* P, L: q5 }8 a. q5 p/ L5 Fmysql> select sin(pi());    ! w5 {  r- u! V
  -> 0.000000   
3 q+ I* \5 p+ m9 `; t0 k7 F ; P" z: \% i  D  x
tan(n)  0 p, U& W+ Z. c8 k# a, F
返回n的正切值  
2 X" m) I1 V1 [3 Pmysql> select tan(pi()+1);   
- W/ K$ G4 l: ]  -> 1.557408    2 N" t5 a% ]- i! P# u
. ~4 Q8 d' Q7 X. q4 ~5 q( ?
acos(n)  " \0 l. M# U/ `: n& S
 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  
6 e8 M* s: }3 T* vmysql> select acos(1);    / ^- ]2 q' W3 x# @/ B
  -> 0.000000   
$ H# a: l) g# Lmysql> select acos(1.0001);    2 n, a5 S- e6 c0 H+ B
  -> null   
/ F6 [  X5 O' W( ~8 t0 Z. Pmysql> select acos(0);    ! \& ?9 r( Q1 A5 \2 i: N
  -> 1.570796   
  z( {- _. ~# }  M4 g
/ I  w  m7 z% G5 K0 W+ `# C9 Xasin(n)  
1 ^3 w) t" @* x+ m返回n反正弦值  
7 h# b# |0 D( {  J+ @1 {* Q! Nmysql> select asin(0.2);    4 U/ l! \( U' v+ `3 [; ?( G  u
  -> 0.201358   
( b4 ]+ N1 f& G; q1 S: Emysql> select asin('foo');    8 T7 b9 w( B, P) }
  -> 0.000000    ! k& f" g; n+ b3 h* H, B
: r6 \$ N/ @3 m
atan(n)  6 q7 H2 {' B. x3 E, d4 A$ H: ^# L
返回n的反正切值  3 b) c7 G( D9 ?  A" S* h
mysql> select atan(2);    8 J/ D( M# D8 w- v3 v
  -> 1.107149   
% |7 R2 Q. ]1 b1 O% s' C8 p$ Umysql> select atan(-2);    8 a" S0 M$ u" i! d
  -> -1.107149   
# a' N0 T$ n/ E4 ?atan2(x,y)   
$ S5 X5 _& a; i' Z+ ?& h1 V" G/ ]5 { 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  & f, d: C9 H# ?$ Q3 u/ H
mysql> select atan(-2,2);   
0 b( B4 n7 a0 l& o& |+ v7 j, A* R  -> -0.785398    5 {' Z7 ]4 H9 q( z8 w
mysql> select atan(pi(),0);   
2 C3 T! }( Q- ^, p! \  -> 1.570796    # w) d: e+ S% S. i' d- E

2 K6 M! R$ H) {cot(n)  
1 W& P: n5 D7 c/ e( `* z4 o1 T1 ~4 \4 ]返回x的余切  
& A3 R# }9 W% ^& s/ {, ]( l; Umysql> select cot(12);    # T2 R: w( G2 \; [& x
  -> -1.57267341   
, l8 H7 n3 B! o- j6 P# {mysql> select cot(0);    ( G2 D8 k, {* ?: Y
  -> null    ; e- ^8 k" |9 c5 Z7 f3 H5 v. |

" t  W( ^! u/ _3 W, jrand()  
( J# L% n: j7 U; L9 R* O% Rrand(n)    $ P: p: r9 ~3 l! S
返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值) 2 n" S! b  c/ B$ i0 l- j

! Z3 A) M2 @0 z" s  `; x4 Zmysql> select rand();   
0 z, r" W5 [, i! B% X- x  -> 0.5925   
$ ~0 c6 {# G7 @; bmysql> select rand(20);   
( p" S/ j" E; [) L! B0 ~  -> 0.1811    % U/ A+ z1 n0 _
mysql> select rand(20);    # w2 |2 Y+ ~3 ^6 m, D
  -> 0.1811    - A) ]0 S/ X( u3 h! |
mysql> select rand();    8 W1 W5 i6 f4 O) F
  -> 0.2079   
( U7 E" A+ ^- l3 {. o. p+ W/ fmysql> select rand();    5 m) ^+ t: ~1 z2 q
  -> 0.7888    % t% h/ |2 n: g
. W1 a$ o7 ?; w; a- {0 A* A
degrees(n)  
1 C+ o# t$ G) Y! ]/ m把n从弧度变换为角度并返回  
3 b0 _/ Z, r& E  `9 Q+ Vmysql> select degrees(pi());   
# C; l" u' [$ g+ B* {1 F0 V  -> 180.000000    : @3 m3 e: G# f/ ~. o  h' E
! e; g9 E( |9 {  Q3 p' D: E0 T" U
radians(n) # y/ M, W! L3 K3 M4 x% [/ W* G3 v
把n从角度变换为弧度并返回   1 l7 O) S. Z2 k
mysql> select radians(90);    : v$ h8 K2 \8 o+ }2 R
  -> 1.570796   
: W* A  `# l' V1 d* t( M( m/ b. ]0 t5 i' g4 y
truncate(n,d)   
7 f& ?3 F% C7 j. i1 l# l保留数字n的d位小数并返回  
" g9 ]( p1 M) s! o( ?! cmysql> select truncate(1.223,1);   
8 ]! E5 ~; m$ }- o7 }( Z2 j  -> 1.2    1 Z+ s1 P& @  H: r* `% o0 q- k% ]
mysql> select truncate(1.999,1);    4 e* {; c. e! w* W9 {9 c( Z
  -> 1.9    1 q  Y% M8 @* x. w3 r# q5 {
mysql> select truncate(1.999,0);   
0 |5 {' }' e7 h) f1 b. o2 [4 o2 }  -> 1    - r+ W. \; f; r# q- [
8 ]6 E0 S- ?* ]9 o
least(x,y,...)    8 V; {4 m- F! E! f5 I) p; |
返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  % Y  |3 ^# [9 J3 `5 u! F6 j2 w7 ^
mysql> select least(2,0);    6 e$ \) J/ ?$ n9 g/ i2 {9 u
  -> 0    7 n; e1 q& u7 q
mysql> select least(34.0,3.0,5.0,767.0);    8 k  ?& r. c1 \0 w8 i# X  S8 C9 L
  -> 3.0   
* }0 q2 D+ B* L8 a% U/ Imysql> select least("b","a","c");   
* r+ o' @; _& A% V  -> "a"    . z3 S+ n# e* O
2 Q" }2 U: {9 `9 ~: c9 n0 _
greatest(x,y,...)    - L- x& D0 k- ~$ g
返回最大值(其余同least())  - q! h5 Q4 a- b; j8 \( H
mysql> select greatest(2,0);   
( Y4 c9 v! a2 {% Y. z& z' l  -> 2   
4 I1 v( Y" f. h& F2 w/ N# I7 d6 A3 Zmysql> select greatest(34.0,3.0,5.0,767.0);    ! L/ f& a! ?# x
  -> 767.0    3 f3 `* b! t4 c  J" o5 Z$ b6 l
mysql> select greatest("b","a","c");   
% J0 ]/ p# F$ u5 D0 S6 O: o  -> "c"     , m% A$ |' g& ~* u5 D% B
4 p3 Q9 O) l1 o7 {
3、时期时间函数 * _" a* s! _1 ~# W5 {4 C
dayofweek(date)   
# e% K4 t. o0 ]! W/ P返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  0 d# h6 O3 v& P
mysql> select dayofweek('1998-02-03');    7 p# g: t$ I% D) v+ V" C
  -> 3   
& T7 ^+ _& ~, ~' c1 {
- I, n/ C' h2 M+ I4 Iweekday(date)    ) b. S( o% f  v# Z! v& L
返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 5 G$ u$ ?4 b& g2 i9 {
  
' U1 ]8 w( l* y/ f; jmysql> select weekday('1997-10-04 22:23:00');    ) y0 T  t4 H. b
  -> 5    1 {3 h( ~6 T  l+ H3 M- l/ N! w/ N* T
mysql> select weekday('1997-11-05');    & `2 f  P+ b. Z' O$ q
  -> 2   
- I1 G" a4 x* y9 W4 y3 @ # c0 v, I1 b  C. g6 [
dayofmonth(date)    $ n% Z2 Q# g1 Q
返回date是一月中的第几日(在1到31范围内)   
3 z% q! W8 e9 F& x& n3 Imysql> select dayofmonth('1998-02-03');   
+ M. P9 M1 h, T& h! M! ^* X  -> 3   
) X) h* N1 V* M% s- \0 m" j8 J 3 M1 ?  c$ C5 r) E, a9 h5 C
dayofyear(date)   
! H+ ]7 l+ }6 I3 ^' q返回date是一年中的第几日(在1到366范围内)   
8 m* }6 B6 @2 M1 R* kmysql> select dayofyear('1998-02-03');    6 M% {4 `8 C7 B8 V
  -> 34    - O. T$ U; h6 Z

/ {# A: `; i+ q6 b& v. X! Bmonth(date)    ) \3 Y/ ]4 W" b& D/ s. k
返回date中的月份数值    + l. y# q% h# F4 t" }7 [
mysql> select month('1998-02-03');    3 h+ Q4 x4 d" F/ k5 t0 \" f# e! p3 p
  -> 2    ; _$ M( w# B2 i% w# f
: q$ [& y0 R" h
dayname(date)    . }( m$ c  [! T0 M
返回date是星期几(按英文名返回)  
/ Z. M' F# h' G( J2 ?% pmysql> select dayname("1998-02-05");   
1 Z. d4 G5 O3 r: C$ f, h. t1 z2 u: c  -> 'thursday'    & l3 g* ^7 \" p, r' \# D  m6 w
# `* F) M* s/ }0 u+ B) G# W
monthname(date)    7 J6 T3 U+ |, z9 r9 \7 o7 l$ C0 S& x1 g
返回date是几月(按英文名返回)  4 H+ C( E8 ?# x* M% L' {. L0 e0 c
mysql> select monthname("1998-02-05");   
& B% R0 G5 S) X7 D* o: s* R& t: X9 I  -> 'february'   
7 G0 X, S( x1 ]& w* G% G
: y0 x( c" C7 [) r4 `% D8 Pquarter(date)    4 o, l1 J9 N' K7 G; X: r- f
返回date是一年的第几个季度   
% H" e+ t( O4 u- `' r" wmysql> select quarter('98-04-01');    " V4 c5 B2 ]0 b* Z# `9 c
  -> 2   
; U" I' p& l2 {+ q$ A, \ 0 @5 [% `3 g8 q$ Z7 @2 Z* r
week(date,first)     }* W* P; {) n: F, Z; T
返回date是一年的第几周(first默认值0,first取值1表示周一是( T1 o2 i0 o. t( l! R% w' y
周的开始,0从周日开始)  
& X* `- ~: |* m/ V2 i( Hmysql> select week('1998-02-20');    & d5 u& L& H# d( l/ r9 [
  -> 7   
! ~" I+ v. d' lmysql> select week('1998-02-20',0);    % ?; |! y0 C3 M
  -> 7   
, N! O% b. t! d* i* zmysql> select week('1998-02-20',1);    8 h9 }$ K/ F, C! @. \" \
  -> 8    9 \, m: N1 j# L: r( a5 |

6 `. k% Z* N0 n7 O2 l; f. I8 w* X2 wyear(date)   
# ]+ R! c' J( |$ x% m( B5 [) o5 p返回date的年份(范围在1000到9999)   
/ {6 I" ~: j7 g" s! q5 hmysql> select year('98-02-03');    5 t$ a- b, x' F- Y9 _# M
  -> 1998   
! r, v9 l% G: c
. b6 @' x/ X. _: ehour(time)    
9 i5 I7 W  V+ |5 o返回time的小时数(范围是0到23)   
$ m. G  N7 U9 x) N) Y$ ymysql> select hour('10:05:03');    ' i6 @7 e% H9 U6 L
  -> 10   
9 \* c( i  F) v- g% g7 t* O : ]6 p4 K. t, E7 K7 f5 o
minute(time)    ! t9 u3 x$ d' j- ]* `4 `) G
返回time的分钟数(范围是0到59)    6 W, m7 m+ h/ y3 U1 B6 I( e" e
mysql> select minute('98-02-03 10:05:03');   
; H, e! J4 E# P  -> 5   
* i2 N8 V' [1 o5 v7 W) A 1 T% {- r: Y" Z, Z6 h; c
second(time)    
$ h  u* H9 o! ^3 r+ Y4 l返回time的秒数(范围是0到59)   + m6 M: O9 x5 C6 l0 i* k% B- n
mysql> select second('10:05:03');   
! Q2 P! w6 ?1 F/ a* q  -> 3   
: T  c9 H! I2 R) K5 X / l# A* n$ F; K4 E0 N
period_add(p,n)   
7 O! O" i1 s$ j' \, \% M7 q增加n个月到时期p并返回(p的格式yymm或yyyymm)   
, ^: ?4 {/ X8 S* s9 w# o, Y/ qmysql> select period_add(9801,2);   
/ L5 r7 {4 Y, ~  R- ?, v5 \/ Y' v; F5 ?9 ], I  -> 199803   
7 l6 Q' ^4 H# q! t: Z ( I( E( c: O& n0 n
period_diff(p1,p2)    & m# A7 ?# w2 f* t. ]- u! T
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  % H" v9 n' U. X/ I0 ]4 I
mysql> select period_diff(9802,199703);   
5 G) l; [! X0 Z! s% p, v$ Z  j! c/ T  -> 11   
! e3 ?2 r& Z* Z  B' @+ k/ G
" Q$ U) `0 {! b$ Qdate_add(date,interval expr type)  2 E' _, X, u7 p$ L1 O; }
date_sub(date,interval expr type)   
  x- ?2 T8 J8 G6 m; H& g. Eadddate(date,interval expr type)    / {3 T, n9 v0 e
subdate(date,interval expr type)  2 t$ R( i7 ~( z6 Z
对日期时间进行加减法运算  
, [1 S9 @9 T$ \  {(adddate()和subdate()是date_add()和date_sub()的同义词,也7 F8 D$ l! [. @6 ]* j% t
可以用运算符+和-而不是函数  
% Z" f. F: L9 g5 i6 |' adate是一个datetime或date值,expr对date进行加减法的一个表8 ]: Q8 s9 N! n  x1 o$ e
达式字符串type指明表达式expr应该如何被解释  
, m6 `2 u- C; N* O7 a' f2 @' p% y [type值 含义 期望的expr格式]:  
- F+ ?7 l( }- n second 秒 seconds   
: w( X  n. b; a9 k7 }, v minute 分钟 minutes   
( r0 w8 ]& M' I$ ~7 I9 [ hour 时间 hours   
8 l) Q  p' q/ h, A' p# J$ u day 天 days   
) J9 k7 F8 k# L; I0 H7 j! ` month 月 months   
$ n6 s+ x6 O- u3 Z year 年 years   
5 x9 @3 [/ M! W/ C" e minute_second 分钟和秒 "minutes:seconds"    - L6 A, Z7 j) ~$ R$ N7 ?7 p
 hour_minute 小时和分钟 "hours:minutes"    1 ]: p, Z$ g! _% u6 ]+ O$ p
 day_hour 天和小时 "days hours"   
. o  [3 \' J4 ~1 n year_month 年和月 "years-months"    ! j6 T3 ], D& G# J; r- u8 Q1 m
 hour_second 小时, 分钟, "hours:minutes:seconds"   
6 G) p; _" ~% U day_minute 天, 小时, 分钟 "days hours:minutes"    + v( d! u% P0 d& i
 day_second 天, 小时, 分钟, 秒 "days
% `  h7 E; ^7 u4 z; Chours:minutes:seconds"
- Y4 J& ]+ t+ x% H expr中允许任何标点做分隔符,如果所有是date值时结果是一个$ u8 i! u- S* s# r: t
date值,否则结果是一个datetime值)  
# s! Z) O3 J& y, v7 e 如果type关键词不完整,则mysql从右端取值,day_second因为缺
  P# e( \0 {" r6 F/ J7 g! l# A$ N1 r7 m少小时分钟等于minute_second)  3 v+ w% h% ^, n, V$ ?1 ^+ k
 如果增加month、year_month或year,天数大于结果月份的最大天
% r# i! ^9 u0 |4 O6 D数则使用最大天数)    3 p" R& {# `9 |* s2 y7 w
mysql> select "1997-12-31 23:59:59" + interval 1 second;  1 ^$ J! W/ m- h, L

6 |( ~% H- X! \4 z$ ~  -> 1998-01-01 00:00:00    ( @3 }0 x, j4 U7 D2 [
mysql> select interval 1 day + "1997-12-31";    ( X" ?$ U4 p+ i3 v, U& r$ Q
  -> 1998-01-01    / O' y7 P6 p$ n/ @! a
mysql> select "1998-01-01" - interval 1 second;   
4 g4 ^+ H# z9 R  -> 1997-12-31 23:59:59    5 p9 u: K3 {9 A% O/ z2 |
mysql> select date_add("1997-12-31 23:59:59",interval 1" T1 `" \. ~& s! Z3 U0 P
second);    # w- u% j& J6 W$ e; a
  -> 1998-01-01 00:00:00    " g8 _$ S1 q* X0 Q8 ]
mysql> select date_add("1997-12-31 23:59:59",interval 1
8 D8 t4 M: A7 Q0 I/ @8 L5 mday);   
# X, m) B& \2 \0 j2 F6 k0 M. m! G  -> 1998-01-01 23:59:59    : x- b5 J0 i  }7 l! t/ o
mysql> select date_add("1997-12-31 23:59:59",interval0 q3 r6 g; d0 |7 g' ^* w
"1:1" minute_second);    . {( f* q, \+ X9 s
  -> 1998-01-01 00:01:00    # h" i0 f6 {- F* e5 O* c
mysql> select date_sub("1998-01-01 00:00:00",interval "1
6 o8 A3 }3 z' q$ L4 ?) D1:1:1" day_second);    4 N& T6 h; p7 o+ H2 h$ \
  -> 1997-12-30 22:58:59   
' H6 G" P) B8 {" p5 Bmysql> select date_add("1998-01-01 00:00:00", interval "-1
  `3 C2 n% [9 T! w1 D! o8 ^10" day_hour);  , q2 t) V# i* ]: P1 W
  -> 1997-12-30 14:00:00    $ Q1 d; o+ c" J! k  K
mysql> select date_sub("1998-01-02", interval 31 day);   
# n) [# m2 x: _  -> 1997-12-02   
- r6 y- g$ ]1 W: q& [mysql> select extract(year from "1999-07-02");   
3 M  Z3 L8 e9 C- L  -> 1999    ( b. V( C: H% V; g" ^: m
mysql> select extract(year_month from "1999-07-02
3 C' i. [$ P; g2 l7 y$ H01:02:03");   
) M7 Q; e3 P9 u5 P0 ?' c) r' o  -> 199907    : L6 e  \/ m: Q, w1 o9 \
mysql> select extract(day_minute from "1999-07-02
8 O/ @5 W, @: U  p/ s/ i01:02:03");    / w! f. K* s1 [  D, {" w7 M+ B
  -> 20102   
( G7 ~) A" D/ \) b' `+ k ; F( j$ u6 S! u0 x* b' |0 q& Z
to_days(date)    & [% |5 t! M" b) A7 E$ p+ m
返回日期date是西元0年至今多少天(不计算1582年以前)  * g* p0 n1 w! ?0 G; J
mysql> select to_days(950501);   
+ s1 |6 @) w' T8 _% m- h& B& R. _# v  -> 728779    7 Z0 c/ b7 O  w' O) R( a
mysql> select to_days('1997-10-07');   
& Z4 H6 p9 Z* R  -> 729669   
  R9 N+ k7 A9 ?; l" M 1 l7 ]1 H5 }( ]/ U6 U
from_days(n)    ) K' P" E: d8 N/ Q5 t4 B/ d* R- Y
 给出西元0年至今多少天返回date值(不计算1582年以前)   
! {' L' w6 e3 Q' ^  V! Z7 E( I+ w0 `mysql> select from_days(729669);    ( c. b9 G' J. `' V5 o) R
  -> '1997-10-07'   
- `9 u8 Y7 D! z: \7 m0 m + C: q0 m- G2 z4 q5 u1 |
date_format(date,format)   
; I- s8 L. T/ M2 G. t 根据format字符串格式化date值  
) P. s; m8 Z. _ (在format字符串中可用标志符:  
8 r* j$ l! l, y" y3 O %m 月名字(january……december)    1 w1 P' q& b- k) h! B
 %w 星期名字(sunday……saturday)   
- U8 D9 e, I8 {! @  k1 g5 U1 i. \9 `3 j %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)   
7 l" q; \" _8 y1 ]. Q1 ~( p %y 年, 数字, 4 位   
4 \2 ^  o( x% X( ]" v2 ~5 A' R %y 年, 数字, 2 位   
+ a5 h8 a# i# O$ k$ s- G; Q %a 缩写的星期名字(sun……sat)    3 |: p. j, ~1 b
 %d 月份中的天数, 数字(00……31)    - r5 i. U; ]6 \8 l
 %e 月份中的天数, 数字(0……31)   
. J  D1 ]2 Z2 |/ a7 X, S* n %m 月, 数字(01……12)    . X4 D* S/ E# r6 c9 H& L6 w
 %c 月, 数字(1……12)    ; e* Y0 g5 C9 k& y. w
 %b 缩写的月份名字(jan……dec)    8 \. [/ H/ J. `. M" W/ X, c
 %j 一年中的天数(001……366)   
1 _& o' s0 ]% C$ ` %h 小时(00……23)   
0 \/ ^& R" o: Z) P! W; i" v  r %k 小时(0……23)   
% m: i* c3 U& H: \0 d5 T %h 小时(01……12)    0 u& N  _2 i9 N) h0 H( }  Z
 %i 小时(01……12)   
: Z# v+ t0 x  j% m, q5 Z %l 小时(1……12)   
2 [+ J1 X2 X# p( z %i 分钟, 数字(00……59)   
# K, N3 C0 R5 Z %r 时间,12 小时(hh:mm:ss [ap]m)   
2 M6 J1 |9 X  X( l5 ~  j+ C %t 时间,24 小时(hh:mm:ss)    0 z) X4 H& s% C* d
 %s 秒(00……59)    / F5 i9 E/ m$ t9 b: C3 ?: y/ g- Z
 %s 秒(00……59)   
' u' Q3 v+ P. y' J. k3 Y. i: F8 u) P %p am或pm   
% y+ q- [7 }: {; \9 n) K! J2 K. n %w 一个星期中的天数(0=sunday ……6=saturday )    ! J/ N! ?9 J# g( o6 ?
 %u 星期(0……52), 这里星期天是星期的第一天   
1 y+ i: x/ p: c6 A$ s) ?% i5 E %u 星期(0……52), 这里星期一是星期的第一天   
$ D* ?# m' b& m- C$ Y+ j %% 字符% )  
9 g3 [3 {, O/ j; q. k4 v7 Tmysql> select date_format('1997-10-04 22:23:00','%w %m %  i% C8 ]" K: G; ^1 w( p
y');   
$ M( M( J4 B8 i) `9 o, {  -> 'saturday october 1997'    * K' w+ i, Q2 T! H% h5 h- d% D
mysql> select date_format('1997-10-04 22:23:00','%h:%i:%
/ R7 v* p# s' N1 {5 fs');   
% C; F3 g6 y  P1 i; O; @- y; h  -> '22:23:00'      ^1 `: ^6 N* N2 `6 O+ ]' ~" V& P
mysql> select date_format('1997-10-04 22:23:00','%d %y %a
( i& y8 W3 Y* j' t3 U3 x%d %m %b %j');    . M$ [$ C$ k+ _7 H/ D, e3 l
  -> '4th 97 sat 04 10 oct 277'   
( i0 `4 d, I/ \; {' k# Fmysql> select date_format('1997-10-04 22:23:00','%h %k %i/ V, }$ L+ y0 J' J  K! l. j1 j
%r %t %s %w');    2 g" o7 \+ c" [9 }
  -> '22 22 10 10:23:00 pm 22:23:00 00 6'   
0 Y4 q& v% l. A& `
. O0 d$ n; D$ |+ ?time_format(time,format)  
3 L4 E( u& y8 J' U5 Z" {" W2 ~* W1 O/ P 和date_format()类似,但time_format只处理小时、分钟和秒(其4 s+ H) m. h: U! W8 T& T3 J8 |( ?
余符号产生一个null值或0)  7 s# J* ~! {( w5 `2 M/ ~8 f& a

9 Z, |; V# T; t/ k' @- L2 qcurdate()     " {7 x  g& u7 @* H: [5 j$ R( M
current_date()  % m& E5 |1 w  ~5 y6 g5 \3 S
 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所4 b! V4 s" Z# |1 r, `; n1 j  f
处上下文是字符串或数字)    & c, d; W8 T+ }& ~6 K' {
mysql> select curdate();    2 b1 H+ |1 }1 ^8 A  P6 d4 C% u2 Z! q
  -> '1997-12-15'   
4 A+ l0 a+ ^  q* u9 n4 T/ n8 Kmysql> select curdate() + 0;    $ `, f1 A0 x7 d
  -> 19971215   
, p7 F7 C/ o* v
6 S! W' Y0 u/ Z/ hcurtime()    6 q' K% B. T- q
current_time()  + S' R3 @! t1 g4 V$ W4 S+ E8 e
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上
/ w* f8 A& r* ^% O7 \下文是字符串或数字)      
7 h* q6 E. n1 q2 }mysql> select curtime();    ! y/ `6 g/ F- R4 p
  -> '23:50:26'   
8 q2 ?: m# F. ^* }$ }+ |$ w- i0 [3 L( omysql> select curtime() + 0;   
: x2 ^" _% o& @0 M4 N; m( w4 ~. S( e  -> 235026    & ?( {( b* p" U" e
6 {* C9 h; [' c. }' g
now()    
1 _+ G0 o! R$ y; \sysdate()    5 Z7 N! K0 j2 y" H
current_timestamp()  $ t( _/ F, q0 a
 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期8 ^7 X% [& m5 t
时间(根据返回值所处上下文是字符串或数字)     7 K6 I5 h' e, }" K5 |  r
mysql> select now();   
4 D% L3 [6 t5 \  -> '1997-12-15 23:50:26'    ) V4 H+ N  r8 n0 X6 z
mysql> select now() + 0;   
  ]% F% _4 c* f  -> 19971215235026   
+ o# s2 }+ O, ~$ R' \. s
; f  D6 Q! Z, x1 r; dunix_timestamp()    9 a( |0 Y& l9 H1 u
unix_timestamp(date)   
1 o% Q6 \8 s8 T) T1 C! ]返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒% P& A1 q1 E7 e: W1 l) r8 m, q: S& M
数,date默认值为当前时间)  ) E  Q* h% c* X( i& I
mysql> select unix_timestamp();    ; o2 K1 G1 @5 w& @, c
  -> 882226357   
% C6 k! x7 o) S3 A9 ]3 rmysql> select unix_timestamp('1997-10-04 22:23:00');    . I% C/ V) C. f4 y4 [! r- R
  -> 875996580   
: O7 `. [6 ?& \% T  o9 }5 B# L0 n( T
0 `' c+ i3 [) M4 V4 @' `from_unixtime(unix_timestamp)   
! S* b0 _! h5 l6 ~以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的
: i5 a7 g/ H. S4 a, y值(根据返回值所处上下文是字符串或数字)     
+ `8 N4 w" k% l, |* ^" {  w+ V- w7 nmysql> select from_unixtime(875996580);    * m, [/ m( M6 b; H
  -> '1997-10-04 22:23:00'    ' k( H- I4 k/ q, U8 R
mysql> select from_unixtime(875996580) + 0;   
) g1 Q6 X" S- x0 [0 B  -> 19971004222300    5 g2 E+ g5 Z/ b8 c) D

1 ^. h5 ]- x" L, J. C' Q5 Sfrom_unixtime(unix_timestamp,format)    " s( f/ L( h  w" }2 H/ j0 n
以format字符串格式返回时间戳的值  
1 c7 l! }1 K) k- z  Jmysql> select from_unixtime(unix_timestamp(),'%y %d %m %# |  p- |: T7 j1 F: r( o
h:%i:%s %x');    9 _# Z2 c9 \1 o2 y
  -> '1997 23rd december 03:43:30 x'    ' z' q9 `; a% k

. n$ n* H' M+ `9 e- ?& E, Qsec_to_time(seconds)   
0 X1 G7 O+ y: H4 x以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     6 Z) D* Y" @. }& L9 h# @
mysql> select sec_to_time(2378);   
! c( J- p1 I8 N/ I$ c  -> '00:39:38'   
, _' i3 T; ]6 T5 Lmysql> select sec_to_time(2378) + 0;    ! Z4 k8 G9 O% ?. ~7 j# r5 O2 K
  -> 3938   
* f$ z7 c4 [" |3 u0 ` ! r8 a, M- }- y' h7 M+ Y
time_to_sec(time)   
  ]( a' b5 I6 j$ x0 r返回time值有多少秒   
, o: H/ ?; k$ x7 B& nmysql> select time_to_sec('22:23:00');   
  ?$ I, `, J; r) f7 T  -> 80580    - k' o2 M8 W6 C! X. A
mysql> select time_to_sec('00:39:38');   
/ Z% {  X- M* o5 Y) r  -> 2378
. d/ H& j, w5 }1 b8 `# C0 m 3 G" r3 C& Z" R9 }' q
转换函数
4 `3 O/ j8 Z% \) ucast
2 C% [' L7 V' E7 s# {3 ^! \2 ]! y用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]
4 _! [6 _* z/ Y7 Q实例:select cast(a as unsigned) as b from cardserver where order by b desc;2 W5 x# W* f1 p. s5 K/ G9 H
convert:5 B: k: T1 b" M2 |7 F
用法:convert(字段,数据类型)
4 C* c8 a' {# m% E& G0 c实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
/ h) A$ e9 ?& h- ^, O; g
回复

使用道具 举报

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

本版积分规则

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