查找from(date)_field在user_input_date和from(date)_field之间的行?

时间:2018-09-26 12:57:21

标签: php mysql sql database

Table structure
id      from(date)_field      to(date)_field      field3       field4
1         date1                    date2         something     something
2         date3                    date4         something     something
3         date5                    date6         something     something
.           .                        .               .            .
.           .                        .               .            .

我想找出from(date)_field在user_input_date和from(date)_field之间的前1行。

2 个答案:

答案 0 :(得分:0)

您可以这样做:

select t.*
from t
order by abs(datediff(fromdate, @yourdate))
limit 1;

通常,您不希望最近的日期。您可能希望在日期位于“到”和“从”日期之间的行。但是,您明确要求最接近。

答案 1 :(得分:-1)

使用datediff并找到最小值。

SELECT DATEDIFF(second, fromdate, Userdate) AS DateDiff;
SELECT DATEDIFF(second, Todate, Userdate) AS DateDiff1;

比较DateDiffDateDiff1,它们的最低值将是最接近的