2016-07-23 645 views
0

如果可能的話,我需要將在數據庫中以DECIMAL(16,4)形式存儲爲DECIMAL(16,4)的時間戳轉換爲DATETIME。將DECIMAL(16,4)轉換爲DATETIME MySQL

它被存儲在數據庫中的方法如下:

$time = function_exists('microtime') ? microtime(true) : time(); 
$submit_time = number_format($time, 4, '.', ''); 

比,$submit_time進入數據庫submit_time列。

從數據庫中提取數據時,是否可以提取此值並將其值提取爲DATETIME?我想將其轉換爲DATETIME的原因是因爲在使用分頁輸出來搜索日期時,管理起來會更容易。

一直在看的MySQL CONVERT功能,並曾嘗試以下,但它輸出空內容:

SELECT CONVERT(submit_time, DATETIME) AS datetime

任何幫助是極大ofcourse感謝!

請注意,我已經看到了標籤爲這個問題的答案,並且這對我的情況沒有幫助。首先,所有的答案,保存1,都返回轉換它的PHP代碼,其次,SQL中用於CONVERT的假設答案在MySQL中不起作用,原因有很多,1在SQL中,看起來有3個參數用於CONVERT ,但在MySQL中只有2.另外,MySQL中的CONVERT工作方式不同,或者不是正確的功能,而且答案是錯誤的。

+0

這應該是對你有所幫助http://stackoverflow.com/questions/14248678/convert-decimal-stored -as-varchar-to-datetime –

+0

[如何將十進制(16,4)轉換爲SQL或PHP中的DATE或DATETIME](http://stackoverflow.com/questions/10102749/how-to-convert- decimal16-4最新-OR-dateti me-in-sql-or-php) –

+0

不,不是,至於問題中概述的原因。同樣感謝。 –

回答

2

從需要的精度取決於

select from_unixtime(round(submit_time)) as datetime -- 2012-04-10 09:00:26

select from_unixtime(submit_time) as datetime -- 2012-04-10 09:00:25.5900

+0

謝謝,第二個1對我來說是正確的,只需要使用'DATE_FORMAT'並僅從中提取年,月,日,小時,分鐘和秒。乾杯。 'ROUND'引起了一些問題,因爲它似乎將整個字符串四捨五入。 –