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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数/ x! y; M" h+ m  J  ^
ascii(str)   0 D6 b4 z1 W! T
返回字符串str的第一个字符的ascii值(str是空串时返回0)  ( m+ T3 }6 _8 Y  @4 A: j, X
mysql> select ascii('2');  
- @9 n# n3 q" i  -> 50  3 j& m* C6 [* b. y( {! \5 x
mysql> select ascii(2);  8 o& C) Q* B' Q/ F
  -> 50  
$ I0 q) B  z6 X0 @mysql> select ascii('dete');  
* f+ S; H! r0 y3 k' Z" S# h  -> 100
9 B  T" A0 I( H6 k# y) m0 {, }
ord(str)   
3 a3 g& Y+ _( n$ Z如果字符串str句首是单字节返回与ascii()函数返回的相同值。
1 B- h1 C3 |  C; r! H
, _$ e2 G* b& G/ p如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  
( y! G5 [4 U! ~, u& x7 ?mysql> select ord('2');  ! |; `) p5 X' x# u: N8 ]: W; T" W
  -> 50  
1 k; j5 Q& z) w& d* v& h  S: M   9 p* {; s) r% d. B, t7 U; m
conv(n,from_base,to_base)   ! t) s# ]% M) s1 S2 Z
对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
9 c9 y& i9 r3 r! k, A+ l- P( ~) amysql> select conv("a",16,2);  " o7 f3 ^2 k' V& M
  -> '1010' 5 Q+ w( s, x2 \: }% e' ], v
mysql> select conv("6e",18,8);  
( x) P0 T: Q: w7 a  -> '172'
4 ^8 l2 x9 J. Q0 L8 Hmysql> select conv(-17,10,-18);  
$ L- n7 ]% P$ k! s* N/ S  -> '-h' ) e; [' f+ _0 \/ e# l6 k
mysql> select conv(10+"10"+'10'+0xa,10,10);  ( Z3 T' k2 M1 ~% s
  -> '40'
( ~* }! X! v- D* [   
& K$ i- x# W$ d3 sbin(n)   6 i% \# G5 e! b$ v7 d" Z
把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
; B3 N& }. ~: a) ~mysql> select bin(12);  % O7 t: R" N$ ?4 o
  -> '1100' : w6 _; |9 T" d2 }
( s3 C" E+ S1 `8 ^0 `. @/ E1 u
oct(n)   7 G" k; N! F) b& o
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  , _9 C: T1 P4 g' l4 ~8 o* ^; k4 t
mysql> select oct(12);  
& g9 {8 D: Z' k+ F. @& ]  -> '14'
2 m6 s0 K" N3 a# [. E+ V9 |   ! w% g# n% P- ~" C; ^$ \2 W
hex(n)   
/ A& j/ j7 [3 \& b4 t  F8 B把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))    @& a; ~1 `( S. l/ R$ |2 j7 G; z
mysql> select hex(255);  
/ U+ K/ T* Y& J  -> 'ff' ) c$ l  U! E5 w' ^, T
   
( B, I* `' ?& A  qchar(n,...)   ! s$ ^1 f( b( @
返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   
* }5 Q, v$ G. Emysql> select char(77,121,83,81,'76');  ; c9 D$ \4 Y) A6 i' Q% c. ]
  -> 'mysql'
0 L! l9 B2 K; b6 M2 u5 @. Cmysql> select char(77,77.3,'77.3');  
8 I9 |% U0 B6 [" h. V  -> 'mmm'
- p& D5 b/ X4 K) w   0 t: S/ E; g1 s. N* I" k
concat(str1,str2,...)  
3 W# T1 M+ J' |  T6 i* c( {* d& g把参数连成一个长字符串并返回(任何参数是null时返回null)  
1 c' M5 q9 |4 a, @mysql> select concat('my', 's', 'ql');  
$ Q0 [" ^5 l; Q& l/ k$ N) z  -> 'mysql'
( n8 A; v3 x% k% d  [+ B7 s0 gmysql> select concat('my', null, 'ql');  
9 G: v8 R, X! j6 a/ S; W  -> null
& L, K: w$ B, ], U  j" \# kmysql> select concat(14.3);  
$ d8 X& D1 ^+ X7 e: r0 a$ F2 j  -> '14.3'
; D' ?8 |$ M" X* B, ^
* C5 R1 s4 ^9 }0 hlength(str)   . |. Q8 W0 a6 q7 ?
octet_length(str)  
  |4 I" u) P. M: l9 m% Rchar_length(str)  3 c2 V; ]% A7 Q4 ], J) B
character_length(str)  
: U8 P: H  K1 K- Z' N- Z返回字符串str的长度(对于多字节字符char_length仅计算一次)" D2 K4 \& U+ ^& k
mysql> select length('text');  & @: c3 |+ X2 H& K) \
  -> 4  8 X/ x8 k$ T4 A1 r( z0 r
mysql> select octet_length('text');  % f& l& W& H  c( j7 l
  -> 4  5 a2 S2 h$ L7 u+ c+ }
* `) }) w6 |& _6 O' w5 ~
locate(substr,str)   $ Y8 Y: [: }2 B; c3 @9 f
position(substr in str)   ; m7 X, R% K8 I/ c
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  6 m8 C2 C, U# J3 j. C& Z5 Z
mysql> select locate('bar', 'foobarbar');  8 O7 C5 X1 [6 k5 ^! q
  -> 4  & e5 u( }! w" O
mysql> select locate('xbar', 'foobar');  - m% r- l0 E6 k: i: R9 I7 N
  -> 0  
+ r+ w+ R) i5 T  e" _) k, r* O    ! h3 R/ r- E" x: M
locate(substr,str,pos) " `% v; [9 m  K0 I0 H$ y
返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  
/ E, Y+ ~" c1 }6 z3 X  hmysql> select locate('bar', 'foobarbar',5);  " J' ^9 f! }7 |9 g  J
  -> 7  ! T( h+ P/ @6 e- {

" P. p4 z) e! h( l; ]1 t* G* cinstr(str,substr)  
3 K0 u! W+ ~6 c! v返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  
8 q8 N% A8 j& G; L% j- n3 mmysql> select instr('foobarbar', 'bar');  ) s0 `1 C/ ~$ Q0 T( N4 x
  -> 4  3 ^6 c7 B7 w# Z3 S1 p' u
mysql> select instr('xbar', 'foobar');  : G8 Y9 k! s$ W9 \2 \
  -> 0   
6 k: m) a- M3 H. C ' o6 h3 y! V7 \
lpad(str,len,padstr)   
- \' H. r/ P6 W* q. @用字符串padstr填补str左端直到字串长度为len并返回  ! Z. p/ C* \$ r! [
mysql> select lpad('hi',4,'??');  
7 A. u; ?' i( g! r  -> '??hi'
3 @+ v) ^7 F. V* `% @% {3 x   
# ?$ m) s0 N: \4 z- krpad(str,len,padstr)   ( l6 B/ l6 t% a& `) h
用字符串padstr填补str右端直到字串长度为len并返回  
, a8 d/ ~/ a5 K% ?( a# ]/ y0 kmysql> select rpad('hi',5,'?');  5 i- K5 R; A2 g' k8 H1 p  x
  -> 'hi???' ( K8 T1 Q1 N  X& I& S2 ^  p3 q
% z3 D5 D0 R3 \7 |' }
left(str,len)   + `: ?( }+ Q# R6 _
返回字符串str的左端len个字符  
# P; h) C* X- x$ g1 Z3 w2 Z) i1 kmysql> select left('foobarbar', 5);  " F. M* ]" w/ w4 b) d5 |
  -> 'fooba'
; [! V; P' `5 u( C  X( g# _ 7 M* d& W( d5 d  I6 Z  h0 E+ G' x
right(str,len)   
/ E: \( e' R; r! d' P返回字符串str的右端len个字符   
( u9 _4 P, S( l' c) p! Mmysql> select right('foobarbar', 4);  
% L3 v- t$ N2 `% S6 S" ^5 Z* Y  -> 'rbar'
0 b. j& o$ Y+ H! H
  f( q2 i3 h7 U8 l2 s" n# v0 jsubstring(str,pos,len)     J5 O- R4 z/ n' [$ Y: v  q
substring(str from pos for len)   8 i. p0 u0 j7 _0 A  [  C5 `% e; V
mid(str,pos,len)   - ^( d6 [: B/ f, N2 U6 E6 T  l
返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  . T: L4 j! Q: K# p" R. h7 h
  -> 'ratica' 1 n( z0 J8 u* b% P: i2 {

0 J$ }2 c- g0 q! c8 H1 {) d* jsubstring(str,pos)   ' n! h  O' p/ n, A/ q5 C/ e4 ?
substring(str from pos)   * D4 u0 ?  T3 t: o# j* l
返回字符串str的位置pos起的一个子串  
# F# ^% l0 l) pmysql> select substring('quadratically',5);  ( E. ^" a  I0 V8 V4 r5 C
  -> 'ratically' 3 K* x( {5 N% l0 A, W
mysql> select substring('foobarbar' from 4);  
& P. X7 E8 k- v. H  -> 'barbar'
, u% a2 t2 ]7 b3 L# d! i 6 H: ?( {8 I: O0 d+ `* ^; T
substring_index(str,delim,count)   
  d! {( W4 t2 ]  U2 Z+ s返回从字符串str的第count个出现的分隔符delim之后的子串+ o! g* y$ e7 U! h
(count为正数时返回左端,否则返回右端子串)  
9 L% [8 m% r8 C* E6 j( Kmysql> select substring_index('www.mysql.com', '.', 2);  ) a! r, I8 U" b/ k* `& o; [7 k
  -> 'www.mysql'
% M* R0 R; u! a2 O- Bmysql> select substring_index('www.mysql.com', '.', -2);  - u0 ~3 Y- b, }2 J$ X) }2 q
  -> 'mysql.com' 1 H/ _1 x( h7 l3 e% a

' P* r- R- Y1 u; g" |5 x- gltrim(str)   
$ W% @4 l1 y) }0 z7 m9 y1 s# A返回删除了左空格的字符串str  2 M$ Y/ y7 T/ b$ c
mysql> select ltrim('  barbar');  
6 a5 m. b9 d, x; J/ ^  -> 'barbar' 6 L; c6 R( f; g; w& t
8 Q1 k* c# _$ C) m9 l8 Z
rtrim(str)   
/ e& F" C1 z' N1 {! S/ B返回删除了右空格的字符串str  
& T1 \! X# L- pmysql> select rtrim('barbar   ');  
2 H/ z: d% e9 S) u- P  -> 'barbar' 2 F$ y6 n; q. [* K: Y7 J
$ w5 O) s3 \& w" f6 x7 B
trim([[both | leading | trailing] [remstr] from] str)   " K* F+ N# B# |: m
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  & A( z9 t; \" J) i  o
mysql> select trim('  bar   ');  $ I, D* G4 r0 [. ~( i8 j# E% j
  -> 'bar' / u; @/ e8 |: M
mysql> select trim(leading 'x' from 'xxxbarxxx');  
/ C, Q2 b* v" R  -> 'barxxx' 5 T: l0 \- u. c* E, c
mysql> select trim(both 'x' from 'xxxbarxxx');  ) N' P$ E# d% a7 J
  -> 'bar'
& n' ?7 p0 P9 p# f: w" wmysql> select trim(trailing 'xyz' from 'barxxyz');  6 D* t! U2 W$ s( x( @1 K
  -> 'barx' 2 F' U5 |0 l9 Q2 x/ [
# T' s7 }$ X- e* g/ d3 f
soundex(str)   $ a$ T9 H6 u( ]" ]. z/ V, J8 e
返回str的一个同音字符串(听起来“大致相同”字符串有相同的
0 `% D) Y% d' I" {2 Q6 U" v同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  
2 w8 q+ r- g+ g4 {mysql> select soundex('hello');  1 d! r1 _5 U1 E0 S  H2 i; \& T
  -> 'h400'
; t. {5 _: w$ U, [- Y  {mysql> select soundex('quadratically');  9 U+ I) E1 W  h/ D! `
  -> 'q36324'
$ [- B) D/ C# G1 A+ m9 F3 K   
5 A/ O1 M/ R. u9 x6 Xspace(n)   
- H7 w5 t* A  d# S- N1 ^6 x返回由n个空格字符组成的一个字符串  
1 u; q% t9 X. u0 imysql> select space(6);  6 e6 h5 _' W. M  F$ H" M9 |% ^) ?1 Z
  -> '      '
) N6 m2 O% @( X% @* G   . D% U8 Y, K! X- q( R, p7 ~! z
replace(str,from_str,to_str)   2 }4 j7 Y; Q, W. M
用字符串to_str替换字符串str中的子串from_str并返回  
2 n, o3 O7 s% z! ^2 I2 C7 dmysql> select replace('www.mysql.com', 'w', 'ww');  / x: l9 w2 X& G# i
  -> 'wwwwww.mysql.com' 7 c7 W3 g- ?, O* N- l6 b

  J5 B( W- o2 W: y" n: jrepeat(str,count)   5 s# K- Q1 F, x: ^+ ~, g
返回由count个字符串str连成的一个字符串(任何参数为null时' U4 Z( H1 K8 B; X! t2 L
返回null,count<=0时返回一个空字符串)  
& [( l5 j7 c0 b$ fmysql> select repeat('mysql', 3);  
' ^- k- H9 j& v+ k9 z  -> 'mysqlmysqlmysql' ; o5 ^  ?3 @" b$ K4 w; O
   
0 B) M2 I% I4 mreverse(str)   8 k  Y( j: f  [" u& R4 [1 a+ b' e
颠倒字符串str的字符顺序并返回  / ~9 _) D" R5 G$ O1 K
mysql> select reverse('abc');  
" f- {8 o# _0 W4 Q  -> 'cba' 0 L7 e8 V7 E3 A4 R. ], E* ]- s

3 F6 a" P2 @6 p7 ginsert(str,pos,len,newstr)   
) N2 ?" f: Y9 `& `+ |5 q+ a+ r  H" C$ b把字符串str由位置pos起len个字符长的子串替换为字符串
, ~( B+ u" M4 _4 J, Pnewstr并返回  
) s! m6 ~$ U/ @- C! k' N4 Wmysql> select insert('quadratic', 3, 4, 'what');  6 c4 {1 ^& d- ]# D; r0 L+ p2 M0 r
  -> 'quwhattic' 2 N. L$ E: W1 [. ~, l: Y

% M. C5 W3 x, n* {elt(n,str1,str2,str3,...)   ) z8 r, I8 E  N2 S" z" W' X
返回第n个字符串(n小于1或大于参数个数返回null)  # N; o4 k9 h6 d
mysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  
  M0 e/ h8 O' p" k8 Z' K. o* p. P  -> 'ej' ; {/ P* N3 ?5 z: H0 n& B
mysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  
7 E; x; y3 @+ }2 k: R  -> 'foo'
  O0 e* q* u8 q" M
% _# ~$ W9 o; E$ M  d- l% ?3 m6 jfield(str,str1,str2,str3,...)  
8 }, F; n) F% i2 z返回str等于其后的第n个字符串的序号(如果str没找到返回0)  
" h& B: W$ F$ C; L) M. ^2 W7 Dmysql> select field('ej', 'hej', 'ej', 'heja', 'hej',, [6 f2 f5 G, p; _) E& K
'foo');  # I& d3 C& x) G, f
  -> 2  
" b6 c5 O. b0 L9 k  [, U2 t3 M/ Rmysql> select field('fo', 'hej', 'ej', 'heja', 'hej',4 q4 m- ?1 r' ]' e) S) b) ^
'foo');  
6 ]5 S+ r) [9 p% `1 Z9 C  ~. n( N& W  -> 0  
* X! k9 T( W- }9 [0 |* [% `
. K' J2 f; x) g( }8 efind_in_set(str,strlist)   8 F" [; V+ ]7 [# S" N6 F, N
返回str在字符串集strlist中的序号(任何参数是null则返回2 [! M9 {/ Q- r+ f& d
null,如果str没找到返回0,参数1包含","时工作异常)  * @5 ?( ^+ K- C! d
mysql> select find_in_set('b','a,b,c,d');  
2 `, W: d2 r8 W0 _# Z; A2 i  -> 2  7 w$ N# D+ u$ W5 b( {
   7 B- j* }6 `0 e6 K5 m$ a, H
make_set(bits,str1,str2,...)  
; I9 j( x2 Z/ R; ^9 D把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
7 ]3 m) A3 ?) O; i$ ^位置的字串选入字串集并返回(null串不添加到结果中)  ) o. m, b; z0 J, M7 q* ]7 |# c
mysql> select make_set(1,'a','b','c');  4 K. v- P9 Q% a
  -> 'a'
& O/ I4 ]8 W* ], X8 q! R1 O! ]mysql> select make_set(1 | 4,'hello','nice','world');  0 e6 J1 e# b; h! b
  -> 'hello,world' " L. F. c6 v' ?( T6 h
mysql> select make_set(0,'a','b','c');  , x, v/ H3 ]) D) v5 I& C
  -> ''
& F) l1 y) |! d8 C( N. g, [% D: h9 u* y ( s& O" q- _, i5 Q' j( J( L  O
export_set(bits,on,off,[separator,[number_of_bits]])   
" P- ]+ F9 W3 X7 e8 B按bits排列字符串集,只有当位等于1时插入字串on,否则插入
7 H1 O3 z9 p5 v3 ]; \0 M# E; {off(separator默认值",",number_of_bits参数使用时长度不足补0
/ g& A6 x- s' D$ ?. }而过长截断)   # y. p5 Z9 z3 l
mysql> select export_set(5,'y','n',',',4)  
2 C! K8 m; k, U) C" a$ b0 X  -> y,n,y,n   
, d2 a3 @1 w) z1 ?8 y( R
) z' |2 n4 C$ @( h; [lcase(str)  6 F7 O; A! _7 X: _: [9 N4 r$ S
lower(str)   . m8 q% Y( b" [4 ]' P, `3 H
返回小写的字符串str  
* ^. }# K3 v7 Z$ @" nmysql> select lcase('quadratically');  4 y6 z% U0 O$ W' \$ r$ W
  -> 'quadratically'
2 b/ R$ s2 v, c' |  {   / p  ^7 |; k0 P& o2 y7 |  W; d- e
ucase(str)   
; c8 B  V. i: \' Yupper(str)  
( K# y+ P" `3 z! k返回大写的字符串str  4 r6 b. O. z' `6 ?" h
mysql> select ucase('quadratically');  
: {1 f+ P2 `( H; B+ z  -> 'quadratically'
8 ^) [" a) v% p9 N6 z+ K 0 F) E0 S6 r1 x9 L: E% |' ]
load_file(file_name)   
8 p: N( e; G2 x* d1 j/ d. D读入文件并且作为一个字符串返回文件内容(文件无法找到,路径
8 @  i# }" @+ X4 K8 ~不完整,没有权限,长度大于max_allowed_packet会返回null)  7 \* b2 k- f; Z& s5 W
mysql> update table_name set blob_column=load_file+ t4 A4 q3 e) ?! {! f
("/tmp/picture") where id=1;  1 Y+ q4 t: b: K# W" ^& w% T

3 ~% u7 N8 S( @8 M' }9 i2、数学函数* K' B0 [- ?$ ^
abs(n)
' C" x8 x( \0 i% A返回n的绝对值  
, W! [1 K+ ~7 M# nmysql> select abs(2);    6 [4 c! f+ o6 z4 t
  -> 2   
: D9 i2 `/ U0 L* u  tmysql> select abs(-32);   
6 P4 O/ {* c; O! {: d, C: Y! ~  -> 32   
5 k$ L% p7 w- n$ c5 i' B' J3 k   & _6 f9 a# y( \* ?, j
sign(n)  / _* r+ ?$ c9 P
返回参数的符号(为-1、0或1)  . {$ V# p& a% z4 d
mysql> select sign(-32);    # k" W+ ?# |; `* U9 P: P" M! o
  -> -1   
# d. g" \) {) \3 W: ]& rmysql> select sign(0);    9 z: H$ ?% c& P) k; O
  -> 0   
$ b0 j, i8 U7 cmysql> select sign(234);    * T* M7 b0 m1 ^
  -> 1   
2 k$ Y0 E  R0 v! K5 \5 h. ^, u( R
* F6 Z) T; s3 C# A+ V% Mmod(n,m)    : n/ e8 l1 M, o5 X7 {( T
取模运算,返回n被m除的余数(同%操作符)    % _) s9 C/ Q8 k
mysql> select mod(234, 10);   
3 Y9 K/ T1 s( h5 S# Y  -> 4    ! ?9 ]; R; i& p: M4 A7 z& M/ d- f
mysql> select 234 % 10;   
  f& C. R+ @! A  j2 _  -> 4    ' d" m; k$ i; T9 j
mysql> select mod(29,9);    5 t1 D5 w3 }$ s8 _
  -> 2    6 a" b* E5 |2 c( g+ @( e8 d; k
: L; a* c; a7 L2 V! J& p
floor(n)  7 }! q1 W& k5 X: K
返回不大于n的最大整数值  
( ?& z) N) u4 R6 K: J1 Omysql> select floor(1.23);   
7 S8 S8 V/ l% u  -> 1   
9 [$ ^( v3 T; Z  E7 l" t/ lmysql> select floor(-1.23);   
$ m5 F3 J: }- u) ^2 E  -> -2    8 u* R* L: J* M  E6 }9 q1 O

- h4 D0 D8 X' Y  w* Bceiling(n)    f( u: ]- M, g8 H( e: }
返回不小于n的最小整数值  5 z  y0 Z' v6 T$ h# |! |
mysql> select ceiling(1.23);   
8 R2 i" j8 p. l6 |  -> 2   
# e2 p8 |( R# ~4 }+ M; bmysql> select ceiling(-1.23);   
+ d$ H+ x0 F/ p1 _  -> -1    / T8 Y/ W0 |6 c
4 m  d- P* z) s7 U7 S4 Y' V
round(n,d)  , P* O  h4 \5 o8 h# e6 X
返回n的四舍五入值,保留d位小数(d的默认值为0)  . J0 q$ m% R( p9 n& m
mysql> select round(-1.23);    " w) R- S- ?  k1 U* D
  -> -1    ! W* A0 C; j$ z  }6 i: M
mysql> select round(-1.58);   
/ x/ p1 ]! ^8 \5 o  -> -2   
( Y& I' H/ B/ ]  R8 v7 Lmysql> select round(1.58);   
& V" R7 E5 w% w  -> 2    # K# z& k* p# W1 \# Q" E
mysql> select round(1.298, 1);    & P- c! n! F  K' s5 M. X  o
  -> 1.3    : d1 a: `$ O# E) s' B1 g3 ^$ z5 |7 {
mysql> select round(1.298, 0);    2 i* k  Y' z' l6 y2 G' y- [
  -> 1   
, ?0 D: `" `! [3 l$ Q& P8 Z 1 |6 [4 e  n+ J4 Q/ a  I* D) S; ?
exp(n)  
8 q5 [- i2 j9 V& w0 L返回值e的n次方(自然对数的底)  7 T) j* k+ ]! {
mysql> select exp(2);   
% i' h, F; X$ ^6 c: \3 d$ U  -> 7.389056   
* t6 m6 k6 ]8 n) k( _8 Gmysql> select exp(-2);    . X  `! y* X% V1 O' y1 F
  -> 0.135335   
. r' U1 S, M* @$ P
4 X( _5 P8 U* r8 Z  n, R- Alog(n)  
1 K2 g  y  v6 D1 K0 J& @# u返回n的自然对数    W& D/ S3 A0 C# x3 O
mysql> select log(2);   
$ u) d. t6 Q0 h" K" W  -> 0.693147    9 u, @& Q4 ~/ }# I6 c8 X/ O$ {  m
mysql> select log(-2);    9 R; {8 _2 |; |( u1 y" |& g& O
  -> null   
4 `" L) u5 d  L. q. Q0 n ! [4 p' e$ O+ W$ J, q2 m
log10(n)  2 V; D* X! ^  }8 R0 S$ w& i' A
返回n以10为底的对数  9 p' ]) ?" k4 X9 d( S
mysql> select log10(2);   
! k: Q0 ~/ |" @" W. o% H9 P) Y+ y  -> 0.301030   
2 M" r+ m& `9 a: W) Qmysql> select log10(100);   
. I$ |  X/ \: L; P6 H: b" B  -> 2.000000   
1 f+ o( z, x' U/ K9 _, Wmysql> select log10(-100);   
; c, v' {2 `1 V0 f  -> null   
! _- c+ S, Y1 M0 r5 Z' ^5 F2 j
" L9 }/ p# l* ]$ E( J+ e, U; b9 ^8 }pow(x,y)   
( t2 M" K7 \% w- f& opower(x,y)   
" B8 q$ a$ }3 g( |& E4 ? 返回值x的y次幂  4 Q% O) L* q! i, o, L3 ^
mysql> select pow(2,2);   
9 A% t" B. h, G/ g4 z  S  -> 4.000000    - ?! i1 l1 \3 ]3 r* I
mysql> select pow(2,-2);   
3 X7 S" r; M, \: {2 O  -> 0.250000  3 S! A  l; z- n+ U, X
, J  Z$ V* W+ |# ]# U
sqrt(n)  ! \( c% s  ^' a
 返回非负数n的平方根  # s* l- O; ]8 V
mysql> select sqrt(4);    * |: @1 K; y( m! j2 z& G! _. u
  -> 2.000000   
) `6 R$ h0 d& ~% I9 Mmysql> select sqrt(20);   
- m2 o& M+ m# L# w) f  -> 4.472136   
& r8 h/ {. F6 S  b2 n+ B   Z5 t& l4 W% H* k
pi()   
/ T. N- |, F# q0 b6 y* t 返回圆周率   + w: h& c0 m2 q) K$ J+ m  w: `7 d
mysql> select pi();   
2 J0 b* U  w" j! x" E  T  -> 3.141593    6 j3 d% X/ p5 |- U( u( t

, U' V& s; q. B$ e9 I5 p' Icos(n)  
/ D" k# y+ {% T5 z7 |# H 返回n的余弦值  
+ \* R. x6 R/ p- f# t0 a( Wmysql> select cos(pi());  ) c! {* X. Q5 F$ ^% m3 m9 S
  -> -1.000000      Y1 Q: |9 v1 w( X

) ^" ^# U+ {1 Z$ usin(n)  + j( C+ C5 J  D- a
 返回n的正弦值   
4 g* i* Q$ n& N0 l2 v) t+ [5 ^5 Ymysql> select sin(pi());   
) @" y" B" J0 C5 g# t  -> 0.000000    8 i- h, ]) t8 N* M; Y( v1 u

! l* ^" q1 ~  W( Ktan(n)  
; F! \1 T5 c$ U& \: {返回n的正切值  
' F1 k1 a' W+ ?5 b% a8 Z% K; nmysql> select tan(pi()+1);    ) w1 H: {* G3 O& n5 X
  -> 1.557408    ) r5 R' K5 q3 M/ D

' f" W7 p5 a! c$ `2 c2 pacos(n)  ! V; T. [4 }9 c( H5 S/ L
 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  * D* Y# B5 R7 a, T/ ~% j% Q" {
mysql> select acos(1);    % h" M9 l- T6 y8 q  \; l
  -> 0.000000   
/ Q4 Q1 }: M5 |5 \2 i7 tmysql> select acos(1.0001);   
$ ^* o: ^6 n. z* Y% V0 S" ]  -> null   
, z4 i* d+ Y; Z. d. _: pmysql> select acos(0);    ( f. L' o" Y5 S+ l, k
  -> 1.570796   
# b( v1 ~9 T+ C' v
/ x6 K# k5 {9 O8 O& S7 N! M1 E$ W1 |asin(n)  3 r& o' e4 |" t
返回n反正弦值  9 m; G" i* c* M
mysql> select asin(0.2);   
8 q" `/ S$ Z1 S2 g3 w4 p' s  -> 0.201358    & k: [/ m/ [8 [$ H. @: Y  u
mysql> select asin('foo');    , @. o& V5 a- [+ m4 z, l7 o
  -> 0.000000   
! l! t. F% D5 P4 ]9 c  j# i
# K' Y4 o7 U5 `0 e- m4 g2 _2 gatan(n)  
( {1 H% ~: V; r( p6 Q返回n的反正切值  ) e! H1 u6 y! H" c; m
mysql> select atan(2);   
2 y! b- c  y. y2 V2 [2 O+ N! \  -> 1.107149    / j( c/ h) D, k9 E/ U# k
mysql> select atan(-2);   
' o/ t+ q& w! T; R0 n  -> -1.107149    3 Q) e; s' z3 |! o0 ]6 k8 }
atan2(x,y)   
% p7 }+ L- q2 m% e$ m 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  
. h4 _$ ]2 T! z7 [) N1 `# Z2 i5 P" |mysql> select atan(-2,2);    4 j3 K/ H, a( k2 m. f  G( P
  -> -0.785398    ' ?! m, t9 s6 H+ f- O0 ^
mysql> select atan(pi(),0);   
. G' `6 _3 o3 S# r8 G5 Y4 U  -> 1.570796    / P" H( u( J  A1 J1 r+ y

9 i; F# F4 y9 C+ @) l5 f6 F6 N* ]cot(n)  
1 m  l1 l5 W3 g) y返回x的余切  
$ [/ ^9 A' |+ L# i) k- @* e! W  {: c3 ymysql> select cot(12);    9 Q- G5 v+ l1 N/ Z3 C/ r
  -> -1.57267341   
9 d% s* v# S- ~( p- P) Smysql> select cot(0);    5 o! i% n# \. T
  -> null   
$ _% q, Q+ q+ y! M+ A
  C, a7 d% T# B. ?* Srand()  5 t" z; q6 x1 U& E8 W
rand(n)    
. f1 _6 k/ _9 U0 N返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
+ b$ J: N) }# v+ k 5 x8 B, u9 B9 }5 B2 ^
mysql> select rand();   
3 `2 q) _4 m' C7 o- u  -> 0.5925   
. n4 E4 a. A' Jmysql> select rand(20);   
  s0 m9 ]  B6 j1 `2 k  -> 0.1811    6 a0 k* G; j' H4 C
mysql> select rand(20);   
& Q. o, m3 C1 I1 V" M  -> 0.1811   
- V2 t5 t5 `' @/ x2 R& Zmysql> select rand();   
0 \& i  Z, f# N1 h2 F  -> 0.2079    - T5 N9 h+ s) M$ b, D
mysql> select rand();    $ I2 U9 |" _+ {
  -> 0.7888    + b, p2 {3 ^4 j- ^/ M0 R
: u* R: q* U. w: w5 A6 p6 k
degrees(n)  4 \5 p7 V8 j9 N& L& M- {2 m; j
把n从弧度变换为角度并返回  
9 n5 T3 s$ z. M# O7 q: _% T* lmysql> select degrees(pi());      c) z# R) C$ Y/ H' r4 \
  -> 180.000000    4 H* S# R3 w* M* ]% n

2 l/ H' N% ^8 j" t% z5 R% _/ zradians(n) % ^% \6 U' F' F6 w/ R. A6 N6 Q7 G
把n从角度变换为弧度并返回   2 Y! L1 o/ D- A/ T
mysql> select radians(90);    4 [6 r. c/ V( z7 T$ E# \
  -> 1.570796   
+ q2 h9 a" c* G
" |) T: B) |. Q) L6 L0 W" gtruncate(n,d)    8 D3 L* T1 M, W9 G
保留数字n的d位小数并返回  
2 l! _- ~: h+ N2 g. S8 Xmysql> select truncate(1.223,1);    " k0 ?/ h: e4 O* M
  -> 1.2    - Q% X0 [$ B8 F
mysql> select truncate(1.999,1);   
. M1 K7 W; F$ q' j5 L: k  -> 1.9    9 T" w- h% d! O2 J) i
mysql> select truncate(1.999,0);    ! y$ O% s" k% |0 F% u
  -> 1   
) t* y+ }3 [8 r' j0 g1 x
7 p9 X! w. N8 S& k- ~; `  Hleast(x,y,...)   
# T3 |! k7 f8 U5 u- R' O返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
( ~$ y7 F- z7 H: M% h; m* C: Kmysql> select least(2,0);   
& l$ D7 ]) O; x1 R3 x  -> 0    ; v  N* c/ F% q2 O' ]
mysql> select least(34.0,3.0,5.0,767.0);   
. w$ J5 V' |2 s5 G  -> 3.0   
) I* M. a: W  R3 ?3 e) d" ?# kmysql> select least("b","a","c");    / X/ C/ X5 D# H2 d& c- n
  -> "a"    1 I* N' U1 i$ |6 }, O8 P* @( B: g
) Y# f8 K6 X' a! @. o8 U
greatest(x,y,...)   
- ^8 W/ q1 Z# ]8 Z; k1 D0 B返回最大值(其余同least())  
5 i! V0 `$ K4 o2 r5 ^" gmysql> select greatest(2,0);    ( G/ U: J4 a. r5 j
  -> 2    & d7 {- g7 J' n/ g8 d- b
mysql> select greatest(34.0,3.0,5.0,767.0);   
% _3 N' t* F" R6 [  -> 767.0    # r  H8 N1 ^& W. d
mysql> select greatest("b","a","c");    / k; z6 B. d7 c& l0 d
  -> "c"     
3 b  F( Z4 F4 a8 I: J
( y& C. k& |$ C4 Z0 a3、时期时间函数 , Z1 I- v8 L& J& @* x; g
dayofweek(date)   
8 F! K3 E9 Y* t  \& F返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)    R8 k' d6 l" @% Y% X% ]
mysql> select dayofweek('1998-02-03');    2 t# u* V6 L( x+ `, I
  -> 3   
