SQL Server 当前日期及其未来三天的日期
当前日期及其未来三天的日期,并分别以 YYYY-MM-DD 和 yyyyMMdd 的格式展示
1、当前日期及其未来三天的日期,以 YYYY-MM-DD的格式展示
WITH CurrentDate AS (SELECT GETDATE() AS 当前日期
)
-- 使用 CONVERT 函数
SELECTCONVERT(VARCHAR(10), 当前日期, 121) AS 当前日期T,CONVERT(VARCHAR(10), DATEADD(dd, 1, 当前日期), 121) AS '日期T+1',CONVERT(VARCHAR(10), DATEADD(dd, 2, 当前日期), 121) AS '日期T+2',CONVERT(VARCHAR(10), DATEADD(dd, 3, 当前日期), 121) AS '日期T+3'
FROM CurrentDateUNION ALL-- 使用 FORMAT 函数
SELECTFORMAT(当前日期, 'yyyy-MM-dd') AS 当前日期T_FORMAT,FORMAT(DATEADD(dd, 1, 当前日期), 'yyyy-MM-dd') AS '日期T+1_FORMAT',FORMAT(DATEADD(dd, 2, 当前日期), 'yyyy-MM-dd') AS '日期T+2_FORMAT',FORMAT(DATEADD(dd, 3, 当前日期), 'yyyy-MM-dd') AS '日期T+3_FORMAT'
FROM CurrentDate;
解释
- CTE(Common Table Expression):
- 使用 WITH 子句创建一个公共表表达式(CTE),使得当前日期只计算一次。
- 这样可以避免多次调用 GETDATE() 函数,提高效率。
- 使用 CONVERT 函数:
- 使用 CONVERT 函数将日期格式化为 YYYY-MM-DD 的格式。
- CONVERT 函数的第一个参数是日期,第二个参数是字符串类型,第三个参数是样式代码 121。
- 使用 FORMAT 函数:
- 使用 FORMAT 函数将日期格式化为 YYYY-MM-DD 的格式。
- FORMAT 函数的第一个参数是日期,第二个参数是格式字符串 ‘yyyy-MM-dd’。
- UNION ALL:
- 使用 UNION ALL 将两种方法的结果合并在一起,以便在一个结果集中展示两种格式

2、当前日期及其未来三天的日期,以 YYYY/MM/DD 的格式展示
WITH CurrentDate AS (SELECT GETDATE() AS 当前日期
)
-- 使用 CONVERT 函数
SELECT-- 使用 CONCAT 拼接 YYYY/MM/DD 格式的日期CONCAT(CONVERT(VARCHAR(4), YEAR(当前日期)), -- 年份'/', RIGHT('0' + CONVERT(VARCHAR(2), MONTH(当前日期)), 2), -- 月份'/',RIGHT('0' + CONVERT(VARCHAR(2), DAY(当前日期)), 2) -- 日) AS 当前日期T_CONVERT,CONCAT(CONVERT(VARCHAR(4), YEAR(DATEADD(dd, 1, 当前日期))), -- 年份'/', RIGHT('0' + CONVERT(VARCHAR(2), MONTH(DATEADD(dd, 1, 当前日期))), 2), -- 月份'/',RIGHT('0' + CONVERT(VARCHAR(2), DAY(DATEADD(dd, 1, 当前日期))), 2) -- 日) AS '日期T+1_CONVERT',CONCAT(CONVERT(VARCHAR(4), YEAR(DATEADD(dd, 2, 当前日期))), -- 年份'/', RIGHT('0' + CONVERT(VARCHAR(2), MONTH(DATEADD(dd, 2, 当前日期))), 2), -- 月份'/',RIGHT('0' + CONVERT(VARCHAR(2), DAY(DATEADD(dd, 2, 当前日期))), 2) -- 日) AS '日期T+2_CONVERT',CONCAT(CONVERT(VARCHAR(4), YEAR(DATEADD(dd, 3, 当前日期))), -- 年份'/', RIGHT('0' + CONVERT(VARCHAR(2), MONTH(DATEADD(dd, 3, 当前日期))), 2), -- 月份'/',RIGHT('0' + CONVERT(VARCHAR(2), DAY(DATEADD(dd, 3, 当前日期))), 2) -- 日) AS '日期T+3_CONVERT'
FROM CurrentDateUNION ALL-- 使用 FORMAT 函数
SELECTFORMAT(当前日期, 'yyyy/MM/dd') AS 当前日期T_FORMAT,FORMAT(DATEADD(dd, 1, 当前日期), 'yyyy/MM/dd') AS '日期T+1_FORMAT',FORMAT(DATEADD(dd, 2, 当前日期), 'yyyy/MM/dd') AS '日期T+2_FORMAT',FORMAT(DATEADD(dd, 3, 当前日期), 'yyyy/MM/dd') AS '日期T+3_FORMAT'
FROM CurrentDate;
解释
- CTE(Common Table Expression):
- 使用 WITH 子句创建一个公共表表达式(CTE),使得当前日期只计算一次。
- 这样可以避免多次调用 GETDATE() 函数,提高效率。
- 使用 CONVERT 函数和 SQL 的内置函数来生成 YYYY/MM/DD 格式的日期
- 获取年、月、日:
- 使用 YEAR, MONTH, 和 DAY 函数分别提取年份、月份和日期部分。
- 格式化月份和日期:
- 使用 RIGHT 函数和字符串拼接来确保月份和日期为两位数字(即补零操作)。
- 拼接日期:
- 使用 CONCAT 函数将年、月、日按照 YYYY/MM/DD 的格式拼接起来。
- 获取年、月、日:
- 使用 FORMAT 函数:
- 使用 FORMAT 函数将日期格式化为 YYYY/MM/DD 的格式。
- FORMAT 函数的第一个参数是日期,第二个参数是格式字符串 ‘yyyy/MM/dd’。

