MYSQL获取一定时间范围内的数据

Posted

技术标签:

【中文标题】MYSQL获取一定时间范围内的数据【英文标题】:MYSQL get data within an certain time frame 【发布时间】:2011-02-22 12:31:52 【问题描述】:

大家好, 正确获取此 mysql 查询时遇到问题

SELECT * 
FROM tbl_problem 
WHERE user_id = 1
AND problem_solved != -1 
AND problem_timestamp BETWEEN '20110212' AND DATE('20110212', INTERVAL 14 DAY) 
ORDER BY problem_id

问题是 20110212 是由 php 动态生成的,这就是我使用 DATE/INTERVAL COMBO 的原因。

鉴于您知道两周周期的开始日期,我想做的是在 2 周时间范围内选择条目。

提前致谢

【问题讨论】:

【参考方案1】:

为什么不让 PHP 重新格式化它然后查询

SELECT * 
FROM tbl_problem 
WHERE user_id = 1
AND problem_solved != -1 
problem_timestamp > '2011-01-24' AND problem_timestamp < DATE_ADD('2011-02-12', INTERVAL 14 DAY) 
ORDER BY problem_id

要将 PHP 中的日期从您当前的格式转换为 MYSQL 的格式,请使用

$date = date_create_from_format('Ymd', '20110212');
$mysqlDate = date_format($date, 'Y-m-d'); //2011-01-24

【讨论】:

【参考方案2】:

使用 Datediff。

SELECT * 
FROM tbl_problem 
WHERE user_id = 1
AND problem_solved != -1 
AND DATEDIFF(problem_timestamp,'20110112') <= 14
ORDER BY problem_id

【讨论】:

以上是关于MYSQL获取一定时间范围内的数据的主要内容,如果未能解决你的问题,请参考以下文章

访问查询以获取一定时间范围内的行(不考虑日期)

MySQL查询以获取日期范围内的端点?

spark sql怎么去获取hive 表一定日期范围内的数据

获取多个小时内按分钟时间范围内的 mySQL 行

Power BI根据一定范围内的度量获取记录数

MySql 求一段时间范围内的每一天,每一小时,每一分钟