Comment dois-je calculer le nombre total de minutes entre le début et la fin des temps?
Comment dois-je calculer le nombre total de minutes entre le début et la fin des temps? Le Début/la Fin des temps, les colonnes sont de type nvarchar et je suis déclarant en datetime. Je ne sais pas si c'est ma première étape ou pas, je suis nouveau sur le SQL et de les déclarer.
L'objectif final est de prendre Total Minutes
, soustraire Lunch
et Recess
(deux minutes), puis multiplier par 5 pour obtenir le total enseignement minutes pour la semaine et par école.
DECLARE @StartTime datetime, @Endtime datetime
SELECT --[School]
[GradeLevel]
,[StartTime]
,[EndTime]
,(@Endtime - @StartTime) AS 'TotalMinutes'
,[Lunch]
,[Resess]
,[Passing]
FROM [dbo].[StartEndTimes]
Current Output:
GradeLevel StartTime EndTime TotalMinutes Lunch Resess Passing
2-5 7:50 14:20 NULL 20 10 NULL
K-5 7:45 14:20 NULL 20 10 NULL
K-5 7:50 14:20 NULL 20 10 NULL
OriginalL'auteur JM1 | 2014-08-22
Vous devez vous connecter pour publier un commentaire.
Peut-être quelque chose comme ceci est ce que vous voulez?
Si vous voulez un résumé de toutes les lignes puis essayez:
Si vous voulez obtenir le nombre d'heures par école, vous devez inclure le
school
champ de la requête et de l'utiliser dans legroup by
clause, et alors, la requête devient:Exemple de SQL Violon pour les requêtes.
Non, mes modifications étaient tout simplement pour améliorer la mise en forme et l'ajout d'une balise [sql server] pour rendre la question plus facile à lire et à trouver. Oh, vous ne devriez pas inclure des balises dans le titre. Si vous cliquez sur le édités lien, vous pouvez voir exactement ce que j'ai fait.
J'ai ajouté un regroupement par école et un échantillon SQL Violon que vous pouvez regarder.
Merci JPW. J'ai oublié de mentionner, j'ai besoin de soustraire Passant ainsi. La question est, pour beaucoup de mes écoles, en passant, est NULLE. Quand j'ai ajouter "de passage" à la fin du code que vous avez posté, il renvoie toujours NULL. Comment puis-je compte la valeur NULL dans le Passage de la colonne? Merci encore pour votre aide.
Vous pouvez utiliser le fusionner fonction pour remplacer les valeurs NULL par 0:
coalesce(passing,0)
. Une autre option seraitisnull(passing, 0)
OriginalL'auteur jpw
Si tout ce que vous voulez, c'est de trouver la différence entre deux dates, puis vous pouvez utiliser la fonction DATEDIFF (http://msdn.microsoft.com/en-us/library/ms189794.aspx)
Exemple:
Toutefois, si vos valeurs sont dans la chaîne de format que vous avez besoin de les convertir avant de les transmettre à la fonction DATEDIFF.
Exemple:
OriginalL'auteur Lee