Jak zmienić daty za pomocą funkcji i operatorów w programie Access

Uwaga

Nazwa usługi Office 365 ProPlus została zmieniona na Aplikacje usługi Microsoft 365 dla przedsiębiorstw. Aby uzyskać więcej informacji na temat tej zmiany, przeczytaj ten wpis w blogu.

Ten artykuł dotyczy pliku bazy danych programu Microsoft Access (mdb) lub pliku bazy danych programu Microsoft Access (accdb) oraz pliku projektu programu Microsoft Access (adp).

Umiarkowany. Wymaga podstawowych umiejętności makr, kodowania i współdziałania.

Podsumowanie

W tym artykule opisano funkcje i operatory dostępne w programie Microsoft Office Access 2007, Microsoft Office Access 2003 i Microsoft Access 2002. Za pomocą tych funkcji i operatorów można zmienić typ danych Data/Godzina za pomocą przykładowych zapytań. Przykładowe zapytania, za pomocą których można zmienić wartości dat, używają tabel z przykładowej bazy danych Northwind.mdb.

Uwaga

Przykładowa baza danych Northwind dla programu Access 2007 nie używa tych samych pól co w starszych wersjach przykładowej bazy danych Northwind. W tabeli Pracownicy dołączonej do przykładowej bazy danych Northwind dla programu Access 2007 nie ma pól Data Zatrudnienia i DataUrodze. Nazwę pola IDENTYFIKATOR pracownika zmieniono na Identyfikator, a nazwę pola Imię na Imię.

Więcej informacji

Program Access udostępnia operatory i funkcje służące do sprawdzania poprawności lub zmieniania pól o typie danych Data/Godzina. W poniższych przykładowych zapytaniach są udostępniane manipulowanie datami, funkcje obliczeń i operatory porównania dostępne w programie Access.

Firma Microsoft podaje przykłady programowania tylko dla celów ilustracyjnych, nie udzielając żadnej rękojmi, wyrażonej wprost ani dorozumianej, w tym także, ale nie tylko, dorozumianej rękojmi co do przydatności handlowej lub do określonych celów. W tym artykule zakłada się, że czytelnik zna demonstrowany język programowania oraz narzędzia używane do tworzenia i debugowania procedur. Inżynierowie pomocy technicznej firmy Microsoft mogą pomóc w objaśnieniach funkcjonalności określonej procedury. Nie będą one jednak modyfikować tych przykładów w celu zapewnienia dodatkowych funkcji ani konstruowania procedur w celu spełnienia określonych wymagań.

Funkcja Date(), Now() i Format()

SELECT Date(), Now();

Funkcja Date() zwraca bieżącą datę w formacie daty krótkiej. Funkcja Now() zwraca bieżącą datę wraz z godziną.

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

Za pomocą funkcji Format() z wartościami dat można określić format daty, który ma być używany dla daty. To przykładowe zapytanie zwraca bieżącą datę w formacie daty długiej (01 grudnia 2003).

Day(), Funkcja WeekDay(), Funkcja Month() i Year()

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

Z tabeli Pracownicy to zapytanie zwraca datę zatrudnienia, dzień zatrudnienia, dzień tygodnia zatrudnienia, miesiąc zatrudnienia i rok zatrudnienia każdego pracownika. Zwróć uwagę, że funkcja WeekDay() zwraca wartość liczbową wskazującą dzień tygodnia.

DatePart(), funkcja

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

Z tabeli Pracownicy to zapytanie zwraca wszystkich pracowników, którzy urodzili się przed rokiem 1960. Funkcji DatePart() można użyć do wyodrębnienia części określonej daty, na przykład dnia, miesiąca lub roku.

DateDiff(), funkcja

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

To zapytanie z tabeli Pracownicy zwraca identyfikator pracownika, imię, datę urodzenia i wiek każdego pracownika. Funkcja DateDiff() zwraca różnicę lub czas zwłoki między dwiema określonymi wartościami daty (pod względem dnia, miesiąca, roku lub jednostek czasu, takich jak godziny, minuty i sekundy).

DateAdd()

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

