MySQL查询选择过去某一天?
我有一个joomla网站,我想做一个查询,它可以每天运行一个cronjob。它将查找任何30天以前的文章,并在特定日期删除这些文章 我可以这样做一个简单的查询:MySQL查询选择过去某一天?,mysql,sql,joomla,Mysql,Sql,Joomla,我有一个joomla网站,我想做一个查询,它可以每天运行一个cronjob。它将查找任何30天以前的文章,并在特定日期删除这些文章 我可以这样做一个简单的查询: SELECT * FROM `ibps6_content` WHERE created > '2013-10-16' AND created < '2013-10-16' 从“ibps6”内容中选择*` 创建地点>'2013-10-16'和创建地点
SELECT * FROM `ibps6_content`
WHERE created > '2013-10-16' AND created < '2013-10-16'
从“ibps6”内容中选择*`
创建地点>'2013-10-16'和创建地点<'2013-10-16'
但是我不知道如何让它指定最后30天,而不是硬编码日期。哪个rdbms?
在oracle中,您可以使用基于表示当前日期/时间的sysdate的select
例如:
select*from ibps6\u content在T-SQL中的sysdate-30和sysdate之间创建,您可以使用以下内容:
SELECT
*
FROM
ibps6_content
WHERE
created BETWEEN DATEADD(DAY, -30, GETDATE()) AND GETDATE()
请注意,这将为您提供在运行文章的特定时间之前编写的文章。要删除时间并仅使用日期,您可以使用:
DECLARE @CurDate DATETIME;
SET @CurDate = DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()));
SELECT
*
FROM
ibps6_content
WHERE
created BETWEEN DATEADD(DAY, -30, @CurDate) AND @CurDate
您需要mysql函数
请尝试将查询设置为:
DELETE FROM `ibps6_content` WHERE created > DATE_FORMAT(NOW() - INTERVAL 1 MONTH, '%Y-%m-%d');
如果创建的是表中的日期数据类型,希望这有帮助
DELETE FROM ibps6_content WHERE created = CURRENT_DATE -INTERVAL 30 DAY
如果是datetime use DATE(created)您正在使用哪个数据库管理系统?博士后?甲骨文?这可以正常工作,但会删除过去30天内的所有文章。如何删除我在30天前创建的文章,仅此特定日期?您只需将
替换为=
。如果可以使用日期数据类型,请不要使用dateformat。