---
title: "Tids-problem i SQL-server 7"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/57704-tids-problem-i-sql-server-7"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "OveRRidE"
published: "2002-11-01T07:32:23.000Z"
updated: "2002-11-01T14:56:14.000Z"
replies: 12
views: 294
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/57704-tids-problem-i-sql-server-7"
---

# Tids-problem i SQL-server 7

## #1 — OveRRidE, 2002-11-01T07:32Z

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. 

Hur gör jag? Jag vill bara ha in tiden ju. :)

Permalänk: https://www.webforum.nu/p/57704

## #2 — OveRRidE, 2002-11-01T07:41Z

Dock, om jag använder timevalue() i vbscript på värdet ur kolumnen så blir det ju rätt. Men det finns ju fortfarande ett *datum* i tidskolumnen.

Permalänk: https://www.webforum.nu/p/839125

## #3 — agneta_rung, 2002-11-01T08:58Z

Ä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.

Permalänk: https://www.webforum.nu/p/839166

## #4 — OveRRidE, 2002-11-01T09:04Z

Jag behöver kunna 'räkna' tid, ja. 

Jag skall göra en koll som hämtar vissa poster som ligger inom ett visst tidspann med hjälp av datum och tid.

Permalänk: https://www.webforum.nu/p/839170

## #5 — agneta_rung, 2002-11-01T09:15Z

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...

Permalänk: https://www.webforum.nu/p/842130

## #6 — OveRRidE, 2002-11-01T09:34Z

Ja, jag använder ett datum. Anledningen till att jag inte använder en kolumn är att det inte är byggt så från början. :)

Men det låter klart lockande att göra så visserligen.

Permalänk: https://www.webforum.nu/p/842143

## #7 — OveRRidE, 2002-11-01T10:40Z

Mer strul: 

```
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'.

Permalänk: https://www.webforum.nu/p/842220

## #8 — agneta_rung, 2002-11-01T12:10Z

Jag skulle tro att du kan använda CONVERT-funktionen så här (är hemma med flunsan och kan inte testa... x( )

```
SQL = "Select * From notes
INNER JOIN costumers
   ON notes.costumerID = costumers.id
WHERE CONVERT(varchar, appTime, 103) = '" & appTime & "'
AND notes.UserId = " & session("id") & "
ORDER BY notes.id DESC"
```

Permalänk: https://www.webforum.nu/p/842304

## #9 — OveRRidE, 2002-11-01T12:23Z

Mjo, jag vet dock inte om CONVERT() fungerar i SQL Server 7, jag tror det är CAST() som gäller i 7:an. 

Jag har testat såhär och skrev ut rs("datumet").

```
SQL = "Select *, left(cast(appTime as datetime),10) as datumet From notes"
```

Det blev 'jan 1 190 ', vilket bevisar vilken form datumet är i. :)

Hur gör jag för att få formet YYYY-MM-DD på den?

Permalänk: https://www.webforum.nu/p/842317

## #10 — LarsG, 2002-11-01T13:31Z

Convert har funnits längre än Cast.

```
CONVERT(varchar, appTime, 8) => hh:mm:ss
```

<http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_ca-co_5t9v.asp>

Jag såg ingen som enbart gav yyyy-mm-dd

Du kan ju göra convert först och substring sedan.

Permalänk: https://www.webforum.nu/p/842371

## #11 — OveRRidE, 2002-11-01T13:49Z

> Convert har funnits längre än Cast.

Där ser man. :o Jag trodde det var tvärt om.

> Jag såg ingen som enbart gav yyyy-mm-dd

Är inte det ganska dåligt? Jag menar, hur arbetar man annars ordentligt med datum?

> Du kan ju göra convert först och substring sedan.

Mm. Men ur vilken form och hur?

Permalänk: https://www.webforum.nu/p/842381

## #12 — LarsG, 2002-11-01T14:09Z

> Ä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.

```
substring(convert(varchar,datetimeColumn,21),1,10)
```

Permalänk: https://www.webforum.nu/p/842390

## #13 — OveRRidE, 2002-11-01T14:56Z

Ok. :)

Sådärja, det funkade ju lite bättre. :) Tack!

Permalänk: https://www.webforum.nu/p/842432

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/57704-tids-problem-i-sql-server-7
