Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

booleen et date

3 réponses
Avatar
didier
Bonjour
2 questions en 1.
Je doit contruire une base de donnée avec SQL 2005 et je rencontre quelque
soucies.
J'aimerais avec une entree date au format 20071115 et je n'arrive pas a
trouver un type de données qui correspond a ca, faut il créer une colonne en
int avec 8 caractéres ou y a t il cache quelque part un type de données qui
correspond ??
J'aimerais également avec des booleens, or transac SQL n'a pas l'air de
reconnaitre boolean ni meme logical, faut il creer une colonne varchar avec
un check 'V' / 'F' ou 'O' / 'N' ou il a t'il un type de données qui prend en
charge le booléen ??

Merci pour votre aide
Cordialement
Didier

3 réponses

Avatar
Rudi Bruchez
Bonjour,


J'aimerais avec une entree date au format 20071115 et je n'arrive pas a
trouver un type de données qui correspond a ca, faut il créer une colonne en
int avec 8 caractéres ou y a t il cache quelque part un type de données qui
correspond ??



Le type de données est datetime, ou smalldatetime. Ne réfléchis jamais
en terme de format lorsque tu stockes des données. Le format est réservé
à l'affichage. A partir d'une valeur bien stockée, tu peux générer tos
les formats possibles à l'affichage. L'inverse est un casse-tête.
Pour obtenir le formatage demandé à partir d'un (small)datetime :
CONVERT(char(8), tacolonne, 112)
Si tu crées une colonne de type char(8) ou int, comment feras-tu pour
calculer, par exemple, la différence en jours entre deux dates ?

J'aimerais également avec des booleens, or transac SQL n'a pas l'air de
reconnaitre boolean ni meme logical, faut il creer une colonne varchar avec
un check 'V' / 'F' ou 'O' / 'N' ou il a t'il un type de données qui prend en
charge le booléen ??



type de données bit : valeurs possibles : 0, 1, NULL (si nullable)


--
Rudi Bruchez
Consultant independant, MCDBA, MCITP, MCT
http://www.babaluga.com/
http://rudi.developpez.com/
Avatar
didier
C'est tres clair
merci beaucoup pour la reponse.
Codialement
Didier

"Rudi Bruchez" a écrit :

Bonjour,


> J'aimerais avec une entree date au format 20071115 et je n'arrive pas a
> trouver un type de données qui correspond a ca, faut il créer une colonne en
> int avec 8 caractéres ou y a t il cache quelque part un type de données qui
> correspond ??

Le type de données est datetime, ou smalldatetime. Ne réfléchis jamais
en terme de format lorsque tu stockes des données. Le format est réservé
à l'affichage. A partir d'une valeur bien stockée, tu peux générer tos
les formats possibles à l'affichage. L'inverse est un casse-tête.
Pour obtenir le formatage demandé à partir d'un (small)datetime :
CONVERT(char(8), tacolonne, 112)
Si tu crées une colonne de type char(8) ou int, comment feras-tu pour
calculer, par exemple, la différence en jours entre deux dates ?

> J'aimerais également avec des booleens, or transac SQL n'a pas l'air de
> reconnaitre boolean ni meme logical, faut il creer une colonne varchar avec
> un check 'V' / 'F' ou 'O' / 'N' ou il a t'il un type de données qui prend en
> charge le booléen ??

type de données bit : valeurs possibles : 0, 1, NULL (si nullable)


--
Rudi Bruchez
Consultant independant, MCDBA, MCITP, MCT
http://www.babaluga.com/
http://rudi.developpez.com/



Avatar
Michel Romieu
On Wed, 26 Dec 2007 05:52:01 -0800, didier
wrote:

Bonjour
2 questions en 1.
Je doit contruire une base de donnée avec SQL 2005 et je rencontre quelque
soucies.
J'aimerais avec une entree date au format 20071115 et je n'arrive pas a
trouver un type de données qui correspond a ca, faut il créer une colonne en
int avec 8 caractéres ou y a t il cache quelque part un type de données qui
correspond ??


char(8) tout simplement.
J'ai été amené à faire cela pour gérer des dates de naissances avec
des mois qui peuvent prendre la valeur 30, 50, 51, ...
L'exploitation se fait par une application C++, j'ai donc une classe
qui est associée et qui fournit tout les outils nécessaires.