Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysql时间戳选择旧记录_Php_Mysql - Fatal编程技术网

Php mysql时间戳选择旧记录

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()) 有人能告诉我上面我做错了什么吗 感谢您的帮助。在示例查询中,您使用的是文本而

我有一列保存记录的时间戳,我想从数据库中删除X天以前的记录,但我不想删除默认值为0000-00-00:00:00的记录

我尝试了这个查询来首先选择记录,但是它选择了几乎所有的记录以及默认值的记录

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先选择所有记录,所以是的,他们也在展示。