Mysql - 如何使用开始日期和持续时间计算结束日期

标签 mysql datetime

在查询中,借助 BU_START_DATE 和 BU_DURATION,我想计算 END_DATE。这里的持续时间以月为单位。 假设 BU_START_DATE 是 2014-05-23T13:10:01.515 和 BU_DURATION 是 2,END_DATE 应该计算为 2014-07-23T13:10:01.515

SELECT A.PROJECT_ID,A.PROJECT_BASIC_INFORMATION_ID,B.VALUE AS BU_START_DATE,C.VALUE AS BU_DURATION
FROM 
PROJECT_BASIC_INFORMATION A,
CUSTOM_ATTRIBUTES_VALUES B,
CUSTOM_ATTRIBUTES_VALUES C
WHERE 
A.TENANT_ID = '100' AND
B.MAP_ID = (SELECT MST_ATTRIBUTE_ID FROM `MST_TENANT_CUSTOM_ATTRIBUTES` 
WHERE LABEL='Budget Project Savings Start Date' AND 
TENANT_ID='100')

AND
C.MAP_ID = (SELECT MST_ATTRIBUTE_ID FROM `MST_TENANT_CUSTOM_ATTRIBUTES` 
WHERE LABEL='Budget Savings Duration' AND 
TENANT_ID='100')

GROUP BY A.PROJECT_BASIC_INFORMATION_ID ORDER BY A.PROJECT_ID;

谢谢。

最佳答案

使用 mysql date_add() 可以解决问题。

mysql> select date_add('2014-05-23T13:10:01.515', INTERVAL 2 month);
+-------------------------------------------------------+
| date_add('2014-05-23T13:10:01.515', INTERVAL 2 month) |
+-------------------------------------------------------+
| 2014-07-23 13:10:01.515000                            |
+-------------------------------------------------------+

所以在查询中只需添加

date_add(BU_START_DATE, INTERVAL BU_DURATION month) as END_DATE 

关于Mysql - 如何使用开始日期和持续时间计算结束日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23532437/

相关文章:

php - 恢复最近的 mysql 值

java - 如何使用 JPA 和 Hibernate 在 UTC 时区中存储日期/时间和时间戳

php - 如何根据月份对 MySql 行进行分组?

mysql - 如何返回 mysql 中的所有匹配项,其中值出现在位置 n 的字符串中?

java - 使用 JODA 进行日期格式化 - AM 格式错误

php - 将mysql日期时间转换为简单文本

python - 在不循环的情况下将日期时间系列转换为 Pandas 中的字符串

c# - 我可以用欧洲符号存储我的 DateTime 吗?

python - mysqldb python 转义?还是 %s?

java - 避免程序中 JTextField setText 重复