是否有一种简单的方法可以在月份的时间戳上使用WHERE

时间:2014-01-10 23:41:00

标签: mysql select where

我有一个表,里面有几千行,每个表都有这种格式的时间戳:

  

** YYYY-MM-DD HH-MM-SS ** 所以2014-01-10 04:20:26

是否有可能使用一种简单的方法来获取MySQL Select,大概是使用WHERE来获取1月份保存的所有文章。或者我想唯一的另一个选择是循环遍历每一行,拆分字符串并将其添加到另一个字符串(如果是)。至少可以说是不理想的。

注意:虽然我可以更改此表格,但数据是从第三方提供的,因此无法将月份/年份保存在自己的单元格中。

2 个答案:

答案 0 :(得分:4)

SELECT * FROM myTable WHERE date >= '2014-01-01' AND date < '2014-02-01'

答案 1 :(得分:0)

使用STR_TO_DATE将字符串转换为DATE,然后使用MONTH函数提取月份并对其进行检查。

例如:

 select * from tbl where month(str_to_date(date, '%Y-%m-%d %h:%i:%s')) = 1 

月和年:

 select * from tbl 
 where month(str_to_date(date, '%Y-%m-%d %h:%i:%s')) = 1
 and year(str_to_date(date, '%Y-%m-%d %h:%i:%s')) = 2014