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获取一定时间范围内的数据的主要内容,如果未能解决你的问题,请参考以下文章