webForumDet fria alternativet

Jämföra datum

6 svar · 642 visningar · startad av annesophie

annesophieMedlem sedan juni 20012 236 inlägg
#1

Behöver hjälp med en SQL-sats.

Har i databasen rader över besökare på sidan. Varje besök på en undersida registreras med bla datum.

Nu vill jag skicka ett mail som listar alla besökare som kommit in via en viss domän, i detta fallet https://www.xxxxxx.co.uk, IDAG.
I tabellen [track] finns fältet dateNow (textfält) som sparar ner now(), alltså tex 2007-01-12 13:27:31.

Jag vill sonika välja ut dagens besökare men får inte till kollen av datum. Har nu testat att formatera på olika sätt men det vill sig inte.

Hur ska jag skriva för att få att i korthet få fram WHERE dateNow = dagens datum (2007-01-12)?

Help.

@ndersMedlem sedan juni 200032 969 inlägg
#2

Varför i hela *** sparar du datum i textfält? Det får du inte göra.
Datum skall lagras i fält av datumtyp, annars kan du aldrig använda informationen.

Gör om, gör rätt. :)

annesophieMedlem sedan juni 20012 236 inlägg
#3

*suckar*

*snyft*

Förlåt. :-(
Får väl försöka att ändra det först då...

@ndersMedlem sedan juni 200032 969 inlägg
#4

Det är inte mig du ska be om förlåtelse, utan den stackare som ska tvingas skriva SQL-frågor mot datum som ligger lagrade i textfält. :)

Anledningar:

  1. olika maskiner använder olika datumformat beroende på regionala inställningar eller lcid-inställningar i koden. Det innebär att risk finns att du får flera olika datumformat lagrade.
  2. du kan inte använda datum- och tid-funktioner i SQL-frågorna. Ligger datum i datumfält är det enkelt att lösa ditt problem (men hur SQL-frågan ska se ut kan bero lite på vilken dbms du använder. Ta för vana att alltid skriva det!)

mvh

annesophieMedlem sedan juni 20012 236 inlägg
#5

Så...jag har nu ändrat så att fältet dateNow är datum/tid och inget annat. Så ska det självfallet vara. ;-)

I tabellen [track] finns fältet dateNow (datum/tid) som sparar ner now(), alltså t ex 2007-01-12 13:27:31.

Jag vill sonika välja ut dagens besökare men får inte till kollen av datum. Har nu testat att formatera på olika sätt men det vill sig inte.

Hur ska jag skriva för att få att i korthet få fram:
WHERE dateNow = dagens datum (2007-01-15)?

Databasen är en Access och jag försöker få till detta med vanlig sketen asp.

@ndersMedlem sedan juni 200032 969 inlägg
#6
... WHERE year(dateNow) = year(now()) AND month(dateNow) = month(now()) AND day(dateNow) = day(now())

Eventuellt finns också någon funktion i access för att endast använda datumdelen av datum+tid, men det känner jag inte till.

annesophieMedlem sedan juni 20012 236 inlägg
#7

@nders skrev:

... WHERE year(dateNow) = year(now()) AND month(dateNow) = month(now()) AND day(dateNow) = day(now())

Eventuellt finns också någon funktion i access för att endast använda datumdelen av datum+tid, men det känner jag inte till.

Tack! Du är som vanligt en ÄNGEL. :f

Jag ska bara testa lite så att jag ser att allt funkar innan jag accepterar svaret.

123 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
121 ms — hämta tråd, inlägg och bilagor (db)