Datum från år, månad, dag i sql
Hey!
Har stött på ett problem som jag hoppas kan lösas. Jag försöker från en Access databas hämta värden för år, månad, dag som ett giltigt datum och sedan köra en WHERE med det datumet. Nedan en felaktigt fråga för att illustrera problemet. Kan man kanske använda DateValue() eller DateSerial() för detta på något sätt?
sQuery = "SELECT (dtYear &'-'& dtMonth &'-'& dtDay) AS dtDate FROM databas WHERE dtDate ...osv..."
Är det kört eller går det att lösa?
Tacksam för hjälp!
Svara
Sv: Datum från år, månad, dag i sql
En dum fråga, men varför kör du på det viset?
Har jag förstått det hela rätt om jag säger att du har följande kolumner i din databas?
dtYear / Text
dtMonth / Text
dtDay / Text
dtDate / Datum/Tid
Svara
Sv:Datum från år, månad, dag i sql
Ärligt talat vet jag inte riktigt varför databasen ser ut så... Antagligen för att krångla till det. Jag vet att det är oerhört dumt men vad gör man såhär i efterhand? Tror dock att jag lägger ihop dessa fält till ett datumfält i databasen istället.
I alla fall ser databasen ut som följer:
dtYear - int
dtMonth - int
dtDay - int
Och av detta vill jag, med en sql-fråga ha ut ett giltigt datum. Hade fått för mig att det skulle gå, men det kanske det inte gör. Inte någon som vet?
Svara
Sv: Datum från år, månad, dag i sql
1 | "SELECT DateSerial(dtYear, dtMonth, dtDay) AS dtDate FROM databas" |
Eller
1 | "SELECT CDate(dtYear & " / " & dtMonth & " / " & dtDay) AS dtDate FROM databas" |
Skulle jag chansa på.
Eventuellt kan du inte använda dtDate i where satsen. Utan måste upprepa vilkoret:
1 | "SELECT CDate(dtYear & " / " & dtMonth & " / " & dtDay) AS dtDate FROM databas WHERE CDate(dtYear & " / " & dtMonth & " / " & dtDay) ..." |
Svara
Sv:Datum från år, månad, dag i sql
Ahh.. Det var nog WHERE-satsen jag inte fick till det riktigt. Har försökt på alla sätt och vis med DateSerial() och CDate(), och även DateValue(), utan framgång. Har inte möjlighet att testa just nu men jag ska göra det vid tillfälle.
Tackar så mycket!
/J
Svara
Sv:Datum från år, månad, dag i sql
Precis som jag misstänkte, och som du skrev, det var i WHERE-satsen problemet låg. Jag var alltså tvungen att upprepa villkoret i WHERE-satsen som du skrev i tredje exemplet.
Tack igen för att du fick mig komma in på rätt spår.
/J
Svara