php - 如何在查询中以天、小时、分钟、秒为单位拆分剩余时间

标签 php mysql

下面是我的表结构

enter image description here

现在我需要一个查询,我可以在其中显示该事件的天数、小时数、分钟数、秒数。

我用过这个查询

select title,`date`,subject ,TIMESTAMPDIFF(DAY, CONVERT_TZ(NOW(),@@session.time_zone, '+05:30'),'2013-05-25 12:00:00')  as dayleft ,TIMESTAMPDIFF(HOUR, CONVERT_TZ(NOW(),@@session.time_zone, '+05:30'),'2013-05-25 12:00:00')  as hourleft from jos_holidays where `date` > CONVERT_TZ(NOW(),@@session.time_zone, '+05:30')

上面的结果是我

enter image description here

但我需要获得准确的剩余时间,包括天、小时、分钟和秒,并将其显示在单独的列中。我可以在查询中实现吗?虽然这可以在 PHP 中实现。

查询中的日期 "2013-05-25 12:00:00" 值也是硬编码的。也可以让它变得动态。

谢谢

最佳答案

查询:

SQLFIDDLEExample

SELECT title,
       `date`,
       subject ,
       TIMESTAMPDIFF(DAY, CONVERT_TZ(NOW(),@@session.time_zone, '+05:30'), `date`) AS dayleft,
       TIMESTAMPDIFF(HOUR, CONVERT_TZ(NOW(),@@session.time_zone, '+05:30'), `date`)
       - TIMESTAMPDIFF(DAY, CONVERT_TZ(NOW(),@@session.time_zone, '+05:30'), `date`)*24 AS hourleft,
       TIMESTAMPDIFF(MINUTE, CONVERT_TZ(NOW(),@@session.time_zone, '+05:30'),  `date`) -
       TIMESTAMPDIFF(HOUR, CONVERT_TZ(NOW(),@@session.time_zone, '+05:30'), `date`)* 60 AS minuteleft,
       TIMESTAMPDIFF(SECOND, CONVERT_TZ(NOW(),@@session.time_zone, '+05:30'), `date`)- 
       TIMESTAMPDIFF(MINUTE, CONVERT_TZ(NOW(),@@session.time_zone, '+05:30'),  `date`)*60 AS secondleft
FROM jos_holidays
WHERE `date` > CONVERT_TZ(NOW(),@@session.time_zone, '+05:30')

关于php - 如何在查询中以天、小时、分钟、秒为单位拆分剩余时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16706202/

相关文章:

php - 如何创建一个函数来添加现有信息?

php - 在 Woocommerce 中下订单后,将值插入自定义表中

php - 如何通过 jquery keyup 检查数据库中是否存在用户名

mysql - 优化 MySQL 选择查询以获取带有 where 子句的单个随机行

php - 如何在启动应用程序之前检查 Facebook 用户 ID 是否已经存在?

php - 在 PHP foreach 的脚本中回显 JSON.parse 时,如何避免语法错误?

javascript - $.post 的值不正确。 JQuery 中的选择

mysql - 存储过程中的 "@"符号?

java - Hibernate逆向工程-多对多关系

mysql - 是否可以为特定的 MySQL 数据库设置不区分大小写的表名?