获取最近2天的记录

时间:2018-08-05 09:21:38

标签: mysql sql date datetime

我正在尝试创建查询以获取最近两天的记录。在我的表格中有一个名为日期的字段。值如下:

05-08-2018 08:05:22
05-08-2018 10:15:42

dd-mm-yyyy hh:ii:ss

我已经创建了查询。

SELECT id,title,description, dates
FROM post_feed where `dates` BETWEEN CURDATE() - INTERVAL 1 DAY AND CURDATE()
ORDER BY dates DESC LIMIT 100

当我运行查询时,它返回0条记录。日期格式似乎有问题。

4 个答案:

答案 0 :(得分:2)

好像您的日期存储为varchar。您必须先将它们转换为日期(例如,使用STR_TO_DATE),然后才能执行任何比较。

例如,假设今天是05年8月,而您希望获得04年4月和5月(含)的结果:

SELECT id, title, description, dates
FROM post_feed
WHERE STR_TO_DATE(dates, '%d-%m-%Y') BETWEEN CURRENT_DATE - INTERVAL 1 DAY AND CURRENT_DATE
ORDER BY dates DESC
LIMIT 100

SQL Fiddle

答案 1 :(得分:1)

您的第二个约会早于您的第一次约会。将较大的日期放在第一位,将较小的日期放在第二位。

func setupProfileImageView() {
    NSLayoutConstraint.activate([
    profileImageView.centerXAnchor.constraint(equalTo: view.centerXAnchor),
    profileImageView.bottomAnchor.constraint(equalTo: loginRegisterSegmetedControl.topAnchor, constant: -10),
    profileImageView.topAnchor.constraint(equalTo: view.topAnchor, constant: 20),
    profileImageView.widthAnchor.constraint(equalTo: profileImageView.heightAnchor, multiplier: 1.0)])

}

答案 2 :(得分:1)

尝试以下WHERE子句:

WHERE STR_TO_DATE(dates, '%d-%m-%Y %H:%i:%s') BETWEEN DATE_ADD(CURDATE(), INTERVAL -2 DAY) AND CURDATE()

答案 3 :(得分:0)

修复您的数据!您的查询无效,因为“日期”值存储为text / varchar。这很容易解决:

update post_feed
    set dates = str_to_date(date, '%Y-%m-%d %H:%i:%s')

alter table post_feed
    modify column datetime;

Voila!您的查询现在可以使用。