Php mysql时间戳选择旧记录
我有一列保存记录的时间戳,我想从数据库中删除X天以前的记录,但我不想删除默认值为0000-00-00:00:00的记录 我尝试了这个查询来首先选择记录,但是它选择了几乎所有的记录以及默认值的记录Php mysql时间戳选择旧记录,php,mysql,Php,Mysql,我有一列保存记录的时间戳,我想从数据库中删除X天以前的记录,但我不想删除默认值为0000-00-00:00:00的记录 我尝试了这个查询来首先选择记录,但是它选择了几乎所有的记录以及默认值的记录 SELECT * FROM `file` WHERE 'Accestime' != '0000-00-00 00:00:00' AND 'Accestime' < TIMESTAMPADD(DAY,-60,NOW()) 有人能告诉我上面我做错了什么吗 感谢您的帮助。在示例查询中,您使用的是文本而
SELECT * FROM `file` WHERE 'Accestime' != '0000-00-00 00:00:00' AND 'Accestime' < TIMESTAMPADD(DAY,-60,NOW())
有人能告诉我上面我做错了什么吗
感谢您的帮助。在示例查询中,您使用的是文本而不是列作为日期字段 要澄清的是,“Accestime”与“Accestime”不同。请注意,一个使用反勾号,另一个使用单引号,因此基本上您使用的是文字字符串并将其与日期数据进行比较。此外,我认为您的意思是选择不到60天前的日期,而不是超过60天。尝试类似以下内容:
SELECT * FROM `file` WHERE `Accestime` != '0000-00-00 00:00:00' AND `Accestime` < TIMESTAMPADD(DAY,-60,NOW())
在示例查询中,您将使用文字而不是列作为日期字段 要澄清的是,“Accestime”与“Accestime”不同。请注意,一个使用反勾号,另一个使用单引号,因此基本上您使用的是文字字符串并将其与日期数据进行比较。此外,我认为您的意思是选择不到60天前的日期,而不是超过60天。尝试类似以下内容:
SELECT * FROM `file` WHERE `Accestime` != '0000-00-00 00:00:00' AND `Accestime` < TIMESTAMPADD(DAY,-60,NOW())
为了避免混淆记号和单引号-停止使用记号!!! 在我的职业生涯中,我做了很多sql,我从来都不需要使用ticks。因此,我非常怀疑目前是否有任何sql server需要这些标记 您遇到了问题,因为您正在使用记号。如果是事实,为什么不使用双引号,并忽略可能出现错误的情况下,勾号和单引号 我知道这是没有必要的,但好习惯可以节省时间和头痛
DELETE * FROM file WHERE Accestime != "0000-00-00 00:00:00"
AND Accestime < TIMESTAMPADD(DAY,-60,NOW())
为了避免混淆记号和单引号-停止使用记号!!! 在我的职业生涯中,我做了很多sql,我从来都不需要使用ticks。因此,我非常怀疑目前是否有任何sql server需要这些标记 您遇到了问题,因为您正在使用记号。如果是事实,为什么不使用双引号,并忽略可能出现错误的情况下,勾号和单引号 我知道这是没有必要的,但好习惯可以节省时间和头痛
DELETE * FROM file WHERE Accestime != "0000-00-00 00:00:00"
AND Accestime < TIMESTAMPADD(DAY,-60,NOW())
因此,Accestime='0000-00-00 00:00:00'的记录在此查询中被删除?很抱歉,我只是使用SELECT先选择所有记录,因此也会显示它们。因此,Accestime='0000-00-00:00:00'的记录在此查询中被删除?很抱歉,我只是使用SELECT先选择所有记录,所以是的,他们也在展示。