【问题标题】: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 中使用它

标签: sql vb.net sql-server-2008


【解决方案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)
    猜你喜欢
    • 2019-04-19
    • 2020-03-02
    • 2019-05-07
    • 2021-10-11
    • 1970-01-01
    • 1970-01-01
    • 2023-01-12
    • 2016-04-17
    • 1970-01-01
    相关资源
    最近更新 更多