我有带数据的表1
file Startdate
A 2020-05-01
B 2020-06-01
我们今天是2020-06-01,我可以使用Select和startdate ='2020-06-01'
但是我尝试了这个查询却没有得到2020-06-01
select file from table1
where
startdate >= dateadd(month, -1, datefromparts(year(getdate()), month(getdate()), 1))
and startdate < datefromparts(year(getdate()), month(getdate()), 1)
请纠正我。谢谢
答案 0 :(得分:1)
您正在寻找
select [file] from table1
where
startdate = datefromparts(year(getdate()), month(getdate()), 1)
这将返回
file Startdate
B 2020-06-01
更新:
我的意思是不仅是2020-06-01,而且如果我加上2020-06-02,那么应该会获得2020-06-01和2020-06-02的2条记录
SELECT [File]
FROM Table1
WHERE StartDate >= DATEFROMPARTS(YEAR(GETDATE()), MONTH(GETDATE()), 1)
AND
StartDate <= EOMONTH(GETDATE());
答案 1 :(得分:-1)
datefromparts使它混乱,这样编写和理解它要容易得多。 mysql
SELECT DATE_FORMAT(getdate(), "%Y-%m-01");
MSSql
SELECT CONVERT(NOW(), varchar(8),120) + '01'
答案 2 :(得分:-1)
{{1}}