如何将Firebird数据库时间戳与PHP time()值进行比较?

如何将Firebird数据库时间戳与PHP time()值进行比较?,php,timestamp,firebird,Php,Timestamp,Firebird,我的数据库有一个TIMESTAMP类型的数据字段。这叫“我的时间”。我从php的time()函数中得到一个数字。e、 g: print time(); 然后我查询数据库: SELECT * FROM mytable where mytime > 1369157557 它抱怨说: conversion error from string "1369157557" 我猜您无法将PHP时间戳与Firebird时间戳进行比较。为什么不呢?我该如何解决这个问题呢?您可以使用UNIX\u时间戳函

我的数据库有一个TIMESTAMP类型的数据字段。这叫“我的时间”。我从php的time()函数中得到一个数字。e、 g:

print time();
然后我查询数据库:

SELECT * FROM mytable where mytime > 1369157557
它抱怨说:

conversion error from string "1369157557"

我猜您无法将PHP时间戳与Firebird时间戳进行比较。为什么不呢?我该如何解决这个问题呢?

您可以使用UNIX\u时间戳函数。请注意,尽管php和mysql可能不一致,但它们在几秒钟内和时区内都是如此


有两个选项:在比较之前将unix时间戳转换为Firebird时间戳。或者执行以下内容中所述的操作:

或者在您的查询中:

SELECT * 
FROM mytable 
where DATEDIFF(second, timestamp '1/1/1970 00:00:00', mytime) > 1369157557

请记住,存储在数据库中的时间可能不是UTC格式,在这种情况下,还需要考虑UTC的偏移量。

可能使用引号-从mytable中选择*,其中mytime>'1369157557'问题是关于Firebird,而不是MySQL。
select DATEDIFF(second, timestamp '1/1/1970 00:00:00', current_timestamp)
from rdb$database
SELECT * 
FROM mytable 
where DATEDIFF(second, timestamp '1/1/1970 00:00:00', mytime) > 1369157557