TIMESTAMPDIFF
TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2)。
说明:
返回日期或日期时间表达式datetime_expr1 和datetime_expr2 之间的整数差。其结果的单位由interval 参数给出。该参数必须是以下值的其中一个:
- FRAC_SECOND。表示间隔是毫秒
- SECOND。秒
- MINUTE。分钟
- HOUR。小时
- DAY。天
- WEEK。星期
- MONTH。月
- QUARTER。季度
- YEAR。年
//关闭时间 和当前时间相差分钟
TIMESTAMPDIFF(SECOND,closed_time,now()) < 180
TIMESTAMPADD
TIMESTAMPADD(interval,int_expr,datetime_expr)
将整型表达式int_expr 添加到日期或日期时间表达式 datetime_expr中。式中的interval和上文中列举的取值是一样的。
mysql> select TIMESTAMPADD(MINUTE,8820,'2012-08-24 09:00:00');
// 将“2017-03-24 09:00:00“增加 8820 分钟
+-------------------------------------------------+
| TIMESTAMPADD(MINUTE,8820,'2017-03-24 09:00:00') |
+-------------------------------------------------+
| 2017-03-30 12:00:00 |
+-------------------------------------------------+
1 row in set (0.00 sec)
from_unixtime
from_unixtime函数 用于将Unix 时间戳格式化为日常的时间格式
date为需要处理的参数(该参数是Unix 时间戳),可以是字段名,也可以直接是Unix 时间戳字符串
后面的 ‘%Y%m%d’ 主要是将返回值格式化
mysql>SELECT FROM_UNIXTIME( 1195488000, '%Y%m%d' )
->20071120
mysql>SELECT FROM_UNIXTIME( 1195488000, '%Y年%m月%d' )
->2007年11月20
UNIX_TIMESTAMP
UNIX_TIMESTAMP()是与之相对正好相反的时间函数 ,用于将字符串转化为时间戳
若无参数调用,则返回一个 Unix timestamp (‘1970-01-01 00:00:00’ GMT 之后的秒数) 作为无符号整数
例如:
mysql> SELECT UNIX_TIMESTAMP('2007-11-20') ;
->1195488000
DATE_FORMAT
DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。
DATE_FORMAT(date,format)
//date 参数是合法的日期。format 规定日期/时间的输出格式。
DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p')
DATE_FORMAT(NOW(),'%m-%d-%Y')
DATE_FORMAT(NOW(),'%d %b %y')
DATE_FORMAT(NOW(),'%d %b %Y %T:%f')
结果类似:
Dec 29 2008 11:45 PM
12-29-2008
29 Dec 08
29 Dec 2008 16:25:46.635
mysql日期加减
date_add()
MySQL 为日期增加一个时间间隔:date_add()
set @dt = now();
select date_add(@dt, interval 1 day); - 加1天
select date_add(@dt, interval 1 hour); -加1小时
select date_add(@dt, interval 1 minute); - 加1分钟
select date_add(@dt, interval 1 second); -加1秒
select date_add(@dt, interval 1 microsecond);-加1毫秒
select date_add(@dt, interval 1 week);-加1周
select date_add(@dt, interval 1 month);-加1月
select date_add(@dt, interval 1 quarter);-加1季
select date_add(@dt, interval 1 year);-加1年
//SELECT @cdate := date_add(@cdate, INTERVAL -30 SECOND);-减去30秒
mysql> set @dt = '2009-09-09 12:12:33';
mysql>
mysql> select date_add(@dt, interval '01:15:30' hour_second);-加上1小时15分30秒
date_add(@dt, interval '01:15:30' hour_second)
结果:2009-09-09 13:28:03
/**
set @dt = now(); 也可以写为
select @dt:=now();
mysql 变量
1.用户变量:以"@"开始,形式为"@变量名"
用户变量跟mysql客户端是绑定的,设置的变量,只对当前用户使用的客户端生效
2.全局变量:定义时,以如下两种形式出现,set GLOBAL 变量名 或者 set @@global.变量名
对所有客户端生效。只有具有super权限才可以设置全局变量
变量参考:
**/
date_sub()
MySQL 为日期减去一个时间间隔:date_sub();
MySQL date_sub() 日期时间函数 和date_add() 用法一致,不再赘述。
mysql 时间函数
YEAR(time)
返回time的年份
MONTH(time)
返回time的月份(范围是1到12)
DAY(time)
返回time的日期(范围是1到31)
HOUR(time)
返回time的小时(范围是0到24)
MINUTE(time)
返回time的分钟数(范围是0到59)
SECOND(time)
返回time的秒数(范围是0到59)
ROUND() 函数
ROUND(X,D)
此函数返回x舍入到最接近的整数。如果第二个参数,D有提供,则函数返回x四舍五入至第D位小数点。D必须是正数或全部右边小数点的数字将被删除。