【问题标题】:Convert DECIMAL(16,4) into DATETIME MySQL将 DECIMAL(16,4) 转换为 MySQL 的 DATETIME
【发布时间】:2016-07-23 05:18:19
【问题描述】:

如果可能,我需要将在数据库中存储为 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 中,看起来有 3 个 CONVERT 参数,但在 MySQL 中,只有 2 个。此外,MySQL 中的 CONVERT 要么工作方式不同,要么不是正确的函数,因此答案是错误的。

【问题讨论】:

标签: php mysql datetime


【解决方案1】:

取决于所需的精度

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

【讨论】:

  • 谢谢,第二个 1 对我来说是正确的,只需要在上面使用 DATE_FORMAT 并从中提取年、月、日、小时、分钟、秒。干杯。 ROUND 引起了一些问题,因为它似乎将整个字符串向上取整。
猜你喜欢
  • 1970-01-01
  • 2012-04-23
  • 2014-04-12
  • 2011-01-22
  • 1970-01-01
  • 2021-12-10
  • 1970-01-01
  • 2021-11-04
  • 1970-01-01
相关资源
最近更新 更多