ramon.mattos Postado Julho 24, 2019 Denunciar Share Postado Julho 24, 2019 Boa tarde. Estou tentando armazenar uma informação extraída do excel no valor de 168:34:50 segundos. Como consigo armazenar isso no sql server e qual a opção do campo devo utilizar datatime? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Marcos Roberto Vieira Juni Postado Agosto 20, 2019 Denunciar Share Postado Agosto 20, 2019 (editado) Bom dia, Depende do que você quer fazer, a maneira mais simples no meu ponto de vista é trabalhar com duas tabelas, uma temporária e a outra principal onde os registros vão ficar já formatados. Faça importação para uma tabela temporária utilizando colunas nvarchar(X) ou varchar(X), utilizar o "import & export" data do SSMS ou faça um bulkinsert dependendo da quantidades de registros que tem, se a planilha for pequena pode ate usar o oldb e fazer a leitura diretamente da tabela com select e criar uma temp usando a clausula INTO. Segue exemplos abaixo: Via SQL Select Oledb : SELECT * INTO Data_dq FROM OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0', 'Data Source=C:\Temp\Data.xlsx;Extended Properties=Excel 12.0')...[Sheet1$]; GO Via BULKINSERT : USE ImportFromExcel; GO BULK INSERT Data_bi FROM 'C:\Temp\data.csv' WITH ( FIELDTERMINATOR = ',', ROWTERMINATOR = '\n' ); GO Agora pode converter da forma que desejar pois já esta importado. Segue um exemplo do que se pode fazer DECLARE @Campo varchar(max) = '168H:34M:55S'; DECLARE @dia int; DECLARE @Hora int ; DECLARE @minuto int; DECLARE @segundo int; SELECT @Hora = REPLACE(REPLACE((SUBSTRING(@Campo,1,CHARINDEX(':',@Campo)-1)),'H',''),':','') ,@minuto = REPLACE(REPLACE((SUBSTRING(@Campo,CHARINDEX(':',@Campo),CHARINDEX(':',@Campo)-1)),'M',''),':','') ,@segundo = REPLACE(REPLACE((SUBSTRING(@Campo,CHARINDEX('M',@Campo),CHARINDEX(':',@Campo)-1)),'M',''),':','') SELECT @Hora SELECT @minuto SELECT @segundo Att, Marcos Roberto Editado Agosto 20, 2019 por Marcos Roberto Vieira Juni Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
ramon.mattos
Boa tarde. Estou tentando armazenar uma informação extraída do excel no valor de 168:34:50 segundos.
Como consigo armazenar isso no sql server e qual a opção do campo devo utilizar datatime?
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.