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 操作符来定义日期时间范围

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/58290.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ubuntu22.04版本左右,扩充用户可使用内存

1 取得root权限后&#xff0c;输入命令 lsblk 查看所有磁盘和分区&#xff0c;找到想要替换用户可使用文件夹内存的磁盘和分区。若没有进行分区&#xff0c;并转为所需要的分区数据类型&#xff0c;先进行分区与格式化&#xff0c;过程自行查阅。 扩充替换过程&#xff0c;例如…

Springboot项目搭建的问题

1.第一次出现这个问题是在使用postgresql进行搭建项目的时候&#xff0c;但是配置文件中的驱动一致导入不了 最后发现是meaven中依赖导入不进来&#xff08;不知道为什么&#xff09;&#xff0c;于是手动的在meaven中央仓库下载了对应的jar进行配置 然后项目可以正常启动 2.…

大模型系列——AlphaZero/强化学习/MCTS

AlphaGo Zero无需任何人类历史棋谱&#xff0c;仅使用深度强化学习&#xff0c;从零开始训练三天的成就已远远超过了人类数千年积累的围棋知识。 1、围棋知识 &#xff08;1&#xff09;如何简单理解围棋知识 &#xff08;2&#xff09;数子法分胜负&#xff1a;https://zhu…

w外链如何跳转微信小程序

要创建外链跳转微信小程序&#xff0c;主要有以下几种方法&#xff1a; 使用第三方工具生成跳转链接&#xff1a; 注册并登录第三方外链平台&#xff1a;例如 “W外链” 等工具。前往该平台的官方网站&#xff0c;使用手机号、邮箱等方式进行注册并登录账号。选择创建小程序外…

Jellycat玩偶界的天花板,如何用情绪营销征服成年人的心?

Jellycat的用户肯定对这个品牌有一定的了解&#xff0c;不知道的用户或许也看过这个很火的茄子表情包&#xff0c;这是Jellycat很火的一款玩偶“活泼茄子”。Jellycat&#xff0c;这个源自英国伦敦的高端玩具品牌&#xff0c;近年来在全球范围内迅速走红&#xff0c;摇身一变玩…

基于SSM土家风景文化管理系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;景点分类管理&#xff0c;热门景点管理&#xff0c;门票订单管理&#xff0c;旅游线路管理&#xff0c;系统管理 前提账号功能包括&#xff1a;系统首页&#xff0c;个人中心&…

搭建海外云服务器需要什么费用?

搭建海外云服务器需要什么费用&#xff1f;搭建海外云服务器的费用涉及多个方面&#xff0c;包括服务器实例费用、公网带宽费用、磁盘存储费用、操作系统费用和其他费用。具体费用取决于所选的云服务提供商、服务器配置、计费模式等因素。以下是UU云小编整理的一些主要的费用构…

IDEA->EasyCode(mapper.xml) 字段无逗号分隔和修改全局变量问题

1.mapperxml字段无逗号分隔 在easycode的设置里找到&#xff1a; 1、Template下的 mapper.xml.vm脚本 2、Global Config下的 mybatisSupport.vm脚本 将脚本里的 $velocityHasNext 替换成 $foreach.hasNext&#xff0c;然后保存。Mybatis-Plus框架操作一样 github->issue连…

Elastic Stack - FileBeat 入门浅体验

Filebeat 是 Elastic Stack 中的一个轻量级日志转发器&#xff0c;主要用于收集和转发日志数据。Filebeat 作为代理安装在您的服务器上&#xff0c;可以监控您指定的日志文件或位置&#xff0c;收集日志事件&#xff0c;并将其转发到 Elasticsearch 或 Logstash 进行索引。 一…

STM32--基于STM32F103C8T6的OV7670摄像头显示

