我正在尝试使用存储过程从两个日期之间的数据库中提取数据计数,使用以下代码:
select count(*)
from SOMT_Development.Board_Metrics_Data bmd
where bmd.Metric_Year >= startYear and bmd.Metric_Year <= endYear and
Metric_Month >= startMonth and Metric_Month <= endMonth and
bmd.Metric_Day >= startDay and bmd.Metric_Day <= endDay and
bmd.Board_Metrics_ID = 1 and bmd.Value_Colour = "Red" and
bmd.Date_Created = (select max(bmd2.Date_Created)
from SOMT_Development.Board_Metrics_Data bmd2
where bmd2.Board_Metrics_ID = bmd.Board_Metrics_ID and
bmd2.Metric_Year = bmd.Metric_Year and
bmd2.Metric_Month = bmd.Metric_Month and
bmd2.Metric_Day = bmd.Metric_Day
)) as 'red'
但是,如果月份/年份不同,则无法正常工作。如果我输入2018-3-1和2018-4-4的日期,这就是返回的数据
2018-03-29 09:46:20 green 1 no_comment 2018 3 1
2018-03-29 09:46:20 red 1 no_comment 2018 3 2
2018-03-29 09:46:20 white 1 no_comment 2018 3 3
2018-03-29 09:46:20 white 1 no_comment 2018 3 4
2018-04-04 13:25:19 green 1 no_comment 2018 4 4
2018-04-02 13:25:30 green 1 no_comment 2018 4 2
2018-04-03 13:25:47 green 1 no_comment 2018 4 3
如你所见,这几天并不是一直到月底,而是一直到第四天。
谢谢
1条答案
按热度按时间wmtdaxz31#
正如@niyou所说,你将遇到单独比较一个日期的部分的问题,所以你需要把它们组合成一个完整的日期。所以试着替换
与
根据数据库中值的格式,可能需要更改
%Y-%c-%e
格式字符串匹配,手册将帮助选择正确的字符串。