Utiliando quot;OUquot; em uma substring dentro de uma Trig
Bom dia !!
Td blz galera ? :D
Criei uma trigger no sql server 2005 que atualiza o campo data de uma determinada tabela depois que eu extraio valores de documentos XMLs e os insiro no
banco.
OBS.: a data não é digitada no banco, mas sim extraída do campo FileSystem (varchar) e se encontra no seguinte
formato: CATARINE2007101045020.xml, onde CATARINE é o nome de quem criou o xml e 20071010 é a data.
Até ai, tudo bem, a trigger funciona perfeitamente, mas em determinado momento ela não consegue extrair o
campo data perfeitamente. MOTIVO : as datas(normalmente) vem com o formato yyyymmdd, mas em alguns casos estão yyyymdd.
Como eu faço pra fazer um ´OU´ nas substrings na trigger abaixo :
Porém não funciona !
Alguém tem uma dica ?
Abraços !
:D
Td blz galera ? :D
Criei uma trigger no sql server 2005 que atualiza o campo data de uma determinada tabela depois que eu extraio valores de documentos XMLs e os insiro no
banco.
OBS.: a data não é digitada no banco, mas sim extraída do campo FileSystem (varchar) e se encontra no seguinte
formato: CATARINE2007101045020.xml, onde CATARINE é o nome de quem criou o xml e 20071010 é a data.
CREATE TRIGGER TR_DATAPROCESSAMENTO ON NotaFiscal AFTER INSERT AS UPDATE NotaFiscal SET DataProcessamento = (SELECT CAST( substring(Right(FileSystem,18),7,2) + ´/´ + substring(Right(FileSystem,18),5,2) + ´/´ + substring(Right(FileSystem,18),1,4) AS DATETIME) FROM INSERTED ) WHERE ID_NotaFiscal = ( SELECT ID_NotaFiscal FROM INSERTED )
Até ai, tudo bem, a trigger funciona perfeitamente, mas em determinado momento ela não consegue extrair o
campo data perfeitamente. MOTIVO : as datas(normalmente) vem com o formato yyyymmdd, mas em alguns casos estão yyyymdd.
Como eu faço pra fazer um ´OU´ nas substrings na trigger abaixo :
substring(Right(FileSystem,18),5,2)||substring(Right(FileSystem,18),5,1) + ´/´ +
Porém não funciona !
Alguém tem uma dica ?
Abraços !
:D
Kika3k
Curtidas 0
Respostas
Emerson Nascimento
28/05/2008
faça a leitura das partes da data em variáveis.
algo assim:
daí você faz o tratamento nas variáveis até encontrar o valor correto.
algo assim:
@Data = Left(Rigth(FileSystem,17),9); @Dia = Right(@Data, 2); @Ano = Left(@Data, 4); @Mes = Substring(@Data, 5, 2); UPDATE NotaFiscal SET DataProcessamento = (SELECT CAST(@Mes + ´/´ + @Dia + ´/´ + @Ano AS DATETIME) FROM INSERTED WHERE ID_NotaFiscal = ( SELECT ID_NotaFiscal FROM INSERTED )
GOSTEI 0