提问者:小点点

如何通过create_time选择数据库中最早的表?


我有一个mysql数据库,其中有在不同时间创建的多个表,我想通过“create_time”查找数据库中最早的表。 但是我还需要将“create_time”转换为unix_timestamp。 我已经研究了一些关于stackoverflow的其他问题,但它们只描述了如何获取日期。 我需要根据数据库中最旧的表的完整时间戳或unix时间戳来查找它。

到目前为止,我已经尝试了这两个查询,但都没有返回最早的表。

sql = "SELECT MAX(create_time) create_time FROM information_schema.tables WHERE table_schema = 'notes' ORDER BY UNIX_TIMESTAMP(create_time) DESC LIMIT 1";

$sql = "SELECT MAX(create_time) FROM information_schema.tables WHERE table_schema = 'notes' GROUP BY TABLE_SCHEMA ORDER BY UNIX_TIMESTAMP(create_time) DESC LIMIT 1";

另外,作为一个额外的信息,数据库不会在ASC或DESC中自动将表从最早到最新按顺序排列。 因此尝试使用其中任何一个进行排序都不会找到最早的表。 它只查找它找到的第一个最早的表,而不查找DB中实际最早的表。


共1个答案

匿名用户

create_time选择数据库中最早的表

我想你想:

SELECT t.*, UNIX_TIMESTAMP(create_time) create_timestamp
FROM information_schema.tables t
WHERE table_schema = 'notes' 
ORDER BY create_time
LIMIT 1

这将为您提供由create_time定义的information_schema.tables中最早的记录,以及包含相应unix时间戳的附加列。