SQL获取当前月份

时间:2020-06-01 19:26:43

标签: sql sql-server tsql date

我有带数据的表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) 

请纠正我。谢谢

3 个答案:

答案 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}}