Page 1 sur 1

Techniques pour débuter sous Base

MessagePublié: 17 Jan 2006 12:49
par Bidouille
Vous débutez avec Base ?

Avant de poster pour nous dire "je n'y connais rien mais je voudrais faire...", voici quelques pistes pour vous mettre le pied à l'étrier :

  1. Consultez la rubrique Tutoriels qui comprend des ressources pour démarrer
  2. Avez-vous regardé dans la documentation conçue par les bénévoles ?
  3. Pensez aussi à lire le Wiki et ses FAQ dédiées

Si vous avez un projet, il y a peut être quelque chose de déjà réalisé dans la section éponyme.
Mieux vaut enrichir que de réinventer.

.

Techniques pour débuter avec le module Base

MessagePublié: 22 Mars 2006 18:29
par archiifk
Le modérateur a écrit: :alerte: Aucune question n'est autorisée dans ce post-it !
Si vous avez un problème de compréhension, ouvrez un nouveau fil de discussion.


Utiliser les commandes système HSQLDB

après avoir traduit le premier chapitre de la dooc officielle de HSQLDB, entamer le second, et traduit un certain nombre de commandes SQL, j'ai chercher à attaquer une base créée avec OOo.

bon ca n'a pas été si simple, j'ai fini par installer HSQLDB v 1.8 qui ne marchait pas, l'une des première version qui marchait, comparer les différences réussie à corriger et exécuter HSQLDB 1.8.

Enfin par analogie j'ai réussi à lancer le manager fourni avec HSQLDB integré dans OOo.

Cela est intéressant pour des taches d'administration (sauvegarde, dump...)

Pour ceux que cela intéresse les explications sont
http://archiifk.mageos.com/OOo/Base/Base.htm lien mort
et
http://archiifk.mageos.com/OOo/Base/guide_base_fr.html lien mort

Nouvelles sources d'informations disponibles :

Techniques pour débuter avec OOo Base

MessagePublié: 13 Juin 2006 08:50
par cris59
Bien utiliser le SQL


Rappel

Dans OOoBase, vous pouvez faire :

- des requêtes de type SELECT dans la section requête en vue SQL

- tous types de requêtes dans Outils / SQL ...


Exemples de requêtes

1. Total d'un champ pour l'année en cours

Code : Tout sélectionner   AgrandirRéduire
SELECT SUM("TVA196") AS "Total" FROM "TFactures" WHERE YEAR("DateEmission") = YEAR(NOW( ))


Note : MONTH("DateEmission") = MONTH(NOW( )) pour le mois en cours


2. Total d'un champ entre 2 dates particulières

Code : Tout sélectionner   AgrandirRéduire
SELECT SUM("TVA196") AS "Total" FROM  "TFactures"  WHERE  "DateEmission" >=  '2006-01-01' AND "DateEmission"  < '2006-04-01'


Note : format de date aaaa-mm-jj (ou yyyy-mm-dd)


3. Le montant total, le nombre et le taux moyen des factures par client, avec concaténation des champs Nom et Prénom... les données proviennent de 2 tables liées par RefClient

Code : Tout sélectionner   AgrandirRéduire
SELECT CONCAT("TClients"."Nom" || '  ' || "TClients"."Prenom") AS "Nom & Prénom", SUM("TFactures"."Montant") AS "Total", COUNT("TFactures"."Montant") AS "Nombre", AVG("TFactures"."Montant") AS "Moyenne" FROM "TFactures", "TClients" WHERE ("TFactures"."RefClient" = "TClients"."RefClient") GROUP BY "TFactures"."RefClient"  ORDER BY "Nom & Prénom" ASC


Note : ce type de concaténation est mieux accepté

Code : Tout sélectionner   AgrandirRéduire
CONCAT("TClients"."Nom", CONCAT(' ', "TClients"."Prenom")) AS "Nom & Prénom"




4. Mise à jour d'une table avec mise en majuscule du Nom