+ `' B- [2 t8 u: @; a
+ h- ^( G% }0 {  [7 V, Rweekday(date)   
8 D6 A: @- O3 F4 s- U$ X4 d* I5 |返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 0 R/ g$ R9 |/ f6 Y; V! Y
  
7 g  v. f% }1 Z' o5 Nmysql> select weekday('1997-10-04 22:23:00');    4 P5 H  o- T5 y: s1 m7 I( w
  -> 5   
- z% M% L' w: s& V) m, P0 wmysql> select weekday('1997-11-05');    / d! S! x7 @, ^) X# \$ p
  -> 2   
  S# ~/ @3 ?/ F9 m
" ?) I# C: _# F! Z) d" Q0 fdayofmonth(date)    
. \9 Y: Q( p0 \2 U/ o( y* p3 {返回date是一月中的第几日(在1到31范围内)      O* b+ B- m# u" g2 Z4 g
mysql> select dayofmonth('1998-02-03');   
+ D* l2 U3 y: m  X  -> 3    5 K2 i& j9 T; D! Q
, V& r( E9 g3 J, b" }8 j" m
dayofyear(date)   
1 H# D+ W2 S( p' @. f返回date是一年中的第几日(在1到366范围内)    " J; ~5 Y6 @$ p" \+ F
mysql> select dayofyear('1998-02-03');    6 G+ V4 t6 H. U
  -> 34   
+ W7 Q/ J" s6 V! a( J
9 i. H  J4 N, Y+ k) umonth(date)   
( x1 _+ u$ o/ k) x返回date中的月份数值    4 C6 G9 Z) V$ a5 N" Z
mysql> select month('1998-02-03');    8 n6 H  I6 b5 M: z9 [4 @, ^
  -> 2    ! \: B$ U. e  y" ~- ^
9 }6 ?2 u% m; i0 r9 h
dayname(date)    2 \  j- g$ ^0 C& U
返回date是星期几(按英文名返回)  
/ y% a2 G  o. o) Zmysql> select dayname("1998-02-05");   
& N5 S  u4 m" Z# u  -> 'thursday'    - y8 [( ~' v+ a3 l

! w1 K- m5 o2 z' i) amonthname(date)    
' {& _$ z; Q, `& U) }# o. _返回date是几月(按英文名返回)  ! H2 ?; Z, j0 P1 i, r( e" D9 M
mysql> select monthname("1998-02-05");   
3 [! [! X9 @# |5 `: j  -> 'february'    2 O3 Z: M( k" \, y8 v% n
! A- V9 t- E( t- F
quarter(date)   
, w$ y, h( m) k: E返回date是一年的第几个季度   
: X+ ?, }1 ]* i* Z/ X3 J- y2 L$ Dmysql> select quarter('98-04-01');   
3 p! B9 l! z( P/ [2 u  -> 2   
7 T9 Q' L1 S9 h" R: F8 N
7 z! d; s" G7 Y* o+ I$ Pweek(date,first)   
  X9 A. S, M# O% e返回date是一年的第几周(first默认值0,first取值1表示周一是
$ t9 l  f2 ^/ i) N9 D9 g, s( Z周的开始,0从周日开始)  
& I$ I! p  B: |) x, {mysql> select week('1998-02-20');    % {7 \: M) L7 }/ c) U
  -> 7   
