选择两个日期之间的记录

Ita*_*agi 4 mysql date

我有以下查询:

SELECT dm.app_id, apt.app_name, COUNT(dm.app_id) 
FROM dm_openapp dm
JOIN app_table apt ON dm.app_id = apt.app_id
GROUP BY dm.app_id 
Run Code Online (Sandbox Code Playgroud)

基本上这个表也有与每个记录相关的日期,我需要在时间X和Y之间获得所有记录的范围,例如,我尝试使用以下内容,但无济于事:

WHERE dm.dl_time BETWEEN '2011-05-31' AND '2011-05-06'
Run Code Online (Sandbox Code Playgroud)

知道怎么做?dl_time列是时间戳类型.

Jam*_*mes 7

最好将DATETIME列类型用于这些事情.比这应该工作:使用str_to_date()函数.另外,交换BETWEEN值.

WHERE dm.dl_time BETWEEN str_to_date('2011-05-06','%Y-%m-%d') AND str_to_date('2011-05-31','%Y-%m-%d')
Run Code Online (Sandbox Code Playgroud)


Boh*_*ian 6

嗯……你把数据弄错了。BETWEEN必须是低值到高值:

尝试这个:

WHERE dm.dl_time BETWEEN '2011-05-06' AND '2011-05-31' -- Note date values swapped
Run Code Online (Sandbox Code Playgroud)

您可以忽略其他答案,这些答案也没有注意到这一点......