Dans Microsoft SQL Server Management Studio j'ai créé une fonction définie par l'utilisateur pour calculer l'âge d'un employé en fonction de la date de naissance, les entrées de l'utilisateur comme suit:Nécessité d'inclure des colonnes dans une fonction définie par l'utilisateur et le stocker dans une procédure
USE [Northwind];
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION udf_GetEmployeeAge_test2
(
@DateOfBirth datetime
)
RETURNS int
AS
BEGIN
DECLARE @Age int
SELECT @Age = DATEDIFF(DAY, @DateOfBirth, GETDATE())
RETURN @Age
END
J'utilise l'échantillon populaire base de données Northwind, maintenant la chose que je ne peux pas à comprendre comment et où dois-je inclure une instruction select pour retourner chaque nom de l'employé (FirstName),
nom (Nom),
date de naissance (Bir thDate)
et de vieillir et puis également envelopper l'instruction Select dans une procédure stockée (usp_EmployeeAges).
Les informations relatives à ces colonnes sont dans une table appelée dbo.Employees
'choisir le nom, prénom, date de naissance, âge = dbo.udf_GetEmployeeAge_test2 (BirthDate) de yourtable' mais le calcul de l'âge n'est pas correct –
Utilisez ce 'FLOOR ((CAST (GetDate() AS INTEGER) - CAST (BirthDateAS INTEGER))/365.25) 'pour calculer l'âge. Cochez cette question [Comment calculer l'âge (en années) basé sur Date de naissance et getDate()] (http://stackoverflow.com/questions/1572110/how-to-calculate-age-in-years-based-on -date-de-naissance-et-getdate) –