Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Sökning på datum och tid

Postades av 2005-03-14 15:20:22 - Mathias Bartoll, i forum sql-server/msde, Tråden har 7 Kommentarer och lästs av 804 personer

Hej,

Jag har en sökningsfunktion där man kan basera sin sökning på datumintervall och tidsintervall. Tabellen ligger på en mssql 7 server och datumet och tiden är sparade i en datetime variabel som har följande utseende: yyyy-mm-dd hh:mm:ss

Det jag inte får till är andra hälften av sql select satsen. Att köra datumet för sig verkar gå bra men inte tiden.

string sql = "SELECT * FROM " + m_TableName + " WHERE " +
"CONVERT(varchar(10),StartTime,120) >= '2005-03-07' AND " +
"CONVERT(varchar(10),StartTime,120) <= '2005-03-08' AND " +
"CONVERT(varchar(8),RIGHT(StartTime,8),120) >= '12:00:00' AND " +
"CONVERT(varchar(8),RIGHT(StartTime,8),120) <= '18:00:00'";



Svara

Sv: Sökning på datum och tid

Postades av 2005-03-14 15:27:47 - Pelle Johansson

Jag ser att du skriver varchar(8), då får inte tiden plats, öka till varchar(15) i stället


Svara

Sv: Sökning på datum och tid

Postades av 2005-03-14 15:35:39 - Johan Svensson

Hej,

Vad försöker du uppnå? Det ser ut som om du vill hitta ett intevall som är mellan samma tidpunkt varje dag. Om det är fallet så måste jag tänka till lite.

En annan tolkning är att du har en start tid (ex. 2005-03-07 12:00:00) och en sluttid (ex. 2005-03-08 18:00:00) som du vill att data skall falla inom. I detta scenario är det bara att skriva hela datumet i formatet "yyyy-mm-dd hh:mm:ss" och göra jämförelsen. Det behövs ingen convert eftersom det är så SQL server alltid lagrar data internt.

Alltså:

string sql = "SELECT * FROM " + m_TableName + " WHERE " +
"StartTime >= '2005-03-07 12:00:00' AND " +
"StartTime <= '2005-03-08 18:00:00'";



Lycka till!

// Johan


Svara

Sv:Sökning på datum och tid

Postades av 2005-03-14 15:49:39 - Mathias Bartoll

Okej, det kanske vart lite oklart med hårdkodade datum och tider. Dessa används bara nu vid testning och byts senare ut mot invariabler beroende på sökningen. Man ska kunna välja ett datumintervall och tidsintervall, exempelvis:

Datum: Från 2005-03-07 till 2005-03-14
Tid: Från 12:00:00 till 14:00:00

Resultatet av det skulle kunna vara:
2005-03-08 12:30:00
2005-03-12 13:50:00

Det hela bygger på en alarmlista där man vill kunna plocka ut exempelvis tre dagar i följd och se vad som hänt, säg mellan klockan 12 - 14 och utesluta resterande timmar på de dagarna.


Svara

Sv: Sökning på datum och tid

Postades av 2005-03-14 16:42:14 - Göran Andersson

> datumet och tiden är sparade i en datetime variabel som har följande utseende: yyyy-mm-dd hh:mm:ss

Ett vanligt missförstånd. Så är det faktiskt inte. Datatypen datetime har inget format över huvud taget. Det lagras internt som ett flyttal som är antalet dagar sedan 1899-12-31. Formatet bestäms när du konverterar värdet till en sträng.

Misstaget du gör är att konvertera värdet till en sträng utan att ange vilket format som ska användas, då bestämmer serverns landsinställningar formatet. När du använder sträng-funktionen right på datumet så konverteras det automatiskt till en sträng, utan att du kan ange formatet.

Lösningen är att först konvertera värdet till en sträng och sedan använda funktionen right:

RIGHT(CONVERT(varchar(19),StartTime,120),8)


Svara

Sv:Sökning på datum och tid

Postades av 2005-03-15 07:42:19 - Mathias Bartoll

Tack för alla snabba svar!
Görans svar fixade problemet!

Hälsningar
/Mathias


Svara

Sv:Sökning på datum och tid

Postades av 2005-03-15 10:56:04 - Marcus Gus

Det korrekta sättet för att jämföra datum är DateDiff metoden så att man slipper allt vad landsinställningar och localization heter.


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 619
27 953
271 709
580
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies