Date: prev next · Thread: first prev next last
2011 Archives by date, by thread · List index


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.