Z tabeli Pracownicy to zapytanie zwraca identyfikator pracownika, imię, datę zatrudnienia i datę zakończenia przez pracownika 10 lat pracy w firmie. Funkcja DateAdd() zwiększa datę o określoną liczbę jednostek czasu, takich jak dzień, miesiąc lub rok, a następnie zwraca wartość wynikową.

Wartość liczbową można dodać bezpośrednio do wartości daty. Wykonaj tę czynności, aby zwiększyć wartość daty o jeden dzień, jak w poniższym przykładzie:

SELECT Date() + 1 ;

To zapytanie zwiększa bieżącą datę o jeden dzień, a następnie zwraca wynikową wartość daty.

DateValue(), funkcja

SELECT DateValue("20 lis 2003") JAKO prawidłowyDate;

Funkcja DateValue() sprawdza, czy ciąg wejściowy jest prawidłową datą. Jeśli ciąg wejściowy zostanie rozpoznany jako prawidłowa data, data jest zwracana w formacie daty krótkiej. Jeśli ciąg wejściowy nie zostanie rozpoznany jako prawidłowa data, zostanie zwrócona instrukcja "Niezgodność typu danych w wyrażeniu kryterium". Funkcja DateValue() rozpoznaje różne formaty daty, takie jak mm dd yy, dd mm yy, dd mmm yyyy i dd mmm yy gg:mm:ss format daty długiej.

DateSerial()

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

Funkcja DateSerial() zwraca wartość daty dla określonych parametrów wejściowych roku, miesiąca i dnia. Parametry wejściowe mogą być wyrażeniami, które wymagają operacji arytmetycznych. Funkcja DateSerial() oblicza wyrażenia w parametrach wejściowych, zanim zwraca wynikową wartość daty.

To przykładowe zapytanie zwraca ostatni dzień lutego 2003. Ostatni parametr wejściowy dnia z wartością 1 jest zmniejszany o 1. Wynikiem jest to, że parametr month jest szacowany jako 2.

Używanie operatorów porównania z wartościami dat

Za pomocą następujących operatorów porównania można porównywać wartości dat w wyrażeniach i zapytaniach:

  • < (mniejsze niż)
  • > (większa niż)
  • <= (mniejsze lub równe)
  • >= (większe lub równe)
  • <> (nie równa się)
SELECT * FROM Employees
WHERE HireDate >= DateValue(" 10/01/1993")
AND HireDate <= DateValue("12/31/1993");

To zapytanie używa operatora porównania >= oraz operatora <= porównania, aby sprawdzić, czy data zatrudnienia pracownika należy do zakresu dwóch określonych dat. To zapytanie pobiera rekordy wszystkich pracowników, którzy zostali zatrudnieni w ostatnim kwartale roku kalendarzowego 1993.

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

To zapytanie pobiera rekord wszystkich pracowników, którzy mają datę zatrudnienia nie równą dacie bieżącej, za pomocą operatora porównania.

WeekdayName()

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

Funkcja WeekdayName() zwraca ciąg wskazujący dzień tygodnia, zgodnie z ustawieniami pierwszego parametru. Zwracany dzień tygodnia zależy od trzeciego parametru. Ten parametr ustawia pierwszy dzień tygodnia. Drugi parametr ma ustawioną wartość Fałsz, aby wskazać, że nie można skrócono nazwy dnia tygodnia.

To przykładowe zapytanie zwraca wartość Niedziela jako pierwszy dzień tygodnia.

MonthName(), funkcja

SELECT MonthName(1);

Funkcja MonthName() zwraca ciąg wskazujący nazwę miesiąca dla określonego numeru miesiąca z zakresie od 1 do 12. Parametrem wejściowym może być również wyrażenie, jak w następującym zapytaniu:

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

To zapytanie zwraca nazwę bieżącego miesiąca.

Informacje

Aby uzyskać więcej informacji, kliknij następujące numery artykułów, aby wyświetlić artykuły z bazy wiedzy Microsoft Knowledge Base:

  • 290178 Jak utworzyć zapytanie z parametrami do oceny złożonych kryteriów w programie Microsoft Access
  • 290190 Jak utworzyć dwie funkcje do obliczania wieku w miesiącach i latach w programie Microsoft Access