selectdate范围内的数据

如何在MySQL中的date范围内select数据。 我的datetime列是24小时祖鲁时间格式。

 select * from hockey_stats where game_date between '11/3/2012 00:00:00' and '11/5/2012 23:59:00' order by game_date desc; 

尽pipe在这些时间段之间有数据,但不返回 我是否必须在查询中将“from”“to”字段中的值强制为datetimetypes?

您需要更新date格式:

 select * from hockey_stats where game_date between '2012-03-11 00:00:00' and '2012-05-11 23:59:00' order by game_date desc; 

这是使用date函数的简单方法:

 select * from hockey_stats where date(game_date) between date('2012-11-03') and date('2012-11-05') order by game_date desc 

您可能需要使用STR_TO_DATE函数:

 select * from hockey_stats where game_date between STR_TO_DATE('11/3/2012 00:00:00', '%c/%e/%Y %H:%i:%s') and STR_TO_DATE('11/5/2012 23:59:00', '%c/%e/%Y %H:%i:%s') order by game_date desc; 

(如果game_date是一个string,则可能需要使用STR_TO_DATE)

MySQLdate格式是这样的:YMD。 您正在使用Y / M / D。 这是错的。 修改你的查询。

如果插入date如Y / M / D,它将在数据库中插入空值。

如果你使用PHP和date,你从表单中得到的是这样的Y / M / D,你可以用这个语句来replace它。

 out_date=date('Ym-d', strtotime(str_replace('/', '-', $data["input_date"]))) 

一个简单的方法:

 select * from hockey_stats where game_date >= '2012-03-11' and game_date <= '2012-05-11'