在MySQL中检查时间戳是否来自今天

在MySQL中检查时间戳是否来自今天,mysql,database,automation,Mysql,Database,Automation,我有一个数据库和几个表。这些表中的每个表都有一个列“created”,其中包含在数据库中创建特定行的时间戳 现在,我想创建一个MySQL脚本,每周检查一次是否有数据进入这些表。所以,应该每天都有数据。如何创建一个MySQL脚本,允许我对数据库中的所有表执行此操作 注意:记住,我想用一个脚本对数据库中的所有表执行此操作。这是我想知道的主要事情。 select * from table where created between subdate(current_date, interval 7 da

我有一个数据库和几个表。这些表中的每个表都有一个列“created”,其中包含在数据库中创建特定行的时间戳

现在,我想创建一个MySQL脚本,每周检查一次是否有数据进入这些表。所以,应该每天都有数据。如何创建一个MySQL脚本,允许我对数据库中的所有表执行此操作

注意:记住,我想用一个脚本对数据库中的所有表执行此操作。这是我想知道的主要事情。

select * from table
where created between subdate(current_date, interval 7 day) and current_date;
选择datetimes up to
current_date
包括“今天”(即“前一个午夜”)开始之前的所有内容


选择datetimes up to
current_date
包括“今天”(即“前一个午夜”)开始之前的所有内容。

我对名为
call
的表使用这种方法,表中的时间戳类型列名为
systemdate

SELECT * FROM `call` WHERE DATE(`systemdate`) = DATE(NOW());
获取datetime或timestamp字段的datepart

抱歉,刚刚注意到您想检查前一周的每一天是否至少有一个条目

您可以使用此查询单独检查上一天:

昨天:

SELECT * FROM `call` WHERE DATE(`systemdate`) = DATE(NOW()) - 1;
SELECT * FROM `call` WHERE DATE(`systemdate`) = DATE(NOW()) - 2;
昨天之前:

SELECT * FROM `call` WHERE DATE(`systemdate`) = DATE(NOW()) - 1;
SELECT * FROM `call` WHERE DATE(`systemdate`) = DATE(NOW()) - 2;
或者您可以一次查看整个星期:

SELECT * FROM `call` WHERE DATE(`systemdate`) > DATE_SUB(CURDATE(), INTERVAL 7 DAY)  GROUP BY DATE(`systemdate`);

这将为每天返回一个结果,因此,如果您有7个结果,您将知道每天至少有一个条目。

我将此方法用于名为
call
的表,其中一列时间戳类型为
systemdate

SELECT * FROM `call` WHERE DATE(`systemdate`) = DATE(NOW());
获取datetime或timestamp字段的datepart

抱歉,刚刚注意到您想检查前一周的每一天是否至少有一个条目

您可以使用此查询单独检查上一天:

昨天:

SELECT * FROM `call` WHERE DATE(`systemdate`) = DATE(NOW()) - 1;
SELECT * FROM `call` WHERE DATE(`systemdate`) = DATE(NOW()) - 2;
昨天之前:

SELECT * FROM `call` WHERE DATE(`systemdate`) = DATE(NOW()) - 1;
SELECT * FROM `call` WHERE DATE(`systemdate`) = DATE(NOW()) - 2;
或者您可以一次查看整个星期:

SELECT * FROM `call` WHERE DATE(`systemdate`) > DATE_SUB(CURDATE(), INTERVAL 7 DAY)  GROUP BY DATE(`systemdate`);

这将为每天返回一个结果,因此如果您有7个结果,您将知道每天至少有一个条目。

谢谢您的回答。我还想检查所有的桌子。有没有一种方法可以做到这一点,而不必为所有表创建其中一个,因为所有表都有时间戳字段?如果知道表的名称,可以使用UNION。但是,如果使用union,您如何知道每个表是否都有一个条目(即,可能只更新了其中一个条目)?最好是使用访问mysql的编程语言执行此操作,执行SHOW TABLES mysql查询,并为上面列出的每个表运行脚本。谢谢您的回答。我还想检查所有的桌子。有没有一种方法可以做到这一点,而不必为所有表创建其中一个,因为所有表都有时间戳字段?如果知道表的名称,可以使用UNION。但是,如果使用union,您如何知道每个表是否都有一个条目(即,可能只更新了其中一个条目)?最好是使用访问mysql所用的编程语言执行此操作,执行SHOW TABLES mysql查询,并对上面列出的每个表运行脚本。如果表的名称未知,我不知道有什么解决方案可以同时从所有表中进行选择。在这个问题上,OP找到了一个解决方案,但它依赖于他使用的编程语言。我不知道有什么解决方案可以同时从所有表中选择,如果它们的名称未知。在这个问题上,OP找到了一个解决方案,但它依赖于他使用的编程语言。而不是MySQL脚本本身。