2016-04-21 172 views
-1

我想从日期和时间获取总和(成本)的数据。我的表字段的数据类型是id是INT AUTO INCREMENT,dd是varchar,mm是varchar,yyyy varchar和dd值是01到31,mm值是01到12,年值是4位数年份(2016或2015 ... ) 正是我想要总和(成本)= 143从字符串中获取数据字符串整型数据类型

SELECT SUM(cost) FROM costing 
WHERE 
    ((dd> CAST('05' AS SIGNED) AND mm= CAST('12' AS SIGNED) AND yyyy= CAST('2015' AS SIGNED)) 
    AND 
    ((dd<= CAST('23' AS SIGNED) AND mm = CAST('01' AS SIGNED) AND yyyy= CAST('2016' AS SIGNED))) 

    order by id 

enter image description here

+1

这看起来太过复杂。为什么不有'DATE'字段并做一个简单的'BETWEEN'? –

+0

这是痴呆。 – Strawberry

回答

1

您可以使用CAST AS DATE函数是这样的:

SELECT 
    SUM(cost) FROM costing 
WHERE 
    CAST(CONCAT(yyyy,mm,dd) AS DATE) BETWEEN '2015-12-05' AND '2016-01-23' 
+0

谢谢@selvinsource – JKR

+0

如果我第一次报告生成,我不知道从日期,这意味着2015年12月5日。我运行2015年12月5日之前我需要所有数据的总和 – JKR