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