5 N6 L5 B6 E( q4 p. f5 tmysql> select week('1998-02-20',0);    ; |; ]$ ~) L  A7 T. E
  -> 7   
$ h/ L- r, V9 L" ?5 Omysql> select week('1998-02-20',1);   
: Y/ N5 v9 }" H  -> 8    1 |# H" L0 j3 q; b

4 u2 F: p9 B: `, E* d0 F3 {year(date)   
  j3 d$ u, w- g返回date的年份(范围在1000到9999)    , `+ ?# g. F9 F& W- J
mysql> select year('98-02-03');   
) _( i. v: c+ j2 r( m5 D! ^  -> 1998   
' E$ i  u  ]$ p  m& k
- E7 I, i" \2 X& C  ]3 D5 bhour(time)    % ^& H1 e8 X" r* E" I/ U# i
返回time的小时数(范围是0到23)   / O, d+ p0 x/ j7 D, R9 V
mysql> select hour('10:05:03');   
3 d% {* d5 G& Z% Q. V  -> 10    3 s, n9 v7 y2 A) {/ ^: P1 m- [

; v( E6 m5 S2 F# K, N: M7 G6 K+ uminute(time)    # d- T3 ~- ?5 N# A/ y8 x# q
返回time的分钟数(范围是0到59)   
2 ~" c- w- o* Q* \; w1 [mysql> select minute('98-02-03 10:05:03');    0 c6 B0 P8 I9 J+ r5 }
  -> 5   
, f1 _( i4 k3 i0 p0 j( y $ _3 T: X5 H6 v9 Y, K" w, Q, o
second(time)    
: q5 E2 O" d$ {- N2 B返回time的秒数(范围是0到59)   9 z  S! {& X' z( J
mysql> select second('10:05:03');      P% ]+ m) x( r. Y% ]
  -> 3    7 m: l' E1 Q% w- Q, Q& U4 t

1 d/ B, Y7 f  H1 q0 `& Aperiod_add(p,n)    ! M9 q- N/ a2 X% _1 |  ~. i1 n0 g6 x
增加n个月到时期p并返回(p的格式yymm或yyyymm)   
# I$ e4 j+ G0 Q+ G$ Z3 x) b% emysql> select period_add(9801,2);    + p0 r9 D/ d- q" ~, C
  -> 199803   
0 C: F0 C# _/ m/ P% O% R5 X% ]6 A
+ F3 B: D% V0 F- U& @period_diff(p1,p2)    4 F( ]3 z( v" F7 d
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  
  b. Q( |/ }9 G, Z) I$ j3 ymysql> select period_diff(9802,199703);   
3 C% u( J* e% l) {  -> 11   
' t3 l0 A" ^# Q8 g5 h6 B5 i% j " h9 s! \, A8 N! h, ?3 t
date_add(date,interval expr type)  & ?$ H) N/ r: O
date_sub(date,interval expr type)   
6 E; W8 M  U& ?/ }# F2 e- Qadddate(date,interval expr type)    5 P$ j* d7 U1 u% p2 p- j/ }
subdate(date,interval expr type)  
. A9 p" e/ n. `/ \$ ]5 c对日期时间进行加减法运算  
0 R  w5 F, k8 u0 X, y! I2 u$ d(adddate()和subdate()是date_add()和date_sub()的同义词,也
# {) q. O1 d; J% J可以用运算符+和-而不是函数  . Z$ }* k) N" d: U. }
date是一个datetime或date值,expr对date进行加减法的一个表4 @8 A3 N% H4 `1 k+ A* Z
达式字符串type指明表达式expr应该如何被解释  
. |5 N1 n; E  v [type值 含义 期望的expr格式]:  
$ t3 A( K+ R4 F/ y/ B- K second 秒 seconds   
9 F* ~, h' B2 {7 b% B9 F minute 分钟 minutes   
' v. Z" S+ a- ?" Y' P8 S/ g hour 时间 hours   
1 Y& s% W, f5 N9 q$ F; B% C! o& A: J day 天 days   
& r, ~1 @. x  @ month 月 months    ; i& S3 o& c4 v
 year 年 years    3 @0 s# }: _6 H% V, A, n- g
 minute_second 分钟和秒 "minutes:seconds"    ' y3 _' ^  `/ N+ |
 hour_minute 小时和分钟 "hours:minutes"    # p0 Z4 O) d  p5 S) @! K5 p
 day_hour 天和小时 "days hours"   
: d  M$ B6 k$ A! ]* B year_month 年和月 "years-months"   
8 ~- P" l/ B& o hour_second 小时, 分钟, "hours:minutes:seconds"   
; P7 I  e" u5 V. N7 I3 G day_minute 天, 小时, 分钟 "days hours:minutes"   
1 Z4 H) s5 K  I day_second 天, 小时, 分钟, 秒 "days
( j- k  y* C) s" Qhours:minutes:seconds"
5 m5 f! [7 m. ]  [# c expr中允许任何标点做分隔符,如果所有是date值时结果是一个5 h9 I6 {+ O+ U+ g8 d, Q
date值,否则结果是一个datetime值)  
2 Z1 H6 o$ u- ?$ ~5 L 如果type关键词不完整,则mysql从右端取值,day_second因为缺$ T2 ^% p$ n! e: ~+ L
少小时分钟等于minute_second)  ( l6 l, Q6 o7 F) p' |9 e
 如果增加month、year_month或year,天数大于结果月份的最大天1 O" X( {8 I* V7 w# x) T
数则使用最大天数)    2 J+ R7 t' c, X  \: p7 r+ ~! k6 k. i
mysql> select "1997-12-31 23:59:59" + interval 1 second;  4 I! b) C# U5 P. E/ \; w
: r! X: U$ g5 {; M* O/ `9 [- V
  -> 1998-01-01 00:00:00   
! e0 t- I$ V% H% ]4 Imysql> select interval 1 day + "1997-12-31";    : y% b9 u: X- V
  -> 1998-01-01    & y5 W& |+ q1 |  O6 _4 y
mysql> select "1998-01-01" - interval 1 second;    ( T0 d$ {0 w$ c& M; v: @. E# x
  -> 1997-12-31 23:59:59   
! t' h" F* A, K* }/ g" Bmysql> select date_add("1997-12-31 23:59:59",interval 1
8 e4 M( y0 F+ s5 V: r( O  u4 w& Zsecond);    & O, B! C) q- x" ^9 z& `& j
  -> 1998-01-01 00:00:00   
; V2 ^1 [: S9 q# I  tmysql> select date_add("1997-12-31 23:59:59",interval 1  R1 @* k2 e( S: K& {4 ^/ ]0 J
day);    $ t5 \! L, f( E; [7 W: v
  -> 1998-01-01 23:59:59   
2 Y! e+ e# l, k& t8 Fmysql> select date_add("1997-12-31 23:59:59",interval
* X1 w8 U+ V  Q0 u( V"1:1" minute_second);    6 U2 @; |8 q) G
  -> 1998-01-01 00:01:00   
6 ?- L& n: y6 f! q% [! y8 B1 umysql> select date_sub("1998-01-01 00:00:00",interval "1
  L' c+ l  A* `4 d1:1:1" day_second);    : j  B# [3 v: {- H- J5 O) f
  -> 1997-12-30 22:58:59    , S/ k" q6 {2 Q+ L! e
mysql> select date_add("1998-01-01 00:00:00", interval "-1: b' q2 L2 J. ?& G* Z, E
10" day_hour);  
% E: O4 A2 w6 v" b  -> 1997-12-30 14:00:00   
: C* f/ }9 W6 W  f; }. Gmysql> select date_sub("1998-01-02", interval 31 day);   
# ~3 D$ m- t; E3 J  o- Z1 B& ?3 Y  -> 1997-12-02    + _, Q3 F5 r' i0 R8 A
mysql> select extract(year from "1999-07-02");    6 f# y. M; Z6 v5 g+ X- q# a1 K
  -> 1999    # I7 n+ r- ^3 B+ {9 l4 L
mysql> select extract(year_month from "1999-07-021 M- K% p% K0 ^; C
01:02:03");   
7 q; U! e2 e. u2 c  -> 199907   
; o% c" Q( W, Z; u1 ^mysql> select extract(day_minute from "1999-07-026 w' t  L1 }8 L/ p6 ?8 x  O  {* {& h
01:02:03");   
% m  ~6 e0 H3 _8 U6 ?  -> 20102   
, Z9 k8 t+ y7 l0 _3 \. M+ G
' b% S$ f/ {: }) H- \to_days(date)   
; J+ j3 G6 s2 G& |1 ^& D返回日期date是西元0年至今多少天(不计算1582年以前)  
) W( e7 N% n1 W) l. }8 Bmysql> select to_days(950501);    5 e% [! W, I  W: P2 W
  -> 728779   
6 Y8 {; N' y3 `* s* ymysql> select to_days('1997-10-07');   
* @& c( _4 i3 L& M1 R  -> 729669    # G4 ~; s- @& `  {: n
5 [# R2 }' b6 ]. I7 Q" r
from_days(n)    0 B0 M* F% A0 l' L4 I
 给出西元0年至今多少天返回date值(不计算1582年以前)   - O* x( S' o, n! p8 j/ A  e* _* T. b
mysql> select from_days(729669);   
4 p7 Z) Q) X, i3 o: Z3 X! k8 D  -> '1997-10-07'   
0 w6 S/ d. p5 `3 d: t% a: m/ N" p
: f' U; v9 p8 l2 ?4 L" v8 ddate_format(date,format)   
) f' i8 w% p  G1 {2 _: n 根据format字符串格式化date值  ( _( d7 s1 ]2 [; V9 H
 (在format字符串中可用标志符:  
- w* L2 A; }" v" A6 f %m 月名字(january……december)   
: k( u& Z% q/ ^- \8 o3 Y' N %w 星期名字(sunday……saturday)   
& q: f3 W) z* `2 u# h %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)   
2 O% N0 w0 {+ x %y 年, 数字, 4 位    : D% l$ i* W! R% l3 h% Z
 %y 年, 数字, 2 位    ! M! q% B' i( A. _
 %a 缩写的星期名字(sun……sat)    - T& A) p, J2 U" z) R% W
 %d 月份中的天数, 数字(00……31)    6 }; \' N* ~# q! f' W0 E* N
 %e 月份中的天数, 数字(0……31)   
& g3 U# E% S3 c6 n# t4 G0 b* N2 u %m 月, 数字(01……12)    ! e5 u, ?7 R! }9 [- v* f7 q2 r/ \
 %c 月, 数字(1……12)   
4 Y% Z) W9 \3 ]0 o+ Y %b 缩写的月份名字(jan……dec)   
; R; C, V6 P+ g2 t& M %j 一年中的天数(001……366)    * u( A  Y% i, q1 q
 %h 小时(00……23)    2 m: M5 L+ u* G7 `% c3 {( |4 S
 %k 小时(0……23)    6 F: ]6 F' n" N: {' E% F
 %h 小时(01……12)   
; B% c$ Z) m1 ]( | %i 小时(01……12)   
3 {( \7 Z% N5 y: H, S %l 小时(1……12)   
$ N( D' u. e$ K, I! h %i 分钟, 数字(00……59)   
  o: U/ q* E! j+ _+ n( f* S% ?* i %r 时间,12 小时(hh:mm:ss [ap]m)    3 d& Z% G, f: r; N) {; Z
 %t 时间,24 小时(hh:mm:ss)    + g8 i; h- r( s6 X* }
 %s 秒(00……59)   
2 i$ p2 f; s, ]; U %s 秒(00……59)    6 c7 @( _6 Z# o0 L4 p, X- m
 %p am或pm   
+ a  _9 p3 ~; A( C$ @; f$ p %w 一个星期中的天数(0=sunday ……6=saturday )    0 l! x. I1 ~% u" O; ]: O8 G+ P
 %u 星期(0……52), 这里星期天是星期的第一天   
) E  n* b- ]: N# H %u 星期(0……52), 这里星期一是星期的第一天    ( a: Z( A2 [9 ?1 u; K; |
 %% 字符% )  * W- ]/ y2 g. _  g. B* e
mysql> select date_format('1997-10-04 22:23:00','%w %m %, S) x+ @2 z3 u5 x
y');   
: n/ e8 o4 W# Q. O6 y8 u5 O' v& p  -> 'saturday october 1997'    3 s% A9 t4 ?4 I, L
mysql> select date_format('1997-10-04 22:23:00','%h:%i:%
5 ^4 O7 D+ O9 o1 B3 J2 R" b6 T# ~s');   
. b! d  g# P( s& g2 t  -> '22:23:00'   
0 h; C. _2 U: I  Omysql> select date_format('1997-10-04 22:23:00','%d %y %a  C' V" @) n0 \, O+ p$ }7 [
%d %m %b %j');   
8 o2 Z& X6 v6 A6 i5 [7 m  h) W+ v- T4 ?  -> '4th 97 sat 04 10 oct 277'   
1 N6 P# i1 R0 S+ bmysql> select date_format('1997-10-04 22:23:00','%h %k %i. }& W( u4 J* ?! O, ~5 B# {3 M5 v
%r %t %s %w');    / k2 g/ t# i' z  i
  -> '22 22 10 10:23:00 pm 22:23:00 00 6'    ! ^8 ^8 u  [8 R- i
5 n. E3 ^/ d' W5 T  f9 d- M% Q% y
time_format(time,format)  
; s. J8 [6 E) D 和date_format()类似,但time_format只处理小时、分钟和秒(其$ B3 ?/ o6 E. I$ p7 y4 m$ U
余符号产生一个null值或0)  % Q  E0 P4 f( _% w) }& Q
; q$ k/ u" @1 k7 E4 |
curdate()     
) U! h* {5 e7 {( r% o/ f2 i- scurrent_date()  ) L# L, c, u" c9 _4 H2 _
 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
1 Z/ Q: S) X7 P! @* ~处上下文是字符串或数字)    3 Y( n5 G# b) B' _* S9 f5 R
mysql> select curdate();   
  w/ {# l9 ^1 U. D8 F  -> '1997-12-15'   
9 O0 B: O, M! V8 @( gmysql> select curdate() + 0;   
' e' C7 V' v* f6 F& w, r3 `0 X  -> 19971215    9 ~1 n5 B# s* Q0 I
0 P4 x2 j6 Z8 i. }8 J7 j. l. V9 ^4 I
curtime()   
1 y, D: |4 O- Ccurrent_time()  9 t) _: ~8 s# |7 G6 c5 I
 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上% `2 C9 Y/ X" V2 b0 a
下文是字符串或数字)      8 J1 F( f! o) C; \2 ^5 f
mysql> select curtime();   
3 i, T/ R2 X7 F" r6 `7 K0 H  -> '23:50:26'    6 I1 S! w: v3 f
mysql> select curtime() + 0;   
. }3 g6 v. z  q  -> 235026    6 K# t9 ^8 Y  \% n
( o! U6 y8 W& E. {. D- v3 o
now()    9 i9 p3 G" ^, f; r" i4 G. V4 |
sysdate()    
9 q6 N" I' H& jcurrent_timestamp()  - A, B* B4 `1 D2 f9 m2 L0 w  `
 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期" J3 M% e8 s  r$ P3 W
时间(根据返回值所处上下文是字符串或数字)     ' Z; J2 m$ c6 x
mysql> select now();    ( D+ g3 Y  Y3 \, k3 e/ z
  -> '1997-12-15 23:50:26'   
! O+ P: g9 _6 u6 ~1 D/ ^# h# Umysql> select now() + 0;   
8 q8 S3 J6 V* r. v  -> 19971215235026   
2 W8 a6 Y) ?9 {9 S6 a - e3 i- F- |! \6 Y
unix_timestamp()    0 Y1 t7 ]1 f: d9 U% F/ q. Q+ b
unix_timestamp(date)    " R/ x- {9 Z' p
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒
* c' j! W; E" K. @) o数,date默认值为当前时间)  
' ?) D' a3 V! ^$ b/ i" U0 }mysql> select unix_timestamp();    ' L, k8 N# a" o4 q, |
  -> 882226357    * Y" `5 M2 G* J; ^% ^  [
mysql> select unix_timestamp('1997-10-04 22:23:00');   
4 ?. k2 @! p* ?! T  -> 875996580    + F, Z1 U8 o3 p- j6 }; [

3 M8 [* G1 Z. B# c) v3 ?from_unixtime(unix_timestamp)   
% v0 \1 r6 X, W以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的) z- m8 M: C1 K' j
值(根据返回值所处上下文是字符串或数字)     
& V& c+ V  \( Y# x; b3 Kmysql> select from_unixtime(875996580);   
% o- W: U3 Q; a- u6 H9 Z  -> '1997-10-04 22:23:00'   
5 h1 ]' I& p: G3 i" mmysql> select from_unixtime(875996580) + 0;   
; C' g. `  Y* z0 h5 u5 V+ f  -> 19971004222300   
: U# p5 w/ {4 s: Y/ w# V + _" J5 C0 |+ ]2 Q7 h
from_unixtime(unix_timestamp,format)    
/ z1 s& T* }5 S9 Z1 ~2 T8 N以format字符串格式返回时间戳的值  * A2 f# k# Z( _. A  R
mysql> select from_unixtime(unix_timestamp(),'%y %d %m %; L2 W, C, \( D' A
h:%i:%s %x');    1 C! j( I$ k, Q2 q, Z
  -> '1997 23rd december 03:43:30 x'   
6 ~1 M) d6 Z* ^# A9 {4 B
* i2 b' }- s! k! i. v- W% \sec_to_time(seconds)   
1 }5 s1 ^! t& T' |( y* d! M' G以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
5 S* _8 Y8 {  d- K* qmysql> select sec_to_time(2378);    " C3 V; a- ~) U& T7 U- s
  -> '00:39:38'    % e2 t6 r" }8 C
mysql> select sec_to_time(2378) + 0;    / F; d: P* P: A8 m5 R
  -> 3938      s+ ?+ R0 p/ F4 @, h
, Q" {/ ~+ E# g) m* |/ g" r
time_to_sec(time)    ! a- i0 ?* B* `
返回time值有多少秒   
  ?: s9 ~4 r* J3 bmysql> select time_to_sec('22:23:00');    " ?$ a/ J7 K3 K1 z
  -> 80580    * L  R6 l$ k6 i, o- r0 P
mysql> select time_to_sec('00:39:38');   
5 C; p  ]9 s$ r  -> 2378 3 ~* f9 w, v! p

$ a4 b+ D. i% s' w2 G4 V4 D0 f3 d转换函数8 w* p8 P* i! S& c- Z9 a( K
cast$ Y+ N/ N" |, \2 X6 ?* v7 b" |5 ]6 h( C
用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]  ^0 V( q3 e' }$ M' Z, j  z
实例:select cast(a as unsigned) as b from cardserver where order by b desc;+ v7 `7 U, u( {1 a2 M" r# E% I
convert:
) v# v1 l& l& |; w) r用法:convert(字段,数据类型)) a4 C4 _  u5 L9 U1 x( \
实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
& I# k# r- ^3 d# `
回复

使用道具 举报

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

本版积分规则

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