我的数据库中有表格,我想从我的3个不同的数据库表中选择最近三天的数据,我还想显示数据是否相同然后它会显示结果,否则会在codeigniter中显示空行。< / p>
我所有的桌子看起来像这样==&gt;
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
答案 0 :(得分:0)
您可以找到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是三天内的秒数。