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;例如…

28.3 一致性哈希和推送数据的redirect流程

本节重点介绍 : 开启一致性哈希环变更监听处理 这个服务的节点变更了(节点宕机、扩容)就对哈希环进行重置 开启结果监听和watch服务编写pgw的http接收端 推送数据的redirect流程 一致性哈希和推送数据的redirect流程 开启一致性哈希环变更监听处理 位置 sd/rings.go当这个…

大语言模型数据处理方法(基于llama模型)

文章目录 前言一、基于huggingface的DataCollatorForSeq2Seq方法解读1、DataCollatorForSeq2Seq方法2、batch最长序列填充3、指定长度填充二、构建大语言模型数据加工模块1、数据读取2、数据加工1、数据格式2、预训练(pretrain)数据加工3、微调(sft)数据加工①、sft数据加工…

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;摇身一变玩…

一方数据能让沃尔玛广告业务成为下一个亚马逊吗?

作者&#xff1a;刀客doc 在如今的广告市场可以说是热闹非凡。有Facebook、谷歌这些传统巨头&#xff0c;也有亚马逊、TikTok这些行业新贵涌现出来。近几年连PayPal、Netflix这些原来和广告业务八竿子打不着的平台&#xff0c;也都开始把勺子伸进来&#xff0c;想要分一杯羹。…

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

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

windows 编译 breadpad

原文链接:https://gist.githubusercontent.com/vnl/f317840bfa9c638a60f2c4110872056a/raw/07185c8e86fc2faf08e3410ed3950a5c4d2e8b32/Breakpad%2520on%2520Windows ##### Building Google breakpadBuilding Google breakpad on Windows is a very painful experience because…

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

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

Python 基础语法 - 赋值运算符

运算符说明简单赋值运算符、-、*、/、%、//、**等复合赋值运算符 1. 赋值运算符的功能 所有的赋值运算符都是用来给变量赋值的&#xff08;都是完成将数据保存到一个变量中&#xff09;重要结论&#xff1a;所有的赋值运算符表达式都没有结果 -> 无法提供数据 2. 简单赋值…

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连…

C# 将时间转换为毫秒

作者&#xff1a;逍遥Sean 简介&#xff1a;一个主修Java的Web网站\游戏服务器后端开发者 主页&#xff1a;https://blog.csdn.net/Ureliable 觉得博主文章不错的话&#xff0c;可以三连支持一下~ 如有疑问和建议&#xff0c;请私信或评论留言&#xff01; C# 将时间转换为毫秒…

PHP的 CSRF、XSS 攻击和防范

CSRF攻击 CSRF&#xff08;Cross-Site Request Forgery&#xff09;攻击&#xff0c;也称为跨站请求伪造&#xff0c;是一种常见的网络安全威胁。在这种攻击中&#xff0c;攻击者利用已认证的用户身份&#xff0c;在用户不知情的情况下伪造请求&#xff0c;冒充用户的操作向目…

Elastic Stack - FileBeat 入门浅体验

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

GitHub Actions的 CI/CD

GitHub Actions 是一个强大的 CI/CD 工具&#xff0c;适用于自动化各种开发任务。GitHub Actions 的原理是基于事件驱动的自动化流水线工具&#xff0c;通过定义触发条件和执行步骤&#xff0c;可以让项目在特定条件下自动运行一系列操作&#xff0c;比如构建、测试、部署等。 …

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

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

基于行业分类的目标检测与跟踪系统

针对题目“目标检测跟踪”&#xff0c;我们可以根据行业类别、子类别、细分类别以及应用场景选择合适的图表进行可视化分析。以下是一些可能的图表选择及其对应的SQL示例&#xff08;假设有一个数据库包含相关字段&#xff09;&#xff1a; 1. 散点图 (Scatter Plot) 应用场景…

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

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