我在mysql db中有一个日期列,但日期的格式如下:
是否可以使用此日期格式查询日期范围?
例如:
$query = "SELECT `Total` FROM agent WHERE date >= 'Jan-16' AND date < Apr-16";
如果这无效,推荐的前进方式是什么?我将不得不更新数据库中的日期格式吗?
答案 0 :(得分:1)
- 扬-16
- FEB-16
- MAR-16
如果此列为char
或varchar
或其他字符串类型,并且您只是将它们与您的参数进行比较,则它不会提供您想要的内容,因为这只会将它们与字符的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');
如果您的参数是日期,请使用它。此外,您可以更新您的列到目前为止,这将是一个更好的解决方案。