2012-06-29 73 views
0

我正在用php前端創建一個mysql數據庫。它將使用的數據從另一個更大的數據庫中提取,幷包含一個日期/時間字段,如下所示 - 20120301073136 - 記錄事件發生的時間。在MySQL中,如何將此字符串轉換爲日期?

我知道這可能是UNIX時間戳嗎?不確定。

我想表明我的PHP網頁的表在這一領域作爲一個可讀的日期和時間 -

即像01-MAR-2012 7時31分36秒或者類似的東西

我應該嘗試使用SQL命令進行轉換或讓PHP格式化它?而且,這樣做的代碼是什麼?

順便說一句,重要的是我可以將數據(在SQL和PHP表中)排序爲日期順序 - 即按照這些事件發生的順序。

在此先感謝您的幫助 - 香港專業教育學院在這裏學到了很多東西已經

Ĵ

回答

1

你可以將它轉換爲datetime直接在您的SQL查詢。例如:

select cast(20120301073136 as datetime) 

您也可以訂購,無需轉換,因爲它是一個數字格式YYYYMMDDHHmmss

select * from yourTable 
order by yourDateTimeField 
+0

謝謝。如果我使用命令建議我用字段名稱替換'20120301 ...',是嗎?該字段被稱爲A_DT_TM。另外 - 我猜有關排序的評論聽起來有點愚蠢。我知道我可以使用順序進行排序並做到這一點,但我也有一些基於AJAX的PHP頁面中的表格排序,我不確定用PHP格式化日期會影響這一點。 – highfidelity

+0

是 - 將您的字段名稱「A_DT_TM」替換爲「20120301073136」。 –

+0

謝謝這對我有用。然而,它顯示了另一個問題,MySQL數據庫似乎已經從字符串中刪除了時間部分。也就是說,從csv文件源導入2.01105E + 13,在mysql中結束爲20120512000000 ... – highfidelity

1

你應該使用的MYSQL日期函數。在提出簡單問題之前查看文檔。 http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html

也可以使用ORDER BY直接在查詢中對日期進行排序。

+0

謝謝。問題是(仍然是),我不知道我的日期戳的格式是什麼 - 即它是一個UNIX時間戳或所有14位數的日期戳是相同的。 – highfidelity

+0

...因爲我不知道要搜索什麼。 – highfidelity

+0

unix時間戳有10個數字 – Samson

相關問題