Avatar billede oliverdb Nybegynder
30. juli 2001 - 14:13 Der er 6 kommentarer og
2 løsninger

Datetime problem

Jeg skal sammenligne to datoer. Disse datoer er af formaten

mm-dd-year  hour-min-sec

Jeg skal have fjerenet tidspunktet fra sammenligningen. Jeg er intresseret kun i datoerne og ikke i tidspunkterne.

Hvordan gør jeg dette?
Avatar billede oswald Nybegynder
30. juli 2001 - 14:17 #1
Brug DATEDIFF(dd,Dato1,Date2). Den giver dig forskellen mellem to datoer i hele dage. Hvis resultatet er 0 er det den samme dag.
Avatar billede chrisped Nybegynder
30. juli 2001 - 14:20 #2
Du kan eventuelt benytte DATEPART til at udtrække de dele af datoen du ønsker at benytte, for efterfølgende at sammenligne de afledte datoer. Se desuden funktionerne DAY, MONTH og YEAR
Avatar billede chrisped Nybegynder
30. juli 2001 - 14:21 #3
Selvfølgelig - oswalds løsning er selvfølgeligt den rigtige!
Avatar billede oliverdb Nybegynder
30. juli 2001 - 14:25 #4
Det vil sige at jeg skal udtrække tallene. Proppe dem ned I en ny tabel og SÅ begynde at sammenligne.

Jeg har da ingen mulighed for at bruge den i min sammenlignings query?

WHERE (dbo.IU05000T.LEVERINGS_DATO < afsendt_tidspunkt)

Avatar billede oswald Nybegynder
30. juli 2001 - 14:26 #5
oliverdb:> du skal lige være opmærksom på at DateDiff kan virke lidt underlig. hvis du sammenligner 29-07-2001 kl 23.59 med 30-07-2001 kl 0.01 får du 1. men hvis du sammenligner 30-07-2001 kl 0.01 med 30-07-2001 kl 23.59 får du 0. Det er sådan den skal virke, men det kan snyde.
Avatar billede oswald Nybegynder
30. juli 2001 - 14:27 #6
Du kan gøre det at du siger
Where (DATEDIFF (dd, dbo.IU05000T.LEVERINGS_DATO, afsendt_tidspunkt) < 0)
Det burde virke på samme måde.
Avatar billede oliverdb Nybegynder
30. juli 2001 - 14:34 #7
oswald den der ville give mig all de queries hvor afsendt tidspunkt var FØR leveringsdato.

Jeg skal have det omvendte. Nemlig forsent leverede hvor det altså er en dag forsinket

Avatar billede oswald Nybegynder
30. juli 2001 - 14:43 #8
Det skal nok passe at jeg er kommet til at skifte rundt på datoerne, men så skriv > 0 istedet for for at få dem der er forsinket. Hvis du kun vil have dem der er en dag forsinket så skriv = 1. Du kan også bare skifte datoerne.
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