Como fazer uma alteração às datas com funções e operadores no Access

Este artigo aplica-se a um ficheiro de base de dados do Microsoft Access (.mdb) ou a um ficheiro de base de dados do Microsoft Access (.accdb) e a um ficheiro de projeto do Microsoft Access (.adp).

Moderado: requer competências básicas de macro, codificação e interoperabilidade.

Resumo

Este artigo descreve as funções e os operadores disponíveis no Microsoft Office Access 2007, no Microsoft Office Access 2003 e no Microsoft Access 2002. Pode utilizar as funções e os operadores para efetuar uma alteração ao tipo de dados Data/Hora através de consultas de exemplo. As consultas de exemplo que pode utilizar para fazer uma alteração aos valores de data utilizam as tabelas no Northwind.mdb base de dados de exemplo.

Nota

A base de dados de exemplo da Northwind para o Access 2007 não utiliza os mesmos campos que as versões anteriores da base de dados de exemplo northwind. Não existem campos HireDate e BirthDate na tabela Employees (Funcionários) incluídos na base de dados de exemplo northwind para o Access 2007. O nome do campo EmployeeID foi mudado para ID e o campo NomePróprio foi mudado para Nome Próprio.

Mais Informações

O Access fornece operadores e funções para validar ou efetuar uma alteração aos campos com o tipo de dados Data/Hora. As consultas de exemplo seguintes utilizam as manipulações de data, as funções de cálculo e os operadores de comparação disponíveis no Access.

A Microsoft fornece exemplos de programação apenas a título informativo, sem qualquer garantia expressa ou implícita, incluindo, sem limitações, as garantias implícitas de comercialização e/ou adequação a um fim específico. Este artigo pressupõe que o utilizador está familiarizado com a linguagem de programação demonstrada e as ferramentas utilizadas para criar e depurar procedimentos. Os engenheiros de suporte da Microsoft podem ajudar a explicar a funcionalidade de um procedimento específico. No entanto, não modificarão estes exemplos para proporcionarem funcionalidades adicionais nem criarão procedimentos adaptados às suas necessidades específicas.

Função Date(), Função Now() e Função Format()

SELECT Date(), Now();

A função Date() devolve a data atual no formato de data abreviada. A função Now() devolve a data atual com a hora.

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

Pode utilizar a função Format() com valores de data para especificar o formato de data que pretende utilizar para a data. Esta consulta de exemplo devolve a data atual no formato de data longa (01 de dezembro de 2003).

Função Day(), função WeekDay(), Função Month() e Year()

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

Na tabela Colaboradores, esta consulta devolve a data de contratação, o dia de contratação, o dia da semana de contratação, o mês de contratação e o ano de contratação de cada colaborador. Repare que a função WeekDay() devolve um valor numérico que indica o dia da semana.

Função DatePart()

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

Na tabela Funcionários, esta consulta devolve todos os colaboradores que nasceram antes do ano de 1960. A função DatePart() pode ser utilizada para extrair a parte da data especificada, como o dia, o mês ou o ano.

Função DateDiff()

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

Na tabela Funcionários, esta consulta devolve o ID do funcionário, o nome próprio, a data de nascimento e a idade de cada funcionário. A função DateDiff() devolve a diferença ou o atraso de tempo entre os dois valores de data especificados (em termos do dia, do mês, do ano ou das unidades de hora, como horas, minutos e segundos).

Função DateAdd()

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

Na tabela Funcionários, esta consulta devolve o ID do colaborador, o nome próprio, a data de contratação e a data em que o funcionário termina 10 anos de serviço com a empresa. A função DateAdd() incrementa uma data por um número especificado de unidades de tempo, como um dia, um mês ou um ano e, em seguida, devolve o valor resultante.

Pode adicionar um valor numérico a um valor de data diretamente. Faça-o para incrementar o valor de data por dia, tal como no exemplo seguinte:

SELECT Date() + 1 ;

Esta consulta incrementa a data atual por um dia e, em seguida, devolve o valor de data resultante.

Função DateValue()

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

A função DateValue() verifica se a cadeia de entrada é uma data válida. Se a cadeia de entrada for reconhecida como uma data válida, a data é devolvida no formato de data abreviada. Se a cadeia de entrada não for reconhecida como uma data válida, é devolvida a instrução "Erro de correspondência do tipo de dados na expressão de critérios". A função DateValue() reconhece uma variedade de formatos de data, tais como mm dd aaaa, dd mmyyy, dd mmm aaaa e dd mmm aaaa hh:mm:ss formato de data longo.

Função DateSerial()

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

A função DateSerial() devolve o valor de data para os parâmetros de entrada especificados de ano, mês e dia. Os parâmetros de entrada podem ser expressões que envolvem operações aritméticas. A função DateSerial() avalia as expressões nos parâmetros de entrada antes de devolver o valor de data resultante.

Esta consulta de exemplo devolve o último dia no mês de fevereiro do ano 2003. O último parâmetro de entrada do dia com o valor de 1 é decrementado por 1. O resultado é que o parâmetro month é avaliado como 2.

Utilizar operadores de comparação com valores de data

Pode utilizar os seguintes operadores de comparação para comparar valores de data em expressões e consultas:

  • < (menor que)
  • > (maior que)
  • <= (menor ou igual a)
  • >= (maior ou igual a)
  • <> (não igual)
SELECT * FROM Employees
WHERE HireDate >= DateValue(" 10/01/1993")
AND HireDate <= DateValue("12/31/1993");

Esta consulta utiliza o >operador = comparação e o <operador de comparação = para verificar se a data de contratação do funcionário se enquadra no intervalo das duas datas especificadas. Esta consulta obtém os registos de todos os funcionários contratados no último trimestre do ano civil de 1993.

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

Esta consulta utiliza o operador de comparação de desigualdades para obter os registos de todos os colaboradores com uma data de contratação que não seja igual à data atual.

Função WeekdayName()

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

A função WeekdayName() devolve uma cadeia que indica o dia da semana, conforme especificado no primeiro parâmetro. O dia da cadeia de carateres da semana que é devolvida depende do terceiro parâmetro. Este parâmetro define o primeiro dia da semana. O segundo parâmetro está definido como Falso para especificar que o nome do dia da semana não pode ser abreviado.

Esta consulta de exemplo devolve o valor Domingo como o primeiro dia da semana.

Função MonthName()

SELECT MonthName(1);

A função MonthName() devolve uma cadeia que indica o nome do mês para o número de mês especificado de 1 a 12. O parâmetro de entrada também pode ser uma expressão, tal como na seguinte consulta:

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

Esta consulta devolve o nome do mês atual.

Referências

Para obter mais informações, clique nos seguintes números de artigo para ver os artigos na Base de Dados de Conhecimento Microsoft:

  • 290178 Como criar uma consulta com parâmetros para avaliar critérios complexos no Microsoft Access
  • 290190 Como criar duas funções para calcular a idade em meses e em anos no Microsoft Access