0

嗨,我正在尝试获取最近的日期,这是我的代码

 SELECT schedule_date  FROM  schedule_table WHERE schedule_date > '2012-06-07' and   event_id='23' ORDER BY schedule_date ASC
       LIMIT 1

这里实际的表 schedule_date 包含 2012-06-07 00:00:00 这样的。但我检查 '2012-06-07' 所以

我得到这样的输出,这2012-06-07 06:53:57意味着相同的日期来了,但我需要2012-06-08 04:53:57 我认为在这里我们需要使用 like 运算符检查这个条件

我如何在此查询中使用 like 运算符来获取 sql 中最接近的日期。感谢提前。

4

2 回答 2

2

查询:按日期排序,大于/等于2012-06-07,限1

返回的记录应该是您想要的行

注意:不要使用 LIKE 运算符。这里没有必要,因为它用于在给定字符串中搜索文本匹配项。这显然不是您的查询想要完成的。

于 2012-05-15T15:06:04.177 回答
1

您有一个将日期值与日期时间字段类型匹配的经典案例。您需要的是同一日期内最早的时间值。可能您的数据包含多行数据,数据在同一日期但时间值不同。您应该使用以下内容:

SELECT schedule_date  FROM  schedule_table WHERE date(schedule_date) >= '2012-06-07' and   event_id='23' ORDER BY schedule_date ASC
       LIMIT 1

date() 函数在此处的 MySQL 文档中进行了解释。

于 2012-05-15T15:24:58.473 回答