找回密码
 立即注册
查看: 2510|回复: 0
打印 上一主题 下一主题

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数
' u5 \8 f1 o3 T$ s1 v; mascii(str)   
: @3 t' ~1 _) I+ e( }6 M返回字符串str的第一个字符的ascii值(str是空串时返回0)  2 I% }8 E3 L3 B; r
mysql> select ascii('2');  
7 N0 L  H9 G7 \' d  -> 50  + m, s: _% Q2 R, L! n5 ?! i- M
mysql> select ascii(2);  1 G" v" N. \* `& {- v
  -> 50  
, C. l8 N# E0 ]( N8 @mysql> select ascii('dete');  
2 m5 L( C1 {% y8 j) C  -> 100

6 Z: e) C" U( iord(str)   . i' j1 z/ K& Q) R8 B5 {! a
如果字符串str句首是单字节返回与ascii()函数返回的相同值。
: W5 @1 w# _. B9 p* X; c* n
/ l/ `$ X% ~. ~6 s- D如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  
: _9 J4 v. b/ N0 y# {9 w. Omysql> select ord('2');  
9 G/ Z5 n: F  d: B3 t; j* D& ~: D  -> 50  ( y$ S4 z! r4 E! O! m" Z' J9 G# L
     M1 S) [1 i2 T3 y2 A/ X
conv(n,from_base,to_base)   
9 |# d# h3 [6 w' U$ h4 ^) O对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  # U7 Y2 \2 E( u6 p0 Q
mysql> select conv("a",16,2);  ' O# ^2 v' I0 o2 \
  -> '1010' . Y4 ?& S- u$ f: X- ~  W
mysql> select conv("6e",18,8);  
/ t5 _7 w& c% `1 \" u* H2 S  -> '172'
" ?7 t* B0 [: b8 l" Y* @mysql> select conv(-17,10,-18);  
2 F) @0 `) p7 o8 q  -> '-h'
) _4 T  }7 ]* [) Lmysql> select conv(10+"10"+'10'+0xa,10,10);    N. D7 v$ M$ a5 Y
  -> '40' 0 w3 l" V! J0 t
   ; x% [1 R) }3 M