Code : Tout sélectionner   AgrandirRéduire
UPDATE "TClients" SET "RaisonSociale" = 'Les Arts d''Aujourd''hui', "Nom" = UCASE('debrier') WHERE "RefClient"=12



5. Sélection sur un champ booléen

Code : Tout sélectionner   AgrandirRéduire
SELECT "Titre" FROM "TLivres" WHERE "Nouvelle" = True



6. Insertion d'un enregistrement dans une table

Code : Tout sélectionner   AgrandirRéduire
INSERT INTO "TLivres" ("Titre", "RefAuteur", "Nouvelle") Values ('Les jeux de l''esprit', 12, False)




Requêtes par macros

https://forum.openoffice.org/fr/forum/ftopic1454.html


cris59

PS : ces requêtes ont été testée, mais elles peuvent, peut-être, être améliorées ...

Sélection dans une liste et affichage des données

MessagePublié: 06 Déc 2006 10:47
par Bidouille
Cette exemple fonctionne avec une macro : si vous avez des questions, merci de vous référer au bandeau rouge en haut de la page.

Dans cette exemple, le formulaire utilise une combo et deux champs texte. La sélection d'un nom depuis la combo permet l'affichage des données.

Image

Le fichier Base est téléchargeable ici

Pour que cela fonctionne, vous devez créer un lien "source de données" TEST (attention à la casse) vers le fichier ODB que vous venez d'enregistrer.

Image

.

MessagePublié: 15 Déc 2006 09:22
par Dude
Ouverture et fermeture de formulaire

Image

Cette base de données contient un formulaire général qui permet de lancer via des boutons quatre autres formulaires. Sur chaque formulaire appelé, un bouton permet également de le fermer.

Un très bon exemple si vous débutez : https://forum.openoffice.org/fr/ci-joint/fichier/2007/09/26-125443.odb

Attention ! Depuis la 3.1.0 et l'intégration de macro directement dans un ODB, on peut maintenant ouvrir un formulaire à l'ouverture de la base.
Voici le même exemple :
ouvreForm31.odb
(47.56 Kio) Téléchargé 2612 fois


Si vous avez des questions, vous devez les poster dans la section Macros et API.

:idea:

[Résolu] Base Oo - Requête SQL

MessagePublié: 12 Fév 2007 00:37
par neness
Bonsoir à tous,
Voici une requête SQL que j'ai réussie à trouver, oui, oui. Elle permet de sélectionner tous les enregistrements dont la date n'a pas été saisie et ceux saisis pour un mois désiré de l'année courante.
A toutes fins utiles.
(L'ami Bronchart que je salue au passage m'a mis sur la voie) :wink:

Code : Tout sélectionner   AgrandirRéduire
SELECT "T_Activite".*, YEAR( "Date" ), MONTH( "Date ), "T_Activite"."Date_" FROM "T_Activite" WHERE ( ( YEAR( "Date" ) = YEAR( NOW( ) ) AND MONTH( "Date" ) = :indiquez_ici_le_numero_du_mois ) OR ( "Date" IS NULL ) )

Avec quel moteur je tourne ?

MessagePublié: 15 Avr 2008 13:54
par Dude
Connaître le moteur de base de données utilisé par mon fichier ODB

Base est un module de base de données qui peut travailler en mode natif avec son propre moteur (le fameux format HSQL ou HSQLDB 100 % Java).

Mais Base peut également servir de lien vers d'autres bases ou SGBD (dBase, MS-Access, Oracle, etc). Dans ce cas, les données ne sont pas intégrées et Base ne sert que de lien.

Il est très important de savoir avec quoi vous travaillez pour répondre à votre problème de manière précise. Pour connaître le format de base utilisé par ODB, il suffit de regarder en bas à gauche dans la barre d'état :

Image

Dans l'illustration ci-dessus, c'est bien le format natif HSQL.

8)

Ajouter un nombre à une date par requête

MessagePublié: 05 Fév 2009 10:56
par Pierre-Yves Samyn

