Dum fråga, men jag lyckas inte: Mitt förslag: Tack, Andreas, för svar - och för tålamod! Jag utgår från DateAdd() funktionen. Vilket har följande interval argument: Nä, det funkar inte för mig. Du får bara ut nästa tillfälle. Du kan använda datastrukturen för att med kod avgöra när den innfaller t. ex. 2010. Men du får inte resultatet med en SQL fråga. Jag blir kanske inte särskilt mycket klokare, men det får vi leva med. Vi avslutar den här frågan.Datumberäkning
Jag har ett datum, ex 2003-05-29, och vill skapa en påminnelse 1 år senare, 2 år senare etc.
Fältet heter DatumHändelse och har formatet Datum/Tid (kort datum)
"Påminnelsefälten" heter DatumHändelse1År, DatumHändelse2År, etc.
Det skall finnas något med DateSerial, men jag får det inte att funka.
Som alltid, tacksam för svar
AnnikaSv: Datumberäkning
Tabell: Reminders
Fält: ReminderId int (auto inc)
Fält: ReminderTimeOut datetime
Fält: ReminderInterval varchar(4)
Fält: ReminderPeriodicity int
Följande fråga uppdaterar poster som förvalit:
<code>
UPDATE Reminders SET ReminderTimeOut = DateAdd(ReminderInterval, ReminderPeriodicity, ReminderTimeOut)
WHERE ReminderTimeOut < Now() AND Not (ReminderInterval IS Null OR ReminderPeriodicity IS Null)
</code>Sv: Datumberäkning
Intervallet skall vara ett år i Fält: ReminderInterval varchar(4), men hur knappar jag in det? Något i stil med (1,0,0) eller...?
MVH AnnikaSv: Datumberäkning
<info>
The interval argument has these settings:
Setting Description
yyyy Year
q Quarter
m Month
y Day of year
d Day
w Weekday
ww Week
h Hour
n Minute
s Second
</info>
IGentligen heter andra argumentet number. men jag tycker det är för intetsägande så jag valde istället Periodicity. Men jag tycker "Periodicity" är ett mer passande namn för första argumentet i DateAdd() funktionen.
Så du kan ju istället byta betydelse och datatyp mellan fälten:
<info>
Fält: ReminderId int (auto inc)
Fält: ReminderMessage varchar(20)
Fält: ReminderTimeOut datetime
Fält: ReminderPeriodicity varchar(4)
Fält: ReminderInterval int
</info>
Exempel data:
<info>
ReminderId ReminderMessage ReminderTimeOut ReminderPeriodicity ReminderInterval
1, "Glöm inte gratulera Andreas på hans födelsedag", "2004-07-10 12:00:00", "yyyy", 1
2, "Lönen kommer in på kontot", "2004-05-25", "m", 1
3, "Scrubs på ZTV tisdagar 20:30", "2004-05-25 20:30:00", "ww", 1
</info>
Förändrad SQL fråga:
<code>
UPDATE Reminders SET ReminderTimeOut = DateAdd(ReminderPeriodicity, ReminderInterval, ReminderTimeOut)
WHERE ReminderTimeOut < Now() AND Not (ReminderInterval IS Null OR ReminderPeriodicity IS Null)
</code>Sv: Datumberäkning
Fälten ser ut så här:
ReminderId Räknare
ReminderMessage Text
ReminderTimeOut Datum/Tid
ReminderPeriodicity Text
ReminderInterval Tal
Exempel på vad jag skriver in:
Som ReminderMessage ”Stinas födelsedag”
Som ReminderTimeOut 2004-03-15
Som ReminderPeriodicity ”yyyy” [Fråga: Skall jag skriva med eller utan citationstecken?]
Och som ReminderInterval 3
Vad jag vill få ut är Stinas födelsedag år 2005, år 2006, år 2007 (naturligtvis tillsammans med alla andra människors födelsedagar spridda över året och åren).
Vad gör jag för fel?
AnnikaSv: Datumberäkning
Det kräver i så fall att du skapar en post för varje år. Vilket jag tycker är fel sätt att gå till vidare. Du kna istället använda dig av Monthviewkontrollen och fylla den med kod.Sv: Datumberäkning
Tack för alla inlägg.
MVH
Annika