我是Noob,完成了一个具有简单MySQL数据库(包含评论和日期)的网站。我希望能够按日期删除评论。日期字段信息是字段=日期,类型=时间戳,空=否,默认= Current_Timestamp和Extra =更新时的CURRENT TIMESTAMP。出于显示目的,这非常有用,因为该页面最终显示为Review 1-June 1,Review 2-June 2,Review 3-June 7(日期在DB中保存为2019-06-07 03:16:18)。因此,我决定在终端中删除以下行,摆脱最近的评论。令我惊讶的是,它删除了我的整个数据库。是因为额外的列。我能理解的简单答案胜于我无法理解的聪明答案。我已经读了一堆页面(这是我获得语法的方式)和这里的几篇文章,但仍然不知道正确的语法或为什么会出现意外的行为。
DELETE FROM Posts where Date > 2019-06-06
答案 0 :(得分:1)
您是否可以尝试将日期括入“”中,例如“ 2019-06-06”。我也相信您应该使用时间戳格式。在DB2中,它是YYYY-MM-DD HH:MM:SS.uuuuuu,但是在MSSQL中,它是YYYY-MM-DD HH:MM:SS.uuuu。不确定mySql是什么,但是可以尝试使用'2019-06-06 00:00:00.000'或'2019-06-06 00:00:00.000000'
现在,如果可行,并且由于这是时间戳,请尝试将where子句更改为
“ 2019-06-06 00:00:00.000000”和“ 2019-06-06 00:00:00.000000”之间的日期+间隔1天。点是1天是一个时间范围。
答案 1 :(得分:0)
DELETE FROM Posts where Date > "2019-06-06"
以上命令将删除2019-06-06
之后的所有帖子
答案 2 :(得分:0)
不试图变得聪明,但是我会考虑通过自动增量ID而不是日期来删除最后一行。使用>删除会给您带来麻烦。
也许像
DELETE FROM table ORDER BY id DESC LIMIT 1
答案 3 :(得分:0)
我的简单表格(“帖子”)基本上包含评论和日期。为了在2019年5月20日至2019年6月1日之间安全删除条目(即不影响20日或1日的评论),我在MySQL中执行以下操作:
1)检查以确保我输入正确: SELECT * FROM Posts WHERE Date <'2019-06-01 00:00:00.000000'AND Date> 2019-05-21 00:00:00 000000'; (这将返回21日午夜中风(因此20日之后)的所有条目)
2)从帖子中删除日期>'2019-05-21 00:00:00.000000 AND DATE <'2019-06-01 00:00:00 000000';