Utilisez la fonction getDate() de SQL pour calculer l'âge en fonction de la date de naissance
Question :
De nombreuses bases de données conservent des informations personnelles, notamment la date de naissance. Afin de suivre avec précision l'âge pour la gestion des dossiers, la date de naissance enregistrée doit être convertie en âge de l'individu en années.
Solution :
Convertir la date de chaîne en type de données date :
CONVERT(datetime, DOB)
Calculer l'âge en années :
DATEDIFF(hour, CONVERT(datetime, DOB), getDate())
DATEDIFF(hour, CONVERT(datetime, DOB), getDate()) / 8766.0
Sortie :
SELECT ID, Name, DATEDIFF(hour, CONVERT(datetime, DOB), getDate()) / 8766.0 AS AGE, DOB FROM [YourTable];
Considérations relatives à la précision :
Les années bissextiles et les calculs de dates précis affecteront la précision. Pour améliorer la précision, considérez les éléments suivants :
La meilleure façon de calculer l'âge en nombres entiers :
(CONVERT(int, CONVERT(char(8), @Now, 112)) - CONVERT(char(8), @Dob, 112)) / 10000
La meilleure façon de calculer l'âge sous forme décimale :
1.0 * DATEADD(yy, @Dob, @Now) + CASE WHEN @Now >= DATEFROMPARTS(YEAR(@Now), MONTH(@Dob), DAY(@Dob)) THEN -- 当年生日已过 (1.0 * DATEDIFF(day, DATEFROMPARTS(YEAR(@Now), MONTH(@Dob), DAY(@Dob)), @Now) / DATEDIFF(day, DATEFROMPARTS(YEAR(@Now), 1, 1), DATEFROMPARTS(YEAR(@Now) + 1, 1, 1)) ) ELSE -- 当年生日未过 -1 * ( -1.0 * DATEDIFF(day, DATEFROMPARTS(YEAR(@Now), MONTH(@Dob), DAY(@Dob)), @Now) / DATEDIFF(day, DATEFROMPARTS(YEAR(@Now), 1, 1), DATEFROMPARTS(YEAR(@Now) + 1, 1, 1)) ) END
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!