mysql - Excel 使用 MSQuery 将时间格式更改为日期时间

标签 mysql excel time ms-query

我用Excel创建了一个MSQuery来从MySql中的表中获取一些字段,工作正常,但是MySQL中有一个列具有时间格式,Excel以日期时间格式向我提供这一列。 我可以在 Excel 中格式化单元格,以便它以 hh:mm 格式显示时间,这不是问题,但我必须使用数据库中的这些字段在 Excel 中进行一些计算,这导致了我的问题:我不能当总和大于 24 小时时,对这些字段进行求和,因为这样我只能得到小时的值,而不是天数乘以 24 的值(例如,我只得到 1:15,而不是 25:15)。 通常我使用这种格式 [hh]:mm,这样就会显示所有值(甚至超过 24 小时),但这在这里不起作用,因为我得到一个非常高的值(例如:1017144:15)。原因是,Excel 将每个字段的时间添加到今天的实际日期(例如 12:00 将是 2016 年 1 月 12 日 12:00),并且对于每个时间的总和,日期值将是另外添加。 我在 MSQuery 中使用以下语句进行了尝试:

SELECT
   DATE_FORMAT(entry.timeBegin, '%h:%i') AS 'Beginn',
   entry.timeEnd AS 'Ende',
   TIME(entry.pause) AS 'Pause'
FROM timetable.entry entry<br>

所有 3 列在 MySQL 数据库中的格式为 hh:mm。 Ende 和 Pause 的行为如上所述,Beginn 的格式正确(只是没有通过 Excel 格式化字段),但字段的内容具有字符串类型,因此,Excel 在计算时始终对这些字段使用 0(零)他们,所以我得到的总和总是 0。 我知道我可以在 MySQL 中构建总和,但这对我来说不是解决方案,因为用户可以在 Excel 中设置一些过滤器,这在查询中构建起来很复杂,特别是这只是更困难的构造的一部分。

最佳答案

好的,这里有几个例子。 “Beginn”始终传递 0:00(如上所述),“Ende”和“Pause”始终相同。所以我们必须考虑使用 hh:mm 和 [hh]:mm 格式的 Ende 或 Pause:

  1. 0:00 导致 0:00/1017144:00
  2. 1:30 导致 1:30/1017145:30
  3. 20:00 + 3:00 导致 23:00/2034311:00
  4. 21:30 + 3:00 导致 0:30/2034312:30


我没有尝试PowerQuery,因为我到现在还不知道它,也不知道它是在Excel还是MS内部。我不想为每个用户在电脑上安装额外的工具。如果我只需将它放入我的 Excel 工作表中,那么如果它功能正常,它可能是一个解决方案。

补充:我查看了PowerQuery,发现这会给我带来问题,因为大多数用户使用MS Office 2010,而Excel 2010的要求是Microsoft Office 2010 Professional Plus mit Software Assurance,而我们公司不存在软件保障功能。

已添加:为了更加清晰,我添加了 Excel 的屏幕截图:
screenshot of Excel

  • 我从 SQL 中获取以 h:mm 格式显示的列 A。
  • B 列只是数字格式相同。
  • D2 和 E2 是 A1:A10 的总和,格式分别为 h:mm [h]:mm:ss。
  • D3 和 E3 是 A1:A23 的和,格式分别为 h:mm [h]:mm:ss。
    正如您所看到的,SQL 通过 MSQuery 传递时间 5:30:00,Excel 显示 14.01.2016 05:30:00,我可以以正确的方式对其进行格式化(A 列)。只要总和小于 24 小时,就可以计算总和(参见 D2),否则我只能得到大于一整天的小时(< 24)。其原因您可以在 D3 和 E3 中看到。
    我该怎么做才能获得正确的值(value)观?我认为最简单的方法是从 MSQuery 获取数据。

关于mysql - Excel 使用 MSQuery 将时间格式更改为日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34742765/

相关文章:

php - session 变量未从 php 的下拉菜单中存储

sql - 使用 Excel VBA 更新 Access 数据库时确定记录是否存在

sql - 回车 Oracle 10g SQL

php - 如何从数据库动态添加和获取总时间?

c++ - 定时 C++ 程序问题

time - 18小时Cron问题

mysql - 在主键上搜索时从 MySQL 数据库中获取一行的时间复杂度是多少?

来自远程服务器的 mysqldump

Php PDO插入查询报错

Excel:如何从 VbScript 调用工作表模块中的函数