【小5聊】Sql Server时间转换和查询时间范围查询不正确的原因

news2025/2/2 11:03:10

最近在做时间方法封装的时候发现了一个问题!

如果sql语句输出的时间字段转为了字符串输出,那么在使用此字段作为时间范围筛选时发现无效了,没法过滤对应的时间范围内记录

下面进行场景重现下

1、创建表

创建只有三个字段的表testTable,自增编号、全球唯一编号Guid、添加时间

create table testTableName
(
	id int identity(1,1) primary key,
	guidValue nvarchar(50),
	createTime datetime
)

2、模拟一个月数据

1)可以写一个sql的循环语句按天模拟添加一个月的数据

2)定义一个整型变量,从0开始,循环30次

3)时间格式化,可以看我写的这篇文章《Sql Server日期格式化大全》

4)除了看时间格式化,还需要对时间进行加减《sql server 查询七天内的数据之时间条件格式化》

5)前一天设置,dateadd(day,-1,getdate())

declare @dayCount int
set @dayCount=0

while @dayCount<=30 begin
	insert into testTableName(guidValue,createTime)
	values(newid(),dateadd(day,-@dayCount,getdate()))
	set @dayCount+=1
end

 

3、按时间查询

查询2022.12.15到2022.12.19号的记录,正确情况应该是返回5条记录

时间格式用了三个方式,小数点、斜杠、横杠,都可能正确查询出来

  • 正确返回
select * from testTableName 
where 1=1 and 
--createTime>='2022.12.15 00:00:00' and createTime<='2022.12.19 23:59:59'
createTime>='2022/12/15 00:00:00' and createTime<='2022/12/19 23:59:59'
--createTime>='2022-12-15 00:00:00' and createTime<='2022-12-19 23:59:59'

  •  错误查询方式 - 小数点格式

  •  错误查询方式 - 斜杠格式

  •  正确返回 - 横杠格式

select * from(
	select id,guidValue,convert(varchar(20),createTime,23) as createTime
	from testTableName
) a 
where 1=1 and 
--createTime>='2022.12.15 00:00:00' and createTime<='2022.12.19 23:59:59'
--createTime>='2022/12/15 00:00:00' and createTime<='2022/12/19 23:59:59'
createTime>='2022-12-15 00:00:00' and createTime<='2022-12-19 23:59:59'
  • 作为本身查询没问题

 4、总结

1)如果查询字段作为时间范围筛选,那么尽量不要把时间字段转为字符串格式

2)如果时间格式转为字符串,那么不要在子查询外对字符串的时间字段进行时间范围筛选

3)如果要作为时间范围筛选,那么使用yyyy-MM-dd格式进行筛选,否则查询无效

 

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

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

相关文章

LeetCode:1760. 袋子里最少数目的球

解题思路&#xff1a; 看了很久也不知道该怎么下手&#xff0c;果断转去题解看答案&#xff0c;所实话官方的题解说的有些抽象&#xff0c;先买那是我自己看了别人的博客和思考后的一些思路&#xff1a; 1、为什么可以用二分查找&#xff1f; 题目要求你的开销是单个袋子里球…

滴滴前端常考vue面试题整理

谈谈对keep-alive的了解 keep-alive 可以实现组件的缓存&#xff0c;当组件切换时不会对当前组件进行卸载。常用的2个属性 include/exclude &#xff0c;2个生命周期 activated &#xff0c; deactivated vue和react的区别 > 相同点&#xff1a; 1. 数据驱动页面&#x…

jQuery DOM

文章目录jQuery DOM概述操作元素创建元素插入节点prepend()prependTo()append()appendTo()before()insertBefore()after()insertAfter()删除元素remove()detach()empty()复制元素clone()替换元素replaceWith()replaceAll()包裹元素wrap()wrapAll()wrapInner()遍历元素属性操作获…

Iceberg在袋鼠云的探索及实践

“数据湖”、“湖仓一体”及“流批一体”等概念&#xff0c;是近年来大数据领域热度最高的词汇&#xff0c;在各大互联网公司掀起了一波波的热潮&#xff0c;各家公司纷纷推出了自己的技术方案&#xff0c;其中作为全链路数字化技术与服务提供商的袋鼠云&#xff0c;在探索数据…

微服务框架 SpringCloud微服务架构 微服务面试篇 54 微服务篇 54.5 Nacos与Eureka的区别有哪些?【接口方式、实例类型、健康检测】

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 微服务面试篇 文章目录微服务框架微服务面试篇54 微服务篇54.5 Nacos与Eureka的区别有哪些&#xff1f;【接口方式、实例类型、健康检测】54…

【大数据入门核心技术-Kafka】(七)Kafka扩容broker和数据迁移

目录 一、准备工作 1、安装好Zookeeper集群 2、安装好Kafka集群 二、Kafka扩容broker 三、Kafka数据迁移 1、查看主题列表 2、创建Topic 3、查看Topic详细信息 4、生成需要迁移的json 5、生成迁移计划 6、执行迁移计划 7、查看迁移计划 8、确认topic数据分布 一、…

Shiro框架学习笔记、整合Springboot、redis缓存

