2013-04-27 58 views
0

這裏日期時間格式是MySQL的數據從列選擇時間與SQL

-- 
-- 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()將具有日期時間格式(如'2013-04-26 01:57:24')的jdate更改爲numburic格式。

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

有什麼想法嗎?

謝謝。

回答

4

此行是無效的:

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

你試圖恆定轉換爲這樣的時間戳。

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

"SELECT * FROM pending_accounts WHERE UNIX_TIMESTAMP(`jdate`) < '".$last_update."' ORDER BY id ASC"