begin process at 2012 02 12 02:44:14
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Fonctions

 > SQL SERVER - TESTER SI UNE DATE TRANSMISE EST BISSEXTILE OU NON

SQL SERVER - TESTER SI UNE DATE TRANSMISE EST BISSEXTILE OU NON


 Information sur la source



 Description

Dans le cadre d'une question posée sur ce forum, j'ai développé une fonction SQL Server permettant de tester si une années transmise est Bissextile ou non.
La règle pour une année bissextile est disponible ici :
- http://dispourquoipapa.free.fr/histoire/hi0010.htm

Pour simplifier toutes les années divisibles par 4 sont bissextiles sauf si on tombe sur un centenaire. Le seul cas ou une année centenaire est bissextile est lorsque celle-ci est divisible par 400.

Source

  • ---------------------------------------------------------------------
  • SET QUOTED_IDENTIFIER ON
  • GO
  • SET ANSI_NULLS ON
  • GO
  • ---------------------------------------------------------------------
  • ALTER FUNCTION TEST_BISSEXTILE
  • (
  • @YEAR INT
  • )
  • RETURNS BIT
  • AS
  • -- Vérification si l'année transmise est une année bissextile
  • BEGIN
  • -- @YEAR est l'année considérée
  • -- RENVOI 1 SI VRAI ET 0 SI FAUX
  • DECLARE @RESULTAT BIT
  • SET @RESULTAT = 0
  • IF ISNUMERIC(@YEAR)=0
  • RETURN 0
  • DECLARE @RESTESECULAIRE INT
  • DECLARE @RESTEBISSEXTILE INT
  • SET @RESTESECULAIRE = @YEAR % 100
  • IF @RESTESECULAIRE = 0
  • BEGIN
  • SET @RESTEBISSEXTILE = @YEAR % 400
  • IF @RESTEBISSEXTILE = 0
  • SET @RESULTAT = 1
  • END
  • ELSE
  • BEGIN
  • SET @RESTEBISSEXTILE = @YEAR % 4
  • IF @RESTEBISSEXTILE = 0
  • SET @RESULTAT = 1
  • END
  • RETURN @RESULTAT
  • END
  • ---------------------------------------------------------------------
  • GO
  • SET QUOTED_IDENTIFIER OFF
  • GO
  • SET ANSI_NULLS ON
  • GO
  • ---------------------------------------------------------------------
  • -- Pour tester cette fonction :
  • SELECT dbo.TEST_BISSEXTILE(1996) AS BISSEXTILE
  • -- et
  • SELECT dbo.TEST_BISSEXTILE(2001) AS BISSEXTILE
---------------------------------------------------------------------
SET QUOTED_IDENTIFIER ON 
GO
SET ANSI_NULLS ON 
GO

---------------------------------------------------------------------
ALTER  FUNCTION TEST_BISSEXTILE 
(
	@YEAR INT
)
	RETURNS BIT
AS
-- Vérification si l'année transmise est une année bissextile 

BEGIN
-- @YEAR est l'année considérée
-- RENVOI 1 SI VRAI ET 0 SI FAUX

	DECLARE @RESULTAT BIT
	SET @RESULTAT = 0
	IF ISNUMERIC(@YEAR)=0 
		RETURN 0

	DECLARE @RESTESECULAIRE INT
	DECLARE @RESTEBISSEXTILE INT

	SET @RESTESECULAIRE = @YEAR % 100

	IF @RESTESECULAIRE = 0
		BEGIN
		SET @RESTEBISSEXTILE = @YEAR % 400

		IF @RESTEBISSEXTILE = 0 
			SET @RESULTAT = 1
		END
	ELSE
		BEGIN
		SET @RESTEBISSEXTILE = @YEAR % 4
		
		IF @RESTEBISSEXTILE = 0 
			SET @RESULTAT = 1
		END

	RETURN @RESULTAT

END

---------------------------------------------------------------------
GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

---------------------------------------------------------------------

-- Pour tester cette fonction :

 SELECT dbo.TEST_BISSEXTILE(1996) AS BISSEXTILE
-- et
 SELECT dbo.TEST_BISSEXTILE(2001) AS BISSEXTILE

 Conclusion

