Bonjour je cherche a avoir le siecle dans une vue avec la fonction year
ma proposition :::> create view......
select ...... year((année/100)+1)
voulez vous bien me dire si je suis dans le vrai








Bonjour je cherche a avoir le siecle dans une vue avec la fonction year
ma proposition :::> create view......
select ...... year((année/100)+1)
voulez vous bien me dire si je suis dans le vrai
Je dirais plutôt :
Avec un détail : Le 20ème siècle s'est terminé le 31/12/2000 !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT... ((YEAR(ColonneDeDate)/100)+1) AS Siecle ...
Donc il faut faire un CASE sur l'année pour capter la dernière année de chaque siècle.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT ..., CASE WHEN MOD(YEAR(ColonneDeDate), 100) = 0 THEN YEAR(ColonneDeDate)/100) ELSE ((YEAR(ColonneDeDate)/100)+1) END AS Siecle ...
Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
Salut !
Du coup, (YEAR(TaDate) - 1) / 100 + 1 ?
Ah oui ! Pas con Pacman !
Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
Plus exactement :
A +
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT ((YEAR(maDate) - 1) / 100) + 1
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
* * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *
J'ose espérer que le SGBD respecte les règles basiques de priorité de l'anneau (Z, +, *)...
... et que par conséquent (YEAR(TaDate) - 1) / 100 + 1 est strictement équivalent à ((YEAR(maDate) - 1) / 100) + 1 !
[EDIT]
Ou peut être que le parenthèsage est sensé provoquer une convertion implicite en INT ?
En tous cas, j'ai fait le test sous Oracle : ça ne change rien.
(Par contre, toujours testé sous Oracle, la division entre entiers ne renvoie pas un entier... donc il faut tronquer)
Partager