Как фильтровать в одном поле, используя DateAdd
Тип "FollowTrialDate" - это дата и время
Я хочу фильтровать между датами в одном поле.
Как я могу сделать фильтрацию в поле FollowTrialDate в течение последних пятнадцати дней.
Если есть ошибка, где она?
С уважением,
SELECT C.[No],
convert(date,CaseDate,103) as ModuleDate,
convert(date,FollowingTrialDate,103) as FollowingTrialDate,
ShortDescription,
Username,
Name,
Surname,
Email,
C.[Description] as [Desc],
'Davalar' as ModuleName
FROM [LegalIT_MnemonicTEST].[dbo].[Module_Case] C
inner join [System_User] su on C.LawyerID = su.UserID
where CONVERT(date,FollowingTrialDate,0)
between DATEADD(DD,-15,CONVERT(date,FollowingTrialDate,0)) and
DATEADD(DD,0,CONVERT(date,FollowingTrialDate,0))
1 ответ
Решение
Попробуйте приведенный ниже код (если тип FollowTrialDate имеет дату и время, указанные в вашей базе данных)
Обратите внимание, что если ваш CaseDate или FollowTrialDate уже имеет тип 'datetime', указанный в вашей базе данных, вам не нужно сначала преобразовывать его в дату для вывода или для фильтрации данных, используемых в предложении WHERE.
SELECT C.[No],
convert(datetime,CaseDate) as ModuleDate,
FollowingTrialDate,
ShortDescription,
Username,
Name,
Surname,
Email,
C.[Description] as [Desc],
'Davalar' as ModuleName
FROM [LegalIT_MnemonicTEST].[dbo].[Module_Case] C
inner join [System_User] su on C.LawyerID = su.UserID
where FollowingTrialDate
between DATEADD(DAY, DATEDIFF(DAY, 0, dateadd(dd, -15, getdate())), 0) and
DATEADD(DAY, DATEDIFF(DAY, 0, getdate()), 0)