Bon Coding

Romelard Fabrice.


 Sources du même auteur

SQL SERVER - OBTENIR LES VALEURS CORRESPONDANT A DES UNICODE
SQL SERVER 2000 - VIDER ET COMPACTER TOUTES LES BASES DE DON...
SQL SERVER 2005 : OBTENIR LA LISTE DES BASES DE CONTENU D'UN...
SQL SERVER - OBTENIR LA POSITION DU PREMIER CHIFFRE D'UNE CH...
SQL SERVER - UPDATE D'UNE TABLE EN BOUCLE PAR LOT

 Sources de la même categorie

Source avec Zip CONVERT NUMBER TO LETTERS par oumaya2007
Source avec Zip CALCUL UNE DIFFÉRENCE DE DATE EN FONCTION DE JOURS FÉRIÉS/TR... par Sieurcoug
Source avec Zip CONVERSION DE NOMBRE EN LETTRES (SQL) par wormlore
NO HTML BALISE [MYSQL] par abdoulax
MYSQL : FONCTION POUR GÉRER DES COMPTEURS ÉQUIVALENT AUX SÉQ... par maitredede

 Sources en rapport avec celle ci

[ORACLE]DÉTERMINER LA DATE DU PREMIER JOUR D'UNE SEMAINE PAR... par Bouillou2
TROUVER LES PROCHAINS ANNIVERSAIRES par zefo
SQL SERVER 2000 - VIDER ET COMPACTER TOUTES LES BASES DE DON... par fabrice69
AJOUT , SUPPRESSION INTERVALLE DE TEMPS EN PLSQL par lamjed
SQL SERVER 2005 : HISTORISER LES PROCÉDURES STOCKÉES D'UNE B... par skweeky

Commentaires et avis

Aucun commentaire pour le moment.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

sqlserver datetime [ par koukou09 ] Salut, je veux faire une insertion des données dans sqlserver à partir d'un frame dans parmi les composant une date qui est définit comme type date SOS Affichage de la dernier date via SQLServer [ par inghoudhoud ] Bonjour je travail sur une base de donnée sqlServer j'enregistre les donnes plus qu'une fois et je veux affiché les dernier donnée enregistré c a di probleme de Requete Imbriqué [ par jul13n ] Bonjour, J'ai un soucis avec une requête sql qui me pose énormément de difficulté . Je souhaiterai réaliser une requête imbriqué de la manière suivant format de la date retourné par dateAdd() ? [ par yosboss ] Bonjour, je travail sur MS SQL Server, et je souhaite exécuter des requêtes avec un WHERE sur la date ... ce que je veux, c'est d'avoir les lignes q calcule entre deux date [ par keitam ] Slt a tous, Je suis à mon premier mois d'access 2007, je veux savoir comment calculer la durée d'un travailleur dans une entreprise à partir de sa dat affichage par jour [ par uboot76 ] bonjour J'aurais besoin de votre aide pour une requête sql. Mon but est d'avoir Salle Lundi Mardi .... début fin p CONVERTIR UNE DATE DANS UNE REQUETE SQL [ par castapdl ] Bonjour, Je tente de forcer la reqête sql suivante : [quote]SELECT t.ACCOUNTRP Client,f.NAME1 Nom,f.CATEGORY REP,f.TELNUMBER Tél,f.FAXNUMBER Fax, t.DA Traiter des données en doubles, en triples dans un même requête [ par juliaLRJ75 ] Bonjour, Après maintes recherches je ne trouve pas la simplification miracle de mes requêtes, donc si quelqu'un a une idée... Voilà je récupére dans creation de procedure stocké [ par ahmedmahdibenjemaa ] bonjours a tous, avant tous je voudrai vous remerciez en s'intéressant a ce sujet. je n'arrive pas à créer des procédures stockées. j'ai suivi pas ma Convertir une colonne Datetime en période découpée en minute [ par Ledobs ] Bonjour à tous, j'ai effectué une recherche sur le forum mais n'ai rien trouvé pour répondre à ma questionnement. Comme je suis un peu pressé dans le


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,214 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales