如何获取两个日期之间的数据

Posted

技术标签:

【中文标题】如何获取两个日期之间的数据【英文标题】:How to get data between two dates 【发布时间】:2016-01-19 03:38:11 【问题描述】:

这是我的代码:

SELECT * 
FROM tbl_mainTable 
WHERE date_issue BETWEEN '1/1/2016' AND DATEADD(s, -1, DATEADD(d, 1, '1/20/2016')) 

但它显示从 2015 年 1 月 5 日到 2016 年 1 月 18 日的记录

我希望有人可以帮助我解决此类问题。我是否遗漏了代码中的某些内容?

【问题讨论】:

如果date_issue 是一个varchar,那么你就有问题了。 "1/5..." 大于 "1/1..." 我认为这是日期格式的问题。尝试在 yyyy/mm/dd 前后以这种方式引用日期。 但是我的日期格式是 dd/MM/yyyy? 为什么这个标记为 vb .net? 因为我要在 vb.net 中使用它 【参考方案1】:

这将选择两个日期之间的数据

SELECT * FROM tbl_mainTable WHERE date_issue between '2016/1/1' AND '2016/1/20'

您可以使用CONVERT() function 来调整您需要的格式。

【讨论】:

【参考方案2】:

由于 date_issuevarchar,因此 BETWEEN 会出现问题。

尝试将 date_issue 数据类型从 varchar 更改为 datetime

【讨论】:

不。它的varchar。使用的数据类型有问题吗? @JMYu,把数据类型改成datetime再运行查询可以吗? 我试图将我的数据类型从 varchar 更改为 datetime 并且它已经工作了,我只需要将数据修剪为日期,因为它也显示像这样的时间 2016-01-04 00:00: 00.000 @Aethlen 非常感谢您! :) 尝试从 varchar 更改为 date。 cast(dateissue as date) 或 convert(date,dateissue,103)

以上是关于如何获取两个日期之间的数据的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MySQL 中的两个日期之间获取特定日期

如何通过 SQL 语句从两个特定日期(由用户指定)之间的数据库表中获取数据?

获取在两个日期之间发布的数据

如何获取两个日期时间之间的日期数组

在 MySQL 上获取两个日期之间的数据

如何在mysql选择查询中获取两个日期之间的日期列表[重复]