Jak wprowadzić zmianę dat przy użyciu funkcji i operatorów w programie Access

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

Umiarkowane: wymaga podstawowych umiejętności w zakresie makra, 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ą funkcji i operatorów można wprowadzić zmianę typu danych data/godzina przy użyciu przykładowych zapytań. Przykładowe zapytania, których można użyć do wprowadzenia zmiany wartości daty, używają tabel w przykładowej bazie danych Northwind.mdb.

Uwaga

Przykładowa baza danych northwind dla programu Access 2007 nie używa tych samych pól, co wcześniejsze wersje przykładowej bazy danych northwind. W tabeli Employees nie ma pól HireDate i BirthDate dołączonych do przykładowej bazy danych northwind dla programu Access 2007. Nazwa pola EmployeeID została zmieniona na Identyfikator, a nazwa pola FirstName została zmieniona na Imię.

Więcej informacji

Program Access udostępnia operatory i funkcje umożliwiające weryfikowanie lub wprowadzanie zmian w polach z typem danych data/godzina. W poniższych przykładowych zapytaniach używane są manipulacje datami, funkcje obliczania 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. Wykwalifikowani pracownicy Pomocy technicznej firmy Microsoft mogą pomóc w wyjaśnieniu działania określonej procedury. Nie będą oni jednak modyfikować tych przykładów w celu dodania funkcji ani konstruować nowych procedur celem dostosowania ich do potrzeb użytkownika.

Date(), funkcja Now() i funkcja Format()

SELECT Date(), Now();

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

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

Możesz użyć funkcji Format() z wartościami daty, aby określić format daty, którego chcesz użyć dla daty. To przykładowe zapytanie zwraca bieżącą datę w formacie daty długiej (01 grudnia 2003 r.).

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 Employees (Pracownicy) to zapytanie zwraca datę zatrudnienia, dzień zatrudnienia, dzień tygodnia zatrudnienia, miesiąc zatrudnienia i rok zatrudnienia dla każdego pracownika. Zwróć uwagę, że funkcja WeekDay() zwraca wartość liczbową, która wskazuje dzień tygodnia.

DatePart() , funkcja

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

Z tabeli Employees (Pracownicy) to zapytanie zwraca wszystkich pracowników, którzy urodzili się przed rokiem 1960. Funkcja DatePart() może służyć do wyodrębniania części określonej daty, takiej jak dzień, miesiąc lub rok.

DateDiff() , funkcja

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

Z tabeli Employees (Pracownicy) to zapytanie zwraca identyfikator pracownika, imię, datę urodzenia i wiek każdego pracownika. Funkcja DateDiff() zwraca różnicę lub opóźnienie czasu 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(), funkcja

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

Z tabeli Employees (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 wynikową wartość.

Możesz bezpośrednio dodać wartość liczbową do wartości daty. Zrób to, aby zwiększać wartość daty o 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") AS ValidDate;

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

DateSerial(), funkcja

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 obejmują operacje arytmetyczne. Funkcja DateSerial() oblicza wyrażenia w parametrach wejściowych, zanim zwróci wynikową wartość daty.

To przykładowe zapytanie zwraca ostatni dzień w miesiącu lutym dla roku 2003. Ostatni parametr wejściowy dnia o wartości 1 jest zwiększany o 1. W rezultacie parametr miesiąca jest oceniany na wartość 2.

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

Następujące operatory porównania umożliwiają porównywanie wartości dat w wyrażeniach i zapytaniach:

  • < (mniej niż)
  • > (większe niż)
  • <= (mniejsze niż lub równe)
  • >= (większe niż 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 = i <operatora porównania = w celu sprawdzenia, czy data zatrudnienia pracownika mieści się w zakresie dwóch określonych dat. To zapytanie pobiera rekordy wszystkich pracowników zatrudnionych w ostatnim kwartale roku kalendarzowego 1993.

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

To zapytanie używa operatora porównania nierówności, aby pobrać rekordy wszystkich pracowników, którzy mają datę zatrudnienia, która nie jest równa bieżącej dacie.

WeekdayName() , funkcja

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

Funkcja WeekdayName() zwraca ciąg wskazujący dzień tygodnia określony w pierwszym parametrze. Zwracany ciąg dnia tygodnia zależy od trzeciego parametru. Ten parametr ustawia pierwszy dzień tygodnia. Drugi parametr jest ustawiony na wartość False, aby określić, że nazwa dnia tygodnia nie może być skrócona.

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

MonthName() , funkcja

SELECT MonthName(1);

Funkcja MonthName() zwraca ciąg, który wskazuje nazwę miesiąca dla określonego numeru miesiąca z zakresu od 1 do 12. Parametr wejściowy może być również wyrażeniem, 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 w bazie wiedzy Microsoft Knowledge Base:

  • 290178 Jak utworzyć zapytanie, które ma parametry 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