Så här ändrar du datum med hjälp av funktioner och operatorer i Access

Anteckning

Office 365 ProPlus byter namn till Microsoft 365-appar för företag. Mer information om den här ändringen finns i det här blogginlägget.

Den här artikeln gäller antingen en Microsoft Access-databasfil (.mdb) eller en Microsoft Access-databasfil (.accdb) och en Microsoft Access-projektfil (.adp).

Måttlig: Kräver grundläggande makron, kodning och kompatibilitetsfärdigheter.

Sammanfattning

I den här artikeln beskrivs de funktioner och operatorer som är tillgängliga i Microsoft Office Access 2007, Microsoft Office Access 2003 och Microsoft Access 2002. Du kan använda funktionerna och operatorerna för att ändra datatypen Datum/tid med hjälp av exempelfrågor. I de exempelfrågor som du kan använda för att ändra datumvärdena används tabellerna i Northwind.mdb-exempeldatabasen.

Anteckning

Northwind-exempeldatabasen för Access 2007 använder inte samma fält som i tidigare versioner av Northwind-exempeldatabasen. Det finns inga anställningsdatum och födelsedatum i tabellen Anställda som ingår i Northwind-exempeldatabasen för Access 2007. Fältet EmployeeID har bytt namn till ID och fältet Förnamn har bytt namn till Förnamn.

Mer information

I Access finns operatorer och funktioner för att verifiera eller göra ändringar i fälten med datatypen Datum/tid. I följande exempelfrågor används datumfördr dess manipulering, beräkningsfunktioner och jämförelseoperatorer som är tillgängliga i Access.

Microsoft tillhandahåller programmeringsexempel enbart i förklarande syfte och gör inga utfästelser, varken uttryckligen eller underförstått. Detta omfattar men begränsas inte till underförstådd garanti för säljbarhet eller lämplighet för ett visst syfte. I denna artikel förutsätts att du känner till det programmeringsspråk som demonstreras och de verktyg som används för att skapa och felsöka procedurer. Microsofts supporttekniker kan hjälpa dig att förklara funktionaliteten i en viss procedur. De ändrar dock inte de här exemplen för att ge ytterligare funktioner eller skapa procedurer så att de uppfyller dina specifika krav.

Funktionen Datum(), funktionen Nu() och funktionen Format()

SELECT Date(), Now();

Funktionen Datum() returnerar dagens datum i kort datumformat. Funktionen Nu() returnerar dagens datum med tiden.

SELECT Format(Now(), "dd mmmm yyyy");

Du kan använda funktionen Format() med datumvärden för att ange det datumformat du vill använda för datumet. Den här exempelfrågan returnerar dagens datum i långt datumformat (01 december 2003).

Funktionen Dag(), Funktionen Veckodag(), funktionen Månad() och Funktionen År()

SELECT HireDate, Day(HireDate) AS Day,
Weekday(HireDate) AS WeekDay,
Month(HireDate) AS Month, Year(HireDate) AS Year 
FROM Employees;

I tabellen Anställda returnerar den här frågan anställningsdatumet, anställningsdatumet, veckodagen, anställningsmånaden och anställningsdatumet för varje anställd. Observera att funktionen Veckodag() returnerar ett numeriskt värde som anger veckodagen.

Funktionen DatumDel()

SELECT *  FROM Employees
WHERE DatePart("yyyy", BirthDate) < 1960;

Från tabellen Anställda returnerar den här frågan alla anställda som föddes före år 1960. Funktionen DatumDel() kan användas för att extrahera en del av det angivna datumet, till exempel dag, månad eller år.

Funktionen DatumDiff()

SELECT EmployeeID, FirstName, BirthDate,
DateDiff("yyyy", BirthDate, Date()) AS Age
FROM Employees;

Från tabellen Anställda returnerar den här frågan anställnings-ID, förnamn, födelsedatum och åldern för varje anställd. Funktionen DatumDiff() returnerar skillnaden eller tidsfördröjning mellan de två angivna datumvärdena (som dag, månad, år eller tidsenheter, t.ex. timmar, minuter och sekunder).

Funktionen DatumAdd()

