在一个月内获取记录的错误

时间:2017-12-07 17:51:09

标签: mysql sql

我在尝试在一个月内获取日期记录时遇到问题。记录通常在倒数第二天停止。例如,如果我尝试在10月1日到31日之间选择记录,我只会在10月30日结束记录。同样的事情适用于8月,记录在8月29日停止。 这是一个片段

SELECT * FROM transactions where date BETWEEN date(CONCAT('2017', '-', '08','-01')) AND date(CONCAT('2017', '-', '08','-30')

2 个答案:

答案 0 :(得分:-1)

您的condition_variable列可能有一个时间部分,这意味着2017-08-30正在翻译为当天的午夜(00:00:00.000),因此当天晚些时候的任何内容都将在范围。您最好使用date。将date >= 2017-08-01 and date < 2017-09-01与日期时间值一起使用可能会非常棘手。

答案 1 :(得分:-1)

尝试使用YEAR()和MONTH():

 SELECT * FROM transactions 
 WHERE YEAR([date]) = 2017 AND MONTH([date]) = 8