子句之间的SQL查询(SQL服务器)不工作?

我有一个问题,我有一个简单的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)) 

我只想显示当前月份到结束date的结果。 但是我面临的问题是我从上个月也得到了价值,这也造成了问题。 我有一个显示值的报告。

报告

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

PS:这可能是格式问题? todaysdate是得到显示这是我的实际价值。

Date格式应在您的查询中修改如下。 而不是103使用101。

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

基于这篇文章,下面的查询如何:

 DECLARE @monthStartDate AS DATE DECLARE @monthCurrentDate AS DATE SELECT @monthStartDate = DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0) SELECT @monthCurrentDate = GETDATE() SELECT CAST(Ah_editime AS DATE) AS todaysdate , @monthStartDate AS MonthStartDate , @monthCurrentDate AS MonthCurrentDate FROM [Transaction] WHERE Ah_editime BETWEEN @monthStartDate AND @monthCurrentDate