【问题标题】:Where Clause for a datetime Format Not Cooperating日期时间格式的 Where 子句不合作
【发布时间】:2018-04-24 08:27:41
【问题描述】:

我在处理数据库中的日期范围时遇到问题。有机格式是日期时间“yyyy-mm-dd 00:00:00.000”。我尝试了几种方法,但都没有成功,这些方法是:

  1. 如上所述的有机:

    Select
    I.InvoiceDate
    ....
    Where I.InvoiceDate >= '2017-01-01 00:00:00.000'
    
  2. 并在 select 中使用 where 子句转换为 mm/dd/yyy:

    Select
    Convert(Char(10),I.InvoiceDate,101) as 'InvDt'
    ...
    Where Year(Convert(Char(10),I.InvoiceDate,101)) >= '2017'
    
  3. 同样使用有机字段名称而不是 where 子句的转换:

    Select
    Convert(Char(10),I.InvoiceDate,101) as 'InvDt'
    ...
    Where I.InvoiceDate >= '10/01/2017'
    
  4. 最后,我还尝试在 select 和/或 where 子句中使用适当的年/月标签来选择年和/或月。

在每种情况下都产生了相同的结果: Results I get AND the organic datetime format before converting to mm/dd/yyyy

感谢好心人的帮助。

【问题讨论】:

  • 你的问题是什么?
  • 如何让 where 子句根据日期指定过滤。
  • 您使用的是哪个DBMS 产品? “SQL”只是一种查询语言,并不是特定数据库产品的名称。
  • 达格...对不起。我正在使用 MS SQL Server Mgmt Studio 17。

标签: sql date datetime date-range


【解决方案1】:

你可以试试这个

选择

* 来自表名

其中 Create_Date >='2017-11-08 00:00:00.000'

【讨论】:

  • :facepalm: 真的....是间距!?我什至没有想过尝试这样做,因为其他领域正在使用间距。谢谢你好先生。
  • 兄弟你的第一个是对的,你能告诉我你想要什么,我的意思是问题
  • 提供的解决方案有效,也许是我昨晚的手指肥大,但当我删除间距时,我得到了正确的结果。我无法解释,但是当我将编码更改为 ... InvoiceDate>='2017-01-01 00:00:00.000' from ... InvoiceDate >= '2017-01-01 00:00:00.000' 时工作。
猜你喜欢
  • 2016-09-07
  • 2010-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-21
  • 1970-01-01
  • 2022-12-04
  • 1970-01-01
相关资源
最近更新 更多