本笔记基于B站UP主不良人编程 目录 1.权限的管理 1.1什么是权限管理 1.2什么是身份认证 1.3什么是授权 2.什么是Shiro 3.Shiro的核心架构 3.1 S核心内容 4.shiro中的认证4.1认证 4.2shiro中认证的关键对象 4.3认证流程 4.4认证程序开发流程 4.4认证程序源码 4.5自定…

java ssm羽毛球馆管理和交流平台系统

羽毛球作为每个人爱好的一项体育运动&#xff0c;越来也收到人们的好评和关注。很多羽毛球爱好者通过网站的形式对羽毛球场地情况&#xff0c;羽毛球的爱好者的互相学习进行交流&#xff0c;方便了大众对于羽毛球的交流和沟通&#xff0c;提高羽毛球技术的同时&#xff0c;也让…

颠覆传统返利模式,针对用户复购率低的全新解决方案——消费盲返

如今互联网商业模式遍地开花&#xff0c;谈及商业模式&#xff0c;大家第一想到的肯定是积分消费返利&#xff0c;那么“消费返利”对于大家来说都不陌生&#xff0c;那么本期林工想给大家介绍的是一个怎么听怎么亏&#xff0c;实则已经悄悄爆火的模式——消费盲返&#xff0c;…

DNS寻址过程

文章目录什么是DNS寻址过程图显示什么是DNS DNS是域名系统( Domain Name System)的英文缩写&#xff0c;是一种组织成域层次结构的计算机和网络服务命名系统&#xff0c;它用于TCP/IP网络&#xff0c;它所提供的服务是用来将主机名和域名转换为IP地址的工作。 寻址过程 本地…

【Linux】第三部分 Linux文件系统目录结构

【Linux】第三部分 Linux文件系统目录结构 文章目录【Linux】第三部分 Linux文件系统目录结构3. Linux文件系统目录结构总结3. Linux文件系统目录结构 可以右键打开终端 目录意义bin该目录存放的是经常使用到的命令&#xff0c;例如上图所示&#xff1a;cd &#xff0c; ls 等…

《计算机程序构造与解释》读书笔记(3)

文章目录1. 写在最前面2. 设计的取舍3. 赋值和局部状态3.1 局部状态变量3.2 引进赋值带来的利益3.3 引进赋值的代价3.3.1 同一和变化3.3.2 命令式程序设计的缺陷4. 求值的环境模型4.1 求值规则4.2 简单过程的应用4.3 将框架看做局部状态的展台4.4 内部定义5. 用变动数据做模拟5…

Mycat(13):全局表和普通表的配置和测试

1 全局表概述 一个真实的业务系统中&#xff0c;往往存在大量的类似字典表的表格&#xff0c;它们与业务表之间可能有关系&#xff0c;这种关系&#xff0c;可以理解为“标签”&#xff0c;而不应理解为通常的“主从关系”&#xff0c;这些表基本上很少变动&#xff0c;可以根…

Spring Security认证和授权

Spring Security认证和授权 一、Spring Security的认识 Spring Security是Spring家族中的一个安全管理框架。相比与另外一个安全框架Shiro&#xff0c;它提供了更丰富的功能&#xff0c;社区资源也比Shiro丰富。 一般来说中大型的项目都是使用SpringSecurity来做安全框架。小…

Windows C语言 UDP通信demo

目录编译环境快速入门编译指令服务端code客户端code参考文章以及遇到的问题编译环境 我的demo是通过此文章从C更改成的C&#xff0c;编译环境使用的是Mingw&#xff0c;如下图所示 快速入门 拷贝代码编译互传消息 编译指令 客户端&#xff1a;gcc .\udpclient.c -lwsock3…

《剑指offer》– 链表中倒数第k个节点、反转链表、合并两个排序的链表

一、链表中倒数时第k个节点&#xff1a; 1、题目&#xff1a; 输入一个链表&#xff0c;输出该链表中倒数第k个结点。 2、解题思路&#xff1a;单链表具有单向移动的特性。 &#xff08;1&#xff09;第一种&#xff1a;先遍历链表&#xff0c;算出链表节点数count&#xf…

计算机毕设Python+Vue学生用品采购系统(程序+LW+部署)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

我国风电行业发展现状:并网装机容量持续增长 产业集中化趋势明显

根据观研报告网发布的《2022年中国风电行业分析报告-行业全景评估与投资规划分析》显示&#xff0c;风电是一种清洁、绿色的可再生能源。风力发电是能源领域中技术最成熟、最具规模开发条件和商业化发展前景的发电方式之一。发展风力发电对于解决能源危机、减轻环境污染、调整能…

【Java面试八股文宝典之基础篇】备战2023 查缺补漏 你越早准备 越早成功!!!——Day13

大家好&#xff0c;我是陶然同学&#xff0c;软件工程大三明年实习。认识我的朋友们知道&#xff0c;我是科班出身&#xff0c;学的还行&#xff0c;但是对面试掌握不够&#xff0c;所以我将用这100多天更新Java面试题&#x1f643;&#x1f643;。 不敢苟同&#xff0c;相信大…

【1760. 袋子里最少数目的球】

来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 描述&#xff1a; 给你一个整数数组 nums &#xff0c;其中 nums[i] 表示第 i 个袋子里球的数目。同时给你一个整数 maxOperations 。 你可以进行如下操作至多 maxOperations 次&#xff1a; 选择任意一个袋子&#…