Oke wazige topictitel, maar ik zal het even uitleggen:
Ik maak gebruik van een DB van derden, die in hun wijsheid besloten hebben om twee kolommen te maken voor een datumtijd, jawel een 'datum' en een 'tijd'. Dat ze deze dan in beide gevallen van het type 'DateTime' moeten maken heeft ze niet aan het denken gezet of het wel een verstandige keuze was.
anyway:
nu is het zo dat ik een record moet inserten in deze DB.
Bij de 'datum' kolom kan ik netjes '2007-02-02' inserten als tekst, en dat komt er dan goed in te staan.
Bij de 'Tijd' kolom wil ik (dus) '15:30:00' inserten, in de hoop dat dit ook netjes goed gaat.
Echter plakt (waarschijnlijk) MSSQL er dan een datum voor. Dit is '01-01-1900'.
Alle andere records in de tabel laten in SQL Server Enterprise alleen een tijd zien. Het kan dus wel.
Nu zou je zeggen 'wat is het probleem eigenlijk als er een datum staat?'
nou, dat zal ik ook uitleggen:
Hun software doet heel netjes een ORDER BY datum, tijd, waardoor er dus netjes gesorteerd wordt.
Nu is het alleen zo dat mijn net geinserde row altijd bovenaan staat. De 'tijd' is namelijk kleiner dan de tijd uit de andere records.
Ik dacht eerst dat MSSQL gewoon een 'default' datum heeft, waarbij ze in de enterprise manager geen datum laten zien.
Dus wanneer ik een van de oude records uitlas, keek welke datum deze had, en vervolgens diezelfde datum samen met mijn tijd in de 'tijd' kolom duw, het probleem opgelost zou zijn.
Echter de datum die ik krijg wanneer ik hun 'tijd' colom uitlees is ook '01-01-1900'.
De datums zijn dus gelijk!
Toch zie ik in de enterprise manager wel mijn datum, maar niet die van hun..
Ook sorteert het programma nog altijd verkeerd.
Vraag is dan ook, hoe zorg ik dat ik een 'tijd' insert zonder dat daarbij de datum mee gaat. En ik zodoende hetzelfde resultaat krijg als wanneer ik in Enterprise Manager een record aanmaak. (dus alleen de tijd zie)
Ik maak gebruik van een DB van derden, die in hun wijsheid besloten hebben om twee kolommen te maken voor een datumtijd, jawel een 'datum' en een 'tijd'. Dat ze deze dan in beide gevallen van het type 'DateTime' moeten maken heeft ze niet aan het denken gezet of het wel een verstandige keuze was.
anyway:
nu is het zo dat ik een record moet inserten in deze DB.
Bij de 'datum' kolom kan ik netjes '2007-02-02' inserten als tekst, en dat komt er dan goed in te staan.
Bij de 'Tijd' kolom wil ik (dus) '15:30:00' inserten, in de hoop dat dit ook netjes goed gaat.
Echter plakt (waarschijnlijk) MSSQL er dan een datum voor. Dit is '01-01-1900'.
Alle andere records in de tabel laten in SQL Server Enterprise alleen een tijd zien. Het kan dus wel.
Nu zou je zeggen 'wat is het probleem eigenlijk als er een datum staat?'
nou, dat zal ik ook uitleggen:
Hun software doet heel netjes een ORDER BY datum, tijd, waardoor er dus netjes gesorteerd wordt.
Nu is het alleen zo dat mijn net geinserde row altijd bovenaan staat. De 'tijd' is namelijk kleiner dan de tijd uit de andere records.
Ik dacht eerst dat MSSQL gewoon een 'default' datum heeft, waarbij ze in de enterprise manager geen datum laten zien.
Dus wanneer ik een van de oude records uitlas, keek welke datum deze had, en vervolgens diezelfde datum samen met mijn tijd in de 'tijd' kolom duw, het probleem opgelost zou zijn.
Echter de datum die ik krijg wanneer ik hun 'tijd' colom uitlees is ook '01-01-1900'.
De datums zijn dus gelijk!
Toch zie ik in de enterprise manager wel mijn datum, maar niet die van hun..
Ook sorteert het programma nog altijd verkeerd.
Vraag is dan ook, hoe zorg ik dat ik een 'tijd' insert zonder dat daarbij de datum mee gaat. En ik zodoende hetzelfde resultaat krijg als wanneer ik in Enterprise Manager een record aanmaak. (dus alleen de tijd zie)
This message was sent on 100% recyclable electrons.