Para obter datas a partir do mês anterior com base na hora atual do sistema, você usará DATEADD()
e GETDATE()
.
DATEADD
returns a specified date with the specified number interval (signed integer) added to a specified datepart of that date.
DATEADD (datepart , number , date )
GETDATE
returns the current database system timestamp as a datetime value without the database time zone offset. This value is derived from the operating system of the computer on which the instance of SQL Server is running.
GETDATE ( )
Para calcular as datas que correspondem ao início do último mês (lembre-se, este é um exemplo e pode precisar de modificação com seu código):
SELECT [col1], [col2], [dt] FROM [table]
WHERE [dt] >= convert(varchar,DATEADD(MONTH,-1,
DATEADD(MONTH,DATEDIFF(MONTH,0,
getdate()),0)),101)
Por favor, leia sobre DATEDIFF()
também, e CONVERT()
para entender como a formatação representada por 101
funciona. Você pode preferir 121
.
(Fonte adicional: artigo de Terry Apodaca, "Datas SQL - Primeiro, Atual, Último Dia do Mês", que mudou de este endereço antigo para link (ou você pode ler uma cópia arquivada em o Wayback Machine ).)