Le 02/08/2011 17:40, pierre-yves samyn a écrit :
Re-bonjour
Marie-Jo wrote:
Ma question est la suivante : comment additionner simplement 365 à un
champ date dans Base (dans une requête) sans se faire insulter.
J'ai pu me débrouiller pour au moins tester sur OOo 3.3.0 .
Le SQL suivant fonctionne mais, utilisé dans une requête, le formatage de
la colonne résultat au format date n'est pas conservé.
En revanche... il l'est si on crée une vue avec ce SQL.
Donc en résumé :
1. Créer une vue avec le code ci-dessous, enregistrer, fermer la vue.
2. Ouvrir (exécuter) la vue : la colonne apparaît en nombre, clic droit sur
l'en-tête pour formater en date
Le format est mémorisé.
Ceci fonctionne avec OOo
SELECT "IdTable", "Date", "NbJours", DATEDIFF( 'DD', '1900-01-01', "Date" )
+ IFNULL( "NbJours", 0 ) AS "Date+NbJours" FROM "Table"
Explications :
- On calcule le nombre de jours entre la date "origine" et le champ date.
- On ajoute à ce nombre le nombre souhaité
- Pour éviter la "propagation du null" on utilise IFNULL
cf. http://wiki.documentfoundation.org/FR/FAQ/Base/125
Le résultat est donc un nombre de jours (depuis la date origine). On
convertit au format date par clic sur l'en-tête de colonne (en mode
"exécution", pas depuis le mode "conception").
http://nabble.documentfoundation.org/file/n3219344/AjoutDateVue.odb
AjoutDateVue.odb
Cordialement
Pierre-Yves
Bonjour Marie Jo, Pierre-Yves, Jean-Michel
Par curiosité je me suis rendu sur la FAQ sur le IFNULL pour voir
comment y était présenté le concept de NULL , concept ô combien particulier.
Je ferai juste une petite remarque sur cette FAQ. Comme souvent à propos
de NULL on parle de champ vide mais un puriste de SQL dirait qu'un champ
contenant NULL n'est pas un champ vide mais un champ qui contient une
*valeur indéterminée* et pour être encore plus précis encore : NULL est
un *état *indiquant que la valeur d'un champ est indéterminée.
En plus, Base entretient la confusion en utilisant IS EMPTY dans les
formulaires pour ce qui est codé IS NULL en SQL.
Je sais, je chipote... :-)
Allez, bonne journée à tous,
Bernard
--
Envoyez un mail à [email protected] pour savoir comment vous
désinscrire
Les archives de la liste sont disponibles à
http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne
pourront pas être supprimés