Mysql学习笔记(五)数学与日期时间函数

学习内容:

1.数学函数

2.日期时间函数

这些函数都是很常用的函数...在这里进行简单的介绍...

数学函数:

mysql> SELECT ABS(-32); //取绝对值函数
        -> 32
这个函数可安全地使用于 BIGINT 值。 

mysql> SELECT SIGN(-32);//判断一个数是正数,负数,还是0.。根据实际情况返回指定的数值..
        -> -1

mysql> SELECT MOD(234, 10);//取模函数...
        -> 4

mysql> SELECT FLOOR(1.23);//返回不大于给出数的最大整数值
        -> 1

mysql> SELECT CEILING(1.23);//返回不小于这个数的整数值
        -> 2

mysql> SELECT ROUND(-1.23);//四舍五入函数
        -> -1

mysql> SELECT 5 DIV 2//整除函数
    -> 2

mysql> SELECT EXP(2);//返回指数e的指定次方
        -> 7.389056

mysql> SELECT LN(2);//返回给出数的自然对数
        -> 0.693147

mysql> SELECT LOG(2);//返回给出数的自然对数
        -> 0.693147

mysql> SELECT POW(2,2);//返回x数的y次幂,并且返回值为浮点类型..
        -> 4.000000

mysql> SELECT RAND();//随机产生一个0-1的小数..
        -> 0.9233482386203

mysql> SELECT RADIANS(90);//将一个数转换为弧度
        -> 1.570796

只是一些常用的数学函数...

日期与时间函数

简单的介绍几个函数...很常用的就不进行举例了...

Week(date) <==>Week(date,first)这个函数用来返回给定日期的周数...这个函数根据给定的first来确定返回数值的实际范围...

   值                 含义
   0 一周以星期天开始,返回值的范围为0-53
   1 一周以星期一开始,返回值的范围为0-53
   2 一周以星期日开始,返回值的范围为1-53
   3 一周以星期一开始,返回值的范围为1-53(iso 8601)

Period_add(p,n)增加N各月到指定的日期值中,并返回日期值...

mysql> SELECT PERIOD_ADD(9801,2);
        -> 199803

Period(p1,p2)返回p1-p2之间的月数..

mysql> SELECT PERIOD_DIFF(9802,199703);
        -> 11

date_add(date,Interval expr type)<==>adddate(date,Interval expr type)

date_sub(date,Interval expr type)<==>subdate(date,Interval expr type)

这两个函数根据给定的日期date,按照expr指定的规则对date进行修改....type是一个关键字,它指定表达式以何种格式被解释...

type值 expr期望的格式
second seconds
minute minutes
hour hours
day days
month months
year years
minute_second "minute:second"
hour_minute "hour:minute"
day_hour "days:hour"
year_month "year-month"
hour_second "hours:minutes:second"
day_minute "days:hours:minutes"
day_second "days hours:minute:second"
mysql> SELECT "1997-12-31 23:59:59" + INTERVAL 1 SECOND;
        -> 1998-01-01 00:00:00
mysql> SELECT "1998-01-01" - INTERVAL 1 SECOND;
       -> 1997-12-31 23:59:59
mysql> SELECT DATE_ADD("1997-12-31 23:59:59",
    ->                 INTERVAL "1:1" MINUTE_SECOND);
        -> 1998-01-01 00:01:00
mysql> SELECT DATE_SUB("1998-01-01 00:00:00",
    ->                 INTERVAL "1 1:1:1" DAY_SECOND);
        -> 1997-12-30 22:58:59
mysql> SELECT DATE_ADD("1998-01-01 00:00:00",
    ->                 INTERVAL "-1 10" DAY_HOUR);
        -> 1997-12-30 14:00:00

date_format(date,format)依照format来初始化date的函数...

mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y');
        -> 'Saturday October 1997'
mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%H:%i:%s');
        -> '22:23:00'
mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00',
                          '%D %y %a %d %m %b %j');
        -> '4th 97 Sat 04 10 Oct 277'

now()<==>sysdate()<==>current_timestamp 取现在的系统时间...

mysql> SELECT NOW();
        -> '2015-04-29 11:02:56';

sec_to_time(seconds)将分钟转换为正常的时间...

time_to_sec(time) 上述函数的逆置。。。

mysql> SELECT SEC_TO_TIME(2378);
        -> '00:39:38'
mysql> SELECT TIME_TO_SEC('22:23:00');
        -> 80580
原文地址:https://www.cnblogs.com/RGogoing/p/4464097.html