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

mysql常用函数大全

[复制链接]
跳转到指定楼层
楼主
发表于 2018-3-21 16:07:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1、字符串函数$ I2 V! l! ^* e2 Y
ascii(str)   $ W, s* z( E0 @5 l2 h- S+ f  C
返回字符串str的第一个字符的ascii值(str是空串时返回0)  8 k6 `% Q  m& j5 ?
mysql> select ascii('2');  1 I7 R% I1 U* J4 R6 x
  -> 50  
/ K- u5 e1 K* ^) K2 \/ Cmysql> select ascii(2);  & b; W6 B& c" \4 M: H. d
  -> 50  
1 _9 @/ _7 m& x" d  _$ hmysql> select ascii('dete');  * O* k, t/ M7 ]+ S( y
  -> 100
' }1 I( s+ S* {+ P8 U3 U+ G
ord(str)   
, Q1 I# {' q6 `& Q如果字符串str句首是单字节返回与ascii()函数返回的相同值。
1 M* @9 @2 U) `5 f2 V- J - @5 t3 a5 R' j4 x3 ]; @
如果是一个多字节字符,以格式返回((first byte ascii code)*256+(second byte ascii code))[*256+third byte asciicode...]  1 I  s) h, B# C( w# z! c- X7 m! g
mysql> select ord('2');  
, i9 H+ r! F: v6 t( W  -> 50  : z) k' z- e; N4 I+ y
   / C+ U1 d- d& q" E
conv(n,from_base,to_base)   
! c. Y) d4 ~, `$ V对数字n进制转换,并转换为字串返回(任何参数为null时返回null,进制范围为2-36进制,当to_base是负数时n作为有符号数否则作无符号数,conv以64位点精度工作)  
# F3 N; t4 I- I3 Z  Xmysql> select conv("a",16,2);  
! M9 v3 p5 q$ o* K( M$ b  -> '1010'
5 T' o' e3 E2 n: o* `mysql> select conv("6e",18,8);  
) w2 ^& E- G4 `" X  -> '172' 7 D& W$ a$ M* o2 n0 I1 c
mysql> select conv(-17,10,-18);  : T* A- _; ?, M& r1 B# Q
  -> '-h'
" M+ X2 ^  W! \6 _: \! k3 nmysql> select conv(10+"10"+'10'+0xa,10,10);  
9 W( o! @6 X% C. ~' B  -> '40'
' W7 f4 l# T' S1 K   
! L% \" T* ~5 ^/ B- c) obin(n)   
8 B$ N7 i3 T! [  R把n转为二进制值并以字串返回(n是bigint数字,等价于conv(n,10,2))  
# b+ m8 i* |& ]! x, }mysql> select bin(12);  $ A. R" a# s  t3 s
  -> '1100'   D, k& l) z3 f/ K

) \. x. q; |0 N& Goct(n)   3 m1 l, m3 a8 ~- Y& [6 o* a4 G
把n转为八进制值并以字串返回(n是bigint数字,等价于conv(n,10,8))  ) n7 R! s, ?# f5 O( l0 C; E
mysql> select oct(12);  : T* X) d7 p; e  f1 X
  -> '14' % X: i# c* b( ^
   % k5 k% N$ ~+ B
hex(n)   % G! Q7 T3 j8 U* N
把n转为十六进制并以字串返回(n是bigint数字,等价于conv(n,10,16))  
# w7 H+ {% l; h. [% rmysql> select hex(255);  8 n: p) o+ s1 B& L
  -> 'ff' & N- J) T- |& o; y. X- X4 C
   % ]/ x( D) P& k* C
char(n,...)   : q8 s% l4 q" e5 V
返回由参数n,...对应的ascii代码字符组成的一个字串(参数是n,...是数字序列,null值被跳过)   ( ?) r) Q$ }' \7 V" K
mysql> select char(77,121,83,81,'76');  
, r6 z1 G. C; C, c# i  -> 'mysql' ( G# R9 D' v" a' K( A: y
mysql> select char(77,77.3,'77.3');  0 H8 Y! X3 p! ]% r
  -> 'mmm'
8 m# T. b* v6 C3 h   7 c- B! C/ {& Z2 m9 p
concat(str1,str2,...)  
& p9 ?2 C* R" b( o$ Z* t把参数连成一个长字符串并返回(任何参数是null时返回null)  5 c+ X* U% Z0 K/ ~& M  z$ @
mysql> select concat('my', 's', 'ql');  - R: z- h# `- G3 \
  -> 'mysql'
& D4 t, Z$ `5 Umysql> select concat('my', null, 'ql');  
1 e4 }% `9 c2 L3 @5 R& |  -> null ; [1 B# [+ r  K6 s2 s) }, A
mysql> select concat(14.3);  ; S9 J3 Z. S) k0 C) p
  -> '14.3'
