mysql - 如何在 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 个月的记录,如下图所示:
解决方案
如果您指的是从现在开始的最后六个月,只需使用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());
推荐阅读
- reactjs - rectjs:材料 ui:TextField:如果类型和最小值无效则显示错误
- reactjs - React rest-hooks 如何进行身份验证
- apache-kafka - KSQL 表中的重复键
- python - 如何使日期时间显示为整数(秒)___python
- python - 脚本将因 file.read() 而停止
- c++ - 命名空间中函数特化的未定义引用
- google-apps-script - Google 表格 - 根据背景颜色添加特定值
- kotlin - 我的压缩图像没有尺寸 android
- javascript - Javascript:为博客文章创建阅读更多/阅读更少功能
- python - Python 标准:返回共享基类的多个返回类型的类型提示