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

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

Måttlig: Kräver grundläggande kunskaper om makron, kodning och samverkan.

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 göra en ändring av datatypen Datum/tid med hjälp av exempelfrågor. De exempelfrågor som du kan använda för att ändra datumvärdena använder tabellerna i Northwind.mdb exempeldatabas.

Obs!

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

Mer information

Access tillhandahåller 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 datummanipuleringar, 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 förklara hur en viss procedur fungerar, men de ändrar inte exemplen för att utöka funktionerna och konstruera procedurer som motsvarar dina behov.

Funktionen Date(), funktionen Now() och funktionen Format()

SELECT Date(), Now();

Funktionen Date() returnerar det aktuella datumet i kort datumformat. Funktionen Now() returnerar det aktuella datumet med tiden.

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

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

Funktionen Day(), funktionen WeekDay(), funktionen Month() och funktionen Year()

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ällningsdatum, anställningsdag, veckodag för anställning, anställningsmånad och anställningsår för varje anställd. Observera att funktionen WeekDay() returnerar ett numeriskt värde som anger veckodagen.

Funktionen DatePart()

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 DatePart() kan användas för att extrahera den del av det angivna datumet, till exempel dag, månad eller år.

Funktionen DateDiff()

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

Från tabellen Anställda returnerar den här frågan medarbetar-ID, förnamn, födelsedatum och ålder för varje anställd. Funktionen DateDiff() returnerar skillnaden eller tidsfördröjningen mellan de två angivna datumvärdena (när det gäller dag, månad, år eller tidsenheter, till exempel timmar, minuter och sekunder).

Funktionen DateAdd()

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

Från tabellen Anställda returnerar den här frågan medarbetar-ID, förnamn, anställningsdatum och det datum då medarbetaren har slutfört 10 års tjänst med företaget. Funktionen DateAdd() ö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 till ett datumvärde direkt. Gör detta för att öka datumvärdet med en dag, som i följande exempel:

SELECT Date() + 1 ;

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

Funktionen DateValue()

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

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

Funktionen DateSerial()

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

Funktionen DateSerial() returnerar datumvärdet för de angivna indataparametrarna för år, månad och dag. Indataparametrarna kan vara uttryck som omfattar aritmetiska åtgärder. Funktionen DateSerial() utvärderar uttrycken i indataparametrarna innan den returnerar det resulterande datumvärdet.

Den här exempelfrågan returnerar den sista dagen i februari månad för år 2003. Den sista indataparametern för dagen med värdet 1 minskas med 1. Resultatet är att parametern month 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");

Den här frågan använder operatorn >= jämförelse och <= jämförelseoperatorn för att kontrollera om anställningsdatumet för medarbetaren ligger inom intervallet för de två angivna datumen. Den här frågan hämtar poster för alla anställda som anställdes under det sista kvartalet av kalenderåret 1993.

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

Den här frågan använder jämförelseoperatorn för olikhet för att hämta poster för alla anställda som har ett anställningsdatum som inte är lika med det aktuella datumet.

Funktionen WeekdayName()

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

Funktionen WeekdayName() returnerar en sträng som anger veckodagen, enligt vad som anges i den första parametern. Veckodagsträngen som returneras beror på den tredje parametern. Den här parametern anger den första dagen i veckan. Den andra parametern är inställd på False för att ange att veckodagsnamnet inte får förkortas.

Den här exempelfrågan returnerar värdet Sunday (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 Så här skapar du en fråga som har parametrar för att utvärdera komplexa kriterier i Microsoft Access
  • 290190 Så här skapar du två funktioner för att beräkna ålder i månader och år i Microsoft Access