2012-10-02 51 views
0

我有我有生日,年齡位置和分數的表,並且我想檢索兩個日期之間創建的記錄數,其中分數不爲空並且沒有時間戳記領域。在mysql數據庫中創建記錄的日期

如果沒有時間戳字段,我該怎麼做。

有沒有元數據,如果是,我該如何運行查詢?

+4

不,不能完成。你需要保存輸入的日期。 – j08691

回答

0

嘗試這樣的查詢:

SELECT COUNT(*) 
FROM TABLE_NAME 
WHERE BIRTHDATE BETWEEN 'DATE1' AND 'DATE2' 
AND SCORE IS NOT NULL AND TIMESTAMP IS NULL; 

timestamp添加到現有的表,默認值爲NULL,並查詢上述說法,它應該工作。 無論何時添加一列到已有記錄的表中,對於現有記錄,新列的相應值都是空白的。

+0

:如何添加使用查詢的時間戳列,以便它會自動存儲記錄創建時的日期?我的意思是如果有任何查詢更新新列的表屬性? – user1706989

+0

你可以使用'ALTER TABLE'來添加列 - http://www.techonthenet.com/sql/tables/alter_table.php –

+0

並且爲了更新表格,使用'INSERT'和'timestamp'作爲NOW() '。所以例如。 'INSERT INTO TABLE_NAME VALUES('20120420',25,'New York,NOW());' –

0

時間戳添加到您的表

+1

雖然這是非常好的建議,但它對錶中已有的數據無濟於事。 – andrewsi

+0

是的,在這種情況下,你是對的 – 2012-10-02 18:40:40

+0

@Muhammet嗯,這是一個很好的建議,我應該爲未來的解決方案添加時間戳,但作爲@安德魯說什麼數據已經在表 – user1706989

0

其他用戶已經注意到了。

因爲在數據庫中沒有日期參考字段,所以不能提取匹配一個或兩個日期之間的記錄。

從這裏開始,最好的辦法是添加一個日期字段,然後確保數據寫入數據庫時​​,使用插入日期/日期時間。有幾種不同的方式來實現它,但這可能是最簡單的:

mysql_query(" 
    INSERT INTO users (first, last, whenadded) 
    VALUES ('$first', '$last', now()) 
";