mysql timediff_mysql的timediff到几个小时

TIMEDIFF(endDate, startDate)以DateTime格式输出,如此平坦,以时间戳和(60 * 60)

SELECT (UNIX_TIMESTAMP(TIMEDIFF(endDate, startDate))/(60*60)) AS hours_difference FROM tasks

编辑:或者, TimestampDiff也可以提供一个有效的解决scheme,以更优雅的方式提供其示例:

SELECT TIMESTAMPDIFF(MONTH,'2003-02-01','2003-05-01');

而你的解决scheme可以是:

SELECT TIMESTAMPDIFF(HOUR, endDate, startDate) AS hours_different FROM tasks

注意在这条链上最投票的答案是不正确的! 使用小时只能以整数forms返回小时。 下面将更正最stream行的回答小时为整数和分钟(即6.5小时)。

TIME_TO_SEC(TIMEDIFF(endDate, startDate))/3600 as hours

HOUR(TIMEDIFF(endDate, startDate))

可能工作 – 如果我正确地阅读文档。

TIMESTAMPDIFF(HOUR, startDate, endDate)

是最好的办法,因为它工作的时间间隔很大,比如

TIMESTAMPDIFF(HOUR, "2012-01-01 00:00:00", "2050-01-01 00:00:00")

结果: 333120

HOUR(TIMEDIFF("2050-01-01 00:00:00", "2012-01-01 00:00:00"))

结果: 838

失败。

正如我们在上面的例子中看到的,令人惊讶的是甚至超过了2038年的时间戳限制。

HOUR(TIMEDIFF(dateEnd, dateStart))返回的最大小时数为838,因为TIMEDIFF限制在TIME值允许的范围内。

在小时内获得差异:

Hour(TIMEDIFF(date1,date2)) as Hour1

为了得到差异:

Minute(TIMEDIFF(date1,date2)) as Minute1

为了获得第二个差异:

Second(TIMEDIFF(date1,date2)) as Second1

例如:startDate 2010-01-31 00:00:00,endDate 2010-01-31 19:24:22

SELECT (UNIX_TIMESTAMP(dateFin)-UNIX_TIMESTAMP(dateDebut))/3600 hour_diff FROM tasks SELECT TIME_TO_SEC(TIMEDIFF(endDate,startDate))/3600 FROM tasks

回报19.4061这是很好的

SELECT TIMESTAMPDIFF(HOUR, endDate, startDate) AS hours_different FROM tasks

只返回小时,而我也需要分钟转换。

SELECT (UNIX_TIMESTAMP(TIMEDIFF(endDate, startDate))/(60*60)) AS hours_difference FROM tasks

返回0.我认为第一个是最有效的。 谢谢 !!

您可以使用UNIX_TIMESTAMP在SELECT查询中进行计算。

SELECT (UNIX_TIMESTAMP(endDate)-UNIX_TIMESTAMP(startDate))/3600 hour_diff FROM tasks

UNIX_TIMESTAMP将date时间转换为从纪元开始的秒数。 你可以减去两个时间戳,以获得差异。 将其与3600分开会在一小时内给你带来不同。

TIMEDIFF(endDate, startDate) / 10000

select hour(timediff('2017-01-01 00:00:00', '2017-01-01 00:01:00')); return 1 select hour(timediff('2017-01-01 00:01:00', '2017-01-01 00:00:00')); return 1 select time_to_sec(timediff('2017-01-01 00:00:00', '2017-01-01 00:00:05')); return -5 select time_to_sec(timediff('2017-01-01 00:00:00', '2017-01-01 00:00:05'))/60 as 'minutes' ; return -0.0833

如果你有秒,你可以将其转换为你想要的或什么和小时(..)将不会使用它时,我比较,因为它总是正面的价值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值