在SQL查询(SQL Server)中的Between子句不起作用?

25 浏览
0 Comments

在SQL查询(SQL Server)中的Between子句不起作用?

我有一个问题,我有一个简单的sql查询,如下所示:

Select 
    Ah_editime as todaysdate,
    (CONVERT(VARCHAR(25), DATEADD(dd, -(DAY(GETDATE()) - 1), GETDATE()), 103)) AS monthstartdate,
    (CONVERT(VARCHAR(10), CAST(GETDATE() AS DATE), 103)) AS monthcurrentdate
from 
    Transaction
where 
    Ah_editime BETWEEN (CONVERT(VARCHAR(25), DATEADD(dd, -(DAY(GETDATE()) - 1), GETDATE()), 103)) 
               AND (CONVERT(VARCHAR(10), CAST(GETDATE() AS DATE), 103))

我只想显示当前月份到目前为止的结果。但我遇到的问题是,我也得到了上个月的值,这会造成问题。我有一个显示这些值的报告。

report

如果你看到这里,我得到了所有的值,但我只想要当前月份的值。

P.S:这可能是格式问题吗?todaysdate显示的是我的实际值。

0
0 Comments

问题原因:在WHERE子句中使用BETWEEN关键字时,缺少了起始日期和结束日期的值。

解决方法:在BETWEEN关键字后面的空格中填写起始日期和结束日期的值。

0
0 Comments

在SQL Server中,有一个查询问题涉及到了BETWEEN子句的使用。BETWEEN子句用于在指定的范围内查询数据。然而,对于这个问题,BETWEEN子句似乎无法正常工作。下面将讨论出现这个问题的原因以及解决方法。

问题出现的原因是日期格式的错误。原始查询中使用的日期格式是103,但实际上应该使用101格式。103格式是指日期以dd/mm/yyyy的格式显示,而101格式是指日期以mm/dd/yyyy的格式显示。

为了解决这个问题,我们需要修改查询中的日期格式。下面是修改后的查询:

BETWEEN (CONVERT(VARCHAR(25), DATEADD(dd, -(DAY(GETDATE()) - 1), GETDATE()), 101)) 
AND (CONVERT(VARCHAR(10), CAST(GETDATE() AS DATE), 101))

以上是修改后的查询,使用了101格式。这将确保查询在指定的日期范围内正常工作。

0