webForumDet fria alternativet

Få en access-fråga att funka i MSSQL

Databaser & SQL

2 svar · 285 visningar · startad av hawkman

Medlem sedan juni 2000125 inlägg
Frågan#1

Hej,

Vi har flyttat över vår databas från MSAccess till MSSQL och i o m det stött på patrull! :e

Problemet är att en accesstabell ser ut så här

Bookingid
BookingEventId
StartDate
StartTime
EndDate
EndTime
Comments

StartDate är en date/time-kolumn med format Short Date
StartTime är en date/time-kolumn med format Short Time
EndDate/EndTime på samma sätt

Problemet är nu att MSSQL inte gillar att importera detta eftersom MSSQL har en datatyp som heter shortdate. Inte heller funkar SQL-frågan som jag använt, eftersom StartTime inte innehåller något datum (således skriver MSSQL glatt in 1899-xx-xx) vilket gör att min fråga inte hittar något :)

SELECT BookingEvent.BookingEventId, StartTime, EndTime, User, FirstName +' '+LastName As Name 
FROM BookingEvent, Booking, TADeptPersonnel 
WHERE StartDate = '2004-12-06' 
AND Booking.BookingEventId = BookingEvent.BookingEventId 
AND StartTime <= '15:00:00' 
AND EndTime >'15:00:00' 
AND User = TADeptPersonnel.Signum

Ok, koden är ful, jag vet, men jag har inte riktigt tid att skriva om appliktionen nu :P

Finns det något listigt sätt att lösa detta? Eller ska jag bita ihop och skriva om?

/Håkan

Medlem sedan dec. 200012 464 inlägg
#2

Jag skulle lagra datum och tid i en kolumn och skriva om frågan.

WHERE StartDate <= '2004-12-06 15:00:00' 
and endDate > '2004-12-06 15:00:00'

Man kan använda funktionen convert för att få fram datumet eller tiden men det blir inte speciellt effektivt.

Medlem sedan juni 2000125 inlägg
#3

Jag satsade på att göra om tabellen!

Tack!

262 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)