如果可能的话,当从数据库中选择时,我需要将在数据库中存储为DECIMAL(16,4)的时间戳转换为DATETIME。
它存储在数据库中的方式如下:
$time = function_exists('microtime') ? microtime(true) : time();
$submit_time = number_format($time, 4, '.', '');
然后,$submit_time
与列submit_time
一起进入数据库。
从数据库中提取该值并将其CONVERT
转换为DATETIME
值是否可行?我之所以想将其转换为DATETIME
,是因为在搜索使用分页输出的日期时,它更容易管理。
一直在查看MySQL CONVERT
函数,并尝试了以下操作,但它输出空内容:
SELECT CONVERT(submit_time, DATETIME) AS datetime
任何帮助都将不胜感激!
请注意,我已经看到了这个问题的答案,它对我的情况没有帮助。首先,除了1之外,所有答案都返回转换它的PHP代码。其次,SQL中CONVERT的假定答案在MySQL中不起作用,原因有很多,1是在SQL中,CONVERT看起来有3个参数,但在MySQL中,只有2个。此外,MySQL中的CONVERT要么工作方式不同,要么不是正确的函数,而且答案是错误的。
取决于所需的精度
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