0

所以显然我在尝试从我的数据库中选择时间时偶然发现了一个编码错误。

SELECT * FROM `videos` WHERE `added_time` > AddTime( CurTime(), '14400 hour' )

是代码,我正在尝试使用“added_time”格式选择 10 天(14400 小时)前发布的所有视频,因为它适用于我之前的编码,但在这个编码中它有效。

下面显示的是图像的链接,显示了我的视频数据库结构是如何显示的。

http://i.imm.io/NURT.png

编辑:以前我在检索和删除 10 天前发布的公告时遇到了这个问题,并且此代码有效,但是在尝试检索视频时此代码显然不起作用:/ 我不知道为什么,他们正在使用相同的格式。

见:http: //i.imm.io/NUSW.png

4

2 回答 2

4

获取 的实际日期added_time,然后获取 10 天前的日期NOW()

WHERE DATE(added_time) = DATE_SUB(NOW(),INTERVAL 10 DAY)

<=如果要删除 10 天或更长时间的任何内容,可以将其更改为。

--- 现在我们知道其中一个是字符串而不是日期字段。转换它。

// 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)

http://sqlfiddle.com/#!2/63eef/14

于 2012-12-04T04:47:47.430 回答
0

尝试将全时格式提供为:

  > SUBTIME( CurTime(), '14400:00:00.000000' )

或者(减去 10 天如下:),

 > SUBTIME( CurTime(), '10 00:00:00.000000')

请参阅此处的文档-> SUBTIME()

于 2012-12-04T04:51:44.483 回答