php获取当前时间与数据库作比对,PHP-当前日期与数据库中存储的日期之间的差异不起作用...

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

我的表包含以下列:

userid(int)

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

我已经使用以下查询

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

它不起作用.我也想知道,是否有任何选项可以将sql中的GETDATE()结果转换为秒,就像php中的strtotime()一样,因为我使用php Date()获取当前日期,并使用strtotime将其转换为秒().

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

SELECT * FROM PRTL_UsrHashKeys where

DATEDIFF(HOUR,timestamp, DATEDIFF(second, '1970-01-01', GETDATE()))>72

但是它显示的是在需要条件的上下文中指定的非布尔类型的表达式,在’)’附近.

解决方法:

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

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

您可以使用其他时间戳记源(例如某些PHP函数)检查结果.反之则有点困难.

为什么在SQL Server中使用unix时间戳?它对此没有支持.功能DATEDIFF,DATEADD等仅适用于实际日期,不适用于Unix时间戳秒.

标签:datetime,php,sql-server

来源: https://codeday.me/bug/20191120/2044110.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值