bin(n)   * l7 {* o( V3 }# w) H
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
9 R4 g  W# O' W7 B. h' _mysql> select bin(12);  
! S" j/ [8 A! V( ^8 J  -> '1100' / j( g. W. l: C; d, C2 Y. u$ {
* k/ {# D/ L" }. ]5 g
oct(n)   
  T5 @3 f9 c$ N& \$ s+ |, @. O把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  
& {5 J! R/ a* U) imysql> select oct(12);  6 ?. B5 i" t! I0 A9 V$ f3 B
  -> '14' # ~' A/ D4 {: n: a
   
, b( t$ X+ r; P3 D. q  Ehex(n)   % v  z" z4 @+ L
把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  ' y+ R& G8 G2 w! h
mysql> select hex(255);  % t/ w, p+ n. V) R5 c4 f* M. c
  -> 'ff' # F# ^, }. V4 W* _
   / ^- _3 ~- Y  j$ y# t0 \
char(n,...)   5 q# E" ?$ k7 u# Q! ]& C
返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   
5 f% O, A, E" v" @/ h4 {mysql> select char(77,121,83,81,'76');  
+ M; F5 C0 U$ U0 I- N  -> 'mysql' ' t( r. g# A! X* a: l+ T" Y& _
mysql> select char(77,77.3,'77.3');  
4 C  |, z; a, M5 v2 U  -> 'mmm'
9 c+ j) f* d5 Z# N% ^, e   / S( ]! |( ^, q+ ^7 t
concat(str1,str2,...)  
3 M/ a% G/ W; n0 H$ q+ _把参数连成一个长字符串并返回(任何参数是null时返回null)  
3 G5 h& C. T5 L" \. k; smysql> select concat('my', 's', 'ql');  
. B/ A) z$ ~7 I! j- r7 n5 d  -> 'mysql'
, F, |2 O) R% T# Fmysql> select concat('my', null, 'ql');  
4 E% y3 G" p! V6 ^7 t7 p' u' H* N  -> null
2 ^- j4 \. d3 g$ L! M% E* \mysql> select concat(14.3);  
1 y$ z. X8 x8 C5 O  -> '14.3'
9 G3 z( u$ f4 \( e! D7 p
: I& H0 e+ T4 Ylength(str)   + b1 [% `1 m+ S' J
octet_length(str)  # C6 y! y. u7 ?& R* A; K# _2 R
char_length(str)  1 F" M( ?& U3 q' ~( d/ b# B
character_length(str)  , h8 E7 X3 t: G* ?4 B# r7 J
返回字符串str的长度(对于多字节字符char_length仅计算一次)) Y) q4 s3 c3 y" A
mysql> select length('text');  
0 S  E* _/ X% |) i& ?" W( ~! C  -> 4  . I! _; x' ]7 M
mysql> select octet_length('text');  
5 @& x; d) Y) J  -> 4  
. M! ]' O+ S' _3 ~0 z/ \8 Z $ E* L& y. C, J9 R% v+ w
locate(substr,str)   & |/ I- e, r% T  L8 s. f
position(substr in str)   , n1 V7 \. @& [4 r. L: k
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
# R* w6 I2 L" L; X% s7 ymysql> select locate('bar', 'foobarbar');  
3 y0 W" m$ ~$ \+ d  -> 4  
' Z6 ~, B  e% z  g9 zmysql> select locate('xbar', 'foobar');  
- Y/ q4 C& N( H7 ~1 T  -> 0  5 _0 Q1 ~. }# F' G1 W
    ' W' E7 t1 o' _
locate(substr,str,pos)
+ f: J, Y5 t) L; ~' @9 _0 k+ A返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
* P3 c7 H) {( A  v; {1 Vmysql> select locate('bar', 'foobarbar',5);  5 q- r! }3 |) j. x% ^
  -> 7  7 k& S  m7 q+ l7 q# |9 n0 h7 J

, n+ Y" ~" g4 D- m; dinstr(str,substr)   - {: Z& j$ p. e; F3 I7 I& p
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
" S1 r! n) {- N& l# v8 N! f3 [  s5 ]: Ymysql> select instr('foobarbar', 'bar');  9 V; ]3 h, L) [9 V+ J6 C
  -> 4  8 L& n6 F2 D0 i3 a. T) \8 O
mysql> select instr('xbar', 'foobar');  ) B" t6 b0 J+ l+ `" |4 S- g
  -> 0   
" z: I/ t  \4 {* d) M
2 R; b3 H' B2 z, q# [lpad(str,len,padstr)   
8 Y# g# e: D- ^: t7 A2 O/ L0 o用字符串padstr填补str左端直到字串长度为len并返回  9 Z: I) ]% c6 W; @! P6 X
mysql> select lpad('hi',4,'??');  . N! m7 w6 O: [& M) r. d
  -> '??hi' , g6 C/ ~4 t/ u. Q9 M0 R
     T9 P6 ?) \0 ]% u
rpad(str,len,padstr)   ! P( ~& G2 m2 O2 H
用字符串padstr填补str右端直到字串长度为len并返回  8 X% f: i0 ~! F1 ^1 y3 [' E, d
mysql> select rpad('hi',5,'?');  - a& @  J# G1 j$ d* M+ c
  -> 'hi???' 6 X% b, `, H- I2 M& y# v  p

: G# ?6 d( X% f2 a  ?left(str,len)   8 K  q* L* X( ~" P  U
返回字符串str的左端len个字符  
+ @7 ]2 [" m& K' Pmysql> select left('foobarbar', 5);  
! J% @9 O4 Y& c% g* W( V  -> 'fooba'
; ~( J( j2 ]0 j& w: ^! k) c; R
6 Z" Y1 \* M. @. c0 {right(str,len)   
8 G' ~* K9 v$ E! n3 e返回字符串str的右端len个字符   
5 f) ?' g" D* _( h* k6 g. Jmysql> select right('foobarbar', 4);  
8 ]' X0 t3 U( a5 z% `6 J  -> 'rbar'
1 g. y% @# Y! @. s$ t% t , p0 c) R; B  X
substring(str,pos,len)   
1 Y( n. M: I4 wsubstring(str from pos for len)   
0 b+ X; n, K8 o) s( o! Z" mmid(str,pos,len)   
- [: Q; j9 M5 z* k/ J返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  2 M" h; f! Y$ m2 k' Z" t+ H: Y9 b5 `
  -> 'ratica' ' s% U; Y" C# [% @$ c8 N

7 v, J( X+ y, I8 W/ {1 Nsubstring(str,pos)   # w( a4 e7 `6 s: }* U: ~, i( y
substring(str from pos)   ( Z& t# R; `) l7 X. r
返回字符串str的位置pos起的一个子串  
" R7 S' V% a# O; A/ Xmysql> select substring('quadratically',5);  
' [3 r! ]& T# N; v, L  -> 'ratically' + o* K& x* ^& L6 X2 ^, s
mysql> select substring('foobarbar' from 4);  - U9 O5 Y7 a4 |
  -> 'barbar' 2 ]4 l: {3 I! G( u
6 v* R3 Q! f" A# c
substring_index(str,delim,count)   " X7 y1 U  f  ]1 U8 c
返回从字符串str的第count个出现的分隔符delim之后的子串/ ^+ U' H+ v$ ?4 ^( ^! ^9 t
(count为正数时返回左端,否则返回右端子串)  7 K; t  }  a. {- T: J6 o
mysql> select substring_index('www.mysql.com', '.', 2);  
9 ^% i& q" `, L: ^  -> 'www.mysql'
* ^( M' t9 T% p5 W" amysql> select substring_index('www.mysql.com', '.', -2);  
2 C2 O/ ~  J& a9 Q  -> 'mysql.com'
: \+ h( D4 f' C- Y6 H: `3 q
# E& o2 W+ E! P7 H9 cltrim(str)   0 A. `* O& y" c! R6 w4 p
返回删除了左空格的字符串str  9 N. V& [- Y" V3 ~2 ?; V2 W; v- |5 J
mysql> select ltrim('  barbar');  ) D) h( J% @2 }! o) N7 D* K7 z
  -> 'barbar'
8 f# E! v1 {9 l& R6 z: \, B   e, z3 V# U3 k; H" N8 w3 m$ M2 U
rtrim(str)   ( e; Y3 ^0 S! j6 ?+ ^7 o* J- q# L
返回删除了右空格的字符串str  
) R7 L0 b1 W+ C2 B: jmysql> select rtrim('barbar   ');  ( O) K+ J% n3 Y5 |0 D
  -> 'barbar' + X0 H3 v' ?2 Y" w
4 L$ `# v1 u) A) L: s; N5 ?# C
trim([[both | leading | trailing] [remstr] from] str)   ! m$ [! f5 J* @0 u
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  + s2 [2 S( p# g
mysql> select trim('  bar   ');  
8 p+ L8 x" {/ ]. O$ ?) H0 \8 ]  -> 'bar' 0 R) d7 L3 j+ n& W0 B% \! [
mysql> select trim(leading 'x' from 'xxxbarxxx');  
: v4 l' t% w8 J0 J$ D( [  -> 'barxxx' * }  J3 ?/ E+ t3 o' w7 X& U
mysql> select trim(both 'x' from 'xxxbarxxx');  ) y  P7 T7 M( n9 v; y/ d
  -> 'bar' 8 ?& y5 g( w; K3 P. j
mysql> select trim(trailing 'xyz' from 'barxxyz');  ( Q& U* t/ a6 V7 C& F' \
  -> 'barx' 7 \0 z& j% p5 F7 `0 l$ f  ?

+ @6 n7 G3 }8 E& y% ^5 Lsoundex(str)   
7 k4 o" P- ]( f, x. o: F3 o! N3 d返回str的一个同音字符串(听起来“大致相同”字符串有相同的
1 h. u" ]% Y* Y4 W% W同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  
- X4 |: a6 B" }; W) ~) M& f. i5 Kmysql> select soundex('hello');  
2 V# z8 b( D8 _) L( ^. L  -> 'h400' " |( N. d, u$ r+ o% v8 \7 R: \3 z
mysql> select soundex('quadratically');  " Y! }8 r2 M! p- W" b) x" A
  -> 'q36324' . F( O# z: P! e5 X
   
; @8 Y& G9 c% d, [1 G0 `* W0 Wspace(n)   ; X) p( l9 `$ D/ F0 n. z! e7 K
返回由n个空格字符组成的一个字符串  
: ]) H& t  ]7 y  k. a& y+ x* nmysql> select space(6);  7 v7 i! @- o" ~" z& ^5 [
  -> '      ' ' C+ P) Q0 u$ k- ]+ w
   
/ b, A5 r: H8 l4 {" Qreplace(str,from_str,to_str)   ) e. m* @% R2 Q4 p
用字符串to_str替换字符串str中的子串from_str并返回  ( J4 w/ S) X, v5 b9 j1 ^
mysql> select replace('www.mysql.com', 'w', 'ww');  * D  g# u& Z7 b6 U
  -> 'wwwwww.mysql.com'
! |  ^- K  _# y& K1 w; d . s% d# f( G2 X% P% m
repeat(str,count)     b7 ?8 a( x/ O" W9 l
返回由count个字符串str连成的一个字符串(任何参数为null时
! P5 T# s, N& x返回null,count<=0时返回一个空字符串)  $ Q2 l1 D6 V0 ~$ i
mysql> select repeat('mysql', 3);  
% j/ x& d, Y7 n) F' \5 W  -> 'mysqlmysqlmysql'
, R! v- b8 x4 f* t1 Z5 p   
! N1 ^# V- e6 V( \reverse(str)   : b( e: ^; o% y* Y. _
颠倒字符串str的字符顺序并返回  
' @4 [( S: U1 }  `0 C/ d/ Vmysql> select reverse('abc');  
6 `2 t% Y3 `  ?, e0 G  -> 'cba' ' h6 M1 w% c7 [: x
# i' K2 J  ^- H" \) t0 J
insert(str,pos,len,newstr)   
: ?2 K. Q% \8 p9 o把字符串str由位置pos起len个字符长的子串替换为字符串
7 W( k% p0 ]- \0 l8 wnewstr并返回  5 {6 O% p# W  D1 A# \
mysql> select insert('quadratic', 3, 4, 'what');  ' D" L  f5 R, k3 a$ V' e
  -> 'quwhattic' - h* @9 o, ~! K8 o0 P1 z

0 \9 X, [% F! J: Qelt(n,str1,str2,str3,...)   
$ ^$ A0 K% n+ `4 l, r! h6 ?4 A返回第n个字符串(n小于1或大于参数个数返回null)  
# B& M9 k- t, w) y4 jmysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  9 @% U  T/ [1 q  o
  -> 'ej'
5 l- k' @/ ^5 k& _4 tmysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  8 r# E% P  X/ s' J1 d& H
  -> 'foo'
0 D) U" t# r) u" b
0 F" [5 r, U2 A* z: Ufield(str,str1,str2,str3,...)   . j0 `- e) ~4 |6 y4 }$ ^$ \) y3 T
返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
* d. a/ ?, i2 i1 C; ]& z" Nmysql> select field('ej', 'hej', 'ej', 'heja', 'hej',9 D0 x! P3 r4 v# D6 o
'foo');  0 P# _$ G& t8 r+ M: w* n
  -> 2  
2 N8 u/ z4 n% t5 lmysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
" O& r% ^$ x8 F3 Z'foo');  
" q: \: V0 y( d# W+ @/ [0 M  -> 0    K& X' b- _, V. k6 w

. u. N2 Q# [8 l1 {find_in_set(str,strlist)   , H3 g( Z5 m5 G& ?+ s$ T
返回str在字符串集strlist中的序号(任何参数是null则返回
! w, ~1 n. ^2 t0 f" m* cnull,如果str没找到返回0,参数1包含","时工作异常)  : d. F3 ?9 N! }4 h" Z
mysql> select find_in_set('b','a,b,c,d');  
7 D! B+ d6 F+ l  P2 H  -> 2  
& O" F$ f  @9 i" d7 x   * _1 I) x% S) D- M
make_set(bits,str1,str2,...)  
- }$ F+ q; c. U5 i把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
% a# M( ?  N, W  T% v位置的字串选入字串集并返回(null串不添加到结果中)  , G0 h$ M+ z9 @; ~
mysql> select make_set(1,'a','b','c');  
  u, n5 a; o' N, m, J  -> 'a' , m1 m7 }8 k& t  ^9 _. x
mysql> select make_set(1 | 4,'hello','nice','world');  ( [8 h% ]6 V" i0 ?) E3 B5 a. K  |
  -> 'hello,world' 1 ^; @" m; e6 h
mysql> select make_set(0,'a','b','c');  
! L3 ~9 I" a( A5 `  r& a) ]- ]+ u  -> '' 5 ]3 }1 W/ R# o! v  p; H

" }# s' ~" ^3 r8 p7 Eexport_set(bits,on,off,[separator,[number_of_bits]])   * T! H! a# ]# H6 \0 k, T1 ?! r) H
按bits排列字符串集,只有当位等于1时插入字串on,否则插入
- r1 N% i+ Z/ ?  i- B1 Doff(separator默认值",",number_of_bits参数使用时长度不足补0
0 a% s$ ?9 g$ X6 i0 R而过长截断)   & }" b2 l6 n4 L
mysql> select export_set(5,'y','n',',',4)  
# r) h5 ]/ g; R8 }  -> y,n,y,n   
% [; h. m# U6 \! F" w ( M6 u8 r, A2 K0 A  K- W
lcase(str)  
" f- b3 f  p. e6 V; Dlower(str)   
" o2 m. E' X& c$ B3 {" ^返回小写的字符串str  , m* P& |! Z6 T- U2 @( {
mysql> select lcase('quadratically');  
+ t  S& ]: I+ H* I  -> 'quadratically'
* p" u6 u* e8 i# [3 a7 [7 j   
0 q  o* D$ l: `/ u4 E" mucase(str)   / \1 \# Z9 K" {: z% Q7 O4 y
upper(str)  
% H) l* N* j# V, i2 s& N返回大写的字符串str  ( G8 x" }* ~1 n6 N, e
mysql> select ucase('quadratically');  5 [! Q& D- e1 A5 m6 N
  -> 'quadratically'
' b. o4 N, L4 g% v( E( H: n " p; ^! }8 t. ]+ \4 B
load_file(file_name)   
1 \7 ~; f+ S) p- P" _9 A4 c读入文件并且作为一个字符串返回文件内容(文件无法找到,路径
# z9 i! X- |8 u& X% ?' U9 ]不完整,没有权限,长度大于max_allowed_packet会返回null)  ; w7 S4 d* X0 q
mysql> update table_name set blob_column=load_file
9 Q3 g/ O0 d6 ~: }. h7 |("/tmp/picture") where id=1;  / z6 l) M3 t, B& ]- H, }
$ T$ d) K9 |1 F: ~/ {
2、数学函数' y) A2 N7 Z  ^. v
abs(n) . ^6 B0 n+ @  W$ U+ J
返回n的绝对值  
6 s! ~4 R5 E  L# hmysql> select abs(2);   
. m* Z6 h1 `  K1 o8 U6 o, F  -> 2    3 M; t+ @) ^# H6 d7 `
mysql> select abs(-32);   
; @) h1 j/ p& ]7 F5 G, j  -> 32   
5 s- K3 p1 g1 ^0 Z/ i* s   ! t) {. r6 c" {# s. L1 x) x
sign(n)  7 ?; X1 _/ {6 d& B& c4 y; k7 t" b
返回参数的符号(为-1、0或1)  " F6 g0 f( M: l  y9 Z- t
mysql> select sign(-32);   
7 p: d; ]! c- K! }7 n. K+ e! i  -> -1   
) @+ c2 Y7 z* Q% j$ D: Qmysql> select sign(0);    . A1 Y( X/ k! ?! t  C; Z
  -> 0    ( p. c. K$ [/ z' ?; o
mysql> select sign(234);   
' l: ]+ E2 m! ~* R  -> 1    ; b$ Y( u( Z. r9 e$ _

8 l2 X+ J* A8 imod(n,m)    0 L( i* E. z& u& r/ _
取模运算,返回n被m除的余数(同%操作符)   
) i# g7 a0 L* P' {( Pmysql> select mod(234, 10);   
! f4 a9 X3 G- L& q7 h! Y- c  -> 4   
/ q  o' Y3 J5 x/ C" Z3 X: i9 kmysql> select 234 % 10;   
3 B4 K7 d9 k% d6 i% ?$ Q  Q# |  -> 4    / d  H# ^2 U+ F% w
mysql> select mod(29,9);    6 s2 z9 J% D, ~4 u. T& L6 `
  -> 2   
' @+ e: l4 z" q$ C 9 H& _" B$ P' F0 }
floor(n)  
2 B. @7 a5 X9 \5 w0 M返回不大于n的最大整数值  
# h5 t+ n7 t3 lmysql> select floor(1.23);    5 m: m2 S- u. [  O$ c
  -> 1    / E: y& S( s# l3 x* U6 O5 y" h" |" e
mysql> select floor(-1.23);   
3 |9 ]- _( R  v9 V% z5 o2 W- t' ?! a  -> -2   
9 T  o2 l2 e( `# r, X' a) t 7 W/ l. W! [3 G6 ~( u. M# \
ceiling(n)  7 y0 o' B' f7 Y# B
返回不小于n的最小整数值  
9 T/ l: N  P1 c/ A, H3 I: Ymysql> select ceiling(1.23);    ; h7 @! r, S' Q, P) P/ p+ l0 F
  -> 2   
9 y9 U8 ?! c* v2 k/ fmysql> select ceiling(-1.23);    + v5 u% f' a1 ~7 ?6 y! r' l
  -> -1    : y; j. m. f6 w  K
( h5 m% L" k5 R0 }3 g+ j) ~9 z3 N
round(n,d)  
/ X& G7 k$ ]) P' F* }; C返回n的四舍五入值,保留d位小数(d的默认值为0)  
) ]2 ~& q7 B: f$ B# \+ r- K2 v/ Zmysql> select round(-1.23);   
3 n+ Z& z3 \: Y3 c) V: U0 C% y  -> -1    % E+ ~' Q! r; L2 y& I
mysql> select round(-1.58);    3 f% _2 Q9 F% }9 g; {
  -> -2    9 h0 A9 o, L. p: ~, D6 h3 G
mysql> select round(1.58);    6 _8 H' x/ W2 l8 a
  -> 2    2 _* q# D) `9 p8 P5 L
mysql> select round(1.298, 1);    * Z" `7 }2 z" R' d, m
  -> 1.3   
% c" r( M2 G+ @6 w5 j" g. T/ vmysql> select round(1.298, 0);    , D. A& B5 _! n( x& z
  -> 1    " b( c+ f: q& s  [; |; F$ @

1 U* [; ?& P3 x! xexp(n)  ( ?& L  s- e( P0 i1 R3 n" Y/ N
返回值e的n次方(自然对数的底)  
. ?$ Y! \4 f- g7 Lmysql> select exp(2);   
0 G1 A% q+ F2 Z  -> 7.389056   
- z; L- ^4 G9 U# _  Tmysql> select exp(-2);   
4 ^4 l+ ~) n  w; X$ t# y/ @) J  -> 0.135335    5 U, G% q- C2 R( @. U- J
! K4 [" T# ^; c% e: ~
log(n)  
& V0 R" y. k+ U2 _% q3 s返回n的自然对数  
/ ^3 H3 Z* b+ Bmysql> select log(2);    6 u# H- Y6 l, |. {" Q" r( f6 t1 P$ w
  -> 0.693147   
8 h3 D* C+ L( b1 h0 wmysql> select log(-2);    0 T7 j2 |8 \. c0 X$ x
  -> null    6 R) U' e! X, c. q7 x

& a* l3 y% v0 p% H( g0 Blog10(n)  " R7 S9 k. \% Z) I, Y# _. d8 o- }
返回n以10为底的对数  
. d# p8 G+ s% g- }( |  ?+ y7 dmysql> select log10(2);    7 ?$ u4 J8 Q& l. J  @
  -> 0.301030   
: U2 T' Z1 z  h( U& F% `mysql> select log10(100);    : T2 F) l5 D) n+ p
  -> 2.000000    ' s5 _% o+ C( Y9 {7 I
mysql> select log10(-100);   
1 e  {$ }$ }1 T# L) h. _4 s  -> null    9 G  U! P: F8 F4 T* f

6 F# t3 J0 a  m9 w/ c! j$ kpow(x,y)   
5 s6 p% d/ h4 t. P2 V+ kpower(x,y)   
! N# x$ }: }" ^$ N6 K% ~ 返回值x的y次幂  
, f; \  P$ g% M3 V$ Omysql> select pow(2,2);   
" O: w1 r7 Y, y  -> 4.000000    9 u) D8 ]  \: M. J  q( d* \) i
mysql> select pow(2,-2);   
1 Q6 q5 \3 X8 Y4 d  -> 0.250000  , `  z4 R% [. K5 [
7 O$ a  u- X" I; h( p
sqrt(n)  & D$ t+ E$ g- I- s
 返回非负数n的平方根  
: M" K: e; }( C$ t* z' p9 h5 umysql> select sqrt(4);    + m' i+ o2 x# o" y' x* L; I
  -> 2.000000   
6 u, O1 A9 u/ g5 w% U) V0 \mysql> select sqrt(20);   
1 ?2 U. F; ^1 N9 X6 d7 T4 i( I" z  -> 4.472136   
8 W( U& J# R' x5 l
0 q1 h/ o/ ~3 I6 n8 i  m  _pi()    ( N9 E# ~. S7 S& p1 o' g9 N
 返回圆周率   
  Q& Q( v$ t+ |mysql> select pi();   
/ b  L- c& x% L) a! C! t5 o  -> 3.141593    2 g& q0 z4 ]& ?# d' v

4 G6 j9 F( O- d* b2 e' ]/ ccos(n)  
+ _, [" w2 d* g4 O9 t2 @  k1 ` 返回n的余弦值  4 `8 ?* p4 M$ T) l% v4 p
mysql> select cos(pi());  
7 k0 `4 @$ E- c2 q4 Y5 k9 H; `  -> -1.000000   
, D( x  c- L$ K; A# D* Q5 D3 ^ / `7 _, i$ |, e$ e3 T
sin(n)  1 N! E- Z+ z7 ^: x4 S
 返回n的正弦值   2 k7 E6 v# a; R: s: A& F5 q
mysql> select sin(pi());   
6 h+ x; u+ P) r' S4 {  -> 0.000000    ' q+ J' j+ W+ X6 @# X* Z

5 w0 @; W# `- d+ r" z% ~tan(n)  , N& n4 w: G# h5 y% B8 y
返回n的正切值  
' n5 x; f$ Y4 K( H+ @& G# Vmysql> select tan(pi()+1);    7 s3 O' M" f6 x- {
  -> 1.557408   
( S% q6 E  u( N7 U* o# S
3 u/ l: o& d/ Gacos(n)  : U2 [+ A0 r" I2 u7 B! S
 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  
, Q. A# i$ Y& {, a$ Z4 p8 Y, l1 Zmysql> select acos(1);      i' e2 `& e( {$ B
  -> 0.000000   
' J% _5 g3 q* amysql> select acos(1.0001);    6 W( e! [& i$ u, Z
  -> null   
* D* a/ M/ v& @# i( bmysql> select acos(0);    + c. Q! G3 w, \7 d2 z
  -> 1.570796      z( f3 x/ r1 c! |0 ^& V

: m. X8 k' v0 aasin(n)  2 q+ S8 J) f( \* g, ^& {
返回n反正弦值  ' s; _/ t& y6 Z: F7 n
mysql> select asin(0.2);   
& Z" j7 d0 g* q( O/ p  -> 0.201358    - O8 s6 b; G% k5 w  k: x& K) s
mysql> select asin('foo');      X  s+ @2 [) p$ c
  -> 0.000000    / N. V, W1 N7 w* o2 N# E4 U
8 y; Q% X. Z* q. e& n- }9 \
atan(n)  " ?# w% h' A, V4 s- c3 H! I
返回n的反正切值  
1 A0 N9 |& g6 Tmysql> select atan(2);    3 ~( K/ t* ~- S# q
  -> 1.107149   
; b& Y5 \# x" C# ^mysql> select atan(-2);    : x) d- v. E7 C& r
  -> -1.107149   
$ N* b3 J' B: Y4 U2 z  satan2(x,y)    3 I( e0 b7 |6 C1 B2 Z3 h/ \
 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  
# v3 i5 }# b* p' a3 wmysql> select atan(-2,2);    ( d5 D! z( \1 Y$ M( u7 o9 U
  -> -0.785398   
& N2 ]! v+ c9 C) u: f" U# q8 _mysql> select atan(pi(),0);   
0 i" l, l/ u2 j# t6 B- L  -> 1.570796   
, Y7 V/ G! ?" J: J$ b* `  z: ? 1 K- k, [0 d: D! Q* T
cot(n)  $ M- U8 s8 H! v! B
返回x的余切  
, ^9 Q2 |: r6 W( B- T, Z5 M( rmysql> select cot(12);   
# T9 v5 a; |& i8 Y0 K( {; d" p  -> -1.57267341    & ~. g4 G9 S6 I
mysql> select cot(0);   
0 U2 X! W5 x  o) a, c  -> null   
! C9 L( L5 n5 ?2 k6 q6 _3 x1 q - C2 I$ K. k& p: L
rand()  ) `8 v- B, e* A& y! w
rand(n)    / s5 h! x  u5 j* w& `2 }4 E9 M# F
返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值) 0 w7 H) \7 z  m
. a% w+ J' q- V- J
mysql> select rand();    " p$ {' {0 x7 B7 |# J/ G
  -> 0.5925   
/ U5 Y# e$ L) b4 \& Ymysql> select rand(20);    6 ?0 e, O" {& Y% m- i. K/ F
  -> 0.1811   
* \) |. O# E) ?( c; i, f2 u% {mysql> select rand(20);   
4 J* Z+ {' y" \. g  -> 0.1811   
& {, i* }, h! K& @! j' `6 Vmysql> select rand();    # i% k- \( c. Z" v
  -> 0.2079   
( W5 u8 j  {* K5 N  T+ umysql> select rand();   
3 L% E  Z$ M, u9 d' G, g- G: ~3 R  -> 0.7888   
2 d, y5 A; J# I& b/ K: w
" m; o' K; ?% ?3 |6 i7 E$ F! Q" odegrees(n)  & s2 N* j7 u, n, i8 s
把n从弧度变换为角度并返回  4 T" X( M  N- o. F
mysql> select degrees(pi());    ; z  p$ Y: G  b' b! A
  -> 180.000000    ; O5 r; i, x) `" Q3 j* f& e

1 f1 b) k7 o6 H, Qradians(n)
6 A  F9 s0 s# z4 ?7 L+ f把n从角度变换为弧度并返回   " w" p! i# n. }% S6 W
mysql> select radians(90);    5 o( Q$ U4 u+ V, j+ Q( Z1 ^, V+ H
  -> 1.570796   
5 b0 x# E+ Z! L' @1 R2 @8 i" P* A/ Y2 L' C, Q
truncate(n,d)    % W/ c5 {3 D: d) x) F- u
保留数字n的d位小数并返回  
! [1 C9 U. f9 l, j5 A) H* s  w6 Vmysql> select truncate(1.223,1);   
4 Z2 b8 z4 e; ]/ p5 t7 B  -> 1.2    , I& R5 c( V& W9 n' _2 x+ M
mysql> select truncate(1.999,1);   
5 [4 J; c1 O. D  e  -> 1.9   
; ?5 Z& {7 {; p1 u* p& Tmysql> select truncate(1.999,0);   
* L  W& e+ |  g6 y3 ^  -> 1    9 f$ A5 v& b: Q# ]6 G
( b  e# {8 ~7 t! i, E
least(x,y,...)    6 P" _4 y2 Z- ~% A
返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
8 o- M5 c4 v/ i; xmysql> select least(2,0);   
5 Y2 C" A7 m* X" U& p! \  -> 0   
* @! I( M. L1 z' zmysql> select least(34.0,3.0,5.0,767.0);   
5 M& N* O+ K$ [  -> 3.0   
8 J8 k) M" J* u) qmysql> select least("b","a","c");    ' M& v" u- B+ ]
  -> "a"   
9 N5 w/ A) v6 j2 v! p( G " i7 K3 X$ A& T% t0 U
greatest(x,y,...)    ; Y  ?: X6 Q& V+ r- s3 F# w
返回最大值(其余同least())  . |( j" b) _/ \1 r
mysql> select greatest(2,0);   
* y7 R* G$ `. U8 T7 Y  -> 2   
$ y5 n' o% D' }4 A  P2 p4 E) {mysql> select greatest(34.0,3.0,5.0,767.0);   
& |0 U5 |5 E* ^1 `* V& m. u# d' U  -> 767.0    - M. C0 i# n" I9 k$ Z4 O, O- n( g% d" m; B
mysql> select greatest("b","a","c");    , S: q( L: }2 ?( g
  -> "c"     ( {- M8 B' O0 |" n5 g  c  Q; O9 Y

- o  c) w8 S/ T8 G9 Y4 C0 V( E: w3、时期时间函数 3 ~! C' u9 E  `$ ?
dayofweek(date)   
9 D, a" R* g0 m( Z( M返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  & I$ j5 V4 [9 Q8 I. C' ]
mysql> select dayofweek('1998-02-03');    1 `: _2 }3 U4 a; n
  -> 3   
' j8 L# \7 b/ y* J+ ^5 a% C 7 c. d, n/ m8 _* n' d: d, x/ \; q
weekday(date)   
3 v/ b1 l% U, p% }; k返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 $ [: K& z& |, ?) J' k0 y
  : X1 g/ K6 t7 _% f" z
mysql> select weekday('1997-10-04 22:23:00');    ' [; u+ p# r3 n& u7 N
  -> 5   
6 J, S: u4 ?' ~& Q8 p" b6 H, vmysql> select weekday('1997-11-05');   
! ?/ J* x  Y* h/ b9 Q4 e  -> 2   
+ _6 X; c2 \/ T" z4 F
, w- b) b) A; C. Ddayofmonth(date)    
3 S8 i' A9 u- b* v返回date是一月中的第几日(在1到31范围内)    & Q! B' F6 y$ i4 {6 W% T
mysql> select dayofmonth('1998-02-03');   
, q( ]* U3 a  H* @/ p% A1 H  -> 3   
. L1 a* s8 e7 |( Z4 w * c9 B; n9 H0 H3 w2 F# {, e
dayofyear(date)    $ H4 L& z3 S. D% L" A* r: Q/ H
返回date是一年中的第几日(在1到366范围内)    / J7 U& M. g1 P
mysql> select dayofyear('1998-02-03');    ' v; C6 e; L. G9 Z' l
  -> 34    1 _1 e; M. f3 X) F% J
8 \5 N+ F+ V/ E: v9 G3 q5 x
month(date)   
" Y0 ?4 X1 ]8 W返回date中的月份数值   
, I* u1 x$ E) ~3 b# l' ]0 bmysql> select month('1998-02-03');   
: g% B& T9 `( N& q1 F! m" y  -> 2   
9 ]9 L& ~! z/ T/ f. W
) j  O# }3 t8 ]dayname(date)   
/ W/ A) g! |! w" r' G8 Y返回date是星期几(按英文名返回)  & ^" p' B0 ~2 N; t: F
mysql> select dayname("1998-02-05");    * `: g3 `" j8 @
  -> 'thursday'   
' W6 s9 P7 E/ |1 |3 x
) Y) q8 ?2 \5 J1 Fmonthname(date)    $ n& D, ?7 w- V7 V" |
返回date是几月(按英文名返回)  
: J' Q9 V3 T6 l" q( pmysql> select monthname("1998-02-05");   
1 E. ~& p/ |2 {* i  -> 'february'    2 S& V0 \+ L9 \5 z1 K  t
4 C, k$ ]4 ]: N: g4 w
quarter(date)    ! K8 m% d+ s1 z% v! s. ~7 r
返回date是一年的第几个季度   
4 Z; ?0 x1 N3 P7 {5 e+ omysql> select quarter('98-04-01');   
  G# @0 |. z9 O  ~  -> 2    . V8 g- Z& V; c8 ]$ y' Q* Y
+ J) M. i; _! R5 ]) c
week(date,first)   
0 e: M' E  M5 e* \5 Q9 b返回date是一年的第几周(first默认值0,first取值1表示周一是+ L( H' E4 X+ u" v( L
周的开始,0从周日开始)  
) i! o/ Z/ P3 w  f- d1 x8 Q- r' @mysql> select week('1998-02-20');   
, o, R4 N8 x5 y* R" ^: o' U  -> 7    : a) F  H! h# _2 d: B$ @1 _
mysql> select week('1998-02-20',0);    1 A8 G9 n1 ]0 P' q# w" }6 G
  -> 7    3 g) |& z  i5 n. r
