【问题标题】:Using a between Date in SQL QUERY在 SQL QUERY 中使用介于日期之间
【发布时间】:2017-09-23 19:15:51
【问题描述】:

我在 Sql Server 2008 R2 中使用 vb.net 代码。
我试图通过使用 SQL 查询来获取具有两个日期之间值的所有行来获取结果: 这是我声明的where 子句:

Where (CONVERT(varchar(10), visit_nextVisitDate, 103) between '02/04/2017' AND  '15/05/2017')"

但我总是得到同一个月(第 4 个月)的所有行。 我试过这个:

WHERE (CAST(dbo.Visits.visit_date AS date) BETWEEN '24/04/2017' AND '02/05/2017')

但我收到一个错误,因为我的日期字段以 yyyy/mm/dd 格式保存

如何将 SQL 日期格式更改为 dd/mm/yyyy

【问题讨论】:

    标签: sql sql-server sql-server-2008 datetime between


    【解决方案1】:

    为什么要使用字符串进行日期比较?那是错误的,错误的,错误的。 (如果这样做,请使用 ANSI 标准格式,YYYY-MM-DD,这样比较是正确的。)

    只需使用日期即可:

    Where visit_nextVisitDate between '2017-04-02' AND '2017-05-02'
    

    实际上,将between 与日期一起使用是个坏主意。 Aaron Bertrand 在这个主题上有一个很好的blog

    我推荐:

    Where visit_nextVisitDate >= '2017-04-02' AND 
          visit_nextVisitDate < '2017-05-03'
    

    【讨论】:

    • 但是如果我想在我的 sql 中使用以下格式 dd/mm/yyyy 怎么办??
    • @EyadShahroury 。 . .我强烈建议您使用 ISO 标准日期格式。如果您真的坚持使用其他日期格式,我建议您使用 convert()constant 值显式转换为日期。
    • 好的,我会的:),谢谢
    猜你喜欢
    • 2017-12-20
    • 1970-01-01
    • 2023-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多