Вопрос

In the query,with the help of BU_START_DATE and BU_DURATION,I would like to calculate END_DATE .here the duration represents in month. suppose BU_START_DATE is 2014-05-23T13:10:01.515 and BU_DURATION is 2,END_DATE should calculate as 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;

Thanks.

Это было полезно?

Решение

Use mysql date_add() which will do the trick.

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                            |
+-------------------------------------------------------+

So in the query just add

date_add(BU_START_DATE, INTERVAL BU_DURATION month) as END_DATE 
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top