0

这是mysql数据

--
-- Table structure for table `pending_accounts`
--

CREATE TABLE IF NOT EXISTS `pending_accounts` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `username` varchar(15) NOT NULL,
  `jdate` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 COMMENT='Pending accounts' AUTO_INCREMENT=4 ;

--
-- Dumping data for table `pending_accounts`
--

INSERT INTO `pending_accounts` (`id`, `username`, `jdate`) VALUES
(3, 'admin', '2013-04-26 01:57:24');

和我的 php 和 sql 代码

$last_update = time();  // for example 1367022789


 $q = $db->fetchOne("SELECT * FROM pending_accounts WHERE '".strtotime(jdate)."' < '".$last_update."' ORDER BY id ASC");

如您所见,我正在尝试选择 jdate < $last_update 和 $last_update 为 time() 数字格式(例如 '1367022789' )的所有待处理帐户,因此我使用 strtotime() 更改具有日期时间格式的 jdate,例如 '2013- 04-26 01:57:24' 为数字格式。

不幸的是,这不能正常工作。

请问有什么想法吗?

谢谢你。

4

1 回答 1

4

此行无效:

'".strtotime(jdate)."' < '".$last_update."'

您正在尝试将常量转换为这样的时间戳。

您可能打算在 mysql中使用UNIX_TIMESTAMP函数。

"SELECT * FROM pending_accounts WHERE UNIX_TIMESTAMP(`jdate`) < '".$last_update."' ORDER BY id ASC"
于 2013-04-27T01:11:02.317 回答