在SQL查询(SQL Server)中的Between子句不起作用?
在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))
我只想显示当前月份到目前为止的结果。但我遇到的问题是,我也得到了上个月的值,这会造成问题。我有一个显示这些值的报告。
如果你看到这里,我得到了所有的值,但我只想要当前月份的值。
P.S:这可能是格式问题吗?todaysdate
显示的是我的实际值。
在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格式。这将确保查询在指定的日期范围内正常工作。