首页 > 解决方案 > 如何在 SQL 中获取前 6 个月的记录?

问题描述

我有一个问题要在 SQL 中选择前 6 个月的记录?任何人都可以检查我的代码我错了哪一部分?我正在使用 MySQL 查询浏览器。谢谢。

下面是我的编码:

SELECT id, title, contents, posted_date, action
FROM `announcement`
where posted_date >= Dateadd(Month, Datediff(Month, 0, DATEADD(m, -6, current_timestamp)), 0);

以下是我的数据库信息:

在此处输入图像描述

实际上我只想获取前 6 个月的记录,如下图所示:

在此处输入图像描述

标签: mysqlsqldate

解决方案


如果您指的是从现在开始的最后六个月,只需使用Now()and AddDate

SELECT id, title, contents, posted_date, action
FROM `announcement`
where posted_date >= AddDate(Now(), interval -6 MONTH);

那是你说你正在使用的MySQL。

除了反引号之外,您的代码看起来更像 T-SQL (MS SQL Server),但 ( DateDiff, )。DateAdd如果您使用的是 MS SQL Server,它将是DateAdd并且GetDate

SELECT id, title, contents, posted_date, action
FROM announcement
where DateAdd(MONTH, -6, GetDate());

推荐阅读