MySQL - 从表中获取日期列

时间:2016-07-20 18:02:19

标签: mysql date

我有一个带有MappingTable的MySQL数据库,它由两列组成。第一列是date列,另一列是ID - Autoincrement int列。我创建了这个表来映射日期和ID。当我使用日期查询日期列以检索ID时,没有选择任何行。有什么原因吗?

我试过

    SELECT查询中的
  1. date_format
  2. 检查WHERE子句时
  3. str_to_date
  4. current_date > "2016-07-12"current_date <= "2016-07-12"
  5. 相比

    如果我比较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";

    我尝试了上面提到的所有方法,但没有行没有检索。

2 个答案:

答案 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')