7 R! X, K( l. V* h; A
9 P8 x, X; @# slength(str)   , a* Z' b( t; U& J9 B% F1 E- q
octet_length(str)  9 o- D3 o' r( ^0 Q3 g6 s8 t, S" P
char_length(str)  
6 S+ s, M6 m; I9 A% o! ]& Xcharacter_length(str)  9 w8 v4 E+ W7 b' k4 @9 `
返回字符串str的长度(对于多字节字符char_length仅计算一次)( c/ O* B" f# `% r
mysql> select length('text');  % V4 j6 ?: K  y; e/ J
  -> 4  0 p" ]9 B, H7 Q1 ~; ?8 D
mysql> select octet_length('text');  
$ t2 `  \, g+ Y, K+ Q  -> 4  5 ]: H7 t8 [' r6 J1 }5 v. F; v, {  k
( w6 T3 A% C+ H$ k: E! g6 t3 a* e
locate(substr,str)   
7 v4 w6 G5 a4 }5 pposition(substr in str)   
1 D( _5 }0 p5 K; P& @" k& H返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  0 `% q' b9 Y( P9 ]2 C
mysql> select locate('bar', 'foobarbar');    c6 P1 [* [- r% o# E
  -> 4  
8 k$ J, D3 s  l; Z0 Wmysql> select locate('xbar', 'foobar');  & q% V5 v- N+ N7 K
  -> 0  $ W; f1 G. A% z( v
    # {6 g. I* B0 ?
locate(substr,str,pos) ; s' {4 i/ W2 M" k* n  a
返回字符串substr在字符串str的第pos个位置起第一次出现的位置(str不包含substr时返回0)  1 w3 o% \  {3 Q1 S( Y; d
mysql> select locate('bar', 'foobarbar',5);  
9 d. q6 R6 S, r! |* a& r4 a9 |5 ?  -> 7  
8 U2 q9 x# {' y; N0 P' }" H   B* M9 x3 X2 E5 ~$ m) {
instr(str,substr)   9 a" B$ u' h/ L; e: n% P4 ?
返回字符串substr在字符串str第一次出现的位置(str不包含substr时返回0)  3 a9 f! Z* c- S. `/ t! w
mysql> select instr('foobarbar', 'bar');  " ^6 V. J4 Z5 `- m9 @  h
  -> 4  
5 D/ Q0 g9 `5 b5 K) O3 Bmysql> select instr('xbar', 'foobar');  ( M% \( Z' c7 \
  -> 0     g& s8 n" O0 A$ M5 J/ U2 e

/ s9 f( j7 V1 @lpad(str,len,padstr)   7 I/ a3 S2 P/ O0 \; e6 B; F
用字符串padstr填补str左端直到字串长度为len并返回  
& n, y" h. u0 W7 q! Mmysql> select lpad('hi',4,'??');  " W5 P# n1 f) @( {& D) X/ \0 N' J# K  ~
  -> '??hi' $ S0 S6 I: ]6 K9 I2 t1 H
   
) p) r6 g7 ~! V: wrpad(str,len,padstr)   
! F, [. {# Q2 E: n' P: y" k用字符串padstr填补str右端直到字串长度为len并返回  
( b# c) r0 U: a0 ^0 q, \9 D$ I# Vmysql> select rpad('hi',5,'?');  ) r! E+ c2 x0 a6 p  Y. R8 B
  -> 'hi???' 8 W8 V6 m9 k: m5 O, t  `; T

  O. C# k8 y" c4 }left(str,len)   7 \' K- X' v' i7 e* X0 R/ `
返回字符串str的左端len个字符  8 i7 K0 s& U4 p: L& c0 z) w# s
mysql> select left('foobarbar', 5);  % u- W& I) W; R) O
  -> 'fooba' ; w) E" l( x' O3 r! L
, C$ i, B4 z. a3 S: n# B
right(str,len)     V. n4 I% X2 j2 P8 [
返回字符串str的右端len个字符   ; z8 U5 F3 a; R6 N6 Y, G
mysql> select right('foobarbar', 4);  ) Q0 P0 o8 {2 S' \% @7 @
  -> 'rbar' " b3 }* x0 B/ F$ p

: J! w' @' z* L! ]9 Nsubstring(str,pos,len)   % f9 Z' b# k- |$ H1 C
substring(str from pos for len)   6 d$ y+ I7 d- w# E7 _
mid(str,pos,len)   
3 U6 W+ `0 X  D2 L返回字符串str的位置pos起len个字符mysql> select substring('quadratically',5,6);  , }: j. N3 l8 }
  -> 'ratica' 6 C0 g, [+ V7 D) y4 L( @, l
4 ]) b( w& W! p( \
substring(str,pos)   
7 G; @% Q) C; i% wsubstring(str from pos)   
: z) N* P$ ^1 l* Q! i, f: A7 z返回字符串str的位置pos起的一个子串  
! l0 z+ k* T6 {% \2 h. Z- Pmysql> select substring('quadratically',5);  4 _" p) q, [. R' c: F
  -> 'ratically'
+ r' F. s/ I+ a, }mysql> select substring('foobarbar' from 4);  
) r9 q8 d$ `5 p/ b& @9 O$ ~; l7 W  -> 'barbar'
" F+ X0 L8 O) B0 a, R3 Z3 j * G" Q6 R' c& Q8 S& O, c
substring_index(str,delim,count)   $ s( W, x8 \7 ~7 N% w3 v
返回从字符串str的第count个出现的分隔符delim之后的子串
4 i/ k8 T; a* U(count为正数时返回左端,否则返回右端子串)  
7 q* o0 X' o! k# q% j: l/ ?$ ^mysql> select substring_index('www.mysql.com', '.', 2);  / q: H( A8 d1 U
  -> 'www.mysql'
5 o* x3 g% ]9 M' S' c2 ^% U# N2 d5 Hmysql> select substring_index('www.mysql.com', '.', -2);  
* r( Q! Y* s" ~% A% i$ ]  -> 'mysql.com'
. T' @+ k7 n* {3 e1 I/ N * a1 f. ^/ |: Q( F  E6 j
ltrim(str)   ' H( \) ^" x. X
返回删除了左空格的字符串str  
7 Z& u# E% C' c# `mysql> select ltrim('  barbar');  
: w0 C" n7 _0 A& q  ]  -> 'barbar'
7 }: ?' y( C8 |9 A3 s0 a
- ^0 ]# w0 P+ ~+ \rtrim(str)   ; w; o# E* ?) ^5 a
返回删除了右空格的字符串str  
- Q0 T5 G5 m- H9 j0 v+ A7 t& d$ hmysql> select rtrim('barbar   ');  6 w) [1 {3 q* D. j3 F
  -> 'barbar'
, l2 p' B* F8 e8 g7 [ 8 z. @( ]) @$ v9 J
trim([[both | leading | trailing] [remstr] from] str)   & @5 V  M0 `+ I- ~# @/ y1 S7 ^0 F
返回前缀或后缀remstr被删除了的字符串str(位置参数默认both,remstr默认值为空格)  
, q: v: \) A# ^0 f* F* O" d  J: Qmysql> select trim('  bar   ');  
0 O! |$ _' p( n! q1 w- W3 X  -> 'bar'
& K0 `( v+ x7 U5 e( Y, Vmysql> select trim(leading 'x' from 'xxxbarxxx');  ; D7 Z, M& C6 q+ V0 U8 {
  -> 'barxxx' $ q+ u6 S  C3 d( |
mysql> select trim(both 'x' from 'xxxbarxxx');  * U+ {9 ?" S  T5 `: n# u+ Q
  -> 'bar' : B8 d( j& `$ ~8 r! L0 C) d
mysql> select trim(trailing 'xyz' from 'barxxyz');  . _; T! |# S. X" x  e9 x& @
  -> 'barx' ) K  H1 F* E8 b% ~$ T

, I- X$ T8 S+ }soundex(str)   
$ h1 R0 {# s1 f7 q1 h返回str的一个同音字符串(听起来“大致相同”字符串有相同的
9 W5 W+ k, P) H3 d' _' Q8 K同音字符串,非数字字母字符被忽略,在a-z外的字母被当作元音)  2 s* R: P7 F7 J& ?4 I" z# e3 B
mysql> select soundex('hello');  $ w+ d% n# C" B
  -> 'h400'   R6 P. A# `1 e: S% k4 G
mysql> select soundex('quadratically');  
1 y" S0 |8 k7 U. g6 B: t: _  -> 'q36324' 3 c  o9 f* _0 }: P; J, Q
   
' ]: Z! I! W5 n* Dspace(n)   
/ b" G! M: T6 f返回由n个空格字符组成的一个字符串  6 y0 l0 G* @4 a+ \6 \( C5 a
mysql> select space(6);  
3 {, d  l; c4 b$ ?" d) \  -> '      '
( I/ ?( l9 l+ p5 d" E+ f; I   
  M2 i) G. ^5 V, a6 J8 Ireplace(str,from_str,to_str)   1 o/ y3 K6 d( e0 O+ J
用字符串to_str替换字符串str中的子串from_str并返回  
+ w& f$ l3 R( d: w% }7 u& Pmysql> select replace('www.mysql.com', 'w', 'ww');  
( p+ d3 l3 G- O: @. y  -> 'wwwwww.mysql.com' 7 h" [0 o5 p( r$ a; |
7 x& x" Q! u. |0 Z
repeat(str,count)   , F& _5 E' D; W* p9 ~
返回由count个字符串str连成的一个字符串(任何参数为null时  S9 t$ k: e- r3 I( C- Z
返回null,count<=0时返回一个空字符串)  
( a2 d" R( R4 ?+ \: y, emysql> select repeat('mysql', 3);  
$ h2 Z" ~6 o9 b; L0 J6 J  -> 'mysqlmysqlmysql'
: y# ^9 p6 P3 G* W1 h. W/ M& c! o   0 y2 P, Y4 z/ \8 z* D
reverse(str)   
6 u* c  p1 d$ C9 N/ x" w$ W颠倒字符串str的字符顺序并返回  - V5 |5 u5 f2 H6 g
mysql> select reverse('abc');  
* \+ r1 a" A, @( V  -> 'cba'
; t2 b) u8 M; d
+ L6 N2 M* v4 F9 A* vinsert(str,pos,len,newstr)   
! V* W, [4 R/ o$ ]: f把字符串str由位置pos起len个字符长的子串替换为字符串
! d. F0 x  F9 n2 h# G2 \  q: H% D  inewstr并返回  " S3 W6 E, q( v) q
mysql> select insert('quadratic', 3, 4, 'what');  % S/ O# {4 T! A3 q( E' B
  -> 'quwhattic'
4 }$ W  F4 s/ V( c+ J, A9 \ 6 f+ v3 X" B" R! m8 l$ \; c- D
elt(n,str1,str2,str3,...)   1 g: x5 C+ q1 N8 f. b$ n8 R# [
返回第n个字符串(n小于1或大于参数个数返回null)  
, K- u1 D# G1 N. j& bmysql> select elt(1, 'ej', 'heja', 'hej', 'foo');  
) x' ]0 M: j4 p9 U  -> 'ej'
/ o/ n* P- M$ d8 x4 O. Tmysql> select elt(4, 'ej', 'heja', 'hej', 'foo');  
  M1 ^$ n* ]' O: @! J  -> 'foo'
( V% |9 o+ q/ r* A
  `1 X7 x" j5 _/ ^; qfield(str,str1,str2,str3,...)  
' G! H9 q5 D" \返回str等于其后的第n个字符串的序号(如果str没找到返回0)  0 {- I0 s  g1 O  Y6 l
mysql> select field('ej', 'hej', 'ej', 'heja', 'hej',
. R8 T8 s* }0 k( R'foo');  ' M! I  |' J( Y2 Y2 \0 G
  -> 2  : S8 l4 v# B8 J9 r2 S2 c. h7 G% F
mysql> select field('fo', 'hej', 'ej', 'heja', 'hej',
+ N4 K' {# k" V'foo');  * n4 R# M4 x; ]0 w: |
  -> 0  ; P8 Z7 `6 r7 ?* C+ ?+ O

/ ?3 d3 {% \9 Efind_in_set(str,strlist)   5 i9 a  F! t: k
返回str在字符串集strlist中的序号(任何参数是null则返回* w( s) z* \" l* Y  t3 O* e
null,如果str没找到返回0,参数1包含","时工作异常)  ) {3 y3 U5 `; h: w' h" U* ?% ^0 q
mysql> select find_in_set('b','a,b,c,d');  8 m- e& G" N3 h) S: y; C8 Q; J- C
  -> 2  
: n, ^" S# t  ^( f2 Q, P   + o; r! ~+ M4 {! V/ f* p. x% D
make_set(bits,str1,str2,...)  / N: @; F3 e- v" O, N
把参数1的数字转为二进制,假如某个位置的二进制位等于1,对应
7 n' g% K6 D7 w) W2 p/ k位置的字串选入字串集并返回(null串不添加到结果中)  
, b( n* J5 a! Ymysql> select make_set(1,'a','b','c');  2 n3 X/ l6 k& A0 v
  -> 'a' 0 ]4 K+ _* e2 y! o
mysql> select make_set(1 | 4,'hello','nice','world');  
7 s& V9 f0 |8 {' G9 P* c8 v  -> 'hello,world' 2 ?' U: v/ E0 B  S
mysql> select make_set(0,'a','b','c');  
) }9 w# b& O+ d9 L, y  -> '' ! s/ `) w' e6 ~) C) a

+ E1 \7 V& {0 R' Sexport_set(bits,on,off,[separator,[number_of_bits]])   9 i4 ^5 F! |3 Z8 x
按bits排列字符串集,只有当位等于1时插入字串on,否则插入" x. p' j5 j% a; P+ K% P- `
off(separator默认值",",number_of_bits参数使用时长度不足补0
8 `. ], r/ Z" X: F而过长截断)   + ^; E9 @( ^9 J5 I( n" y: W* \
mysql> select export_set(5,'y','n',',',4)  
( ?* @' |6 k* m7 O  -> y,n,y,n   1 p# |& U0 z- U6 ^& m: c
$ e: ?/ x, Z8 }5 o, l$ y
lcase(str)  
* M6 `6 h3 O9 c  C" k8 [lower(str)   7 k1 X* r0 ^; O, D# U& J9 J
返回小写的字符串str  
, ?7 V" H' b) y) e  ?mysql> select lcase('quadratically');  4 j# y% f$ Z2 m
  -> 'quadratically'
% ?# o) L) u0 A9 W& H) O: w" _9 {   
) P6 d0 V6 ]; S  l3 X. qucase(str)   
) f( t, ^) F4 V5 N: L6 w& `upper(str)  
2 r% Z9 F; T# @返回大写的字符串str  6 T6 m' Z% i' s% M% q
mysql> select ucase('quadratically');  
5 O+ z! l) @: L  -> 'quadratically' ( ]/ G; o. B& Z  e& U

: g2 \* k2 f) V& n$ J. s3 Yload_file(file_name)   
: A2 x- H1 z4 F) }/ a: @( b7 v8 C6 k" J2 N读入文件并且作为一个字符串返回文件内容(文件无法找到,路径* d, P5 I" K* q: |
不完整,没有权限,长度大于max_allowed_packet会返回null)  
3 c5 w) D1 [. y7 m( b2 T' |mysql> update table_name set blob_column=load_file  c/ x& J+ n! I2 }# d
("/tmp/picture") where id=1;  
* p- W4 @) [' n: c) M: T% e 0 i- {0 X( ?& x. Z( S9 c
2、数学函数3 v9 ]) b+ G# q1 c
abs(n) ( @! X$ |, G& Z* F3 [# @
返回n的绝对值  $ }, _. T+ H5 _' Y
mysql> select abs(2);    $ o; B7 V2 u8 a% f; |: x) m
  -> 2    # V- x- v' \: D5 A2 G0 S
mysql> select abs(-32);   
4 b7 w' V* `. G+ J  H+ |  -> 32   
  n* s! R' ~9 w  n# i   
4 T, R  M' u: m( A# r6 esign(n)  + Y) c1 \4 G7 L5 D  T" g
返回参数的符号(为-1、0或1)  # G) C" B" {' |6 H9 J; ~# m5 V
mysql> select sign(-32);    ( ^5 l- @& r1 b0 s" ?; \2 b
  -> -1   
3 T" q+ S" r9 pmysql> select sign(0);    : g: E1 Q% V% w$ @6 {
  -> 0    # C* Z, I! W' q& S# H5 E. k
mysql> select sign(234);   
' y5 `- |" o# \  i; a4 g  -> 1    ; M" Q' J5 T& S# Y; v
% o3 e4 R3 L& [# j
mod(n,m)   
* v3 n; A( m; I; ?$ g4 ?取模运算,返回n被m除的余数(同%操作符)    6 m6 i8 g( s! `( x9 x  z
mysql> select mod(234, 10);    ( f' ^0 L" b" P
  -> 4    . A' C" _9 m2 o' C/ t6 J
mysql> select 234 % 10;    5 ~% [+ b! ^) m+ F
  -> 4    / P  F9 q% ~8 b+ l; p- p! J- \; T
mysql> select mod(29,9);   
- c' u1 f) P. x  -> 2    3 g( I4 c7 o' K* y4 S& M. `2 k
( q4 }% H1 P( E6 S1 Y
floor(n)  2 C, O, \2 V# Q/ p  U; }% ?
返回不大于n的最大整数值  , Q* F; F+ W9 I! \1 A
mysql> select floor(1.23);   
3 `. y; j+ ~, F$ L1 `. {  -> 1   
7 i3 G: m) [3 s1 G- t4 O7 N: X- amysql> select floor(-1.23);      G0 K' c# ?) o- B
  -> -2   
4 D! B% s4 E+ Z- Q$ D, f
# X: h( m1 P% e/ K: g& [$ Y, i6 T1 Tceiling(n)  ( \+ o4 V  g  B- p. w5 s
返回不小于n的最小整数值  # L  @+ T# L# t! {6 ]; A% E5 n1 x
mysql> select ceiling(1.23);    . z% G& X( {( B" N" r
  -> 2    ( L* w6 c6 |; a' f$ \3 J# Y4 i
mysql> select ceiling(-1.23);   
2 |8 t# {% y! O5 E  t, ]4 P  -> -1   
9 h  d- ~7 z" g+ z( n6 h) M" @* C
8 P$ o4 n8 ]) D5 Jround(n,d)  ( M) ^' Y, {  y. o1 Y$ f
返回n的四舍五入值,保留d位小数(d的默认值为0)  8 l- g6 c( S5 ?' i$ V
mysql> select round(-1.23);    8 E4 N, V, e9 V! q
  -> -1    # c: [, E  u! k# y: l: A! O
mysql> select round(-1.58);    8 `2 F; ~% ], q) ~6 o
  -> -2   
8 }( [4 `8 r+ e' d, S% V& L8 gmysql> select round(1.58);    6 p0 ~9 q" N, U  W" b, Y
  -> 2    $ l0 y0 U5 G  e
mysql> select round(1.298, 1);    " o2 R- q6 I7 K8 K. Z4 ?
  -> 1.3   
% e4 s: P& `4 S+ d8 f3 T: N9 Umysql> select round(1.298, 0);   
+ @! ]/ b, L: k6 N( E7 r  -> 1    / m" F1 p6 e/ X5 u% e
" |! r" ]$ f" U
exp(n)  " H& K3 C: G0 j
返回值e的n次方(自然对数的底)  
7 C: E% O5 C8 p0 Bmysql> select exp(2);   
$ ^3 i0 c7 b4 h' t  -> 7.389056   
" b% ^  t" F. a; C) w* O* J, Nmysql> select exp(-2);   
) e/ Q, `' G/ d  -> 0.135335      h! m$ b+ }: T# z: \6 }  k
0 a2 `2 R% l! \5 R& m& J
log(n)  
- B1 q$ m! N  \$ ?返回n的自然对数  
0 \2 f& y0 S! Umysql> select log(2);    , V" n3 Q; b0 ]0 r& g6 T: \
  -> 0.693147   
$ u$ X1 _" j4 lmysql> select log(-2);    , q8 e# i9 H1 k( e8 `( _
  -> null   
" Y7 E8 _' Y, U1 i6 G# C ) }& `: i& E2 h: v$ `3 @- q
log10(n)  
# w" H0 Y9 C5 V, M* \  w; t返回n以10为底的对数    W- ]3 k1 I7 ~
mysql> select log10(2);    - o3 M" X6 T0 f1 S& m
  -> 0.301030    ; m. a+ u' f8 e. z, L; G- p
mysql> select log10(100);   
* n2 }: K, r4 V! z7 Q! y1 S  -> 2.000000    . a. _3 {9 a& d  G) G- J" x. B
mysql> select log10(-100);   
% ?  a) p2 [, E8 d* c  -> null   
  f; ~% m* b7 ]; ~/ q
; _6 l: o  M4 h. S* d1 f+ R5 Opow(x,y)    2 B; d" P& D! C5 L: i
power(x,y)    9 b4 U  S3 c9 M8 m/ U1 f6 w
 返回值x的y次幂  
3 w1 x' i1 L0 v: [- T- ^mysql> select pow(2,2);   
6 F6 U# q, ^% u  |  -> 4.000000   
8 n  O/ W. w4 pmysql> select pow(2,-2);   
0 ?/ C" `% Y; W9 w% _  -> 0.250000  
" m; U$ h6 Z: X& p) ~' |) r3 f0 g% P; ]! }! y# A
sqrt(n)  ( r0 |" g  A( U: }. T
 返回非负数n的平方根  % N/ a+ t0 `% c6 h$ p
mysql> select sqrt(4);   
: z/ P7 M  R0 |0 ]# c  -> 2.000000   
3 Y+ r( S2 {. E7 Q7 r1 M4 [  wmysql> select sqrt(20);   
% w) y6 s5 C2 u# W7 p7 z( I. M  -> 4.472136    4 K6 |; O- H& j& i& B3 e
/ @* K- p, v3 v0 e' G9 V" U& D& m
pi()    " J! |& w# ^7 z% x. G7 l0 q% p- G8 Z
 返回圆周率   8 F- e* R4 f( E! e4 {# ^* }
mysql> select pi();   
5 \. r! D( y, S$ W5 ^8 V  -> 3.141593    9 Z# [" P" F5 W, l8 W$ g  W- c
  t$ J; z0 c: a  |$ I
cos(n)  
7 q4 R1 h& M& z+ w( w( {8 j 返回n的余弦值  8 C$ h5 Z5 K; ]7 H3 x- }
mysql> select cos(pi());  
7 N6 B  G' X4 S5 K3 i, Z: v  -> -1.000000    0 e/ t& E! c7 ^, A' c3 {

# _0 x  _' Z% I/ d- csin(n)  
. m: D  r9 N9 H9 U% e  [ 返回n的正弦值   
4 Z# a4 ]+ ^2 t/ v0 }9 \mysql> select sin(pi());    2 E  k6 ?2 o! b" r, O
  -> 0.000000   
; ]4 Y; A, U4 F: M; J ; `1 s& y$ J+ ~# K+ k/ j7 ]: R
tan(n)  
8 O- a0 F# @4 J: N7 w! n, D返回n的正切值  9 d0 v5 q  j' e1 l
mysql> select tan(pi()+1);    * R' O+ H) J& [% N
  -> 1.557408    + o- o$ I+ N2 E8 |( M4 z

- p* v! O; ~$ @acos(n)  
! z2 u" L6 z% D1 R6 y: ]  z 返回n反余弦(n是余弦值,在-1到1的范围,否则返回null)  ( L0 f, R" w; h8 x; q
mysql> select acos(1);   
- K6 {: L5 h$ f+ N5 p  -> 0.000000    ) z9 t& ~6 R+ n0 F3 y2 }' J- h
mysql> select acos(1.0001);    4 s- D% `6 ]2 l
  -> null   
% j+ a4 O) \3 P) @2 Xmysql> select acos(0);    - C( ]& f3 D' b, Y5 B1 x
  -> 1.570796   
8 H) h& V. B+ v+ \5 w. K5 w
5 P5 O5 [" g8 p) N0 }' P9 dasin(n)  / J% g' g, d* `8 L) m
返回n反正弦值  8 J6 w8 Q% ]) ?8 A. ^( ?- a" J
mysql> select asin(0.2);    : m$ c6 H* W5 G! p; @
  -> 0.201358   
3 z4 D- w/ n$ Mmysql> select asin('foo');    . k! U/ b0 z$ {3 B
  -> 0.000000   
$ `3 M! Y% m- u* v/ Y( L
" J2 r7 Q5 n2 R/ `2 [: w$ ~4 Datan(n)  
5 m% [! G, {, ]2 z* e9 K返回n的反正切值  
% L- [5 J) m& bmysql> select atan(2);   
$ u, l) H3 J' V3 [% J  -> 1.107149    9 @5 a; N# k+ ^
mysql> select atan(-2);   
. w" o4 G  d/ d, V% ~  -> -1.107149   
) G' N! ?9 y0 Y' p# {( E% }atan2(x,y)      P5 ]4 j) Q( j4 x
 返回2个变量x和y的反正切(类似y/x的反正切,符号决定象限)  
- s. }" s% |: l1 zmysql> select atan(-2,2);   
2 P( ~8 w: S# x$ P3 J, k+ H: Z% Q  -> -0.785398   
) B3 n4 K+ a( s- v3 p4 umysql> select atan(pi(),0);    ' D; N, r  b& _3 n+ c3 I0 q% V: `$ R
  -> 1.570796   
& L1 e& [0 G: F& l. T# i3 ~; X + p3 S9 q; y9 d  p, U# J
cot(n)  
5 \4 d$ R0 Q+ l" f- b8 X返回x的余切  
& c& `6 ^1 C2 U0 \, [mysql> select cot(12);   
" m* u/ u, c6 g& h  -> -1.57267341   
: O. V8 i0 q7 P  U3 X3 w2 qmysql> select cot(0);   
9 i! k' m1 ], v+ C4 O0 T" }* Y  -> null    * {. [7 q7 ~% J  J# \

6 B6 z; u0 m0 Frand()  
, @; V9 _; P4 j: Yrand(n)    0 W2 m/ o- {2 Y- J
返回在范围0到1.0内的随机浮点值(可以使用数字n作为初始值)
# B& @, e; D0 \ $ Y, f( h" v+ x6 [3 r; E
mysql> select rand();    . s" d$ P) j- B. l
  -> 0.5925   
; Z- f  O/ M9 h9 i% j! _/ fmysql> select rand(20);   
, J- Z) c. ?$ M  -> 0.1811    ( a5 L. V0 o' e. p/ B
mysql> select rand(20);   
2 A3 G0 s! o9 F3 W6 q% G7 b  -> 0.1811    $ W8 N) i6 _* Z0 `
mysql> select rand();    2 \  i) H3 \( ^3 \
  -> 0.2079   
( C, t  ?- O! @, f9 ~8 P- r4 Ymysql> select rand();   
+ l. \: s% _: d& I' l  -> 0.7888    ( D$ P4 Q+ s2 o7 E

2 z( n1 X, Y; [2 k( O1 R& Adegrees(n)  ) J9 q7 C6 @& r0 i; C
把n从弧度变换为角度并返回  4 ^7 K! \% O; \+ ]
mysql> select degrees(pi());   
2 L5 F; @0 K4 r+ F4 L  -> 180.000000    % ]! i- D4 l$ |7 x% k
2 ]6 p: u9 F, ^* g$ I* F. w( ^
radians(n) & L; N; |" a, z# C1 N; Q0 w
把n从角度变换为弧度并返回   
( H3 c8 ]$ R. hmysql> select radians(90);   
1 _9 |' d. G( C* e4 q2 ^' n  -> 1.570796    * d3 |- I( B) h# S) Z0 `, C# S

6 [8 A/ z" k3 |. d: s( }% \$ }truncate(n,d)    5 M6 f* c$ F8 R7 ?0 m- z0 D
保留数字n的d位小数并返回  
* Z- R5 R7 e$ Omysql> select truncate(1.223,1);      {! {3 q9 @2 p$ @
  -> 1.2    ( ^$ I* z( D' r% W
mysql> select truncate(1.999,1);   
) Z4 _; T5 h0 j/ a: R  -> 1.9   
/ O# M4 I. K1 x: H8 F( imysql> select truncate(1.999,0);   
3 i0 Z  L7 F0 u5 ~7 w0 v  -> 1   
* O6 k2 B* r: p
4 M+ `8 `# Z/ i3 }least(x,y,...)    2 I) A+ _# H* u5 g( k
返回最小值(如果返回值被用在整数(实数或大小敏感字串)上下文或所有参数都是整数(实数或大小敏感字串)则他们作为整数(实数或大小敏感字串)比较,否则按忽略大小写的字符串被比较)  
0 P' J  n+ {3 z. pmysql> select least(2,0);    # h4 t$ r0 G/ v# Q
  -> 0   
+ Q3 m7 n3 f8 [& T  A! smysql> select least(34.0,3.0,5.0,767.0);    4 t, I. S, k5 Q% k: j
  -> 3.0   
  B+ n: c' a* Z& z% p5 y2 A% S2 e1 Cmysql> select least("b","a","c");    8 Q3 V% c/ S( [! j% _
  -> "a"   
# M, J, ?5 f/ Y . q" b; @* i. Z( O' ?- a
greatest(x,y,...)    % o* \$ G: \& S$ _. X7 B
返回最大值(其余同least())  0 v: G" G; t3 c( [4 D) \
mysql> select greatest(2,0);   
' _$ [( A6 m1 p) X2 R  -> 2    ) i) n0 {8 }. t+ @% w
mysql> select greatest(34.0,3.0,5.0,767.0);   
2 y% f" m4 {* y/ E4 h* F! q  -> 767.0   
6 e. I& L2 K# }. O$ smysql> select greatest("b","a","c");    : u. V5 j' a+ C- F. i( d7 _
  -> "c"     
5 o; C' J! q: V) ]; Q$ w! Y9 Y) H6 H- ]$ i$ g& {  S8 V! N; }, K
3、时期时间函数 ' o) S1 Z0 X* n6 m
dayofweek(date)    ! d. ^  I0 K' ^, V4 f& y- Z
返回日期date是星期几(1=星期天,2=星期一,……7=星期六,odbc标准)  
6 r; M- {9 z! I' O8 E4 F6 |8 w5 ~mysql> select dayofweek('1998-02-03');    7 S# L# R' |$ V0 {3 I9 ?; q6 u
  -> 3    # \, f: z. \. h' ^# _0 }4 w
* k/ I9 ~6 U7 {3 U2 L
weekday(date)   
7 C$ C, S5 h8 f1 e" Z! _; d% W# b. {返回日期date是星期几(0=星期一,1=星期二,……6= 星期天)。 1 X9 ]0 Z' S: W% g' b
  + j  ]& J" d2 G
mysql> select weekday('1997-10-04 22:23:00');    7 r5 g! @3 V$ b. y3 E! ^3 i2 O* M( r
  -> 5    4 b, E- P; x7 O) s8 ?( `# a) K
mysql> select weekday('1997-11-05');   
/ r5 i: @2 t" g  -> 2   
/ n) P) z% V* d" @; S9 f0 H
2 p$ g9 T5 H, G+ M7 K' S! S7 E" wdayofmonth(date)    
; D4 L& Y. m* V/ U返回date是一月中的第几日(在1到31范围内)   
: A) W: o: j: m$ C) c  Imysql> select dayofmonth('1998-02-03');   
. f8 P+ Y) a2 s) s% }  -> 3   
* o5 w. M+ @! |3 ]& _ * [& g+ K3 l* v0 V' s
dayofyear(date)    3 Z8 o* o  g: M' n" l) _4 H$ ]2 W7 W
返回date是一年中的第几日(在1到366范围内)   
& p2 ?7 e# Y, m* Vmysql> select dayofyear('1998-02-03');    * H3 _4 P8 F2 v* n9 r% h/ ]
  -> 34    . I. E/ y6 v2 [% [$ s) S+ s0 L
* }0 ^8 w1 q2 x6 @8 B
month(date)    ; S( r; X( s# Q: |+ |
返回date中的月份数值   
% Q9 U& K; f3 R- t' ~  Hmysql> select month('1998-02-03');    7 c; H5 g8 ~' H5 w0 f% y. u! k
  -> 2    3 O6 d, {# H+ }% F8 F( Y
* Q: A! `! Z8 }1 D
dayname(date)   
7 b0 b9 P/ d* {. B  U返回date是星期几(按英文名返回)  
  V4 A6 P, q* jmysql> select dayname("1998-02-05");   
+ O6 ^! J& w5 s6 Q7 n7 K  -> 'thursday'   
, x* M1 A: F# T. F9 q6 H  ]
6 M' `4 R' F/ n9 E& rmonthname(date)    
9 B9 T2 S& {& @3 N/ t7 v# G  J返回date是几月(按英文名返回)  
- q! |: p0 W6 O; _" Vmysql> select monthname("1998-02-05");    . n" X+ f' W  D
  -> 'february'    2 V8 G/ |' C0 }* {# Y

8 V+ d( b; x7 Pquarter(date)   
1 J1 D9 q3 M# f0 b6 o返回date是一年的第几个季度   
* b( s0 x9 Q/ V9 E5 B  x' @6 F; `mysql> select quarter('98-04-01');   
  l6 `1 U+ M1 G. b6 _% H  -> 2   
* s1 p  {# i2 `! J8 | 1 L/ v- }- ^( s& }
week(date,first)   ! d; I. X3 K. D. z& L) s  ~
返回date是一年的第几周(first默认值0,first取值1表示周一是
% K% o4 A- K0 h$ ^周的开始,0从周日开始)  
: G# S- J, x+ O3 _mysql> select week('1998-02-20');    7 F- {. S  H6 x) M( L. i  E7 H
  -> 7    # d$ d0 t3 P6 Q9 C- h
mysql> select week('1998-02-20',0);    / _( L& N, M2 Q; q
  -> 7   
) [) `: y8 d7 D9 E7 U% S2 S# {. {- n( imysql> select week('1998-02-20',1);   
; Z. Q0 @/ G6 \; U$ f! e) N# t* J  -> 8    # `' }3 j- X) x" k; B1 ~8 R3 v. a

/ M' }9 @' v" f' Y/ g: f9 ^year(date)   
, O* Y) p% K/ Z! b, v返回date的年份(范围在1000到9999)   
3 s  C/ h/ m5 L" y; Gmysql> select year('98-02-03');    ) Y. ~* \# ~$ T3 v" S
  -> 1998   
+ [) d# M" F% U6 l 0 z2 C+ a( m5 u$ V
hour(time)      g9 `) Y6 k& a7 D) r0 L$ r
返回time的小时数(范围是0到23)   
+ ~' s4 \1 x' W/ {  @  Vmysql> select hour('10:05:03');   
  d9 N3 A5 K- W; r1 P# l  s  -> 10    : U; {. j0 f$ x* M' [& ~3 ^0 s! ~

$ A# j: F' @+ G5 n, lminute(time)    $ B; g; C2 G& r! b8 R: z& l: c
返回time的分钟数(范围是0到59)   
. p/ p. @- M7 Z5 L3 wmysql> select minute('98-02-03 10:05:03');   
- Z7 N' L6 Y& t2 F9 S$ R. ~  -> 5    : }3 e. x3 p( |0 r3 X
" f& b4 l8 X4 m, a
second(time)    
" L0 `9 E1 b  |5 a) X* G4 ~返回time的秒数(范围是0到59)   9 I# N- G7 s% |2 f6 H$ E0 f" ^7 R9 N
mysql> select second('10:05:03');    $ c* d8 w8 o* M
  -> 3   
5 L  t1 N' S" w + p8 z# A- i& D9 T  l0 K) X5 n* r
period_add(p,n)   
+ F7 \0 @) J9 o3 {9 L增加n个月到时期p并返回(p的格式yymm或yyyymm)    * O# y6 w$ N& I8 C
mysql> select period_add(9801,2);    % a+ I* d: g3 E8 }" S" A1 E
  -> 199803   
3 s# o) A. g# V6 W/ C6 j# _
6 x" ]/ m! H9 D7 b; \* F: p  ~period_diff(p1,p2)    + a" T& E  q3 i$ f  k4 K; O
返回在时期p1和p2之间月数(p1和p2的格式yymm或yyyymm)  
8 f0 A) U: l: V3 K/ x$ Cmysql> select period_diff(9802,199703);    7 F% X% L( Z3 ]8 s/ M) j
  -> 11    & o8 K+ \5 f- g' e9 G" |7 C2 }

$ K6 N$ z' s% Q" u  h) X% tdate_add(date,interval expr type)  
6 ~% r( w! f3 [' x" i7 \* Ddate_sub(date,interval expr type)    7 X3 Z, @# P- n
adddate(date,interval expr type)   
7 y1 g3 A9 R3 w1 p0 zsubdate(date,interval expr type)  
1 V7 N0 [: k7 U! @  H, V% `! }对日期时间进行加减法运算  
) M9 V! H+ R( y3 r# }( [$ D2 A(adddate()和subdate()是date_add()和date_sub()的同义词,也
0 [& H* T' }/ w可以用运算符+和-而不是函数  % I: M2 e. h, j' E+ M6 n6 K
date是一个datetime或date值,expr对date进行加减法的一个表) A' G+ V8 y' H- h$ o0 c. e
达式字符串type指明表达式expr应该如何被解释  
5 F$ f7 D7 S" j' T [type值 含义 期望的expr格式]:  
2 q1 ~9 M: b% W: [- _. \ second 秒 seconds   
; v3 Y$ X6 D; |' k2 ` minute 分钟 minutes   
- |& k/ E, A6 ` hour 时间 hours   
0 |/ [3 |' B' L8 T! ~1 i# k& r! H day 天 days    " T' w; R0 R+ ~' a" v  D
 month 月 months    $ N; F5 _8 e% N8 t
 year 年 years   
: K8 k2 S1 \# Q minute_second 分钟和秒 "minutes:seconds"    / c. ?! W& f0 O) T6 _
 hour_minute 小时和分钟 "hours:minutes"   
% v/ @1 T% r; ^% C day_hour 天和小时 "days hours"    ( G2 \3 r5 e7 E  w: a  Q' u8 I
 year_month 年和月 "years-months"    , o2 f* @4 Q" g  W
 hour_second 小时, 分钟, "hours:minutes:seconds"   
' i1 M4 c( R' L  }9 @" W2 S day_minute 天, 小时, 分钟 "days hours:minutes"    9 c* v" Y0 X7 d8 I  Q: n! N3 B. s
 day_second 天, 小时, 分钟, 秒 "days
- H4 Y' ]  k0 `% P4 n7 {hours:minutes:seconds" 4 H: ~' Y/ I- u5 p' d, [6 k
 expr中允许任何标点做分隔符,如果所有是date值时结果是一个
3 M* l4 [1 b) {3 rdate值,否则结果是一个datetime值)    ^6 M6 q' X1 N) _3 I$ |! n
 如果type关键词不完整,则mysql从右端取值,day_second因为缺
; V! x+ f  m! ]/ G/ X少小时分钟等于minute_second)  
! I9 ]! J8 B8 F, ~# [ 如果增加month、year_month或year,天数大于结果月份的最大天
' N, y1 c6 b' u: K) ]数则使用最大天数)    - \- E$ z3 G; p+ [" N& p! \
mysql> select "1997-12-31 23:59:59" + interval 1 second;  1 C' P" p4 F8 d& Y5 Q6 ~3 `+ K: T1 L% M
) I8 p+ i" ^1 M$ L
  -> 1998-01-01 00:00:00      X0 e' y7 O/ n2 p& J  v9 C
mysql> select interval 1 day + "1997-12-31";   
5 L2 {: c0 V7 C. @7 I, `; q  -> 1998-01-01    + ]& E0 e: \, V! p- U  U, t# S
mysql> select "1998-01-01" - interval 1 second;    0 h+ m9 e! U2 e
  -> 1997-12-31 23:59:59   
* A& j6 ^& N- M& ~  q4 O* Fmysql> select date_add("1997-12-31 23:59:59",interval 1' B- y+ V+ z9 ~
second);   
9 `3 Y) v7 x% k  -> 1998-01-01 00:00:00   
- w. |. Y6 m9 \! |mysql> select date_add("1997-12-31 23:59:59",interval 1
1 H( O, {/ [; Z4 b$ `4 M2 ^" oday);    7 z1 ^6 {( P/ F* U5 l% P* q$ R
  -> 1998-01-01 23:59:59    4 R& H7 V* [  b* K
mysql> select date_add("1997-12-31 23:59:59",interval/ S) F6 o% M, q8 h
"1:1" minute_second);   
& P; X6 s6 F7 j. O  -> 1998-01-01 00:01:00    0 F! s( O0 I  ^  |* a* X7 z
mysql> select date_sub("1998-01-01 00:00:00",interval "1
% n, _' a& K% s( N% s, K* o1:1:1" day_second);   
" e( O( M, j1 X% b6 t  -> 1997-12-30 22:58:59    6 Q6 t- \) N; {7 ^" H
mysql> select date_add("1998-01-01 00:00:00", interval "-1/ o$ N: x. f' P6 e  y# p7 ^
10" day_hour);  9 C8 H2 p" H2 b- f
  -> 1997-12-30 14:00:00   
. E1 _) T) j/ ~) x& b/ ?mysql> select date_sub("1998-01-02", interval 31 day);   
) N/ G+ G  p3 v5 [  -> 1997-12-02    $ ]$ i: U; j6 _' F9 G( Q
mysql> select extract(year from "1999-07-02");    ; ^, |! z4 N# R! r
  -> 1999    ' F' ]+ h- z# e
mysql> select extract(year_month from "1999-07-02
6 {: p  q6 E, w# v' D0 w, ^# ?01:02:03");   
  l0 p& Z0 Z0 ^: {' z  -> 199907    ' f% I1 E( A/ a1 Y5 a7 |3 m
mysql> select extract(day_minute from "1999-07-02' k' ]5 |& Q" F1 `  ?3 N: R3 }
01:02:03");   
* ^( C1 d& Y) }- i  -> 20102   
# j: ]/ e  r1 _ # R1 x' p0 P9 `( K' U
to_days(date)   
4 {5 Z8 ~' l3 e: D返回日期date是西元0年至今多少天(不计算1582年以前)  , q. ^$ J* `2 \0 D: W9 U
mysql> select to_days(950501);   
& |- s0 q8 }+ L4 R4 V  -> 728779    , W& F+ u' K' x; y2 Q6 E
mysql> select to_days('1997-10-07');    0 v; X7 d0 B! ~* `
  -> 729669   
5 S; C5 i; W1 u) ^9 C # y9 z% j* u, ^4 I; q8 G9 K
from_days(n)   
( t6 W! H& t8 G/ v 给出西元0年至今多少天返回date值(不计算1582年以前)   
7 E0 M; Z4 i4 }mysql> select from_days(729669);    9 I  `, l" H2 S2 i/ R: F& e" L
  -> '1997-10-07'   
# g& f+ j0 s+ K1 ]4 q+ Q/ @: d  P$ S
% M5 W1 ?9 E! |. K2 Zdate_format(date,format)      `2 Y2 z2 b: O5 y& K6 s/ w
 根据format字符串格式化date值  - K+ q6 C! f6 f+ l; ]
 (在format字符串中可用标志符:  
; H; n5 B) W( B7 C" b %m 月名字(january……december)   
) L# \9 B/ u; }' ^- B %w 星期名字(sunday……saturday)   
  @' R) {  ]$ b5 G$ Y %d 有英语前缀的月份的日期(1st, 2nd, 3rd, 等等。)    - u( k* F5 j: x. P% `; m: e
 %y 年, 数字, 4 位    4 S  [( a- m+ k. M/ U  X( R
 %y 年, 数字, 2 位    6 [; Z/ A# y& X0 {5 P) Q
 %a 缩写的星期名字(sun……sat)    5 [- F1 s6 A/ O, S7 A
 %d 月份中的天数, 数字(00……31)   
5 l1 K, B* [& `+ I1 R& p' v %e 月份中的天数, 数字(0……31)   
5 o; n, v* z- G0 M %m 月, 数字(01……12)   
- \' y3 X0 _9 S9 x0 Q %c 月, 数字(1……12)    : c& T" m5 @6 ^; L- R
 %b 缩写的月份名字(jan……dec)    ! N$ e. a6 |* }
 %j 一年中的天数(001……366)    ' H: t# `; `# z( z
 %h 小时(00……23)      a% w% ^' H7 @! H6 W3 z0 D8 z
 %k 小时(0……23)    $ ?5 N6 _# r" f. ^' B
 %h 小时(01……12)   
0 ]" c/ e# W' W6 v5 V( F %i 小时(01……12)    5 P, Y) g- T: Z2 h' `) W1 j. B
 %l 小时(1……12)   
- D) m9 D. L0 _, a+ ? %i 分钟, 数字(00……59)    2 M9 b) b: Y/ X$ p( ]
 %r 时间,12 小时(hh:mm:ss [ap]m)    0 |5 ?2 p' P! p$ P
 %t 时间,24 小时(hh:mm:ss)   
* t- M; q1 A; A$ Q+ Y  h* w6 I %s 秒(00……59)   
4 @9 ^' l/ R2 h% N" D- X; [6 u %s 秒(00……59)    & U! U% d/ B* N: ^
 %p am或pm    ( n# F5 T* U4 D- e& u
 %w 一个星期中的天数(0=sunday ……6=saturday )    - L# F, b; W/ Q0 |4 b* b8 z4 n
 %u 星期(0……52), 这里星期天是星期的第一天    $ }1 I! T% ~# H* _# h
 %u 星期(0……52), 这里星期一是星期的第一天   
2 o7 L3 L8 k) l %% 字符% )  
  s( o0 O" g1 f& x8 d4 emysql> select date_format('1997-10-04 22:23:00','%w %m %
6 f6 [, h# B+ o( X  U! {0 _( `y');    4 Q4 ]/ y/ Z" X4 {* a. O
  -> 'saturday october 1997'    : [# o+ ?+ ~9 f1 O
mysql> select date_format('1997-10-04 22:23:00','%h:%i:%7 N- H! N6 T1 j% r; U
s');    * A" z* [0 h  r, h3 ~
  -> '22:23:00'    ; r% z; ^0 J! ^! `
mysql> select date_format('1997-10-04 22:23:00','%d %y %a* w  k; r6 J$ ^- |+ r0 R, k5 E
%d %m %b %j');   
7 ?7 v0 g6 |. D2 N! M  -> '4th 97 sat 04 10 oct 277'   
: q! R  L. B( w; f2 W$ e  Amysql> select date_format('1997-10-04 22:23:00','%h %k %i. m7 K6 a" ?: `, l; Y5 Q$ |  V
%r %t %s %w');   
# U" Y) K( U- v/ m1 d  -> '22 22 10 10:23:00 pm 22:23:00 00 6'    - j3 l' z, @( A) d, }

" {. G$ U% S9 H2 h& c! w8 H- D% gtime_format(time,format)  8 y9 t5 W+ ~2 t7 ]' L' c7 _" h) S9 Q
 和date_format()类似,但time_format只处理小时、分钟和秒(其, b- {# w2 Z. U, L) b: {
余符号产生一个null值或0)  % s. {: h+ ^! z; M8 c- R

2 h2 G% s/ T7 z2 e  {, Ucurdate()     9 U- p: G$ W" H" I2 m
current_date()  
; |6 Z, j. X" F  ]- \: T 以'yyyy-mm-dd'或yyyymmdd格式返回当前日期值(根据返回值所
" X; C1 L6 I2 y* }+ Z5 X& @处上下文是字符串或数字)    2 {4 _+ ?9 k: R$ L: Z( q
mysql> select curdate();    / ]# V0 Q/ t5 ^6 S: @
  -> '1997-12-15'    2 q. k* Z7 x8 u: I7 w, v' V' U  O
mysql> select curdate() + 0;   
. N/ n, ?" Z* G! B1 u  -> 19971215   
9 s+ }7 S6 Y! S3 {+ h/ J
3 t! h' N% I& V  Lcurtime()    ; d, c5 {' q- {! T  N5 m+ Y+ l- z, ~4 y
current_time()  
( t; I7 d2 P3 z8 t+ }( D9 x 以'hh:mm:ss'或hhmmss格式返回当前时间值(根据返回值所处上% y8 {8 ]: p4 _
下文是字符串或数字)      
: |' e8 P3 e8 zmysql> select curtime();    + w9 p- a( @  x$ O
  -> '23:50:26'   
) n2 u" p! [/ cmysql> select curtime() + 0;    # Q) j% `6 b5 N; C4 m& D' i
  -> 235026   
2 |9 P/ E) O& V9 x. ~5 ^
7 H+ H6 Q' _! t$ K1 dnow()    
( M. `- Q! `5 [sysdate()    
+ Y( I: K5 v% k. C' hcurrent_timestamp()  ! Y* J9 P3 Z6 E/ A
 以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回当前日期
, X1 L3 W9 f' e时间(根据返回值所处上下文是字符串或数字)     
% E. e) q9 N7 n' ]8 Gmysql> select now();    / C" u$ N2 r! ?; s* f5 ?
  -> '1997-12-15 23:50:26'    & E' T/ w/ p. K# {
mysql> select now() + 0;    , A$ W1 B; O; j" H
  -> 19971215235026    ! T0 C7 U+ H; i8 I' U3 C* P, _1 m) z1 ^

4 f2 @0 R; _! V! \; S* [4 d3 B# A0 funix_timestamp()   
1 Y8 q, n. Y% k4 n4 ~# cunix_timestamp(date)      u" X: H" @# j! B/ a' z
返回一个unix时间戳(从'1970-01-01 00:00:00'gmt开始的秒$ o3 b' z: Z8 f8 _
数,date默认值为当前时间)  
$ q$ Z! t" f) G" r3 h* ?1 i7 pmysql> select unix_timestamp();    ! j" P4 |$ F" ?: @3 O  Z
  -> 882226357    # E. L6 @* H; m! Y: C. a; |9 J
mysql> select unix_timestamp('1997-10-04 22:23:00');   
; P2 Q3 L. o6 g+ U& e$ \  -> 875996580    ' D2 K; }1 P/ I  r! t5 R" j

% a+ u8 P" E0 Y6 |, Ffrom_unixtime(unix_timestamp)   
2 I- B# I; Q% z8 z以'yyyy-mm-dd hh:mm:ss'或yyyymmddhhmmss格式返回时间戳的
' b$ M/ w' R0 \/ V3 o值(根据返回值所处上下文是字符串或数字)     + j" n3 \, F& C' r3 C. ?/ P0 }
mysql> select from_unixtime(875996580);   
. \8 _" N! f2 W/ i  -> '1997-10-04 22:23:00'   
2 r! n$ L% o( ~$ E/ b( D! X# kmysql> select from_unixtime(875996580) + 0;    * m9 x/ G& b' e- a  ]) X5 u
  -> 19971004222300    & c+ _. Y! r2 S1 w4 T0 a. c  m  P

. H- R3 d$ [+ pfrom_unixtime(unix_timestamp,format)    ) x9 }2 ]9 P& Y' b- ?/ K$ a
以format字符串格式返回时间戳的值  
3 q% ?" }" S# O! A) u' V6 Kmysql> select from_unixtime(unix_timestamp(),'%y %d %m %/ _  C8 e1 E; W, s/ t" D
h:%i:%s %x');   
6 N- o7 |  C; n. m  -> '1997 23rd december 03:43:30 x'   
2 K% {: N" }9 J$ h" m2 {% c  @
' H! l8 |. |0 d0 ?% C5 xsec_to_time(seconds)   
  {7 Q2 y7 Q$ `/ \5 m# m' r以'hh:mm:ss'或hhmmss格式返回秒数转成的time值(根据返回值所处上下文是字符串或数字)     
2 m! X3 G; g' y& Bmysql> select sec_to_time(2378);    4 x; t, [) M* h1 G7 Q$ B
  -> '00:39:38'    / a7 {( U/ f% b6 f8 B
mysql> select sec_to_time(2378) + 0;   
  s5 s0 r1 S! x. r1 C. v  -> 3938   
# r5 V+ @7 f2 D. {( i4 q4 t 4 B8 N$ d) g, M; }( p7 L6 c
time_to_sec(time)   
1 a3 Y  O1 f- E: `4 s1 ?返回time值有多少秒   
* R6 Z4 V5 J7 V8 W; mmysql> select time_to_sec('22:23:00');    ; O' @' Q7 Q1 ^/ a& ]+ }% x2 @
  -> 80580   
8 F9 M/ @8 P3 ]; p4 o5 V0 xmysql> select time_to_sec('00:39:38');    % b# }- b- A+ ^8 a2 G% Z
  -> 2378 5 K# n) S, l3 |$ j5 z

0 _7 ~( A) e  l( ?0 X7 |转换函数
  _2 n. k* E$ x7 F: u/ Tcast- C8 l+ }4 r! J/ ?- N
用法:cast(字段 as 数据类型) [当然是否可以成功转换,还要看数据类型强制转化时注意的问题]2 h6 l( x& `5 y* H0 i, Y7 `
实例:select cast(a as unsigned) as b from cardserver where order by b desc;
6 i, y6 i" _: T  o" [convert:
6 m5 W; n( x' {4 O( E4 @8 p用法:convert(字段,数据类型)2 L! h" @3 E* \2 ~
实例:select convert(a ,unsigned) as b from cardserver where order by b desc;
7 v2 Y2 e9 o( g7 Q/ ]
回复

使用道具 举报

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

本版积分规则

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