SQL query - Datas Invoice
-
Galera, good afternoon! I'm having a hard time consulting down. I want you to bring all the tasks only when the salary (lack field) is equal to the month after the opening date (tardata). But nothing came in the consultation.
select * from Tarefa where TarID = 173151 and MONTH(TarVencimento) = DATEADD(MONTH,1,TarData)
-
Only by contextualizing the @Rovann response
O https://docs.microsoft.com/pt-br/sql/t-sql/functions/dateadd-transact-sql returns a date. O https://docs.microsoft.com/pt-br/sql/t-sql/functions/month-transact-sql returns an integer representing the month of the date.
Soon your clausulá where
MONTH(TarVencimento) = DATEADD(MONTH,1,TarData)
doesn't seem to make sense.Make more sense your clausulá
where
, changing her toMONTH(TarVencimento) = MONTH(DATEADD(MONTH,1,TarData))
. Where you add 1 month to the fieldTarData
, take the month and last compare with the month ofTarVencimento
.Seeing your question, I see that I stopped in time with the studies of SQL Server, because I still use https://docs.microsoft.com/pt-br/sql/t-sql/functions/datepart-transact-sql to catch the month in the dates fields, getting something like:
DATEPART(MONTH, TarVencimento) = DATEPART(MONTH, DATEADD(MONTH,1,TarData))
, which does not cease to be right too, because https://docs.microsoft.com/pt-br/sql/t-sql/functions/datepart-transact-sql returns an integer representing the datepart of the specified date.