-
sql年月查询多种方式_sql查询年份语句
- 网站名称:sql年月查询多种方式_sql查询年份语句
- 网站分类:技术文章
- 收录时间:2025-10-02 16:16
- 网站地址:
“sql年月查询多种方式_sql查询年份语句” 网站介绍
可以通过以下两种方法实现按年月查询,避免使用 AND 语句,同时确保性能优化:
方法1:使用 BETWEEN 替代 AND(推荐)
```sql
SELECT *
FROM 你的表
WHERE ISNULL(pe.cbdefine19, darrivedate)
BETWEEN '2025-07-01' AND '2025-07-31 23:59:59.997';
```
说明:
1. BETWEEN 本质是范围查询,但它是单个条件(非多个 AND 组合),符合要求。
2. 精确涵盖整个月份(包括时间部分的最大值)。
3. 如果字段有索引,性能最优(优于 CONVERT 等函数转换)。
---
方法2:使用 FORMAT 函数(简洁但性能较差)
```sql
SELECT *
FROM 你的表
WHERE FORMAT(ISNULL(pe.cbdefine19, darrivedate), 'yyyy-MM') = '2025-07';
```
说明:
1. FORMAT 直接提取年月,代码简洁。
2. 缺点:无法利用索引,大数据量时性能低。
---
最终建议:
优先推荐方法1(BETWEEN 范围查询):
- 符合“无 AND 语句”要求(BETWEEN 是独立运算符)
- 数据库可高效利用索引
- 逻辑清晰,准确覆盖整个月份
示例调整:
若需动态指定年月(如变量 @yearMonth):
```sql
DECLARE @startDate DATETIME = DATEFROMPARTS(LEFT(@yearMonth,4), RIGHT(@yearMonth,2), 1);
DECLARE @endDate DATETIME = DATEADD(ms, -3, DATEADD(MONTH, 1, @startDate));
SELECT *
FROM 你的表
WHERE ISNULL(pe.cbdefine19, darrivedate) BETWEEN @startDate AND @endDate;
更多相关网站
- SQL 语句大全_sql语句大全经典教程
- 查询表修改记录_查询表修改记录怎么删除
- 让这几条SQL来应对你的测试工作日常
- SQL语句大全,所有的SQL都在这里_sql语句大全基础
- 三个为什么,让我们一步到位搞清排查慢SQL常见方法
- MySQL 从入门到精通(六) SQL性能分析及索引使用规则
- SQL子查询入门:嵌套查询其实没那么难
- SQL高级:SQL 的常见问题-慢查询排查
- SQL慢查询优化实战:从诊断到架构升级的全链路解决方案
- 啥样的SQL算复杂?看这个电商订单多维度统计查询就懂了
- 如何使用子查询优化SQL表达式?_sql子查询怎么实现
- 一文讲懂SQL子查询_sql语言中,子查询是什么
- 7大类36小类SQL查询常见易错点,有谁踩坑了?
- 常见SQL子查询语法示例,覆盖15种场景实操!
- SQL BETWEEN:查询范围内的数据,就这么简单!
- 10类SQL查询语句语法结构模板,覆盖90%SQL查询语句应用场景
- 最近发表
- 标签列表
-
- mydisktest_v298 (35)
- sql 日期比较 (33)
- document.appendchild (35)
- 头像打包下载 (35)
- 梦幻诛仙表情包 (36)
- java面试宝典2019pdf (26)
- disk++ (30)
- 加密与解密第四版pdf (29)
- iteye (26)
- centos7.4下载 (32)
- intouch2014r2sp1永久授权 (33)
- jdk1.8.0_191下载 (27)
- axure9注册码 (30)
- 兔兔工程量计算软件下载 (27)
- ccproxy破解版 (31)
- aida64模板 (28)
- engine=innodb (33)
- shiro jwt (28)
- segoe ui是什么字体 (27)
- head first java电子版 (32)
- clickhouse中文文档 (28)
- jdk-8u181-linux-x64.tar.gz (32)
- 计算机网络自顶向下pdf (34)
- -dfile.encoding=utf-8 (33)
- jdk1.9下载 (32)