php - 如何使用 date_add 将年、月、日、小时、分钟、秒添加到 mysql 日期?

标签 php mysql sql

在 mysql 数据库中添加日期时间类型列的最佳方法是什么?我尝试使用 DATE_ADD 但它仅在我添加单个日期/时间时有效,例如:

DATE_ADD(start_date, INTERVAL :dayCount DAY)

这行不通:

DATE_ADD(DATE_ADD(start_date, INTERVAL :dayCount DAY), INTERVAL :hourCount HOUR)

我尝试按照某些人的建议添加微秒:

$startMicro = strtotime($startDiff->format("%Y-%m-%d %H:%i:%s")) * 1000; // 943920000000
start=DATE_ADD(start, INTERVAL :startMicro MICROSECOND)

我最后做了这个并且它起作用了: 在 PHP 中: $minutesDiff = (strtotime($start) - strtotime($row->start))/60; 在 SQL 语句中: start=DATE_ADD(开始, INTERVAL :minutesDiff MINUTE)

感谢大家的帮助。

最佳答案

将添加的总时间转换为您要添加的最小时间增量,因此您需要 25 小时而不是 1 天、1 小时。不是 1 小时 1 分 1 秒,而是 3601 秒,等等。

如果需要,您可以嵌套它们,但是您的语法不正确,在第二个 INTERVAL 之前缺少一个逗号,应该是:

DATE_ADD(DATE_ADD(start_date, INTERVAL :dayCount DAY), INTERVAL :hourCount HOUR)

关于php - 如何使用 date_add 将年、月、日、小时、分钟、秒添加到 mysql 日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23999026/

相关文章:

phpMyAdmin错误: Cannot access browser storage

javascript - AngularJS 按 ID 过滤

java - 使用 php 和 android 从 sql 数据库中选择所有内容

php - MySQL 或 PHP : Find optimum combination of rows based on score

sql - 存储过程返回值错误

php正则表达式删除HTML

java - 是否应该将 FK 设置为另一个表的索引?

mysql忽略任何不同的值

mysql - 如果其中一列具有多个值之一,则选择一行的 SQL 选择查询?

sql - 不同模式中的触发器