将整数转换为日期时间(dd:hh:mm:ss)

努诺·佩雷拉(Nuno Pereira)
SELECT AVG (closeTime - createTime)
FROM Deals
WHERE dealid = 123

'closeTime'和'addTime'具有DATETIME(YYYY-MM-DD HH:MI:SS)格式。结果是:

105030215.0000

我应该使用哪个函数将此值转换为DATETIME?

addTime: 12/04/2016 13:06
closeTime:  12/05/2017 16:08

我要查找的结果(我在Excel中计算出):

29:03:02:15 (DD:HH:MM:SS)
马特·雷恩斯(Matt Raines)

DATETIME在MySQL中s似乎不会在几秒钟内给它们带来差异。以您的两个示例日期为2016-04-12 13:06和2016-05-12 16:08(假设您的问题中的2017年是错字),减去它们将返回100030200,而正确的答案是2602920。系数是38.4一点点。

返回秒数差异的MySQL函数TIMESTAMPDIFF实际上是,并且SELECT TIMESTAMPDIFF(SECOND, '2016-04-12 13:06', '2016-05-12 16:08')返回正确的秒数。

现在,我们要做的就是将其转换为您的格式。MySQL具有一个内置的功能SEC_TO_TIME可以执行此操作,但是不幸的是,它不能在超过839小时的时间内正常工作,并且无法单独列出日期。我们可以通过以下方式来解决此问题:将日期与其余计算分开计算,并SEC_TO_TIME在从差额中减去了天数后就使用剩余数。

SELECT CONCAT(
    TIMESTAMPDIFF(DAY, '2016-04-12 13:06', '2016-05-12 16:08'), ':',
    SEC_TO_TIME(TIMESTAMPDIFF(SECOND, '2016-04-12 13:06', '2016-05-12 16:08') % 86400));
-- 30:03:02:00 (DD:HH:MM:SS)

这似乎是正确的答案。尽管您期望的输出是29:03:02:15,但是四月份有30天,而输入中根本没有秒。

当您使用汇总函数确定秒数时,我们将无法选择以天为单位的值和以秒为单位的值(否则,我们将获得平均天数,然后是平均数的一部分)秒数),因此您必须将其重写为

SELECT CONCAT(
    FLOOR(AVG(TIMESTAMPDIFF(SECOND, createTime, closeTime)) / 86400), ':',
    SEC_TO_TIME(AVG(TIMESTAMPDIFF(SECOND, createTime, closeTime)) % 86400))
FROM deals WHERE dealid = 123;
-- 30:03:02:00.0000

现在这包括几分之一秒,因为平均差可能不是整数秒。要排除它们,请使用FLOORROUND

SELECT CONCAT(
    FLOOR(AVG(TIMESTAMPDIFF(SECOND, createTime, closeTime)) / 86400), ':',
    SEC_TO_TIME(ROUND(AVG(TIMESTAMPDIFF(SECOND, createTime, closeTime))) % 86400))
FROM deals WHERE dealid = 123;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Coldfusion日期转换将yyyy-mm-dd:hh:mm:ss转换为日期和时间

来自分类Dev

将日期时间转换为MM / dd / yyyy HH:MM:SS AM / PM

来自分类Dev

将日期时间 (yyyy-mm-dd hh:mm:ss) 格式转换为 EXCEL 中的秒

来自分类Dev

如何将ISO日期和时间格式转换为“ DD Mon YYYY hh:mm:ss”?

来自分类Dev

将时间从{yyyy-mm-dd hh:mm:ss}转换为{yyyy-mm-dd hh}

来自分类Dev

如何将 yyyy-MM-dd-hh.mm.ss 中的日期字段转换为 Hive 中的时间戳字段(yyyy-MM-dd hh:mm:ss))

来自分类Dev

将字符串时间戳mm / dd / yy hh:mm:ss转换为Google表格中的日期/时间类型

来自分类Dev

将儒略日日期转换为日期时间格式yyyy-mm-dd hh:mm:ss in R

来自分类Dev

将时间(hh:mm)转换为(yyyy-MM-dd HH:mm:ss)

来自分类Dev

将时间(hh:mm)转换为(yyyy-MM-dd HH:mm:ss)

来自分类Dev

在C#中以yyyy-MM-dd HH:mm:ss格式将字符串转换为日期时间

来自分类Dev

将任何日期时间格式转换为yyyy-mm-dd hh:mm:ss.sss

来自分类Dev

如何将日期时间转换为Perl中的yyyy-mm-dd hh:mm:ss格式?

来自分类Dev

Moment.js 如何将 MM/dd/yyyy HH:mm:ss.fff 转换为往返日期/时间模式?

来自分类Dev

Lubridate 未在 R (dd/mm/yy hh:mm:ss) 中正确地将日期时间转换为 POSIXct

来自分类Dev

