2013-08-22 130 views
3

我想將日期保存到數據庫中,並且當我從數據庫中獲取結果時,我想按日期對它們進行排序並按日期對它們進行分類:例如顯示結果,其中不到一天的時間,等等...保存日期的最佳方式是什麼?將日期保存到mysql數據庫中的最佳方式

+0

http://dev.mysql.com/doc/refman/4.1/en/datetime.html – j08691

+0

「*最佳方式*」是什麼意思? – Lion

+0

使用日期類型? :) – Alvaro

回答

10

如果你指的是MySQL的列數據類型,當然,除非你想包括次爲好,在這種情況下,它DATETIME使用DATE。常見的一種是TIMESTAMP,但不同的體系結構可能會產生不想要的結果。

總結:DATE

關於日期和時間格式:http://dev.mysql.com/doc/refman/5.0/en/datetime.html

至於排序,這將是一樣正常:ORDER BY my_date_column

不到1日齡:WHERE my_date_column = DATE(NOW()) - INTERVAL 1 DAY

+0

要允許使用可用的索引,我們需要謂詞中的裸列引用。對於date,datetime或timestamp列:'WHERE my_date_column> = DATE(NOW())+ INTERVAL -1 DAY和my_date_column spencer7593

+0

@ spencer7593是的,好點 - 沒有想到索引。我已更新該查詢。 – SmokeyPHP

1

使用timestamp作爲存儲日期的列的數據類型。要存儲日期,如果您希望存儲當前時間,請使用功能now()

或者使用strtotime()功能在PHP中:

$timestamp = strtotime('22-09-2008'); 
0

在您的表中創建一個名爲「LastSaved」的數據類型爲TIMESTAMP的字段。然後,您可以在保存或插入數據時在查詢中使用NOW()作爲值更新此字段。

或者,如果您使用觸發器建立在一個基本的觸發器插入之前和之前更新事件

SET NEW.LastSaved= NOW(); 

要訂購,你可以這樣做

SELECT FieldName FROM YourTableName 
ORDER BY LastSaved DESC 
0

日期時間是一個很好的解決方案的結果,但如果你關心夏令時,請使用時間戳。

相關問題