Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Acma

[Resolvido] Manipular Datas

Recommended Posts

este campo eh um varchar de 50 correto?

Qual o collation do DB?

Esta rodando somente neste campo o isdate?

 

 

Abçs

Então, isso só vou ter como ver segunda =\

perdi o acesso remoto com o cliente, mas assim que ver isso te informo, só estou rodando neste campo sim..

ele é varchar de 50!

Valeu pela atenção, segundona voltamos para batalha :)

 

Bom fds ai!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá A.Jr!!

 

Então cara, eu gerei um insert da tabela com os erros de data, joguei num banco de teste aqui, tentei converter a data, mas não vai msm, o collation do banco está assim: Collation=SQL_Latin1_General_CP1_CI_AS, o campo é varchar 50 msm.. criei um banco de teste, e joguei os mesmos valores pra ver se dava algum erro, mas não dá, olhe

IF object_id('tempdb..#data') IS NOT NULL  
begin  
DROP TABLE #data  
end 

create table #data (data varchar(50)) 

insert into #data values ('JAN 14 2011 12:00AM')/* eh nesse formato  que dá a zica =\, mas nesse tabela temporária vai normal */

insert into #data values ('27-05-2011') 


select data, convert(datetime, data,103) from #data

alter table #data add data2 datetime

select * from #data

update #data
set data2=convert(datetime,data,103) from #data


select * from #data

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, resolvido, tive que fazer as alterações na Mão!!

 

PRIMEIRAMENTE FIZ UM BACKUP DA TABELA, COM UM SELECT

 

SELECT * INTO TABELA_BKP FROM TABELA

 

DEPOIS ADICIONEI DOIS CAMPOS NESSA TABELA:

 

ALTER TABLE LOGSENHAGER_BKP ADD DATA2 DATETIME
ALTER TABLE LOGSENHAGER_BKP ADD DATA_AUX VARCHAR(50)

SENDO QUE O CAMPO DATA É QUE PRECISAVA SER CONSERTADO

 

COMO O CAMPO DATA ESTAVA VINDO NO SEGUINTE FORMATO: Mar 4 2010 12:00AM.

 

FIZ O SEGUINTE UPDATE:

UPDATE TABELA_BKP SET 
DATA_AUX=REPLACE(REPLACE(REPLACE(REPLACE(DATA,'Fev', '02'), '12:00AM', ''), ' ','/'), '//','/')

UPDATE TABELA_BKP SET DATA_AUX=SUBSTRING(DATA_AUX,1,LEN(DATA_AUX)-1)

UPDATE TABELA_BKP SET DATA2=CAST(DATA_AUX AS DATETIME) 
FROM TABELA_BKPWHERE SUBSTRING(DATA_AUX,1,2)='02' --> MUDE O '02' CONFORME O MÊS

 

DEPOIS FIZ UM UPDATE PARA CONVERTE PARA O FORMATO PADRÃO

UPDATE TABELA_BKP
SET DATA2=CONVERT(DATETIME,DATA2,121) FROM TABELA_BKP

 

E DEPOIS PEGUEI TODAS AS DATAS QUE ERAM VÁLIDAS E JOGUEI PARA O CAMPO DATA2, JÁ QUE OS PROCEDIMENTOS ACIMA, TRATAVA SÓ DE DATAS INVÁLIDAS, SEGUE:

 

UPDATE TABELA_BKP
SET DATA2=CONVERT(DATETIME,DATA,121) FROM TABELA_BKP
WHERE ISDATE(DATA)=1

 

BOM, ESPERO QUE TENHA FICADO DE FÁCIL ENTENDIMENTO, VALEU A TODOS PELAS DICAS!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acma, como lhe no post #18 estranho :ermm:

mas parabens pelo resultado positivo!!!!! :lol: e desliga o Caps ;)

 

Abçs :devil:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ehh cara, estranho mesmo, tive que chamar um DBA Master aqui pra me ajudar, pq nem ele sabia pq não estava dando certo, porque varchar pra datetime é uma conversão implícita, e era pra dar certo sem uso de cast ou convert, mas está resolvido, isso que importa!! Valeu a todos pelos post's de ajuda!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Pessoal,

Sou nova por aqui e também novata trabalhando com SQL,

E estou com uma dificuldade pra buscar datas em uma tabela.

O caso é assim, no banco de dados a coluna com o campo data que tenho que recuperar está com dados assim:

8/25/2008 8:15:42 AM

MM/DD/AAAA H:MM:SS AM/PM

Mas eu preciso buscar uma linha nessa tabela com uma data tendo apenas parte da data, assim:

06/13/2011

MM/DD/AAAA

 

Usar uma comparação direta não funciona e mesmo eu convertendo a string para tipo date não funciona.

Eu to usando o ASP/VBScript para acessar essa tabela.

 

Alguém tem alguma sugestão?

 

Já agradeço a atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Pessoal,

Sou nova por aqui e também novata trabalhando com SQL,

E estou com uma dificuldade pra buscar datas em uma tabela.

O caso é assim, no banco de dados a coluna com o campo data que tenho que recuperar está com dados assim:

8/25/2008 8:15:42 AM

MM/DD/AAAA H:MM:SS AM/PM

Mas eu preciso buscar uma linha nessa tabela com uma data tendo apenas parte da data, assim:

06/13/2011

MM/DD/AAAA

 

Usar uma comparação direta não funciona e mesmo eu convertendo a string para tipo date não funciona.

Eu to usando o ASP/VBScript para acessar essa tabela.

 

Alguém tem alguma sugestão?

 

Já agradeço a atenção.

 

 

 

Sugiro você abrir um novo post, pois sao duvidas bem divergentes.

 

Abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.