如何使用 Between 子句获取两个日期之间的数据?

2024-02-08

我在数据库中有日期字段,格式为2012-03-17 19:50:08.023.

我想创建一个选择查询,它为我提供在March月。 但我无法实现这一点。

我正在尝试以下查询。

select * from OrderHeader where
Convert(varchar,UploadDt,103) between '01/03/2013' and '31/03/2013' 
and DistUserUniqueID like  '6361%' 

该查询为我提供了所有日期的数据。

select * from OrderHeader where
UploadDt between '01/03/2013' and '31/03/2013' and DistUserUniqueID like  '6361%' 

这个查询给我的错误是消息 242,第 16 级,状态 3,第 1 行 将 varchar 数据类型转换为 datetime 数据类型导致值超出范围。

请帮我解决这个问题。

提前致谢


第一个查询返回所有日期,因为您要将列转换为字符串。不知道你为什么要这样做。所以当你说BETWEEN '01/anything' AND '31/anything',当您认为它现在只是一个字符串时,它将匹配列中的所有“日期”,无论月份和年份,因为您的WHERE条款将涵盖可能的每一天(嗯,除了 3 月以外的第 31 个月,以及 1 月和 2 月的第一天 - 因此不是所有数据,而是很大的百分比)。'15/11/2026',例如,是BETWEEN '01\03\2013' AND '31/03/2013'.

这点考虑一下吧。您的数据库中有日期时间数据,并且您希望在查询之前将其转换为字符串。在比较之前,您还会将工资转换为字符串吗?如果是这样,那么收入 70,000 美元的人看起来会比收入 690,000 美元的人赚更多,因为基于字符的排序从第一个字符开始,并且不考虑长度。

第二个查询失败,因为您使用的日期格式不明确。你可能喜欢dd/mm/yyyy但显然你的服务器是基于美国英语格式的mm/dd/yyyy是期待。

解决方案是使用正确的、明确的格式,例如YYYYMMDD.

BETWEEN '20130301' AND '20130313'

However 你不应该使用BETWEEN https://sqlblog.org/2011/10/19/what-do-between-and-the-devil-have-in-common- 因为这是一个DATETIME您应该使用的列:

WHERE UploadDt >= '20130301'
  AND UploadDt <  '20130401'

(否则您将错过来自2013-03-31 00:00:00.001通过2013-03-31 23:59:59.997.)

如果你真的喜欢BETWEEN然后在 2008+(你没有告诉我们你的版本)你可以使用:

WHERE CONVERT(DATE, UploadDt) BETWEEN '20130301' AND '20130331'

更多与日期相关的提示:

  • 负责任地约会 https://sqlblog.org/dates

最后,当转换为VARCHAR(或任何可变长度数据类型),始终指定长度 https://sqlblog.org/2009/10/09/bad-habits-to-kick-declaring-varchar-without-length.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Between 子句获取两个日期之间的数据? 的相关文章

