2014-05-14 107 views
-1

我想按日期查詢小型數據庫,我的日期表數據存儲在2014-02-04時間。我怎麼能轉換並檢查它今天的日期。轉換Unix時間戳和排序數據在mysql查詢中

這是我,但我得到了一些錯誤

$q = 'SELECT count(*) as count FROM SHOW WHERE date('Y-m-d', strtotime 
('SHOW_DATE') ='.$db->qstr(date()).' AND CONTACT='.$db->qstr($name); 
if(!$rs = $db->execute($q)){ 
force_page('core', 'error&error_msg=MySQL Error: '.$db->ErrorMsg().'&menu=1'); 
exit; 
} else { 
$today_count = $rs->fields['count']; 
$smarty->assign('today_count',$today_count); 
} 

非常感謝。

+0

我已經更新了這個問題 – user3620142

+0

它存儲爲'DATE'(就像它應該)或'VARCHAR'嗎? – h2ooooooo

+0

您正在使用'圍繞着字符串和字符串而不逃避它。看看你的代碼,你會發現語法高亮在Y-m-d的第一行 – WizKid

回答

1

您可以轉換show_date使用FROM_UNIXTIME功能的日期格式。然後將它的date部分與您的輸入日期值進行比較。

SELECT count(*) as count FROM `SHOW` 
WHERE date(from_unixtime(`SHOW_DATE`)) = ? AND CONTACT=? 

使用製備語句輸入值綁定到佔位符。

+0

「*它被存儲爲'DATE' *」 – h2ooooooo

+0

是的。然後'show_date = curdate()'應該可以工作。 OP應該澄清'unix_timestamp'在什麼地方出現。 –

+0

我試過這個,但它不起作用 – user3620142

0

要查找包含DATE匹配當前日期行,請使用CURDATE()

SELECT column FROM table WHERE col_date = CURDATE() 
+0

感謝您的回覆,但您缺少查詢的很大一部分 – user3620142

+0

@ user3620142嗯,我沒有試圖爲您編寫查詢。這是你需要回答你的問題的邏輯。 –