我遇到一个问题,我有一个简单的 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
这是我的实际值。
最佳答案
应在查询中按如下方式修改
Date
格式。使用 101 代替 103。
BETWEEN (CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(GETDATE())-1),GETDATE()),101)) AND (CONVERT(VARCHAR(10), CAST(GETDATE() AS DATE),101))
关于sql - SQL 查询(SQL 服务器)的 Between 子句不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28424646/