Jag försöker få in en tid i en kolumn i SQL-server 7. Kolumnen är av typen Datetime och tiden jag försöker få in har följande mönster; HH.MM, alltså ex. 17.30.
Problemet är att det blir 1901-01-01 17.30. Om formatet på kolumnen är Smalldatetime blir det fel om det ens funkar.
Är kolumnen av typen DateTime så får du oundvikligen ett datum med... Behöver du kunna räkna på tiden? Annars är det väl ett alternativ att lagra den som en sträng.
Då använder du ett datum alltså?! Varför lagrar du inte det i samma kolumn då? För övrigt ger ju en "större än"- eller "mindre än"-jämförelse samma resultat för en sträng i det här fallet under förutsättning att du anger tiden enligt mönstret HH.MM, dvs 01.23 och 23.56...
SQL = "Select * From notes
INNER JOIN costumers
ON notes.costumerID = costumers.id
Where left(appTime,10) = '" & appTime & "'
AND notes.UserId = " & session("id") & "
ORDER BY notes.id DESC"
Värdet i kolumnen appTime är '2002-11-01 13:00:00' och i formatet Datetime. Därför klipper jag appTime 10 från vänster, men det verkar inte som om den vill. Värdet i variabeln appTime är '2002-11-01'.
Är inte det ganska dåligt? Jag menar, hur arbetar man annars ordentligt med datum?
Jo, jag håller med. Det finns specifierat i SQL hur det skall fungera med olika datatyper date,time och timestamp (med och utan tidszoner). Det finns även en datatyp för att lagra tidsintervall. Datetime i SQL server motsvarar (ungefär) timestamp without time zone i SQL.