mysql> select week('1998-02-20',1);    * V. l" B& @& B/ h  I4 v3 p
  -> 8   
$ y. S% I; T. u2 o( Y; P7 k0 E4 i
- w  Q! @# H, gyear(date)    9 m. l, `+ B+ {' H
返回date的年份(范围在1000到9999)    . z) M4 v, V1 ]" R7 W: I! t
mysql> select year('98-02-03');    ' O4 K4 J$ e( R5 i) t! L: Z- ~6 G8 t
  -> 1998    ) e: O3 q: k- W& `; D
7 v+ `6 o  q, o4 t" C4 r' S
hour(time)    - {( M9 K: y! ^3 V& ^
返回time的小时数(范围是0到23)   $ E. O+ V7 \# Y" y
mysql> select hour('10:05:03');    / c% q8 _0 ^( J+ |1 r; P( g/ J
  -> 10    . G8 E/ ?& I& i. W; O) g. E
- F  _$ u3 B: v$ U. |5 b  v
minute(time)   
& i" E$ T( v7 i5 L3 m9 a  g返回time的分钟数(范围是0到59)    & _7 e+ n* d" Y. m
mysql> select minute('98-02-03 10:05:03');   
4 j8 w% W2 h! [. T& l# a& Z2 ~  -> 5    7 c, V3 [( w2 c) c

% A% C4 [  E; F" [! x* qsecond(time)    ) o4 ~7 x4 n4 g" v) ]
返回time的秒数(范围是0到59)   
9 Y, W3 Q. X; w- p: V* \1 t* ~/ @mysql> select second('10:05:03');   
; g5 g* V- Z  b6 n  -> 3    ! k% K6 q6 h4 l, {8 L/ k1 L

1 T) o) }# d3 N8 P7 O/ Aperiod_add(p,n)    - W- Y2 P* R3 F( P# a
增加n个月到时期p并返回(p的格式yymm或yyyymm)   
0 R% U" J0 J! {$ i( ~! Q. Dmysql> select period_add(9801,2);   
: d8 `& J$ w: z5 O+ J0 Y  -> 199803   
4 m+ A( Q+ M, a- D  Q9 G5 P
2 Y  I  P+ I5 e4 A3 P! C* qperiod_diff(p1,p2)   
# P) X. u0 F0 s5 `9 y返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  2 p; z1 k$ j% C. F: v/ O1 }$ ^
mysql> select period_diff(9802,199703);    ( w- C4 d: k: a0 f3 o5 N: E: Q
  -> 11   
  o- P! Y7 k7 g- {& e' b
; ?6 v7 O; z: K0 {date_add(date,interval expr type)  1 k  o6 z: f1 z
date_sub(date,interval expr type)    - ~2 K6 \( |1 p5 W6 w0 B" {
adddate(date,interval expr type)    3 M- n3 H' J( h( ?
subdate(date,interval expr type)  + F+ M% {5 ?+ [+ D8 B. H
对日期时间进行加减法运算  * U5 P9 E0 J% g% m, J* G+ g9 g
(adddate()和subdate()是date_add()和date_sub()的同义词,也4 e' A9 a8 J  [( l' P% ?
可以用运算符+和-而不是函数  
9 p  I$ \) Y" u5 pdate是一个datetime或date值,expr对date进行加减法的一个表3 ]$ h# [2 ~* H0 y0 y0 k
达式字符串type指明表达式expr应该如何被解释  7 U1 P8 {! J  K# f+ g$ h% e: Q1 S
 [type值 含义 期望的expr格式]:  
5 u  _; }( |$ ~1 z second 秒 seconds   
$ [7 ^% Y- S3 K* R+ u- A: O minute 分钟 minutes      e8 _6 A0 y% n
 hour 时间 hours    8 h! k9 ^# n/ N2 j$ ~/ @2 \
 day 天 days      _8 L$ b) y' G# I0 C! @. Z
 month 月 months   
: X1 P# @! _& j: e year 年 years    . _) }6 o0 i* q* S; S  [7 T: G" g4 H
 minute_second 分钟和秒 "minutes:seconds"    * _) n& r* C6 P& g- u
 hour_minute 小时和分钟 "hours:minutes"   
, D7 j' |! _- [1 I* l  [+ Z day_hour 天和小时 "days hours"    9 r5 X1 K. A5 n4 O+ y6 |  R
 year_month 年和月 "years-months"    2 h& l1 ]6 u) z3 g3 I/ t
 hour_second 小时, 分钟, "hours:minutes:seconds"      O; p. R0 ~9 F; u# m/ I
 day_minute 天, 小时, 分钟 "days hours:minutes"      ]8 z5 Y" P. K/ F1 D
 day_second 天, 小时, 分钟, 秒 "days
6 K( O" {! W, {5 l6 Thours:minutes:seconds" . S+ j( i. C+ r8 y
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个
; l/ s) s) x" ~9 I% ]% x- f* Fdate值,否则结果是一个datetime值)  1 V" i# V: ^$ N, Y& z
 如果type关键词不完整,则mysql从右端取值,day_second因为缺% t( ^; o* I8 c% P. e; o# O
少小时分钟等于minute_second)  " H5 e5 U' b2 I6 p) U/ z
 如果增加month、year_month或year,天数大于结果月份的最大天+ M$ T$ W& \5 A" C- C$ ~! N7 [
数则使用最大天数)   
* Z5 `- G4 Z- X' b, p  Ymysql> select "1997-12-31 23:59:59" + interval 1 second;  
7 |+ J; y8 Q1 b9 @$ _- f
2 [, t2 S* n; x2 G" {/ ~5 C0 Y  -> 1998-01-01 00:00:00    & x  W1 k% g" y# Y) [  R0 v
mysql> select interval 1 day + "1997-12-31";    & a  p: _7 @5 i6 F& M. k3 n
  -> 1998-01-01    * w: l) [* s1 R( C
mysql> select "1998-01-01" - interval 1 second;    ' v! ]: O( }$ H7 F6 H
  -> 1997-12-31 23:59:59    : f; @& B! D  @0 [6 X. ?* w) H
mysql> select date_add("1997-12-31 23:59:59",interval 1" B; k' q  s; d" k8 u- p) N
second);   
: m7 {4 w2 U5 n6 F6 l6 ^  -> 1998-01-01 00:00:00    ! m0 U3 G2 p, @! Y4 A2 d. \
mysql> select date_add("1997-12-31 23:59:59",interval 1
; u0 l& f% V; Y4 U5 O+ b  F5 Vday);   
' \( L9 A5 @% Q6 Q) M  -> 1998-01-01 23:59:59   
0 \6 Z; y$ n& smysql> select date_add("1997-12-31 23:59:59",interval
9 U7 u$ F1 C+ E. t: D& q& E$ x) ["1:1" minute_second);   
) I1 \6 K( D$ K  -> 1998-01-01 00:01:00   
. U* b+ m/ m+ K. z; ~mysql> select date_sub("1998-01-01 00:00:00",interval "14 w/ ~( Z$ q; Z* ~9 n; x# G3 }
1:1:1" day_second);    * |* W& R% }) I+ E2 n
  -> 1997-12-30 22:58:59   
2 R2 ^' U7 w) F+ Vmysql> select date_add("1998-01-01 00:00:00", interval "-14 C# Q# s+ [7 K5 }: c# ^  m
10" day_hour);  3 U. l3 M3 D3 @2 d5 D$ i
  -> 1997-12-30 14:00:00   
) Q! M: {* Z, h2 x0 V1 F( P3 j& Gmysql> select date_sub("1998-01-02", interval 31 day);    . O; w6 R* [; x. r0 i' j# g5 O
  -> 1997-12-02   
- a5 ~) H; ]$ h) v1 m+ n6 ?mysql> select extract(year from "1999-07-02");      T4 G8 X( U8 V6 Q) A8 K# ]
  -> 1999   
5 ]+ J  c1 p: P& Rmysql> select extract(year_month from "1999-07-02
( T$ ]+ j% r( Z3 [01:02:03");    2 D6 B" C/ ^. f  P  J
  -> 199907   
) F& T: _0 E5 @3 e' o* W& smysql> select extract(day_minute from "1999-07-02
6 g) p7 V6 g" c" e# ^  l7 K2 U01:02:03");    ; |- p( w# \9 ~  j, K% d. ?: d
  -> 20102    ( f9 S7 D! h# e$ ~; p- W$ [0 |' f
  f0 ], k5 \: A" W* \
to_days(date)    . ?* n+ i$ w5 P
返回日期date是西元0年至今多少天(不计算1582年以前)  
; U" U& t' Q( e+ o# Smysql> select to_days(950501);   
; ^& `8 c& i2 o' _  W  -> 728779   
# j4 ]% ?, J9 ]; }+ M7 ]  M3 Dmysql> select to_days('1997-10-07');    & F% m8 R( D1 W# y" D; T
  -> 729669   
, |! Z# O" Q, i4 N1 s
9 e( _7 Q/ A$ ~" v' s( Pfrom_days(n)    5 W# E# `2 Z( A7 n, w' b' M
 给出西元0年至今多少天返回date值(不计算1582年以前)   2 u* S- s/ |7 b
mysql> select from_days(729669);    / s/ l* D$ l$ L. A1 P
  -> '1997-10-07'   
; h: \& R- x) n: Q
8 O' ]* q3 f/ v# N9 C6 n  |date_format(date,format)   
/ o' G3 T; V2 k# q& U, b/ X 根据format字符串格式化date值  ( |* n- ^2 r0 F; V
 (在format字符串中可用标志符:  : f5 R' }6 u+ s  `' ?4 ^% |
 %m 月名字(january……december)    ) b- ^* d* D1 E8 k
 %w 星期名字(sunday……saturday)   
' O, v% Z* z/ D %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    ; R8 A+ ?; F8 `( |" V3 l# s
 %y 年, 数字, 4 位   
/ r8 i3 Y: y, S4 h  m! t %y 年, 数字, 2 位   
3 ]8 }1 n1 S. B; ^  L %a 缩写的星期名字(sun……sat)    % u3 c$ ^" `% O# B) ?( b
 %d 月份中的天数, 数字(00……31)   
' k$ q1 ~/ V) ]& K5 L% ] %e 月份中的天数, 数字(0……31)      g2 D* M* s( f% V* Y+ N) n! X0 F
 %m 月, 数字(01……12)    5 P; U7 s  _# O+ q3 ~% n! V
 %c 月, 数字(1……12)    ! q9 L) R: B7 c. b. r$ I) K# S
 %b 缩写的月份名字(jan……dec)    4 B! S( B1 Y' F
 %j 一年中的天数(001……366)   
' t+ z! z3 ]. d %h 小时(00……23)    2 d2 X" P7 z; F5 N: Z* V
 %k 小时(0……23)    8 t6 {! z- y. L9 K2 V
 %h 小时(01……12)    ) @: f' z% I6 U9 @. G% v* x
 %i 小时(01……12)   
$ |! |& I( z' B8 b %l 小时(1……12)   
3 x% @( j9 @& _* C/ w  T %i 分钟, 数字(00……59)   
/ U. G( }! u- n: G %r 时间,12 小时(hh:mm:ss [ap]m)    ' h* E$ T, g* V
 %t 时间,24 小时(hh:mm:ss)    ' q  [( w) h" [, V
 %s 秒(00……59)   
" m6 i' X" p# _3 x) Y: t8 z' S %s 秒(00……59)   
* o6 n6 J4 v6 A) G- L %p am或pm    ! {6 ]7 z" l1 T6 U- Z5 w+ ?" I
 %w 一个星期中的天数(0=sunday ……6=saturday )    7 h' g% Q: ~- c  ?6 P
 %u 星期(0……52), 这里星期天是星期的第一天    2 @# d8 N0 B$ j9 L$ u% ?  _$ v
 %u 星期(0……52), 这里星期一是星期的第一天   
( Y5 c' T' a3 O %% 字符% )  3 t0 }: M, Q, @! j5 Z% w* ]9 q
mysql> select date_format('1997-10-04 22:23:00','%w %m %( p" n0 l- V8 F5 U9 h4 Z3 Q+ O  o
y');    . t) P; e- F5 T' U
  -> 'saturday october 1997'    7 N( D0 q: p  ], h7 p0 q
mysql> select date_format('1997-10-04 22:23:00','%h:%i:%' D6 a; n1 J! u2 C& v. K
s');    ) \+ O. B6 ^+ `, {; L) P
  -> '22:23:00'    * g) I2 G7 t4 w
mysql> select date_format('1997-10-04 22:23:00','%d %y %a9 @. x- d0 d3 O- q
%d %m %b %j');   
5 l4 a$ }7 n5 I. V% {) M$ Q# J  -> '4th 97 sat 04 10 oct 277'    : ^2 \8 ^8 n3 Y2 o  P+ F9 ]; W) X7 N- g
mysql> select date_format('1997-10-04 22:23:00','%h %k %i
2 T8 U, F/ a4 B+ L; U( [& }%r %t %s %w');   
: v1 @' [$ p& \) v: {  -> '22 22 10 10:23:00 pm 22:23:00 00 6'   
3 J; r0 `4 K3 o+ w8 X
, h+ V$ ^" P& i$ {: Jtime_format(time,format)  2 R6 C8 z' l  \' y; R8 v
 和date_format()类似,但time_format只处理小时、分钟和秒(其; T+ h0 q. V8 A' {$ y" S, c
余符号产生一个null值或0)  
: F+ Z1 ]5 u0 X7 R $ e5 ]( j7 u' W
curdate()     : t% O7 n+ |  M" z+ Z
current_date()  8 i, I* a" t7 s( m, h- V* g
 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
5 e$ P4 Y  ]4 C( D; g$ B处上下文是字符串或数字)    3 U4 P0 K% ]  a0 @  V/ ^2 j2 ?
mysql> select curdate();   
) F* E$ Q7 h# j8 Q# p9 Q  -> '1997-12-15'    # b/ C; R( e- H  Q: y# {; |5 o0 v
mysql> select curdate() + 0;    1 t* k# c6 L8 X9 ~7 [9 N
  -> 19971215    3 H. F- s9 f2 J2 l/ b; Y

3 |; l1 \' q0 y0 h+ Wcurtime()   
3 @/ {# n- e5 c, B6 E6 j7 Ocurrent_time()  
( n' Q; Z5 ~8 s& ^/ ^; d; e/ H 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上) T+ R- @5 w3 }  n0 w  X3 A# e: j6 h
下文是字符串或数字)      ! L( t" j7 N: ~  v6 ^- V% t. d9 k
mysql> select curtime();   
$ q. O9 D7 L+ J: Y8 K) k) z4 ?( j  -> '23:50:26'   
- ^! P. V+ u# ]2 Z' A5 t1 Tmysql> select curtime() + 0;    + X3 A! i# f) G, H' @# X% e; J& m
  -> 235026   
: X1 _! ~4 s& d+ l8 @0 K ) A9 a4 ~! r8 D6 E( B$ X
now()    
- o3 r% a8 ~' h5 t* F  \sysdate()    % f- ~8 t# I- N, ^+ z  z; V. v
current_timestamp()  * ^7 @4 ]! D7 _  h  b: R4 P  F
 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
2 F( K3 V- {) z( ^% ^1 H& r时间(根据返回值所处上下文是字符串或数字)     
% j' d9 \; {0 U: \0 I/ pmysql> select now();   
2 P7 y- m% g% E" `9 z* T! @  -> '1997-12-15 23:50:26'    ( v$ e, v! ~8 W
mysql> select now() + 0;   
5 T$ |% o! @% h( g; Z  -> 19971215235026   
% x2 Q3 i) _" y, t8 H# p
" m" n; @0 d+ u4 W- A0 Runix_timestamp()    ; p# C( Z; {) I  W
unix_timestamp(date)   
% t6 @* |2 Y  W7 J返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒0 V- M4 w+ c& p! w" \; |  Z# g) D
数,date默认值为当前时间)  + V& f; K* X/ O
mysql> select unix_timestamp();   
6 B, X$ T8 d( Y9 z5 o  -> 882226357    ' }: U+ r& S# `2 k  @
mysql> select unix_timestamp('1997-10-04 22:23:00');    ! v, z/ Q# v" r; I+ }! U; O' [8 U
  -> 875996580    : b( v& }  |4 O3 [* l0 d
1 C$ I  E( b1 L: u% N
from_unixtime(unix_timestamp)    ' ?( b# C$ R) o
以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的
, _' Y) a4 y) d4 n值(根据返回值所处上下文是字符串或数字)       p1 D, ?  V2 _1 a
mysql> select from_unixtime(875996580);   
0 |0 z* @# g: v! `  -> '1997-10-04 22:23:00'    / B9 n! ^# q# T* t
mysql> select from_unixtime(875996580) + 0;   
# D$ G( [% g4 r$ x  -> 19971004222300   
. ^& x: s# ~. P8 O0 u, | : I' n& K/ p/ B- C0 I7 U! j
from_unixtime(unix_timestamp,format)    
2 ?' w# w7 G& R! B! J# n/ X6 l以format字符串格式返回时间戳的值  5 o1 J% `7 u/ B, C, g
mysql> select from_unixtime(unix_timestamp(),'%y %d %m %
# ]* C# b% Y! h; \6 Y+ Z2 gh:%i:%s %x');    . e" N& B, c1 w# V
  -> '1997 23rd december 03:43:30 x'    3 y; Y9 t- I4 f/ I2 ^* ^

, P* Q) _. d# q6 L4 n& Z+ H$ b+ q  {sec_to_time(seconds)    & d( ^) Z) k- i  }
以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
) E1 S: t$ I7 _0 ]$ o0 d! Kmysql> select sec_to_time(2378);    , N7 ^: a9 h% u. y) F
  -> '00:39:38'      l7 p2 K1 B1 x+ g9 P0 j6 x* \, Q2 }
mysql> select sec_to_time(2378) + 0;   
* g: C! f0 S) p  -> 3938    5 x1 Q* v7 v$ t- a6 P/ L; w
3 r' W$ m7 N7 ^, s
time_to_sec(time)    + \# g" K% @' d6 p: Q
返回time值有多少秒    / v' T1 z3 {9 k) a* @
mysql> select time_to_sec('22:23:00');   
( p' g3 N( p* f, S# d  -> 80580   
2 B' ]4 @* }: d+ b7 Umysql> select time_to_sec('00:39:38');    ! E" v) f) p9 S2 i9 [
  -> 2378 4 D, o8 R" ~3 N8 G# Y% X

, e$ u2 U3 V: P, k: m% V转换函数5 H6 U5 i2 c; B% V# q& T" K0 s
cast
( N0 G0 ~7 `) v7 d, A用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]5 ~9 {9 o% k. x" H- Q: W
实例:select cast(a as unsigned) as b from cardserver where order by b desc;
: W. x+ }# T2 Gconvert:7 A9 z2 h( P/ j
用法:convert(字段,数据类型)
0 ]6 R; H" T" J& \4 E实例:select convert(a ,unsigned) as b from cardserver where order by b desc;

3 l' D4 r  u1 n
回复

使用道具 举报

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

本版积分规则

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