gpt4 book ai didi

MySQL 如何选择今天前 7 天和过去 1 小时的日期字段

转载 作者:行者123 更新时间:2023-11-29 04:18:21 25 4
gpt4 key购买 nike

我有一个查询选择从当前时间过去 1 小时创建的记录。

select ts from <table_name> where ts >= DATE_SUB(NOW(), interval 1 hour);

我还可以使用 7 天前选择日期

select count(*) from <table_name> where ts >= DATE_SUB(NOW(), interval 7 day) ;

如何使用这两个日期功能来获取从今天算起 7 天之前和从当前时间算起过去 1 小时之前的记录。

例如,如果当前时间是 2015-11-06 10:03:00 那么如何获取 2015-10-30 09:03:00 到 2015-10-30 10:03 之间的时间数据: 00

我试过这样的东西,但它给出了语法错误:

select ts from <table_name> where ts >= DATE_SUB(DATE(NOW()), INTERVAL 7 DAY), interval 1 hour)
select ts from <table_name> where ts >= DATE_SUB(NOW(), INTERVAL 7 DAY), interval 1 hour)

最佳答案

您的示例存在语法错误(右括号太多 ) )。如果你想使用 DATE_SUB() ,你需要使用它两次。要获取一次与另一次之间的条目,请使用 WHERE ... BETWEEN ... AND ...

你可以使用这个:

SELECT ts
FROM iv_split_skill_metrics
WHERE ts BETWEEN
DATE_SUB(
DATE_SUB(DATE(NOW()), INTERVAL 7 DAY),
interval 1 hour)
AND
DATE_SUB(DATE(NOW()), INTERVAL 7 DAY)

或者,更好的是,跳过 DATE_SUB()完全做减法,就像这样:

SELECT ts
FROM iv_split_skill_metrics
WHERE ts BETWEEN NOW() - INTERVAL 7 DAY - INTERVAL 1 HOUR
AND NOW() - INTERVAL 7 DAY

编辑:出于某种原因,您在我发布此问题后编辑了您的问题并替换了 iv_split_skill_metrics<table_name>在你的问题中,但上面的例子无论如何都会起作用。当然,只需使用正确的表名和列名即可!

编辑 2: 我现在看到您想要 7 天加上 1 小时前和 7 天前之间的条目。我调整了我的答案以向您展示如何做到这一点。

关于MySQL 如何选择今天前 7 天和过去 1 小时的日期字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33570882/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com