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 à users+help@fr.libreoffice.org 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
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.