2014-03-01 53 views
1

我有內create_date(順便說一句,這列是一個varchar)在我的表products我使用笨列,所以我與表溝通,像這樣:獲取行添加到數據庫表中的過去24小時

function get_recent_products() 
{ 
    $query = $this->db->get_where('products', array('create_date' => date('y-d-m'))); 
    return $query->result_array(); 
} 

使用上面的函數,我希望能夠從表格中提取最近24小時內添加的行。系統將日期存儲爲:2014-02-28

請幫我解決這個問題!

+0

除非在數據庫中有時間戳,否則無法獲取最近24小時的數據。 –

+0

除非有日期字段,否則不能按日期查詢。除非有日期時間字段,否則不能按日期和/或時間查詢。問:你是否將創建日期保存爲日期時間值?閱讀這篇文章[MySQL日期,日期時間和時間戳值之間的差異](https://dev.mysql.com/doc/refman/4.1/en/datetime.html) – FoggyDay

+0

@AkshatSinghal我會假設他這樣做,因爲它正在檢查'create_date' –

回答

0

保持原有列類型check_date使用本:

ALTER TABLE `table_name` 
ADD COLUMN `check_date_time` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00'; 

UPDATE TABLE `table_name` 
SET `check_date_time` = `create_date` LIMIT 9999999999999999; 

從那裏,你應該能夠從最後一天打電話,你就可以開始在這一領域填補產生與時俱進:)

+0

不知道如何讓我過去24小時的新增內容。我需要什麼,我實際上在PHP – user3367639

+0

這沒有找到解決方案。 – user3367639

+0

不幸的是,因爲你沒有跟蹤數據庫中的時間,所以你可以做很多事情,至少在這個時候你可以開始跟蹤它,並且你可以把今天和昨天發生的事情提交給24小時的交叉參考:/ –

0

如果日期存儲在VARCHAR列2014-02-28,那麼你要使用以下格式爲date()功能:

date('Y-m-d') 

請注意,該情況很重要。你使用的格式date('y-d-m')會給你14-28-02

您還需要將適當的時間戳傳遞給date()函數。默認值是time()的值。

如果您想要選擇過去24小時的記錄而不是特定的一天,則還需要存儲時間。我建議使用datetime列將日期和時間存儲在一個字段中。這使您能夠直接在SQL語句中執行大量的日期和時間計算。

相關問題