Avatar billede dougheffernan Nybegynder
10. april 2007 - 11:53 Der er 15 kommentarer og
1 løsning

GetDate i DTS

Hvordan specificerer man at en DTS pakke KUN skal hente poster fra source-tabellen som er nyere end dags dato - 1 år?
Har forsøgt mig med følgende:
select "MinTabel"."Medarbejder", "MinTabel"."Lønart", "MinTabel"."Enheder", "MinTabel"."Beløb", "MinTabel"."AfdKode", "MinTabel"."Dato"
from "MinTabel"
where "MinTabel"."Dato" > CONVERT(VARCHAR(10), GETDATE()-365, 126)

men når jeg klikker på Parse, vises følgende fejlmeddelelse:
"Unexpected error occourred. The provider has returned an error result without an error message."
Avatar billede lorentsnv Nybegynder
10. april 2007 - 11:58 #1
Hvad med:
select "MinTabel"."Medarbejder", "MinTabel"."Lønart", "MinTabel"."Enheder", "MinTabel"."Beløb", "MinTabel"."AfdKode", "MinTabel"."Dato"
from "MinTabel"
where "MinTabel"."Dato" > DATEADD(yy, -1, GetDate())
Avatar billede dougheffernan Nybegynder
10. april 2007 - 12:06 #2
:(
Avatar billede dougheffernan Nybegynder
10. april 2007 - 12:06 #3
Samme meddelelse.
Hvis jeg fjerner WHERE-delen, er der ingen problemer.
Avatar billede dougheffernan Nybegynder
10. april 2007 - 12:11 #4
Hvis jeg går efter medarbejder i stedet
where "MinTabel"."Medarbejder" = '1111'
er der ingen problemer...
Avatar billede lorentsnv Nybegynder
10. april 2007 - 12:39 #5
Hvilket data-format er  "MinTabel"."Dato". Noget kunne tyde på at det ikke er et smalldatetime eller datetime format.
Avatar billede dougheffernan Nybegynder
10. april 2007 - 13:09 #6
Det er et felt i en tabel fra Navision, som, når det er linket til en Access database er af type Dato og Klokkeslæt.
Avatar billede dougheffernan Nybegynder
10. april 2007 - 13:09 #7
format
24-09-1998
Avatar billede lorentsnv Nybegynder
10. april 2007 - 13:42 #8
Prøv med:

select "MinTabel"."Medarbejder", "MinTabel"."Lønart", "MinTabel"."Enheder", "MinTabel"."Beløb", "MinTabel"."AfdKode", "MinTabel"."Dato"
from "MinTabel"
where "MinTabel"."Dato" > convert(char(10),dateadd(yy,-1,getdate()),105)

Med ovenstående bliver datoen på højre side konverteret til tekst. Jeg har en mistanke om at datoen fra Navgision bliver opfattet som tekst.
Avatar billede dougheffernan Nybegynder
10. april 2007 - 14:25 #9
Samme resultat.
Følgende giver mig dags dato - 1 år på det rigtige format:
CONVERT(VARCHAR(10), GETDATE()-365, 105)
Men jeg får stadig samme fejlmeddelelse. :(
Avatar billede dougheffernan Nybegynder
10. april 2007 - 14:26 #10
CONVERT(VARCHAR(10), GETDATE()-365, 105)
bliver til 10-04-2006
Avatar billede dougheffernan Nybegynder
10. april 2007 - 14:28 #11
Synes OFTE jeg løber ind i problemer a la dette, altså hvor det er en relativ simpel operation, som jeg kan forestille mig MANGE DBA'er/udvikler kloden rundt er ude for HVER DAG, alligevel er der ingen nem løsning og Microsoft har (åbenbart) ikke indbygget funktionaliteten i deres produkt. :(
Avatar billede dougheffernan Nybegynder
10. april 2007 - 14:31 #12
Måske KAN man ikke bruge GETDATE funktionen i en DTS pakke, i Specify Query Criteria har jeg valgmuligheden mellem en Value eller en Column....HVORFOR har de ikke åbnet for muligheden at man kan bruge en funktion, så DTS'en kan være dynamisk? :(
Avatar billede dougheffernan Nybegynder
10. april 2007 - 14:36 #13
Fandt løsningen!!!
It wasn't easy though!
http://www.thescripts.com/forum/thread144820.html

**********************************************************************
If I write in my SQL Server DTS:

SELECT *
FROM MYNAVISIONTABLE
WHERE (MYDATE = { d '2005-06-30' })

It works! This notation is the one required by C/ODBC Navision driver.
**********************************************************************
Avatar billede dougheffernan Nybegynder
10. april 2007 - 14:36 #14
Læg et svar, lorentsnv, du fortjener pointene.
Avatar billede lorentsnv Nybegynder
10. april 2007 - 14:48 #15
Hvorfor skal tin gøres nemt, når det kan gøres besværlig ;-)
Avatar billede dougheffernan Nybegynder
10. april 2007 - 14:54 #16
Ja, og det bliver værre, i følge linket skal der alligevel en workaround til for at det virker med variable.....tror jeg holder mig til d. 1 januar 2006 og frem. Så kan jeg skifte datoen hvert år.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester