Como converter valores CHAR em valores DATETIME no SQL Server

Extended support for SQL Server 2005 ended on April 12, 2016

If you are still running SQL Server 2005, you will no longer receive security updates and technical support. We recommend upgrading to SQL Server 2014 and Azure SQL Database to achieve breakthrough performance, maintain security and compliance, and optimize your data platform infrastructure. Learn more about the options for upgrading from SQL Server 2005 to a supported version here.

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 69133
Sumário
As informações a seguir descreve como converter valores CHAR em valores DATETIME para que um valor SMALLINT pode ser subtraído e um valor START_TIME pode ser obtido.
Mais Informações
Para começar com, a data de caractere e a hora devem ser convertidos no formato de data/hora do SQL Server. Em seguida, o valor SMALLINT pode ser subtraído para obter START_TIME. Ambas as tarefas podem ser executadas em uma única expressão SQL; no entanto, é mais fácil de entender o processo se ambas as tarefas são consideradas separadamente.

Por exemplo, se o valor de tempo é armazenado em uma coluna chamada "term_time" com um formato de HHMMSS e o valor de data é armazenado em uma coluna chamada "term_date" com um formato de aammdd, esses valores podem ser convertidos para a SQL Server Data e hora com a seguinte chamada:
   convert(datetime,term_date+" "+          substring(term_time,1,2)+":"+          substring(term_time,3,2)+":"+          substring(term_time,5,2)   )				

Considerando uma data no formato de data/hora do SQL Server, é fácil de adicionar ou subtrair uma determinada quantidade de segundos, minutos, dias e assim por diante. Por exemplo, supondo que o valor SMALLINT ("@ delta") está em segundos, a função a seguir retornará a data/hora de início:
   dateadd(ss,-(@delta),???)				

Toda a expressão pode ser colocada em seguinte instrução de seleção para que ele é executado para cada linha na tabela de entrada. "@ delta" é considerado um parâmetro de entrada. Se for "@ delta" em unidades diferentes de segundos, o primeiro parâmetro de dateadd deve ser alterado para refletir as unidades corretas (minutos, dias e assim por diante).
   select  dateadd( ss, -(@delta), convert(datetime,term_date+" "+               substring(term_time,1,2)+":"+               substring(term_time,3,2)+":"+               substring(term_time,5,2)   ))     from t1				
Windows NT Transact-SQL

Propriedades

ID do Artigo: 69133 - Última Revisão: 12/01/2005 00:21:49 - Revisão: 4.2

Microsoft SQL Server 4.21a Standard Edition, Microsoft SQL Server 6.0 Standard Edition, Microsoft SQL Server 6.5 Standard Edition, Microsoft SQL Server 7.0 Standard Edition, Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Workgroup Edition

  • kbmt kbprogramming KB69133 KbMtpt
Comentários