sql - SQL中如何拉取过去两年的数据,而不是当月的数据
问题描述
我正在尝试从过去的一个月中提取过去两年的数据(不考虑当前月份)。因此,它将提取从 2021 年 9 月 30 日开始的所有 2 年数据。我尝试了以下方法,但 2020 年 9 月之后的几个月被删除:
WHERE YEAR(ACCDAT_0) >= (YEAR(GETDATE()) -2) AND MONTH(ACCDAT_0) < MONTH(dateadd(dd, -1, GetDate()))
解决方案
DECLARE @d date = GETDATE();
SET @d = DATEFROMPARTS(YEAR(@d), MONTH(@d), 1);
SELECT ... WHERE ACCDAT_0 >= DATEADD(YEAR, -2, @d)
AND ACCDAT_0 < @d;
- 这里有几篇有用的日期文章,包括为什么你想要范围查询而不是像这样的东西
YEAR(column)
:负责任地约会
推荐阅读
- python - 获取 multiprocess.Process 的整个标准输出并在当前控制台中实时显示
- python-3.x - Python ldap3基于变量打印条目
- jquery - jQuery on 单击元素内的所有内容
- r - 迭代导入excel文件并在R中按文件名平均匹配值
- javascript - preg_match 不工作的 php 和 java 脚本
- python - 从字符串列表中删除空格变化的 Python 最佳实践
- mysql - 在 phpMyAdmin 上保存数据库 - mySQL
- pandas - 在 read_csv 中使用 dtype 对象会引发 UnboundLocalError
- tensorflow - 记录消息分类/分组并为每个组查找人类可读的模式
- google-chrome - 如何使用 CLI 在 Chromebox 上禁用有问题的“Chrome 媒体路由器”(Chromecast) 扩展?