3、当前日期及其未来三天的日期,以 YYYYMMDD 的格式展示
WITH CurrentDate AS (SELECT GETDATE() AS 当前日期
)
-- 使用 CONVERT 函数
SELECT-- 使用 CONCAT 拼接 YYYYMMDD 格式的日期CONVERT(VARCHAR(4), YEAR(当前日期)) + -- 年份RIGHT('0' + CONVERT(VARCHAR(2), MONTH(当前日期)), 2) + -- 月份RIGHT('0' + CONVERT(VARCHAR(2), DAY(当前日期)), 2) AS 当前日期T_CONVERT,CONVERT(VARCHAR(4), YEAR(DATEADD(dd, 1, 当前日期))) + -- 年份RIGHT('0' + CONVERT(VARCHAR(2), MONTH(DATEADD(dd, 1, 当前日期))), 2) + -- 月份RIGHT('0' + CONVERT(VARCHAR(2), DAY(DATEADD(dd, 1, 当前日期))), 2) AS '日期T+1_CONVERT',CONVERT(VARCHAR(4), YEAR(DATEADD(dd, 2, 当前日期))) + -- 年份RIGHT('0' + CONVERT(VARCHAR(2), MONTH(DATEADD(dd, 2, 当前日期))), 2) + -- 月份RIGHT('0' + CONVERT(VARCHAR(2), DAY(DATEADD(dd, 2, 当前日期))), 2) AS '日期T+2_CONVERT',CONVERT(VARCHAR(4), YEAR(DATEADD(dd, 3, 当前日期))) + -- 年份RIGHT('0' + CONVERT(VARCHAR(2), MONTH(DATEADD(dd, 3, 当前日期))), 2) + -- 月份RIGHT('0' + CONVERT(VARCHAR(2), DAY(DATEADD(dd, 3, 当前日期))), 2) AS '日期T+3_CONVERT'
FROM CurrentDateUNION ALL-- 使用 FORMAT 函数
SELECTFORMAT(当前日期, 'yyyyMMdd') AS 当前日期T_FORMAT,FORMAT(DATEADD(dd, 1, 当前日期), 'yyyyMMdd') AS '日期T+1_FORMAT',FORMAT(DATEADD(dd, 2, 当前日期), 'yyyyMMdd') AS '日期T+2_FORMAT',FORMAT(DATEADD(dd, 3, 当前日期), 'yyyyMMdd') AS '日期T+3_FORMAT'
FROM CurrentDate;

