Выберите записи с начала месяца до текущей даты - PullRequest
1 голос
/ 13 сентября 2011

Я пытаюсь выбрать записи, которые были добавлены в базу данных между началом текущего месяца и текущим днем ​​- я более или менее знаю, как получить записи за текущий день и в течение определенного периода времени - нокак мне его получить, чтобы он начинался с начала текущего календарного месяца?

Ответы [ 5 ]

5 голосов
/ 13 сентября 2011
DECLARE @sm DATETIME;
SET @sm = DATEADD(DAY, 1-DAY(GETDATE()), DATEDIFF(DAY, 0, GETDATE()));

SELECT columns 
    FROM dbo.foo 
    WHERE datetime_column >= @sm;
2 голосов
/ 13 сентября 2011
select *
from YourTable
where DateCol >= dateadd(month, datediff(month, 0, getdate()), 0)
2 голосов
/ 13 сентября 2011
WHERE YEAR([Date])=YEAR(GETDATE())
AND MONTH([Date])=MONTH(GETDATE())
AND DAY([Date])<=DAY(GETDATE())
0 голосов
/ 24 июля 2013
WHERE DateToCheck > LAST_DAY(CURDATE()-INTERVAL 1 MONTH))

http://www.sqlfiddle.com/#!2/3d673/2/0

0 голосов
/ 13 сентября 2011

По сути, вы делаете «Получение месяца», добавление «/ 01» и добавление года.Приведение его в виде строки для обработки добавления, затем приведение в качестве DateTime.

Так что это немного сложнее, чем любая математика дат, но, я думаю, читаемая.

...