Excel日期时间从YYYYMMDDHHMMSS转换为DD / MM / YYYY HH:MM:SS

来自分类Dev

将日期转换为文本“ YYYY:DD:MM hh:mm:ss”为实际日期

来自分类Dev

日期从DD / MM / YYYY HH:MM:SS转换为YYYYMM

来自分类Dev

将MM / DD / YYYY HH:MM:SS转换为Unix时间戳(SQL)

来自分类Dev

将日期格式yy / todaydaysinyear / totalsecondsinday转换为dd / mm / yyyy hh / mm / ss

来自分类Dev

使用XSLT将日期yyyyMMdd转换为yyyy-MM-dd'T'HH:mm:ss格式

来自分类Dev

在Rails 3中将时间DD:hh:mm:ss格式转换为秒

来自分类Dev

将proc / uptime转换为DD:HH:MM:SS

来自分类Dev

将字符串时间戳HH:MM:SS转换为C中的整数

来自分类Dev

将字符串时间戳HH:MM:SS转换为C中的整数

来自分类Dev

使用JavaScript将yyyy-MM-ddTHH:mm:ss.fffZ日期格式转换为mmm dd hh:mm

来自分类Dev

如何在 node.js 中将日期时间:1518427800 转换为 hh:mm:ss dd/mm/yyyy?

来自分类Dev

熊猫将mm / dd / yyyy hh:mm转换为日期

来自分类Dev

我可以将 hh:mm 格式转换为 yyyy-MM-dd HH:mm:ss 吗?

Related 相关文章

  1. 1

    Coldfusion日期转换将yyyy-mm-dd:hh:mm:ss转换为日期和时间

  2. 2

    将日期时间转换为MM / dd / yyyy HH:MM:SS AM / PM

  3. 3

    将日期时间 (yyyy-mm-dd hh:mm:ss) 格式转换为 EXCEL 中的秒

  4. 4

    如何将ISO日期和时间格式转换为“ DD Mon YYYY hh:mm:ss”?

  5. 5

    将时间从{yyyy-mm-dd hh:mm:ss}转换为{yyyy-mm-dd hh}

  6. 6

    如何将 yyyy-MM-dd-hh.mm.ss 中的日期字段转换为 Hive 中的时间戳字段(yyyy-MM-dd hh:mm:ss))

  7. 7

    将字符串时间戳mm / dd / yy hh:mm:ss转换为Google表格中的日期/时间类型

  8. 8

    将儒略日日期转换为日期时间格式yyyy-mm-dd hh:mm:ss in R

  9. 9

    将时间(hh:mm)转换为(yyyy-MM-dd HH:mm:ss)

  10. 10

    将时间(hh:mm)转换为(yyyy-MM-dd HH:mm:ss)

  11. 11

    在C#中以yyyy-MM-dd HH:mm:ss格式将字符串转换为日期时间

  12. 12

    将任何日期时间格式转换为yyyy-mm-dd hh:mm:ss.sss

  13. 13

    如何将日期时间转换为Perl中的yyyy-mm-dd hh:mm:ss格式?

  14. 14

    Moment.js 如何将 MM/dd/yyyy HH:mm:ss.fff 转换为往返日期/时间模式?

  15. 15

    Lubridate 未在 R (dd/mm/yy hh:mm:ss) 中正确地将日期时间转换为 POSIXct

  16. 16

    Excel日期时间从YYYYMMDDHHMMSS转换为DD / MM / YYYY HH:MM:SS

  17. 17

    将日期转换为文本“ YYYY:DD:MM hh:mm:ss”为实际日期

  18. 18

    日期从DD / MM / YYYY HH:MM:SS转换为YYYYMM

  19. 19

    将MM / DD / YYYY HH:MM:SS转换为Unix时间戳(SQL)

  20. 20

    将日期格式yy / todaydaysinyear / totalsecondsinday转换为dd / mm / yyyy hh / mm / ss

  21. 21

    使用XSLT将日期yyyyMMdd转换为yyyy-MM-dd'T'HH:mm:ss格式

  22. 22

    在Rails 3中将时间DD:hh:mm:ss格式转换为秒

  23. 23

    将proc / uptime转换为DD:HH:MM:SS

  24. 24

    将字符串时间戳HH:MM:SS转换为C中的整数

  25. 25

    将字符串时间戳HH:MM:SS转换为C中的整数

  26. 26

    使用JavaScript将yyyy-MM-ddTHH:mm:ss.fffZ日期格式转换为mmm dd hh:mm

  27. 27

    如何在 node.js 中将日期时间:1518427800 转换为 hh:mm:ss dd/mm/yyyy?

  28. 28

    熊猫将mm / dd / yyyy hh:mm转换为日期

  29. 29

    我可以将 hh:mm 格式转换为 yyyy-MM-dd HH:mm:ss 吗?

热门标签

归档