1.获取当前时间的前一个小时
mysql中有个时间数据类型是:TIMESTAMP,
它储存的格式为:2016-12-29 14:49:48
JS 可以通过下列函数把时间转换成上面格式进行储存!
1 function formatDate(now) { 2 var year=now.getFullYear(); 3 var month=now.getMonth()+1; 4 var date=now.getDate(); 5 var hour=now.getHours(); 6 var minute=now.getMinutes(); 7 var second=now.getSeconds(); 8 return year+"-"+month+"-"+date+" "+hour+":"+minute+":"+second; 9 }
现在的问题是:我想获取当前时间的前一个小时,或者前一分钟的TIMESTAMP的数据格式:
SUBDATE(now(),interval 1 hour)
如果是前一分钟,hour修改成minute, 一天为day,
我想获取当前时间的后一个小时,那么函数为:ADDDATE
获取当前时间函数可以是:select now(); 也可以是:
select current_timestamp;
获取当天的记录:
select * from hera.d2_verifycode where type = @type AND codekey = @codekey and codevalue= @codevalue AND state='valid' AND Date(send_time) = CURDATE()
2.DISTINCT语句
在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。
3.CURRENT_TIMESTAMP数据结构
CURRENT_TIMESTAMP,是当前mysql的时间,设置之后,插入数据时,会自动打上当前的时间戳。
alter table d2_verifycode MODIFY COLUMN send_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;
另外Extra也有这个属性,如:on update CURRENT_TIMESTAMP类型
4.获取当天的数据
select * from table_1 where send_time>=CURDATE() and send_time< ADDDATE(CURDATE(),interval 1 day);
5.ifNull的用法
select ifnull(sum(favor_amt),0) //如果 favor_amt为null,则 used为0,否则为sum(favor_amt) used from boss.m5_favor_logs where userid=@userid