查询以当前时间为基准,往前往后的所有数据
4、今天的所有数据
SELECT *
FROM 表名
WHERE DateDiff(dd, datetime类型字段, GETDATE()) = 0;
解释
- 使用 DateDiff(dd, datetime类型字段, GETDATE()) = 0 来找到今天的数据。
5、昨天的所有数据
SELECT *
FROM 表名
WHERE DateDiff(dd, datetime类型字段, GETDATE()) = -1;
解释
- 使用 DateDiff(dd, datetime类型字段, GETDATE()) = -1 来找到昨天的数据。
6、7天内的所有数据
SELECT *
FROM 表名
WHERE DateDiff(dd, datetime类型字段, GETDATE()) >= 0 AND DateDiff(dd, datetime类型字段, GETDATE()) <= 7;
解释
- 使用 DateDiff(dd, datetime类型字段, GETDATE()) >= 0 AND DateDiff(dd, datetime类型字段, GETDATE()) <= 7 来找到包括今天在内的过去7天的数据。
7、30天内的所有数据
SELECT *
FROM 表名
WHERE DateDiff(dd, datetime类型字段, GETDATE()) >= 0 AND DateDiff(dd, datetime类型字段, GETDATE()) <= 30;
解释
- 使用 DateDiff(dd, datetime类型字段, GETDATE()) >= 0 AND DateDiff(dd, datetime类型字段, GETDATE()) <= 30 来找到包括今天在内的过去30天的数据。
8、本月的所有数据
SELECT *
FROM 表名
WHERE DateDiff(mm, datetime类型字段, GETDATE()) = 0;
解释
- 使用 DateDiff(mm, datetime类型字段, GETDATE()) = 0 来找到本月的数据。
- 注意,这将包括整个当前月份,而不是从今天开始向前推算一个月的时间。
9、本年的所有数据
SELECT *
FROM 表名
WHERE DateDiff(yy, datetime类型字段, GETDATE()) = 0;
解释
- 使用 DateDiff(yy, datetime类型字段, GETDATE()) = 0 来找到本年的数据。
- 这将包括整个当前年份,而不是从今天开始向前推算一年的时间
10、未来一天的所有数据
SELECT *
FROM 表名
WHERE datetime类型字段 BETWEEN DATEADD(dd, 1, GETDATE()) AND DATEADD(dd, 1, GETDATE());
解释
- 使用 DateDiff(dd, datetime类型字段, DATEADD(dd, 1, GETDATE()) AND DATEADD(dd, 1, GETDATE()) 来找到今天以后的未来一天的数据。
11、未来两天的所有数据
SELECT *
FROM 表名
WHERE datetime类型字段 BETWEEN DATEADD(dd, 1, GETDATE()) AND DATEADD(dd, 2, GETDATE());
解释
- 使用 DateDiff(dd, datetime类型字段, DATEADD(dd, 1, GETDATE()) AND DATEADD(dd, 2, GETDATE()) 来找到今天以后的未来两天的数据。
12、未来一周(七天)的所有数据
SELECT *
FROM 表名
WHERE datetime类型字段 BETWEEN DATEADD(dd, 1, GETDATE()) AND DATEADD(dd, 7, GETDATE());
解释
- 使用 DateDiff(dd, datetime类型字段, DATEADD(dd, 1, GETDATE()) AND DATEADD(dd, 7, GETDATE()) 来找到今天以后的未来两天的数据。
13、未来一个月(大约30天)的所有数据
SELECT *
FROM 表名
WHERE datetime类型字段 BETWEEN DATEADD(dd, 1, GETDATE()) AND DATEADD(dd, 30, GETDATE());
解释
- 使用 DateDiff(dd, datetime类型字段, DATEADD(dd, 1, GETDATE()) AND DATEADD(dd, 30, GETDATE()) 来找到今天以后的未来一个月的数据。
14、当前日期为基础,查询今天和未来三天的数据,
并确保日期时间字段格式为 ‘YYYY-MM-DD 00:00:00.000’,可以使用以下 SQL 语句:
SELECT *
FROM 表名
WHERE datetime类型字段 BETWEEN CONVERT(datetime, CONVERT(varchar(10), GETDATE(), 121) + ' 00:00:00.000', 121) AND CONVERT(datetime, CONVERT(varchar(10), DATEADD(day, 3, GETDATE()), 121) + ' 00:00:00.000', 121);
解释
- 获取当前日期时间:GETDATE() 返回当前的系统日期时间。
- 日期转换为字符串:CONVERT(varchar(10), GETDATE(), 121) 将当前日期转换为 ‘YYYY-MM-DD’ 格式的字符串。
- 拼接时间为零点:CONVERT(varchar(10), GETDATE(), 121) + ’ 00:00:00.000’ 拼接时间为零点,得到 ‘YYYY-MM-DD 00:00:00.000’ 形式的字符串。
- 字符串转回 datetime 类型:CONVERT(datetime, … + ’ 00:00:00.000’, 121) 将拼接后的字符串再次转换为 datetime 类型。
- 日期加法:DATEADD(day, 3, GETDATE()) 计算当前日期之后的三天。
- 日期范围比较:使用 BETWEEN 操作符来定义日期时间范围
相关文章:
SQL Server 当前日期及其未来三天的日期
当前日期及其未来三天的日期,并分别以 YYYY-MM-DD 和 yyyyMMdd 的格式展示 1、当前日期及其未来三天的日期,以 YYYY-MM-DD的格式展示 WITH CurrentDate AS (SELECT GETDATE() AS 当前日期 ) -- 使用 CONVERT 函数 SELECTCONVERT(VARCHAR(10), 当前日期,…...
QUIC(Quick UDP Internet Connections)与 RTMP(Real Time Messaging Protocol)
QUIC(Quick UDP Internet Connections)和 RTMP(Real Time Messaging Protocol)是两种不同的网络传输协议,它们在一些方面有不同的特点和应用场景。 QUIC 协议 特点 基于 UDP:QUIC 建立在 UDP 之上ÿ…...
双十一送你一份购物攻略,绿联NAS DXP2800评测
一年一度双十一,今年双十一来得特别早,所以最近已经看到不少人在讨论双十一买了啥,NAS的讨论度也挺高的。正好,是我比较懂的领域。作为一位资深的数码爱好者,同时也是绿联DH2600DXP2800双持用户,可以说我是…...
基于vue框架的的高校设备信息管理系统的设计与实现tx6d7(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
系统程序文件列表 项目功能:设备管理员,设备维护员,设备类别,设备,设备入库,设备分发,设备调拨,定期维护,维护任务,设备运行记录 开题报告内容 基于Vue框架的高校设备信息管理系统的设计与实现开题报告 一、项目背景及意义 随着高校教育事业的蓬勃发展ÿ…...
springboot3.x使用@NacosValue无法获取配置信息问题解决
一、问题描述 springboot从2.x升级到3.x后,nacos的依赖包需要改成Spring Cloud的依赖包才能继续使用。升级好以后,首先,确定我的项目是能够连上nacos并且加载到配置信息的,因为数据库等信息都是从nacos加载过来,能够正…...
sql获取时间差
MySQL SELECT TIMESTAMPDIFF(HOUR, 2023-10-01 12:00:00, 2023-10-02 15:30:00) AS hours_difference; PostgreSQL //EXTRACT(EPOCH FROM (2023-10-02 15:30:00::timestamp - 2023-10-01 12:00:00::timestamp)) // 获取的是两个时间相差的秒数,在此基础上除3600获…...
【深入理解Python中的闭包】如何有效使用嵌套函数和状态捕获!
深入理解Python中的闭包:如何有效使用嵌套函数和状态捕获 Python 作为一种动态的编程语言,允许我们用多种方式来设计和构建功能,其中之一就是 闭包(Closure)。闭包是一种强大的特性,可以帮助我们捕获和保持…...
npm配置阿里镜像库教程
为了配置npm使用阿里镜像库,可以按照以下步骤进行操作。这些步骤将帮助你加快包的下载速度,特别是在中国地区,因为阿里镜像库通常比官方npm仓库响应更快。 1. 配置全局镜像 可以通过运行以下命令来将npm的全局镜像配置为阿里镜像࿱…...
Apache JMeter压力测试工具使用
JMeter是Apache组织开发的基于Java的压力测试工具,用于对软件做压力测试。 01 软件下载 下载地址: https://jmeter.apache.org/download_jmeter.cgi 最新版本5.6.2 用浏览器下载发现慢得很,用迅雷下载非常快哟。 02 测试使用 在使用前需要先安装jd…...
前端零基础入门到上班:【Day4】HTML 多媒体与表单深度教程
HTML 多媒体与表单深度教程 **1. HTML 多媒体基础:深入理解 <video> 和 <audio> 标签****1.1 <video> 标签:详细剖析与用法****1.1.1 基础结构与属性详解****1.1.2 视频格式的兼容性与示例****1.1.3 视频控制的实际应用** **1.2 <a…...
原创作品——银行软件产品界面设计
蓝蓝设计团队服务金融类应用界面设计,以沉稳的色调和简洁的线条营造出专业可靠的氛围。特点在于融入了创新的元素增添界面的活力与现代感。细节处理上,注意数据的视觉呈现效果,采用定制化的图表和清晰的排版,确保用户能够快速理解…...
若依RuoYi-Vue 定时任务 速学
1.若依定时任务模块(ruoyi-quartz) 那么从一个简单的入门示例开始,掌握定时任务的使用吧! 2. 入门示例(学会制作一个简单定时任务) 首先打开定时任务模块中的task包,这里已经有一个已经写好的R…...
【pytest学习】pytest.main()
基本用法## pytest.main()函数是用于启动测试运行的入口点。它可以在命令行中直接使用,也可以在脚本中以编程方式调用。 以下是一个简单的示例: import pytest if __name__"__main__":pytest.main()执行当前目录下的所有测试文件 使用pytes…...
设计模式: Pimpl(Pointer to Implementation)
这种设计模式通常被称为 Pimpl(Pointer to Implementation)惯用法,有时也被称为 Cheshire Cat 惯用法。它主要用于隐藏实现细节和减少编译依赖。 例子: DatabaseConnection.h #ifndef DATABASE_CONNECTION_H #define DATABASE_…...
android开发中文网站 android developer
Android 平台 | Platform | Android Developers 在此做个记录...
实习冲刺Day1
算法题 20. 有效的括号 - 力扣(LeetCode) 这个题我们采用stack栈的方式来进行相应的括号匹配 情况有以下几种 当字符串s中只有一个字符的时候,那这个时候字符串一定是不匹配的所以直接返回false当字符串为发生标准匹配的时候,…...
安全见闻(5)——开阔眼界,不做井底之蛙
安全见闻五:人工智能 内容预览 ≧∀≦ゞ 安全见闻五:人工智能声明导语一、人工智能基础机器学习基础机器学习的典型工作流程1. 数据收集2. 数据预处理3. 模型选择与训练4. 模型评估与优化5. 模型应用 深度学习基础深度学习基本原理1. 神经网络基础2. 多层…...
Navicat 安装
Navicat 安装步骤...
解读 Java 经典巨著《Effective Java》90条编程法则,第2条:遇到多个构造器参数时要考虑使用构建器
《Effective Java》是由 Joshua Bloch 撰写的经典书籍,提供了 Java 编程中的最佳实践和建议。在书中的第2条建议“遇到多个构造器参数时要考虑使用构建器”,主要是为了处理构造器参数过多时的设计问题。这条建议的主要目的是简化构造器的使用,…...
拉丁美洲有望成为全球电商的新蓝海!
拉美市场,被行业普遍认为“可能是中国跨境电商的最后一个蓝海市场”。越来越多的中国跨境电商卖家开始关注拉美市场,并且持续为拉美消费者提供更为优质的“中国制造”。 为什么大家会这么认为呢?原因可能有以下几个方面: 第一、拉…...
K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...
智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...
MinIO Docker 部署:仅开放一个端口
MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...
第7篇:中间件全链路监控与 SQL 性能分析实践
7.1 章节导读 在构建数据库中间件的过程中,可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中,必须做到: 🔍 追踪每一条 SQL 的生命周期(从入口到数据库执行)&#…...
在树莓派上添加音频输入设备的几种方法
在树莓派上添加音频输入设备可以通过以下步骤完成,具体方法取决于设备类型(如USB麦克风、3.5mm接口麦克风或HDMI音频输入)。以下是详细指南: 1. 连接音频输入设备 USB麦克风/声卡:直接插入树莓派的USB接口。3.5mm麦克…...
《Offer来了:Java面试核心知识点精讲》大纲
文章目录 一、《Offer来了:Java面试核心知识点精讲》的典型大纲框架Java基础并发编程JVM原理数据库与缓存分布式架构系统设计二、《Offer来了:Java面试核心知识点精讲(原理篇)》技术文章大纲核心主题:Java基础原理与面试高频考点Java虚拟机(JVM)原理Java并发编程原理Jav…...
