显然,当我尝试从我的数据库中选择时间时,我偶然发现了编码错误。
SELECT * FROM `videos` WHERE `added_time` > AddTime( CurTime(), '14400 hour' )
是代码,我正在尝试使用“added_time”格式选择10天(14400小时)之前发布的所有视频,因为它适用于我之前的编码,但在这个版本中它可以正常工作。
下面显示的是图像链接,显示了我的视频数据库结构的显示方式。
编辑:以前我有这个问题用于检索和删除10天前发布的公告,这段代码有效,但是这段代码在尝试检索视频时显然无效:/我不知道为什么,他们'重新使用相同的格式。
答案 0 :(得分:4)
获取added_time
的实际日期,然后从NOW()
前10天获取日期。
WHERE DATE(added_time) = DATE_SUB(NOW(),INTERVAL 10 DAY)
如果您想删除10天或更长时间内的任何内容,可以将其更改为<=
。
---现在我们知道其中一个是字符串而不是日期字段。 Conver it。
// Change %Y-%m-%d to your date
STR_TO_DATE(added_date, '%Y-%m-%d')
经过一番聊天讨论和SQL Fiddlin后,我得到了答案,这对他有用。欢呼声。
SELECT *
FROM videos_shared
WHERE DATE_FORMAT(STR_TO_DATE(added_date, '%a %b %d, %Y, %H:%i'), '%Y-%m-%d')
<= DATE_SUB(NOW(), INTERVAL 10 DAY)
答案 1 :(得分:0)
尝试提供全时格式:
> SUBTIME( CurTime(), '14400:00:00.000000' )
或者替代(减去10天,如下:),
> SUBTIME( CurTime(), '10 00:00:00.000000')
请参阅此处的文档 - &gt; SUBTIME()