在mysql中的时间戳问题中的CURRENT_TIMESTAMP

时间:2013-04-28 09:25:56

标签: php mysql timestamp

在mysql查询中,我如何找到24小时内更改/更新的记录。

我有带有CURRENT_TIMESTAMP的时间戳的mysql表作为默认值。我正在使用PHP与Mysql.when用户编辑记录我有一个字段活动时间默认CURRENT_TIMESTAMP,我想得到所有那些被更改的记录

 SELECT * FROM news WHERE activitytime  < 24 hours

我试过但没有运气

 select * from news where activitytime  >= now() - INTERVAL 1 DAY order by activitytime desc

为什么我的activitytime字段不更新我正在更新它?我应该再次保存活动时间吗?

 CREATE TABLE IF NOT EXISTS `crmtbl` (
 `id` bigint(20) NOT NULL AUTO_INCREMENT,
 `ref` varchar(33) NOT NULL,
`activitytime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
 ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=316 ;

查询     mysq_query(“INSERT INTO crmtbl(ref)Values('myref')”);

表示我没有在INSERT或UPDATE中使用活动时间

1 个答案:

答案 0 :(得分:0)

试试这个

SELECT * FROM news WHERE date >= now() - INTERVAL 1 DAY;

OR

SELECT * 
FROM table_name
WHERE table_name.the_date > DATE_SUB(CURDATE(), INTERVAL 1 DAY)

您必须在更新当前时间戳

上设置活动时间字段

更改

CREATE TABLE IF NOT EXISTS `crmtbl` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `ref` varchar(33) NOT NULL,
  `activitytime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=316 ;