SELECT EmployeeID, FirstName, HireDate,
DateAdd("yyyy", 10, HireDate)
FROM Employees;

I tabellen Anställda returnerar den här frågan anställnings-ID, förnamn, anställningsdatum och det datum då den anställde slutar 10 års tjänst inom företaget. Funktionen DatumTillägg() ökar ett datum med ett angivet antal tidsenheter, till exempel en dag, en månad eller ett år, och returnerar sedan det resulterande värdet.

Du kan lägga till ett numeriskt värde i ett datumvärde direkt. Gör så här för att öka datumvärdet med en dag, som i följande exempel:

SELECT Datum() + 1 ;

Den här frågan ökar det aktuella datumet med en dag och returnerar sedan det resulterande datumvärdet.

Funktionen DatumVärde()

SELECT DateValue("20 Nov 2003") AS ValidDate;

Funktionen DatumVärde() verifierar om indatasträngen är ett giltigt datum. Om indatasträngen känns igen som ett giltigt datum returneras datumet i kort datumformat. Om indatasträngen inte kan identifieras som ett giltigt datum returneras uttrycket "Typfelmatchning i villkorsuttryck". Funktionen DatumVärde() identifierar en mängd olika datumformat, till exempel mm dd yyyy, dd mm yyyy, dd mmm yyyy och dd mmm yyyy hh:mm:ss långt datumformat.

Funktionen DatumSerial()

SELECT DateSerial( 2003, 03, 1-1);

Funktionen DatumSerial() returnerar datumvärdet för angivna indataparametrar för år, månad och dag. Indataparametrar kan vara uttryck som innefattar arithmetiska åtgärder. Funktionen DatumSerial() utvärderar uttrycken i indataparametrar innan den returnerar det resulterande datumvärdet.

Den här exempelfrågan returnerar den sista dagen i februari för år 2003. Den sista indataparametern för dagen med värdet 1 minskas med 1. Resultatet är att månadsparametern utvärderas till 2.

Använda jämförelseoperatorer med datumvärden

Du kan använda följande jämförelseoperatorer för att jämföra datumvärden i uttryck och i frågor:

  • < (mindre än)
  • > (större än)
  • <= (mindre än eller lika med)
  • >= (större än eller lika med)
  • <> (inte lika med)
SELECT * FROM Employees
WHERE HireDate >= DateValue(" 10/01/1993")
AND HireDate <= DateValue("12/31/1993");

I den här frågan används >= jämförelseoperatorn och <= jämförelseoperatorn för att verifiera om anställningsdatumet för den anställde faller inom intervallet mellan de två angivna datumen. Den här frågan hämtar poster för alla anställda som anställts under det sista kvartalet under kalenderåret 1993.

SELECT * FROM Employees
WHERE HireDate <> Date();

Den här frågan använder jämförelseoperatorn för injämförelse för att hämta poster för alla anställda som har ett anställningsdatum som inte är lika med dagens datum.

Funktionen WeekdayName()

SELECT WeekdayName(1, False, 1) AS FirstWeekDayName;

Funktionen WeekdayName() returnerar en sträng som anger veckodagen, enligt givna i den första parametern. Vilken dag i veckans sträng som returneras beror på den tredje parametern. Den här parametern anger veckans första dag. Den andra parametern anges till False för att ange att veckodagens namn inte får förkortas.

I den här exempelfrågan returneras värdet söndag som den första dagen i veckan.

Funktionen MonthName()

SELECT MonthName(1);

Funktionen MonthName() returnerar en sträng som anger månadsnamnet för det angivna månadsnumret från 1 till 12. Indataparametern kan också vara ett uttryck, som i följande fråga:

SELECT MonthName( DatePart("m", Date()) );

Den här frågan returnerar namnet på den aktuella månaden.

Referenser

Om du vill ha mer information klickar du på följande artikelnummer för att visa artiklarna i Microsoft Knowledge Base:

  • 290178 Skapa en fråga som har parametrar för att utvärdera komplexa villkor i Microsoft Access
  • 290190 Skapa två funktioner för att beräkna ålder i månader och år i Microsoft Access