我在我的数据库中有三个表,我想从我的3个不同的数据库表中挑选过去三天的数据,我还想显示如果数据是相同的,那么它将显示结果,否则在codeigniter中显示空行。
我的所有这些表看起来都像这样的==>
id temp hum rain time
1 16 62 NR 2018-01-05 11:00:23
2 17 62 NR 2018-01-06 11:00:22
3 17 61 NR 2018-01-07 11:00:22
4 16 60 NR 2018-01-08 11:00:23发布于 2018-01-10 05:32:35
您可以找到MySQL日期和时间函数here的列表。这个问题的有趣之处是DATEDIFF(),它返回两个日期之间的差值(以天为单位)。
如果您到目前为止已经显示了您的SQL语句,那么这将是很有帮助的,但我将猜测它是这样的:
SELECT * from my_table要只选择日期在特定范围内的行,可以使用WHERE。在这种情况下,我们只需要从现在开始时间少于三天的行:
SELECT * from my_table WHERE DATEDIFF(NOW(), my_table.time) < 3您可能需要进行一些实验才能准确地获得您想要的结果,这取决于您希望如何四舍五入。
如果你想在三天到第二天内得到结果,你可以使用相同的想法,但要有时间戳:
SELECT * from my_table WHERE (CURRENT_TIMESTAMP() - 60*60*24*3) < UNIX_TIMESTAMP(my_table.time)60*60*24*3是三天内的秒数。
https://stackoverflow.com/questions/48176737
复制相似问题