【问题标题】:MYSQL convert float to datetimeMYSQL 将浮点数转换为日期时间
【发布时间】:2014-12-16 08:39:18
【问题描述】:

我想做这样的事情:

37442.3992708333 -> 05-07-2002  09:34:57

但是当我尝试“更简单”的语法时,我也不起作用。 喜欢:

SELECT CONVERT(float, '15.6');
Result should be: 15.6

我总是收到如下错误:

#1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“float, '15.6')' 附近使用正确的语法

我在 SQL 命令中的 xampp phpmyadmin 中尝试此语法。

服务器版本:5.6.20 - MySQL 社区服务器 (GPL) Apache/2.4.10 (Win32) OpenSSL/1.0.1i PHP/5.5.15 PHPMYADMIN 4.2.7.1

【问题讨论】:

  • 37442.3992708333变成05-07-2002 09:34:57背后的数学逻辑是什么?

标签: mysql datetime phpmyadmin type-conversion


【解决方案1】:

您需要使用SEC_TO_TIME() 函数。

目前尚不清楚,因为您没有提供足够的信息来表示浮点数代表什么,所以我无法编写示例 - 但是上面的文档链接非常详细,因此您应该能够从那里解决。

评论更新:

如果你的浮点数来自excel,那么:

  1. 您需要研究 Excel 如何生成该浮点数(我不会为您做这项研究),然后反转该过程以将其存储为 MySQL 日期时间字段

  2. 如果它来自 excel,您能否不只是创建一个带有 =TEXT(A3,"YYYY-MM-DD") 公式的 MySQL 日期友好列 - 将 A3 更改为您对 Excel 日期(浮点数)的单元格引用?

【讨论】:

  • 浮点数来自于导入一个excel文件。 MS Excel 将 DATETIME 存储为浮点数。 05.07.2002 09:34:57 将是 37442.3992708333
  • 谢谢@Steve。目前我正在测试您的第二个解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-22
  • 2022-01-17
  • 2019-02-17
  • 1970-01-01
  • 2019-12-19
  • 2022-11-15
相关资源
最近更新 更多