Avatar billede filix Nybegynder
09. maj 2008 - 11:14 Der er 6 kommentarer

Problemer med SQL (gælder både MS SQL og Access)

Hej

Vi er igang med vores eksamens project. Hvor vi laver et større system.

Vi laver noget hotel booking som et del af projektet og her skal vi kunne sammen ligne datoer(med tid) for at se hvornår hvad er ledigt. Dog har vi problemer med dette.

Vi laver det lige nu i access men tilsidst porter vi det over til MS SQL.

Vi gør det ved et sql udtræk som kigger på om en dato er større eller mindre end. men den kigger ikke på tid kun på datoen. :

SELECT * from hotelbooking where RoomId = 1 AND ((Arrival < 2008-10-14 OR 1900-01-04 > Departure));
Avatar billede w13 Novice
09. maj 2008 - 11:27 #1
Så skal du vel have tid med? F.eks. 2008-10-14 skal være 2008-10-14 00:00:00 ville jeg men
Avatar billede filix Nybegynder
09. maj 2008 - 11:53 #2
ja det ville vi jo også mene men det virker umiddelbart ikke ... selv om det er en Date/time field
Avatar billede keysersoze Guru
09. maj 2008 - 11:59 #3
dato/tid skal indsættes med

## omkring og være i korrekt formatet mm-dd-yyyy hh:mm:ss - dvs;

#10-14-2008 13:35:00#
Avatar billede filix Nybegynder
09. maj 2008 - 12:07 #4
giver det lige et try :)
Avatar billede keysersoze Guru
09. maj 2008 - 12:08 #5
altså - i access, taler vi mssql kunne man vælge at bruge CONVERT til DATETIME i stedet.
Avatar billede Slettet bruger
09. maj 2008 - 23:53 #6
Som keysersoze er inde på så vil et kriterie se sådan ud: Arrival < #14-10-2008#

men det ser ud som om jeres problem er omkring Departure... Når i snakker om tid så mener i faktisk at Departure er en tid.. hvorfor har i så en dato og hvorfor har i 1900-01-04?~)

Det har i fordi i har set denne dato i feltet, men det er programmet, som tror det er en dato og den har omsat 0 til denne dato. I har sikkert 0 som standardværdi i Departure!~)

Så det i har sat som tidskriterie er hvornår er Departure mindre end 0, dvs. et negativt tal... Jamen, det er den vel aldrig... Så det virker sikkert hvis i vender > til < (det er altid en god ide at holde datoen/tallet på højre side, så det ikke forvirrer!~)

Men der burde stå Departure > 0 eller bedre endnu Not Isnull(Departure) og så fjerne 0 som standardværdi. I støder nok også på det, at klokkeslættet ikke står som det skal, men så kan i bruge format(Departure;"short time")

Go' Pinse!~)
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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