Como criar uma cláusula de condição usando um horário de computador atual

1

Eu tenho um SQL View que contém uma coluna com datas do formato '2012-06-21 19: 44: 50.543'. Eu preciso entrar a condição para mostrar apenas as linhas com datas a partir do início do mês anterior. Este procedimento requer o uso do tempo atual (embutido). Além disso, eu preciso que esse modo de exibição seja atualizado automaticamente a cada mês. Como posso fazer isso?

    
por Anna 14.08.2012 / 02:22

1 resposta

2

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 ).)

    
por 14.08.2012 / 03:04