Objectif
: nous avons un champ de type Date et nous voulons ajouter (soustraire) un nombre de jours, mois ou année.

Dans les exemples suivants :
  • le champ de type Date se nomme Date
  • le nombre à ajouter est contenu dans le champ NbJours
  • Nous ajoutons... des jours mais le principe sera aisément transposable pour les mois et années

1) Jeu d'enregistrements résultat non modifiable

La requête suivante doit être créée en mode SQL (on peut commencer en mode ébauche pour sélectionner la table et les champs puis passer en mode SQL pour ajouter les fonctions).

Code : Tout sélectionner   AgrandirRéduire
SELECT "IdTable", "Date", "NbJours", CONVERT( YEAR( "Date" ) || '-' || MONTH( "Date" ) || '-' || DAY( "Date" ) + "NbJours", DATE ) as "Date+NbJours" FROM "Table" AS "Table"


Le bouton "Exécuter directement l'instruction SQL" doit être enfoncé.

Explications
  • Nous ne disposons pas, à ce jour, de fonctions permettant directement de calculer à partir d'un champ date.
  • Le principe est donc de décomposer la date en année, mois, jour (fonctions YEAR, MONTH, DAY) puis d'ajouter le nombre à l'élément "décomposé", puis de reconvertir en date (fonction CONVERT)

2) Jeu d'enregistrements résultat modifiable

Code : Tout sélectionner   AgrandirRéduire
SELECT "IdTable", "Date", "NbJours", CAST ( YEAR( "Date" ) || '-' || MONTH( "Date" ) || '-' || DAY( "Date" ) + "NbJours" AS "DATE" ) AS "Date+NbJours" FROM "Table" AS "Table"


Cette requête peut être réalisée en mode ébauche (le bouton "Exécuter directement l'instruction SQL" ne doit pas être enfoncé).

Capture-1.png
Capture-1.png (9.6 Kio) Consulté 75188 fois


Explications
  • Nous utilisons cette fois la fonction CAST pour reconvertir en date. Attention la syntaxe est différente de CONVERT.
  • L'avantage est que cette fonction est reconnue en mode ébauche, et que le jeu d'enregistrements "résultat" reste modifiable.
  • Son inconvénient est que par défaut la date est affichée au format nombre (40109 par exemple pour le 23/10/09).
  • Pour restaurer l'affichage "date", il suffit de faire un clic droit sur l'en-tête de colonne puis de choisir le format. Ce dernier sera mémorisé

[Ajout du 20/03/2010 pour la version 3.2 et Java 1.6.0_18]

L'évolution de java http://java.sun.com/javase/6/webnotes/6u18.html (bogue 6898593) sur la gestion des dates et la version 3.2 d'OOo font que les requêtes précédentes ne fonctionnent plus. En attendant la fonction DATEADD (version 3.3 ?), ci-dessous un contournement.

Le principe est de calculer un nombre de jours entre la date et la date "origine" et y ajouter le nombre de jours. Ceci nous donne bien sûr un "numéro de série" mais il suffit de lancer la requête puis "cliquer droit" sur l'en-tête" de colonne et formater cette dernière au format Date. En procédant ainsi, le format est mémorisé...

Code : Tout sélectionner   AgrandirRéduire
SELECT "IdTable", "Date", "NbJours", DATEDIFF( 'DD', '1900-01-01', "Date" ) + "NbJours" AS "Date+NbJours" FROM "Table" AS "Table"

Sun report builder

MessagePublié: 03 Mai 2009 13:53
par charlemagne
Bonjour à toutes et à tous et félicitations pour ce forum.
Juste à titre d'information, je suis un Québécois de la ville de Québec (Canada). Votre forum m'a dépanné souvent et je veux apporter ma modeste contribution.

