Estou procurando uma maneira de encontrar uma alternativa classificável para uma coluna preenchida com CURRENT_TIMESTAMP e estou perplexo no momento.
Eu tenho um formulário baseado na web com vários campos, incluindo um campo que está oculto no formulário que grava o CURRENT_TIMESTAMP no banco de dados quando o formulário é enviado.
O desafio que estou enfrentando é que quero criar relatórios a partir desses formulários (classificando por mês, semana ou ano) e ordená-los pelo registro de data e hora, mas com base no que vi aqui, a classificação não é possível.
Existe uma alternativa que eu possa usar para alcançar os resultados que desejo?
Não tenho ideia de por que você iria querer
ORDER BY CURRENT_TIMESTAMP
. Se a tabela tiver uma coluna onde você armazenouCURRENT_TIMESTAMP
quando a linha foi criada, basta dizer:Ou se você quiser o mais novo primeiro:
... em outras palavras, esqueça como a coluna foi preenchida.
Agora, se os comentários forem precisos e você não estiver realmente preocupado com a ordem , mas sim com a filtragem , talvez o que você queira seja:
Aqui está o porquê você não quer usar BETWEEN, no caso de alguém lhe enviar dessa forma:
Aqui está o motivo pelo qual você deseja usar funções de data integradas e um tipo DATE nativo e não converter em uma string para cortar o tempo de uma variável de data e hora:
http://www.sqlperformance.com/2012/09/t-sql-queries/what-is-the-most-functional-way-to-trim-time-from-datetime
http://www.sqlperformance.com/2012/10/t-sql-queries/trim-time
E aqui estão algumas informações gerais sobre más práticas em consultas de data/intervalo:
Sim, você pode fazer isso usando a função datepart. crie a exibição e adicione mais 3 colunas como datepart(mm,CURRENT_TIMESTAMP) mês, datepart(wk,CURRENT_TIMESTAMP) semana datepart(yy,CURRENT_TIMESTAMP) ano e aplique a operação de classificação na exibição.
para mais informações, você pode consultar a Função Datepart