如何在SQL中选择最近的行日期



我需要这个SQL查询的帮助。这是我的桌子:

| id_list   | name      | date_created          | date_updated        |
|-----------|-----------|-----------------------|---------------------|
| 1         | Laundry   | 2020-10-14 12:29:14   | 2020-10-15 08:04:10 |
| 2         | Food      | 2020-10-14 12:38:43   | 2020-10-15 10:45:03 |

如何选择最接近date_updated的行?输出必须是这样的:

| id_list   | name      | date_created          | date_updated        |
|-----------|-----------|-----------------------|---------------------|
| 2         | Food      | 2020-10-14 12:38:43   | 2020-10-15 10:45:03 |

如果您只想要;最近的";到当前时间只需使用最大值。这将在平局的情况下返回多行。

SELECT *
FROM A_TABLE
WHERE date_updated = 
( SELECT MAX(date_updated)
FROM A_TABLE
)

如果您只有一个最新的行,那么order bylimit就足够了:

select t.*
from mytable t
order by date_updated desc
limit 1

如果您想要最接近当前日期/时间的行,无论是在过去还是将来,那么:

select t.*
from mytable t
order by abs(julianday() - julianday(date_updated))
limit 1

最新更新