本文介绍基于STM32F103C8T6实现的OV7670摄像头显示设计&#xff08;完整资源及代码见文末链接&#xff09; 一、简介 本文实现的功能&#xff1a;基于STM32F103C8T6实现的OV7670摄像头模组实时在2.2寸TFT彩屏上显示出来 所需硬件&#xff1a; STM32F103C8T6最小系统板、OV76…

C#与C++交互开发系列(十一):委托和函数指针传递

前言 在C#与C的互操作中&#xff0c;委托&#xff08;delegate&#xff09;和函数指针的传递是一个复杂但非常强大的功能。这可以实现从C回调C#方法&#xff0c;或者在C#中调用C函数指针的能力。无论是跨语言调用回调函数&#xff0c;还是在多线程、异步任务中使用委托&#x…

CloudStack云平台搭建:XenServer服务器系统安装

1.打开VMware虚拟机&#xff0c;点击“创建新的虚拟机” 2. 点击“自定义&#xff08;高级&#xff09;” → “下一步” 3. 点击“下一步” 4. 点击“稍后安装操作系统” → “下一步” 5. 选择“其他” → “其他64位” → “下一步” 6. 修改“虚拟机名称” 、“位置”&…

[linux]和windows间传输命令scp 执行WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!错误解决

[linux]和windows间传输命令scp 执行WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!错误解决. 现象&#xff1a; 原因&#xff1a; 接收方服务器系统做了某些更改&#xff0c;导致登录时会报错。主要因为接收方服务器对登录过它的主机都会把该主机登录标识证书记录下来&a…

.NET代码打包加密工具

下载地址: dotNet代码打包加密工具资源-CSDN文库

使用Node.js与Express构建RESTful API

&#x1f496; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4bb; Gitee主页&#xff1a;瑕疵的gitee主页 &#x1f680; 文章专栏&#xff1a;《热点资讯》 使用Node.js与Express构建RESTful API 1 引言 2 Node.js与Express简介 3 安装Node.js与Express 4 创建Express项目 5…

Server - 配置 HuggingFace 工程数据 Transformers-CLI 格式与 Huggingface-CLI 格式的差别

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/141140498 免责声明&#xff1a;本文来源于个人知识与公开资料&#xff0c;仅用于学术交流&#xff0c;欢迎讨论&#xff0c;不支持转载。 Huggin…

【机器学习(十九)】零代码开发之随机森林(Random Forest,RF)算法-Sentosa_DSML社区版

文章目录 一、算法概念二、算法原理&#xff08;一&#xff09;定义&#xff08;二&#xff09;袋外数据 三、随机森林的优缺点&#xff08;一&#xff09;优点&#xff08;二&#xff09;缺点 四、随机森林分类任务实现&#xff08;一&#xff09;数据加载&#xff08;二&…

天地图实现海量聚合marker--uniapp后端详细实现

本文章详细的讲解了前后端代码来 实现uniapp天地图功能的实现 以及 后端海量数据的聚合查询 和网格算法实现思路。 并对当数据量增加和用户频繁请求接口时可能导致服务器负载过高做了前后端优化。 前端uniapp&#xff1a; 实现了天地图的行政区划边界/地图切换/比例尺/海量数…

数据结构预备知识---Java集合框架、List接口、包装类、装箱拆箱和泛型

文章目录 Java集合框架List接口包装类 和 装箱、拆箱泛型 Java集合框架 Java 集合框架 Java Collection Framework &#xff0c;又被称为容器 container &#xff0c;是定义在 java.util 包下的一组接口 interfaces和其实现类 classes .其主要表现为将多个元素 element 置于一个…

Oracle自动处理表空间不足脚本

关注过我的朋友们应该知道我分享过一些常用的监控脚本&#xff0c;其中最常用的就是监控表空间使用率的脚本&#xff0c;具体可以参考如下链接​&#xff1b; oracle常用监控脚本&#xff08;纯干货&#xff0c;没有EMCC,ZABBIX也不怕&#xff09;_oracle 监控及日常处理脚本-…