我有一个带有MappingTable的MySQL数据库,它由两列组成。第一列是date
列,另一列是ID - Autoincrement
int列。我创建了这个表来映射日期和ID。当我使用日期查询日期列以检索ID时,没有选择任何行。有什么原因吗?
我试过
date_format
str_to_date
current_date > "2016-07-12"
和current_date <= "2016-07-12"
如果我比较LIKE "2016-07-1%"
我得到匹配的行,但如果我选择"2016-07-12%"
虽然有匹配的行,但是它给出了0行。
我仅将我的列定义为DATE
。
我在这里缺少什么?
CREATE TABLE `mapping_table` (
`Current_date` date DEFAULT NULL,
`id` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8;
我的问题是,我想选择这样的东西。
select id from mapping_table where current_date="2016-07-12";
我尝试了上面提到的所有方法,但没有行没有检索。
答案 0 :(得分:1)
在列和表名上使用后退,以便它不会被读/解析为关键字。
select `id` from `mapping_table` where `current_date` = "2016-07-12";
答案 1 :(得分:0)
在您提供的示例中,您应该使用date_format
select id from mapping_table where current_date= DATE_FORMAT("2016-07-12",'%Y-%d-%m') ;
或使用范围
select id from mapping_table where current_date
BETWEEN DATE_FORMAT("2016-07-12",'%Y-%d-%m')
and DATE_FORMAT("2016-07-10",'%Y-%d-%m')