特定日期格式的mysql日期范围查询(MMM-YY)

时间:2016-05-18 22:29:27

标签: php mysql

我在mysql db中有一个日期列,但日期的格式如下:

  • 扬-16
  • FEB-16
  • MAR-16

是否可以使用此日期格式查询日期范围?

例如:

$query = "SELECT `Total` FROM agent WHERE date >= 'Jan-16' AND date < Apr-16";

如果这无效,推荐的前进方式是什么?我将不得不更新数据库中的日期格式吗?

1 个答案:

答案 0 :(得分:1)

  
      
  • 扬-16
  •   
  • FEB-16
  •   
  • MAR-16
  •   

如果此列为charvarchar或其他字符串类型,并且您只是将它们与您的参数进行比较,则它不会提供您想要的内容,因为这只会将它们与字符的ASCII代码进行比较。您应该使用函数str_to_date对它们进行格式化,然后您可以在日期间隔中获得结果。

喜欢这个;)

$query = "SELECT `Total` FROM agent
WHERE str_to_date(date, '%M-%y') >= str_to_date('Jan-16', '%M-%y')
AND str_to_date(date, '%M-%y') < str_to_date('Apr-16', '%M-%y');

如果您的参数是日期,请使用它。此外,您可以更新您的列到目前为止,这将是一个更好的解决方案。