Usando o SQL Server 2000, como posso obter a primeira e a última data do ano atual?
Resultado esperado:
01/01/2012
e 31/12/2012
fonte
Usando o SQL Server 2000, como posso obter a primeira e a última data do ano atual?
Resultado esperado:
01/01/2012
e 31/12/2012
SELECT
DATEADD(yy, DATEDIFF(yy, 0, GETDATE()), 0) AS StartOfYear,
DATEADD(yy, DATEDIFF(yy, 0, GETDATE()) + 1, -1) AS EndOfYear
A consulta acima fornece um valor de data e hora para meia-noite no início de 31 de dezembro. Isso é cerca de 24 horas antes do último momento do ano. Se quiser incluir o tempo que pode ocorrer em 31 de dezembro, você deve comparar com o primeiro do próximo ano, com uma <
comparação. Ou você pode comparar com os últimos milissegundos do ano atual, mas isso ainda deixa uma lacuna se você estiver usando algo diferente de DATETIME (como DATETIME2):
SELECT
DATEADD(yy, DATEDIFF(yy, 0, GETDATE()), 0) AS StartOfYear,
DATEADD(yy, DATEDIFF(yy, 0, GETDATE()) + 1, -1) AS LastDayOfYear,
DATEADD(yy, DATEDIFF(yy, 0, GETDATE()) + 1, 0) AS FirstOfNextYear,
DATEADD(ms, -3, DATEADD(yy, DATEDIFF(yy, 0, GETDATE()) + 1, 0)) AS LastTimeOfYear
Detalhes técnicos
Isso funciona calculando o número de anos desde 1900 com DATEDIFF(yy, 0, GETDATE())
e, em seguida, adicionando isso a uma data de zero = 1 de janeiro de 1900. Isso pode ser alterado para funcionar para uma data arbitrária, substituindo a GETDATE()
parte ou um ano arbitrário, substituindo a DATEDIFF(...)
função por "Ano - 1900."
SELECT
DATEADD(yy, DATEDIFF(yy, 0, '20150301'), 0) AS StartOfYearForMarch2015,
DATEADD(yy, 2015 - 1900, 0) AS StartOfYearFor2015
Aqui está uma maneira bastante simples;
SELECT DATEFROMPARTS(YEAR(GETDATE()), 1, 1) AS 'First Day of Current Year';
SELECT DATEFROMPARTS(YEAR(GETDATE()), 12, 31) AS 'End of Current Year';
Não é sexy, mas funciona.
Você pode obter o ano atual usando a
DATEPART
função, a partir da data atual obtida usandogetUTCDate()
fonte
DATETIME
vez de string e obviamente isso pode não corresponder à saída esperada de acordo com a pergunta.yyyyMMdd
é inequívoco.simplesmente escreva: -
data de início do ano.
fonte
Todo ano tem o 1º como primeiro dia e 31 como último o que você deve fazer é apenas anexar o ano a esse dia e mês, por exemplo: -
fonte
Para obter o primeiro e o último dia do ano, pode-se usar a
CONCAT
função. O valor resultante pode ser convertido para qualquer tipo.fonte
Para data de início do ano atual:
Para data de término do ano atual:
fonte
Outra forma: (desde o SQL Server 2012)
fonte
Confira este aqui:
fonte
fonte
fonte
Parece que você tem interesse em realizar uma operação de tudo para um determinado ano, se for esse o caso, recomendo usar a função YEAR () assim:
O mesmo vale para DIA () e MÊS () . Eles também estão disponíveis para variantes do MySQL / MariaDB e foram introduzidos no SQL Server 2008 (portanto, não para o 2000 específico).
fonte
fonte
No Microsoft SQL Server (T-SQL), isso pode ser feito da seguinte maneira
CURRENT_TIMESTAMP - retorna a data do servidor sql no momento da execução da consulta.
YEAR - obtém a parte do ano do carimbo de hora atual.
STR , LTRIM - essas duas funções são aplicadas para que possamos converter isso em um varchar que pode ser concatinado com nosso prefixo desejado (neste caso, é a primeira data do ano ou a última data do ano). Por alguma razão, o resultado gerado pela função YEAR tem espaços de prefixo. Para corrigi-los, usamos a função LTRIM que é trim à esquerda.
fonte
Se chegar a 1 de janeiro, pode ser que seja ainda a data do ano passado.
fonte
Experimente isto:
fonte
Msg 195, Level 15, State 10, Line 1 'NOW' is not a recognized function name.
--- Lalmuni Demos ---
--- inserir valores ---
fonte