lageMedlem sedan okt. 20017 inlägg Kan man sortera datum i SQL-satser?
Jag har försökt genom att skriva "WHERE födelsedag > now()" (födelsedag = date/time), men jag får bara type mismatch error.
Är det det någon som försökt sig på att sortera den senaste månadens födelsedagsdatum i SQL, alltså de datum som kommer då en person fyller år? Hur gör man vid årsbyten?
Här är mitt obearbetade, frustrerade förslag. Det tar fram två datum, det nuvarande årets firardag och kommande årets dito, men jag vet inte hur jag skall sortera dem.
nuvarande år: "SELECT *, DateAdd('yyyy',Year(Now())-Year([födelsedag]), [födelsedag] ) AS detta_år FROM kontakt WHERE födelsedag Is Not Null ORDER BY Month([födelsedag]) , day([födelsedag])"
kommande år: "SELECT *, DateAdd('yyyy',Year(Now())-Year([födelsedag]), [födelsedag] ) AS nästa_år FROM kontakt WHERE födelsedag Is Not Null ORDER BY Month([födelsedag]) , day([födelsedag])"
Säg att det är den 20 december. Då vill jag att den skall visa födelsedagar från den 21 november till den 19 januari, nästa år, men min sorteringsordning slutar vid årets slut. Jag vill ha EN SQL-sats för både nuvarande och kommande år.
PatrikBMedlem sedan mars 20002 836 inlägg Testa:
strSQL = "SELECT * FROM TBL_TABLE WHERE FLD_DAT_FIELD >= #" & Date() & "# AND FLD_DAT_FIELD < #" & DateAdd("yyyy",1,Date()) & "#"
cya,
PatrikB
------------------
*ordning och reda!, pengar på fredag.*
lageMedlem sedan okt. 20017 inlägg Tack för hjälpen en bit på vägen.
Problemet är bara att din SQL-kod inte sorterar efter de kommande födelsedagar vare sig detta kommande eller nästa år.
Jag vill veta hur man sorterar.
En annan sak som jag glömde att skriva är att födelsedagarna = dagen då de föddes.
Hur göra?
LarsGMedlem sedan dec. 200012 464 inlägg SELECT cdate(cstr(iif(year(dateadd('M',1,[fvdelsedag]))=year([fvdelsdag]),
year(now()),year(now())+1)) & '-' & cstr(month([fvdelsedag])) & '-' & cstr(day([fvdelsedag])\
))
as fvdelsedag
FROM kontakt
WHERE [fvdelsedag] Is Not Null
AND dateadd('M',-1,now())
between cdate(cstr(year(now)) & '-' & cstr(month([fvdelsedag])) & '-' & cstr(day([fvdelsedag]))
and dateadd('M',1,now())
ORDER BY Month([fvdelsedag]) , day([fvdelsedag])
Uttrycket i select-listan kanske är lite krångligt (och möjligen felaktigt) så du kan ju bara välja födelsedag så länge och se att du får ut rätt data.
------------------
essentitia preter non sans multiplicandum