Запрос выберите, где дата между «1-й день текущего месяца» и «текущий день» - PullRequest
0 голосов
/ 05 ноября 2019

Мне нужно выбрать данные из базы данных SQL Server между 1-м днем ​​текущего месяца и текущим днем.

    SELECT *
      FROM table_name 
     WHERE date BETWEEN "1st day of current month" AND "current day"

Ответы [ 4 ]

2 голосов
/ 05 ноября 2019

Вы можете использовать EOMONTH(), чтобы перейти к последнему дню месяца предыдущего месяца. Затем просто добавьте 1 день, используя DATEADD() с 1 в качестве приращения для дня, чтобы получить 1-й день текущего месяца.

SELECT *
FROM <table>
WHERE <date> BETWEEN DATEADD(DAY, 1, EOMONTH(GETDATE(),  -1)) and GETDATE()
0 голосов
/ 05 ноября 2019

Я не рекомендую использовать between для этой цели. Я предпочитаю иметь код, который работает как на date s, так и на datetime s без изменений.

Кроме того, SQL Server имеет удобную функцию datefromparts(). Итак, я рекомендую:

WHERE date >= DATEFROMPARTS(YEAR(GETDATE()), MONTH(GETDATE()), 1) AND
      date < CONVERT(DATE, DATEADD(DAY, 1, GETDATE()))
0 голосов
/ 05 ноября 2019

Пусть тебе это поможет,

select * from TABLE_NAME 
where date between 
dateadd (DAY, -(datepart (DAY, getdate ())) + 1, convert (date, GETDATE ())) 
and 
convert (date, getdate ()) 
0 голосов
/ 05 ноября 2019

Я думаю, что это должно работать,

SELECT * 
FROM   TABLE_NAME 
 WHERE date BETWEEN DATEADD(mm, DATEDIFF(mm,0,date), 0) AND GETDATE()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...