随机推荐

  • 客户端服务器程序的多线程

    我正在尝试使用我一直在开发的客户端 服务器程序来实现多线程 我需要允许多个客户端同时连接到服务器 我目前有 4 个类 一个客户端 一个服务器 一个协议和一个处理线程的工作人员 以下代码是我为这些类编写的代码 套接字服务器类 public c
  • Jmeter 而控制器似乎没有将变量评估为数字

    我正在编写一个 jmeter 脚本 该脚本会不断加载数据 直到表达到指定的大小 我有一个 while 循环 其中有一个 HTTP 采样器来加载数据 然后是另一个带有 XPath 后处理器的 HTTP 采样器来检查表大小 它们调用两个不同的
  • get_dummies (Pandas) 和 OneHotEncoder (Scikit-learn) 之间的优缺点是什么?

    我正在学习不同的方法将分类变量转换为机器学习分类器的数字 我遇到了pd get dummies方法和sklearn preprocessing OneHotEncoder 我想看看它们在性能和使用方面有何不同 我找到了一个关于如何使用的教程
  • 树形视图闪烁?

    我开始知道 通过添加 TreeView BeginUpdate 将防止树视图闪烁 但是当我将其添加到我的项目中时 树视图的所有节点都会消失 任何人都可以告诉我为什么会发生这种情况 这是我使用 TreeView 的代码片段 BeginUpda
  • ios google登录,如何获取用户图片url?

    我正在研究 iOS Swift 谷歌登录 我在github上做了一个demo 我的演示项目 https github com tanggod GoogleSignIn git https github com tanggod GoogleS
  • 使用python删除某些文件

    我有一个 py 脚本 可以处理扩展名为 hgx 的文件 示例 test hgx 有很多这样的扩展名为 hgx 的文件 该脚本处理 test hgx 并创建一个新的 test bac hgx 并在重新运行时创建 test bac bac hg
  • 如何获取存储库 /network 的完整 github.com 可视化

    EDIT 这应该是给我母亲的礼物 如果需要的话 我会将它拖放并将一堆丝网印刷品缝合在一起 但是该资源必须位于网站上的某个地方 我相信至少这个网站上有人知道如何做到这一点 EDIT 所以我进一步研究了这个问题 发现如果你把 meta 放在网络
  • Windows 10 通用应用程序 - 类型同时存在于“Windows.Foundation.UniversalApiContract”中

    不知何故 我什至没有做任何事情 我在 Visual Studio 2015 中遇到很多错误 但我无法理解问题到底是什么 它说两个 Windows Foundation UniversalApiContract 库中都存在很多 类型 有人可以
  • 将 defer 与指针一起使用

    假设我有以下代码 func getConnection fileName string os File file err os Open fileName Check for error return file 我使用此函数打开一个文件 并
  • clang 对 C++ 11 lambda 的支持

    我有这个使用 lambda 的 C 11 代码 这是一个示例 include
  • 线程创建、CRT 和 DLL 是如何完成的?

    所以我知道 CreateThread 和 CRT 可能会导致内存泄漏 信号不起作用 应该使用 beginthread 或 beginthreadex 函数 在编写应用程序时这一切都很好 但是那些为其他应用程序编写 dll 等的人 无论是普通
  • django-mptt 引发 django.db.utils.IntegrityError:列“lft”中的空值违反了非空约束

    条件 Django 1 8 7 和 django mptt 0 8 0 有一个模型 class Tree mptt models MPTTModel name models CharField max length 120 unique T
  • AWS EB - 将所有流量重定向到 https

    我的nodejs应用程序部署在AWS EB上 我已经配置了 https 服务器并且工作正常 现在我需要将每个非 https 请求重定向到带有 www 的 https 作为前缀 如下所示 GET example com gt https ww
  • Flutter URL 启动器 Google 地图

    列表 dart import package flutter material dart import package url launcher url launcher dart class List extends StatefulWi
  • 算法渐近复杂度

    我想知道这个过程可以使用大 符号在以下算法中返回的最小值和最大值是多少 算法是 procedure F 1 n s 0 for i 1 to n j min max i A i n s s j return s 编辑 删除了原始答案 因为它
  • 我可以为 gtest 中的值参数化测试指定更好的名称吗?

    我在 gtest 中使用值参数化测试 例如 如果我写 INSTANTIATE TEST CASE P InstantiationName FooTest testing Values meeny miny moe 然后在输出中我看到测试名称
  • 延迟加载模块时生成错误

    在另一个模块中延迟加载模块时 出现构建错误 延迟加载在执行 ng 服务时工作得很好 角度版本 11 1 2 错误 错误 构建多个块时 必须使用 output dir 选项 而不是 output file 要内联动态导入 请设置 inline
  • 通过 c# 解析 csproj - 无法解析 ItemGroup

    我尝试从 csproj 文件中获取所有 dll 名称 但无法获取任何内容 因此 我尝试使用 liq 查询从 ItemGroup 标记中获取所有元素 var elem doc Descendants Project Where t gt t
  • 将消息放入azure队列

    我按照给出的详细信息将消息放入天蓝色队列中Azure Python SDK https github com Azure azure sdk for python 当我尝试将消息放入队列时 from azure storage import
  • 如何使用 Between 子句获取两个日期之间的数据?

    我在数据库中有日期字段 格式为2012 03 17 19 50 08 023 我想创建一个选择查询 它为我提供在March月 但我无法实现这一点 我正在尝试以下查询 select from OrderHeader where Convert