Désolé d'être un problème les gars. J'ai été chargé d'effectuer une révision de code à un emplacement client et l'ordinateur portable qui m'est remis n'a pas SQL installé. Alors que je suis en attente de l'installation se produise, a voulu obtenir occupé à regarder le code et suis tombé sur ce petit bijouQuelqu'un pourrait valider cette fonction, s'il vous plaît
CREATE FUNCTION [dbo].[Uf_GetTotalDaysInMonth]
(
-- Add the parameters for the function here
@anydateofMonth datetime
)
RETURNS int
AS
BEGIN
-- Declare the return variable here
DECLARE @totalDaysInMonth int
-- Add the T-SQL statements to compute the return value here
DECLARE @givendate datetime
SET @givendate = STR(Year(@givendate)) + '-' + STR(Month(@givendate) + 1) + '-01'
select @totalDaysInMonth = datepart(dd, dateadd(day, -1, @givendate))
-- Return the result of the function
RETURN @totalDaysInMonth
END
Ignorant l'utilisation d'inutile variable supplémentaire, je crois que cette fonction se bloque en Décembre
STR(Month(@givendate) + 1)
évaluera à 13 et donnera une erreur de date hors champ. Quelqu'un pourrait-il valider cela pour moi?
Juste Pour votre information, ils ont créé un site dans SE pour demander aux gens de revoir demande semblable à ceci: http://codereview.stackexchange.com –
LOL qui est assez mauvais. L'idée n'est pas mauvaise: trouvez la date de début du mois suivant, soustrayez-en une et prenez la date comme les jours du mois. Mais l'exécution est très imprudente. –