TIMESTAMPDIFF

TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2)。
说明:
返回日期或日期时间表达式datetime_expr1 和datetime_expr2 之间的整数差。其结果的单位由interval 参数给出。该参数必须是以下值的其中一个:

  1. FRAC_SECOND。表示间隔是毫秒
  2. SECOND。秒
  3. MINUTE。分钟
  4. HOUR。小时
  5. DAY。天
  6. WEEK。星期
  7. MONTH。月
  8. QUARTER。季度
  9. 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必须是正数或全部右边小数点的数字将被删除。