Não consegui encontrar a solução que dá primeiro e último dia do mês anterior com carimbo de data / hora. Espero que isso ajude outras pessoas. Se já existe uma solução para este problema peço desculpas.
Aqui está a solução.
SELECT DATEADD(month, DATEDIFF(month, -1, getdate()) - 2, 0) as FirtDayPreviousMonthWithTimeStamp,
DATEADD(ss, -1, DATEADD(month, DATEDIFF(month, 0, getdate()), 0)) as LastDayPreviousMonthWithTimeStamp
Isso retornará o seguinte se currentdate = '2012-7-31'
resultado: 2012-06-01 00:00:00.000 2012-06-30 23:59:59.000
Isso retornará o seguinte se currentdate = '2012-1-1'
resultado: 2011-12-01 00:00:00.000 2011-12-31 23:59:59.000
sql-server
datetime
Jay S
fonte
fonte
Respostas:
fonte
-1
noDATEDIFF
lance e erro queThe arguments to the following function are not valid: DATEDIFF
Primeiro dia da semana atual.
Último dia da semana atual.
Primeiro dia da semana passada.
Último dia da semana passada.
Primeiro dia da próxima semana.
Último dia da próxima semana.
Primeiro dia do mês atual.
Último dia do mês atual.
Neste exemplo, a data de Works on Only é 31. e os dias restantes não.
Primeiro dia do mês passado.
Último dia do mês passado.
Primeiro dia do próximo mês.
Último dia do próximo mês.
Primeiro dia do ano em curso.
Último dia do ano atual.
Primeiro dia do ano passado.
Último dia do ano passado.
Primeiro dia do próximo ano.
Último dia do próximo ano.
fonte
fonte
Solução
Para realmente calcular os valores que você solicitou, inclua o seguinte em seu SQL.
Esteja ciente de que ele deve ser colado antes de qualquer instrução que faça referência aos parâmetros, mas a partir desse ponto você pode fazer referência a @FirstDayOfLastMonth e @LastDayOfLastMonth em seu código.
Exemplo
Vamos ver alguns códigos em ação:
Execute o código acima para produzir a seguinte saída:
Observação: lembre-se de que a data de hoje para mim é 12 de setembro de 2016 .
Parâmetros de data comuns
Você ficou querendo mais?
Para configurar uma gama mais abrangente de parâmetros úteis relacionados a datas, inclua o seguinte em seu SQL:
Faria mais sentido incluí-lo anteriormente, de preferência no início de seu procedimento ou consulta SQL.
Depois de declarados, os parâmetros podem ser referenciados em qualquer lugar em seu código, quantas vezes forem necessárias.
Exemplo
Vamos ver alguns códigos em ação:
Execute o código acima para produzir a seguinte saída:
Se falta o seu país, é porque não sei o código dele. Seria muito útil e apreciado se você pudesse editar esta resposta e adicionar uma nova coluna para o seu país.
Desde já, obrigado.
Observação: lembre-se de que a data de hoje para mim é 12 de setembro de 2016 .
Referências
Para ler mais sobre o padrão internacional de datas ISO8601, siga este link:
Para ler mais sobre o padrão internacional de data ODBC, siga este link:
Para ver a lista de formatos de data em que trabalhei, siga este link:
Para obter mais informações sobre o tipo de dados DATETIME, siga este link:
fonte
fonte
A partir do SQL2012, foi introduzida uma nova função chamada
EOMONTH
. Usando esta função, o primeiro e o último dia do último mês podem ser facilmente encontrados.fonte
Usei a seguinte lógica nos relatórios do SSRS.
fonte
Você pode obter o primeiro e o último dia do mês anterior (com carimbo de data / hora) no SQL Server executando
fonte
Pegue uma data base que seja o dia 31 de algum mês, por exemplo, '20011231'. Em seguida, use o
seguinte procedimento (forneci 3 exemplos idênticos abaixo, apenas o valor @dt é diferente).
fonte
Esta é uma maneira bastante direta e dinâmica. Para o último dia do mês passado, subtraia o dia numérico atual da data de hoje. Para o primeiro dia do mês passado, use o mesmo código, basta repetir subtraindo o dia numérico do resultado anterior e adicionar 1.
fonte
Para obter a primeira data do mês passado:
Para obter a última data do mês passado:
fonte
Eu ainda não vi essa solução apresentada; esta é minha preferência por sua legibilidade mais simples:
fonte
Esta é a maneira mais simples que conheço de obter o primeiro dia do mês anterior:
Etapa 1: Mova os dados para o Postgres
Passo 2:
fonte