我在尝试在一个月内获取日期记录时遇到问题。记录通常在倒数第二天停止。例如,如果我尝试在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')
答案 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