php - 当前日期和存储在数据库中的日期之间的差异不起作用

标签 php sql-server datetime

我有一个表,其中包含名为 timestamp 的列,该列以秒为单位存储记录的创建日期时间(使用 strtotime() 从 Date() 转换日期时间值)。我需要获取创建日期大于 72 小时的记录才能删除这些记录。

我的表有以下列:

userid(int)
timestamp(storing created dates in seconds)eg:'1427886372'

我使用了以下查询

SELECT DATEDIFF(HOUR,timestamp,'current date in seconds')>72 FROM table_name.

它不工作。我还想知道,是否有任何选项可以将 GETDATE() 的结果转换为 sql 中的秒数,就像 php 中的 strtotime() 一样,因为我得到了当前日期使用 php Date() 并使用 strtotime() 将其转换为秒数。

**编辑:**根据 kba 的回答,我已经像这样修改了查询。

SELECT * FROM PRTL_UsrHashKeys where 
DATEDIFF(HOUR,timestamp, DATEDIFF(second, '1970-01-01', GETDATE()))>72

但它显示 在预期条件的上下文中指定的非 bool 类型的表达式,靠近 ')'。

最佳答案

您可以通过简单的语句将 GETDATE() 的输出转换为 unix 时间戳:

SELECT GETDATE(), DATEDIFF(second, '1970-01-01', GETDATE())

您可以使用另一个时间戳来源(例如某些 PHP 函数)检查结果。反过来有点难。

UNIX_TIMESTAMP in SQL Server

How can I convert bigint (UNIX timestamp) to datetime in SQL Server?

为什么在 SQL Server 中使用 unix 时间戳? 它不支持那个。函数 DATEDIFF、DATEADD 等仅适用于真实日期,不适用于 unix 时间戳秒。

关于php - 当前日期和存储在数据库中的日期之间的差异不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29745908/

相关文章:

php - isconnected() 返回 true 尽管 mysql 服务器在 zend 框架中消失了

php - 删除关联数组中的键不起作用

基于多个子表行的 SQL 更新父表字段,每个子行都有长度要求

sql - 删除未命名的约束

mysql - 如何取时间列的平均值并将输出显示为时间

c# - DateTime.Now.ToString ("M/d/yyyy h:mm tt") 在 Windows 7 中显示相反

javascript - Wordpress Ajax - 始终返回 0

php - 仅在 MySQL 列中自动标记日期

sql-server - 代码第一个种子方法出错 - 无法更新时间戳列

python - Pandas Dataframe 将字符串转换为没有时间的日期