【问题标题】:Mysql - how to calculate end date by using start date and durationMysql - 如何使用开始日期和持续时间计算结束日期
【发布时间】:2014-05-08 12:23:42
【问题描述】:

在查询中,在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;

谢谢。

【问题讨论】:

  • 你可以使用 date_add 函数,就像 select date_add(BU_START_DATE, interval BU_DURATION month)

标签: mysql datetime


【解决方案1】:

使用 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 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多