Concernant le problème de date avec SRB, j'ai essayé plusieurs idées et j'ai trouvé une solution qui fonctionne très bien chez moi.
Dans l'en-tête de page j'insère une date par le menu "insertion- date et heure" ensuite je clique sur le champ et dans la partie de droite où sont les propriétés, dans "champ de données", je modifie "TODAY()" par "(TODAY()) + 0".
J'imprime mon rapport et la date demeure juste et je sauvegarde au format pdf et la date demeure juste également.

J'espère que cela pourra fonctionner pour vous tous également.
Merci et bonne journée !

Réduire la taille d'un ODB

MessagePublié: 20 Nov 2009 09:28
par Dude
Comme indiqué dans le bandeau rouge en haut de la page, vous facilitez les réponses en joignant votre base. Bien sûr celle-ci doit être au format natif HSQL (voir plus haut). Cela ne sert à rien de joindre un ODB relié à une source de données externe (MySQL, Oracle, etc).

Cependant, la taille maximum du fichier ne doit pas excéder les 500 ko. Or, à force de manipulation sur les données (ajout / suppression), le fichier ODB a tendance à enfler. Pour en réduire la taille, il existe une commande SQL :
Code : Tout sélectionner   AgrandirRéduire
CHECKPOINT DEFRAG;

Cette commande est à saisir via le menu Outils > SQL et va permettre la compression et le nettoyage de la base des enregistrements rayés.


.

Re: Techniques pour débuter avec OOo Base

MessagePublié: 17 Juil 2010 12:35
par Pierre-Yves Samyn
Supprimer une ligne sur deux

