我正在尝试创建一个查询,根据上次向海报发送数据的时间限制插入表格。
例如,如果您将数据发布到表中,那么您将被锁定在系统之外另外10个小时。这是我到目前为止所提出的。但我对数据的实际结果无处可寻。有什么帮助吗?
SELECT DATE( `date` )
FROM tablename
WHERE DATE( CURDATE( ) ) < CURDATE( ) - INTERVAL 1002
DAY
LIMIT 0 , 30
答案 0 :(得分:1)
这将返回过去10小时内的一个帖子,如果它存在:
SELECT *
FROM tablename
WHERE `date` >= NOW() - INTERVAL 10 HOUR
LIMIT 1
我假设date
被声明为DATETIME
,因为实际的DATE
不包含时间部分,因此只有一天准确。
如果date
是整数UNIX时间戳,请使用:
SELECT *
FROM tablename
WHERE `date` >= UNIX_TIMESTAMP(NOW() - INTERVAL 10 HOUR)
LIMIT 1
答案 1 :(得分:0)
有很多方法可以做到这一点。也许如果你有一个用户设置表,你可以简单地添加一个“last_insert”字段,并将时间戳存储为一个整数值 - 这将是一个超级简单的方法 - 你可以检查当前的时间戳与user_settings.last_insert和瞧! 我想你也可以使用日期时间。无论什么漂浮在船上。
答案 2 :(得分:0)
首先,您需要DATETIME
列,而不是DATE
列。假设tablename.date
是DATETIME
列,那么现在前10小时CURRENT_TIMESTAMP - INTERVAL 10 HOUR
。
答案 3 :(得分:0)
首先在表中创建一个Time(TIMESTAMP DEFAULT CURRENT_TIMESTAMP)列。它会自动设置为行插入的当前日期
然后检查:
SELECT COUNT(*) FROM Table WHERE Time > NOW() - INTERVAL 10 HOUR
如果是1或更多 - 阻止
您必须将最后一个帖子的时间与当前时间进行比较,而不是将当前时间与当前时间进行比较:|