我正在尝试创建查询以获取最近两天的记录。在我的表格中有一个名为日期的字段。值如下:
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条记录。日期格式似乎有问题。
答案 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
答案 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!您的查询现在可以使用。