Select 时间戳经过一定时间后的记录 MYSQL/PHP
Select a record when the timestamp has passed by a certain amount of time MYSQL/PHP
我正在尝试 select 少于 6 小时的会话,如下所示:
"SELECT * FROM sessions WHERE members=1 AND ipRCreator != '$usn' AND tStamp < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 6 HOURS";
问题是查询条件始终为假,即使记录实际上具有几秒前的时间戳,也永远无法找到会话。
显然我非常确定问题出在以下情况:
tStamp < DATE_SUB (CURRENT_TIMESTAMP, INTERVAL 6 HOURS)
我像这样在 table 中插入数据记录:
$timestamp = date("Y-m-d H:i:s");
$mysqli->query("INSERT INTO sessions (sessionId, members, ipRCreator, tStamp) VALUES('$sId', 1, '$usn', '$timestamp');") ;
我认为问题出在日期的格式上,但我不这么认为,因为插入工作正常并且日期已正确插入到数据库中。
这是table的sql结构:
`sessionId` text NOT NULL,
`members` int NOT NULL,
`ipRCreator` text NOT NULL,
`gender` text CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL,
`age` int NOT NULL,
`tStamp` timestamp NOT NULL,
`id` int NOT NULL
问题出在哪里?为什么条件永远不成立?
示例记录:
所以在这种情况下,我正在尝试获取此记录,因为我显示的查询的时间戳不到 6 小时;问题是 return 查询为空,就好像没有时间戳小于 6 小时的记录(即使它更早也不起作用)
为了解决这个问题,我使用了这个查询:
SELECT * FROM sessions WHERE members=1 AND ipRCreator != '$usn' AND TIMEDIFF(CURRENT_TIMESTAMP, tStamp) < '06:00:00'
我正在尝试 select 少于 6 小时的会话,如下所示:
"SELECT * FROM sessions WHERE members=1 AND ipRCreator != '$usn' AND tStamp < DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 6 HOURS";
问题是查询条件始终为假,即使记录实际上具有几秒前的时间戳,也永远无法找到会话。
显然我非常确定问题出在以下情况:
tStamp < DATE_SUB (CURRENT_TIMESTAMP, INTERVAL 6 HOURS)
我像这样在 table 中插入数据记录:
$timestamp = date("Y-m-d H:i:s");
$mysqli->query("INSERT INTO sessions (sessionId, members, ipRCreator, tStamp) VALUES('$sId', 1, '$usn', '$timestamp');") ;
我认为问题出在日期的格式上,但我不这么认为,因为插入工作正常并且日期已正确插入到数据库中。
这是table的sql结构:
`sessionId` text NOT NULL,
`members` int NOT NULL,
`ipRCreator` text NOT NULL,
`gender` text CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL,
`age` int NOT NULL,
`tStamp` timestamp NOT NULL,
`id` int NOT NULL
问题出在哪里?为什么条件永远不成立?
示例记录:
所以在这种情况下,我正在尝试获取此记录,因为我显示的查询的时间戳不到 6 小时;问题是 return 查询为空,就好像没有时间戳小于 6 小时的记录(即使它更早也不起作用)
为了解决这个问题,我使用了这个查询:
SELECT * FROM sessions WHERE members=1 AND ipRCreator != '$usn' AND TIMEDIFF(CURRENT_TIMESTAMP, tStamp) < '06:00:00'