(cf. ce fil https://forum.openoffice.org/fr/forum/v ... 06#p127906)

On veut supprimer une ligne sur deux. L'idée qui vient est de supprimer les lignes (im)paires.

On va donc commencer par ajouter un compteur de ligne.
Pour cela, dans Outils > SQL exécuter une instruction du type :

Code : Tout sélectionner   AgrandirRéduire
CREATE SEQUENCE "PYS" AS INTEGER


Cette instruction crée un compteur. Bien que créé dans Outils > SQL (et non dans une requête ou "dans" un champ de table) le compteur ne sera pas volatile, même après fermeture/réouverture de la base.

On peut utiliser ce compteur dans une requête du type :

Code : Tout sélectionner   AgrandirRéduire
SELECT "ID", "Nom", "Date naissance", NEXT VALUE FOR "PYS" AS "CPT" FROM "Table2"


Capture-1.png


  • Comme le montre la copie d'écran il est nécessaire d'exécuter ceci en mode SQL direct (le bouton correspondant doit être enfoncé)
  • On demande pour chaque ligne la valeur suivante pour le compteur.
  • S'agissant d'un compteur "base" (et non lié à la table) la valeur sera séquentielle mais pas nécessairement partant de zéro (commence à la dernière valeur utilisée + 1 soit 278 dans l'exemple)

En partant de ces données "numérotées" on peut sélectionner les ID des enregistrements des lignes paires :

Code : Tout sélectionner   AgrandirRéduire
SELECT "ID" FROM "Numéroter" AS "Numéroter" WHERE MOD( "CPT", 2 ) = 0


Nous créons une "vue" en partant de cette requête (car l'étape suivante nécessite une "table" ou une "vue)". Voir la vue "VueTravail" dans la base exemple.

La suppression des données (une ligne sur deux) se fera en exécutant par Outils > SQL une instruction du type :

Code : Tout sélectionner   AgrandirRéduire
DELETE FROM "Table2" WHERE "ID" IN (SELECT "ID" FROM "VueTravail"  )


Autrement dit, on supprime de la table tous les enregistrements pour lesquels le champ ID figure dans la liste des enregistrements sélectionnés par la vue "VueTravail"

Calcul d'un âge depuis une date de naissance

MessagePublié: 18 Juil 2010 14:59
par Pierre-Yves Samyn
Calcul d'un âge

Cette question a été abordée dans ce fil : https://forum.openoffice.org/fr/forum/v ... 822#p35822

mais depuis cette date et l'évolution de java (évoquée ici : https://forum.openoffice.org/fr/forum/v ... 543#p81847) la requête donnée dans la base exemple de l'époque ne fonctionne plus (gestion plus rigoureuse des dates qui attendent mois et jour sur 2 caractères).

Ci-dessous l'évolution de la requête permettant de fonctionner avec une version récente du JRE :

Code : Tout sélectionner   AgrandirRéduire
SELECT "DateNaissance", "Nom", YEAR(NOW())-YEAR("DateNaissance")-

case
   when (             MONTH( NOW() ) < MONTH("DateNaissance")                       OR            (        MONTH( NOW() ) = MONTH("DateNaissance") AND DAY( NOW() ) < DAY ("DateNaissance")     )                   )
   then 1
   else    0
end as "ans",

MONTH(NOW())-MONTH("DateNaissance") +

case
   when MONTH(now()) <= MONTH("DateNaissance") AND DAY(NOW()) < DAY("DateNaissance")
   then 11
   else
         case
         when MONTH(NOW()) < MONTH("DateNaissance") AND DAY(NOW()) >= DAY("DateNaissance")
         then 12
         else
               case
               when MONTH(NOW()) > MONTH("DateNaissance") AND DAY(NOW()) < DAY("DateNaissance")
               then -1
               else 0
               end
         end
end as "mois",

DATEDIFF('DAY',
cast(
YEAR(NOW()) || '-' || right( 0 || MONTH(NOW())  -

case
when DAY(NOW()) < DAY("DateNaissance")
   then 1
   else 0
end, 2)

|| '-' || right( 0 || DAY("DateNaissance"), 2)
as DATE) , NOW() )

as "jours"

FROM "Table1"

Re: Techniques pour débuter avec OOo Base

MessagePublié: 13 Nov 2010 13:50
par Pierre-Yves Samyn
Calculer une durée

Ce point a été traité dans ce fil : https://forum.openoffice.org/fr/forum/v ... 51#p139686

Code : Tout sélectionner   AgrandirRéduire
SELECT "ID", "Heure_Debut", "Heure_Fin", CAST ( '00:' || DATEDIFF( 'mi', "Heure_Debut", "Heure_Fin" ) || ':00' AS "TIME" ) AS "Temps total" FROM "Table1"


Explications :
  • La fonction DATEDIFF permet de calculer le nombre de minutes séparant les deux heures
  • On concatène le résultat avec des chaînes à zéro représentant heures et secondes. On obtient par exemple : 00:75:00
  • CAST convertit cette chaîne au format TIME (heure)

Il sera nécessaire de modifier le format d'affichage de la colonne comme expliqué dans ce fil https://forum.openoffice.org/fr/forum/v ... 22#p135541

Ceci n'est pas à faire en mode ébauche lors de la confection de la requête mais en mode exécution : afficher les objets "Requêtes", exécuter la requête (double clic sur son nom ou clic droit puis Ouvrir), clic droit sur l'en-tête de colonne > Formatage de colonne pour choisir le format Heure.

ce choix de présentation sera enregistré (il ne sera pas nécessaire de le redéfinir, sauf modification de la requête bien sûr)



 Ajout : Il est désormais possible d'utiliser la fonction TO_CHAR pour formater le résultat directement dans la requête :

Code : Tout sélectionner   AgrandirRéduire
SELECT "ID", "Heure_Debut", "Heure_Fin", TO_CHAR( CAST( '00:' || DATEDIFF( 'mi', "Heure_Debut", "Heure_Fin" ) || ':00' AS "TIME" ), 'HH:MI' ) AS "Temps total" FROM "Table1"


Le premier argument attendu par cette fonction est l'expression Date/Heure à convertir au format texte, le second est le format à utiliser cf. tableau dans la documentation 

Réinitialiser l'incrémentation d'un autochamp

MessagePublié: 30 Mai 2012 08:47
par malou
Pour réinitialiser l'incrémentation d'un autochamp (en cas de nombreuse suppression par exemple, ou pour commencer à un nombre prédéfini)

Dans Outil -> SQL executer
Code : Tout sélectionner   AgrandirRéduire
ALTER TABLE "table" ALTER COLUMN column RESTART WITH value


par exemple

Code : Tout sélectionner   AgrandirRéduire
ALTER TABLE "Adhérents" ALTER COLUMN column RESTART WITH 11


Attention à ne pas mettre un nombre inférieur ou égale à une valeur déjà existante dans la table, vous obtiendriez un message d'erreur

Trouvé sur le forum anglais : https://forum.openoffice.org/en/forum/v ... 165&p=7981

Clause Where avec date dans une macro

MessagePublié: 26 Août 2013 14:11
par Piaf
Bonjour
Petites fonctions pour faciliter la mise en forme d'une date dans une instruction SQL par macro.
Le principe est d'envoyer la valeur texte de la date à la fonction qui renvoie la valeur formatée dans l'instruction SQL.
Pour une date :
Code : Tout sélectionner   AgrandirRéduire
Function DateUS(dte as String) as String
   DateUS = "{D '" & Format(dte,"YYYY-MM-DD") & "' }"
End Function
Exemple d'utilisation pour une date fixe :
Code : Tout sélectionner   AgrandirRéduire
strSQL = "SELECT * FROM ""Table1"" WHERE ""dteDate"" = " & DateUS("20/8/13")

Pour une Date/Heure
Code : Tout sélectionner   AgrandirRéduire
Function DateHeureUS(dte as String) as String
   DateHeureUS = "{TS '" & Format(dte,"YYYY-MM-DD HH:MM:SS") & "' }"
End Function
Exemple d'utilisation pour une date/heure fixe :
Code : Tout sélectionner   AgrandirRéduire
strSQL = "SELECT * FROM ""Table1"" WHERE ""tsDate"" = " & DateHeureUS("20/8/13 12:00")

Pour une Heure
Code : Tout sélectionner   AgrandirRéduire
Function Heure(hr as String) as String
   Heure = "{T '" & Format(hr,"HH:MM:SS") & "' }"
End Function
Exemple d'utilisation pour une heure fixe
Code : Tout sélectionner   AgrandirRéduire
strSQL = "SELECT * FROM ""Table1"" WHERE ""hHeure"" = " & Heure("13:00")
A+

Re: Techniques pour débuter avec le module Base

MessagePublié: 27 Déc 2013 21:40
par HRk2o
Saisie répétée de date

Dans un formulaire ou un contrôle de table, lorsqu'un champ date quotidien et répété doit être saisi à chaque enregistrement, l'astuce simple et rapide est celle-ci:
- Tapez la date complète dans le champ concerné puis Validez l'enregistrement;
- Au nouvel enregistrement, tapez simplement le 1er chiffre de la date et passez au champ suivant; la date entière s'affichera et vous épargnera la frappe de 5 touches clavier.

ex: Si vous avez 50 saisies à effectuer à la date du 15/12/13, et 50 autres à la date du 25/12/13:
- la 1re saisie -> 15/12/13 et les 49 autres -> 1;
- la 51e saisie -> 26/12/13 et les 49 autres -> 2;

Retenez que c'est la dernière date complète qui est conservée en mémoire et qui n'est pas perdue même après fermeture du formulaire.
@+

Le modérateur a écrit: :alerte: Aucune question n'est autorisée dans ce post-it !
Si vous avez un problème de compréhension, ouvrez un nouveau fil de discussion.

Manipulations de dates en SQL

MessagePublié: 19 Avr 2015 20:41
par Piaf
Bonjour
Quelques requêtes permettant le calcul à partir de dates.
Le principe est de récupérer une valeur pouvant être interprétée comme une date par le moteur de base de données.
Ajout de valeurs à une date. (La fonction TO_CHAR n'est utile que pour la présentation des données).
Les valeurs ajoutées sont en dur dans la requête mais peuvent bien sur être récupérées à partir d'un autre champ.
Ajout d'une année
Code : Tout sélectionner   AgrandirRéduire
SELECT "maDate", TO_CHAR( CAST( YEAR( "maDate" ) + 1 || '-' || MONTH( "maDate" ) || '-' || DAY( "maDate" ) AS "DATE" ), 'DD  MONTH YYYY' ) AS "AjoutAnnee_+1" FROM "tDates"
Le principe est le même pour l'ajout ou la soustraction des mois et des jours
AjoutDates.png
Récupérer le dernier jour du mois précédent.
Code : Tout sélectionner   AgrandirRéduire
SELECT "maDate", TO_CHAR( CAST( YEAR( "maDate" ) || '-' || MONTH( "maDate" ) || '-' || DAY( "maDate" ) - DAY( "maDate" ) AS "DATE" ), 'DD/MM/YYYY' ) AS "DernierJourMoisPrecedent" FROM "tDates"
Récupérer le dernier jour du mois
Code : Tout sélectionner   AgrandirRéduire
SELECT "maDate", TO_CHAR( CAST( YEAR( "maDate" ) || '-' || MONTH( "maDate" ) + 1 || '-' || 0 AS "DATE" ), 'DD/MM/YY' ) AS "DernierJourduMois" FROM "tDates"
Deux façons de récupérer le nombre de jours du mois, soit par calcul avec DATEDIFF, soit en récupérant la valeur DAY du dernier jour du mois.
Code : Tout sélectionner   AgrandirRéduire
SELECT "maDate", DATEDIFF( 'dd', "maDate", CAST( YEAR( "maDate" ) || '-' || MONTH( "maDate" ) + 1 || '-' || DAY( "maDate" ) AS DATE ) ) AS "JoursdansMois1", DAY( CAST( YEAR( "maDate" ) || '-' || MONTH( "maDate" ) + 1 || '-' || 0 AS "DATE" ) ) AS "JoursdansMois2" FROM "tDates"
Une petite dernière, déterminer si une année est bissextile ou pas.
Code : Tout sélectionner   AgrandirRéduire
SELECT "maDateB", YEAR( "maDateB" ) AS "Annee", CASE WHEN MOD( YEAR( "maDateB" ), 4 ) = 0 AND MOD( YEAR( "maDateB" ), 100 ) <> 0 OR MOD( YEAR( "maDateB" ), 400 ) = 0 THEN 'Bissextile' ELSE 'Pas bissextile' END AS "B", CASEWHEN( DAY( CAST( YEAR( "maDateB" ) || '-' || 3 || '-' || 0 AS "DATE" ) ) = 29, 'Vrai', 'Faux' ) AS "Bissextile", TO_CHAR( CAST( YEAR( "maDateB" ) || '-' || 3 || '-' || 0 AS DATE ), 'MONTH DD' ) AS "nbJoursFev", TO_CHAR( CAST( YEAR( "maDateB" ) || '-' || 12 || '-' || 31 AS DATE ), 'DDD' ) AS "nbJoursAnnee" FROM "tAnneesBissextibles"
Bissextile.png

Le principe devrait pouvoir s'appliquer aux champs Heure, j'essayerais de faire un post dès que j'aurais le temps de tester :lol:
A+

La fonction TO_CHAR

MessagePublié: 14 Mai 2015 13:20
par Piaf
Cette fonction a été implémentée après la traduction du guide de l'utilisateur HSQLDB. Guide

TO_CHAR(Date ou date/heure,format) retourne une chaine de caractères formatée à partir d'une date ou d'une date/heure.
Pour la version HSQLDB implémentée dans AOO et LibO (1.8.0.10) les masques de formats utilisables sont :

maDate = 14/05/15

maDate = 14/05/2015 08:17:15

J'espère ne rien avoir oublié.
A+

Le modérateur a écrit: :alerte: Aucune question n'est autorisée dans ce post-it !
Si vous avez un problème de compréhension, ouvrez un nouveau fil de discussion.