Affichage de date erroné avec connexion PostgreSQL

Discussions sur le module de base de données Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.
Bernard30
NOOuvel adepte
NOOuvel adepte
Messages : 22
Inscription : 11 nov. 2021 16:47

Affichage de date erroné avec connexion PostgreSQL

Message par Bernard30 »

Bonjour,
J'ai une base de données sur Postgresql
Dans cette base une table T_ADH enregistre les adhérents d'une association
les dates de naissance et d'adhésion sont au format imposé par postegresql (YYYY-MM-DD)
La table s'affiche correctement via PgAdmin
Par contre quand je visualise la même table via libre office base, les dates on un affichage bizard (par exemple 1951-06-03 sous pgadmin devient 0026-01_02 dans base) alors que toutes les autres données de la table sont correctement affichées! Plus fort un clic droit sur la col NaiDat de la table ouverte dans Libo m'indique que je suis bien en format date iso 8601....
Du coup les résultats de requêtes - montées sous base -incluant des dates sont folkloriques et les rapports s'appuyant dur les requêtes impossibles...
Comment solutionner ce problème ?

Logiciels utilisés:
Libre Office 7.6 PostgreSql 16 avec PgAdmin4 8.4 sous windows 10

Je voulais joindre le fichier sql de creation de la table T_Adh_Exemple.sql pour postgresql et fichier T_Adh_Exemple.csv (avec les date au format iso 8601) de 4 données exemples pour illustrer mon propos mais ces extensions ne sont pas prises en compte

Bernard30

PS j'envoie les fichiers sous forme zip
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par Bernard30 le 18 mars 2024 16:50, modifié 2 fois.
libre office 7.6.4.1 sous windows 10
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 9258
Inscription : 28 août 2010 08:45

Re: Libre Office et PostgreSQl

Message par micmac »

Bonjour,
Bernard30 a écrit : 17 mars 2024 17:12 Logiciels utilisés:
Libre Office 7.6 PostgreSql 16 avec PgAdmin4 8.4 sous windows 10
Dans votre signature il y a écrit :libre office 7.6.4.1 sous Linux Mint 21.3
Accès direct à votre signature pour la mettre à jour.
Bidouille a écrit : 13 mai 2008 16:14 :idea: Si l'extension de votre fichier n'est pas autorisée, encapsulez celui-ci dans un .zip
Touche Ctrl de Windows = touche cmd⌘ sur Mac
Outils > Options sur Windows = OpenOffice > Préférences sur Mac
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16960
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: Libre Office et PostgreSQl

Message par jeanmimi »

Bonjour,
Il doit y avoir quelque chose qui m'échappe, mais pourquoi avoir posté dans le module Dessin du forum ?
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
Oukcha
RespOOnsable modération
RespOOnsable modération
Messages : 3954
Inscription : 06 oct. 2008 08:03

Re: Affichage de date avec connexion avec PostgreSQl

Message par Oukcha »

Bonjour,

Sujet logiquement déplacé en section Base de données.

Cordialement
                                        
Pour tout savoir sur le fonctionnement de ce forum :arrow: À lire avant tout ! Image
Anakin
NéOOphyte
NéOOphyte
Messages : 145
Inscription : 08 nov. 2023 11:40

Re: Affichage de date erroné avec connexion PostgreSQL

Message par Anakin »

Bonjour Bernard,

Après avoir lu votre sujet, j'ai interrogé google et je crois comprendre que vous pouvez accéder au formatage de la date sur le server aussi bien que sur base.
SET DateStyle TO European;
A+
Libre Office 6.0.7 sous Ubuntu 18.04.6
Bernard30
NOOuvel adepte
NOOuvel adepte
Messages : 22
Inscription : 11 nov. 2021 16:47

Re: Affichage de date erroné avec connexion PostgreSQL

Message par Bernard30 »

non cela ne fonctionne pas !
Bernard 30
libre office 7.6.4.1 sous windows 10
Anakin
NéOOphyte
NéOOphyte
Messages : 145
Inscription : 08 nov. 2023 11:40

Re: Affichage de date erroné avec connexion PostgreSQL

Message par Anakin »

Cher Monsieur Bernard,

Pouvez-vous tester ce code via BASE ?

A+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office 6.0.7 sous Ubuntu 18.04.6
Avatar de l’utilisateur
Jurassic Pork
PassiOOnné
PassiOOnné
Messages : 629
Inscription : 09 août 2017 22:15

Re: Affichage de date erroné avec connexion PostgreSQL

Message par Jurassic Pork »

Hello,
Impossible de récupérer ton fichier, mon antivirus windows defender détecte un virus dedans et refuse de le garder.
Par contre j'ai essayé de me connecter à une base de données postgresql 15 avec des dates à partir de LibreOffice Base 7.4.6.2 et je ne semble pas avoir ton problème. La base de données est Northwind une base de données de test très connue.
Voici une copie d'écran avec ce que je vois dans PgAdmin et LibreOffice pour la table employees :
Postgresql_LibreOffice.png

Ami calmant, J.P
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice 7.6.2.1 et OpenOffice 4.1.15 sous windows 11
LibreOffice 24.2.0 et OpenOffice 4.1.15 sous Ubuntu 20.04
Bernard30
NOOuvel adepte
NOOuvel adepte
Messages : 22
Inscription : 11 nov. 2021 16:47

Re: Affichage de date erroné avec connexion PostgreSQL

Message par Bernard30 »

Bonjour
J'ai suivi ton conseil avec l'utilisation de northwind
Le problème est le même avec un mauvais affichage des dates sous base et un affichage correct sous pgadmin...
Bernard30
libre office 7.6.4.1 sous windows 10
Avatar de l’utilisateur
Jurassic Pork
PassiOOnné
PassiOOnné
Messages : 629
Inscription : 09 août 2017 22:15

Re: Affichage de date erroné avec connexion PostgreSQL

Message par Jurassic Pork »

Hello,
tu peux essayer ce code pour voir d'où vient le problème (en remplaçant les identifiants de la la base postgresql par les tiens ) :

Code : Tout sélectionner

Sub ConnPostGresSqlSdbc()
Dim sURL as String, oManager As Object, oCon as Object, oStatement as Object, oResult as Object
Dim res, laDate as Date, oClasseur As Object
sURL = "sdbc:postgresql:dbname=Northwind host=localhost user=postgres password=xxxxxxxxx"
oManager = CreateUnoService("com.sun.star.sdbc.DriverManager")
oCon = oManager.getConnection(sURL)
oStatement = oCon.CreateStatement()
oResult = oStatement.executeQuery("SELECT birth_date FROM employees  LIMIT 1")
oResult.First
Do
   res = oResult.getString(1)
   laDate = CDate(res)
   msgBox "Chaîne : " + res + " - Date : " + Format(laDate,"dd/mm/yyyy")		         
Loop While oResult.Next

End Sub 
si res est bon ce n'est pas la base postgresql qui est en cause. Vérifie le format de colonne dans l'affichage de la table (clic droit sur l'entête de la colonne)

Ami calmant, J.P
LibreOffice 7.6.2.1 et OpenOffice 4.1.15 sous windows 11
LibreOffice 24.2.0 et OpenOffice 4.1.15 sous Ubuntu 20.04
Bernard30
NOOuvel adepte
NOOuvel adepte
Messages : 22
Inscription : 11 nov. 2021 16:47

Re: Affichage de date erroné avec connexion PostgreSQL

Message par Bernard30 »

j'ai essaye ton code
le résultat est correct donc la base PostgreSQL est valide
j'ajoute qu'une requête pour extraire l'âge des adhérents

Code : Tout sélectionner

SELECT "NaiDat",
 
 CASE
 WHEN Extract (Month from Current_Date) < EXTRACT ( month from "NaiDat") or ( Extract (Month from Current_Date) = Extract (Month from "NaiDat") and Extract (Day from Current_Date)<Extract (day from"NaiDat") )   THEN
       CAST((Extract (Year from Current_Date) - Extract (Year from "NaiDat") -1) AS VARCHAR) || ' ans'
 ELSE
       CAST((Extract (Year from Current_Date) - Extract (Year from "NaiDat") ) AS VARCHAR) || ' ans'
 END as "Age","Nom","Prenom","Id_Adherent"
 
 from "T_Adh" where "Cotis_23_24" = 'TRUE'
donne un résultât correct pour l'âge mais retourne la NaiDAt de manière toujours folklorique !

Dans base le clic droit sur la col pour en changer le formatage donne des résultats étonnants mais jamais le bon
Bernard 30
Dernière modification par Oukcha le 20 mars 2024 18:24, modifié 1 fois.
Raison : Balises [code] et [/code] = lecture et sélection simplifiées de votre requête
libre office 7.6.4.1 sous windows 10
Anakin
NéOOphyte
NéOOphyte
Messages : 145
Inscription : 08 nov. 2023 11:40

Re: Affichage de date erroné avec connexion PostgreSQL

Message par Anakin »

@ Bernard

Bonjour Bernard, Tu voudras bien m'excuser mais le sujet commence à m'agacer:

Lorsque tu as codé sur Postgresql, quel format as-tu donné au champ "NaiDate" (à savoir: date de naissance) MM/DD/YYYY, YYYY/MM/DD ou tout simplement DD/MM/YYYY?

Je deviens dingue...

:tesfou:
Libre Office 6.0.7 sous Ubuntu 18.04.6
Bernard30
NOOuvel adepte
NOOuvel adepte
Messages : 22
Inscription : 11 nov. 2021 16:47

Re: Affichage de date erroné avec connexion PostgreSQL

Message par Bernard30 »

j'ai utilisé le type de données "date" de postgresql pour Naidat. Dans PgAdmin j'obtiens les dates au format yyyy-mm-dd
Bernard
libre office 7.6.4.1 sous windows 10
Anakin
NéOOphyte
NéOOphyte
Messages : 145
Inscription : 08 nov. 2023 11:40

Re: Affichage de date erroné avec connexion PostgreSQL

Message par Anakin »

Oui mais as-tu modifié le format DATE dans la table importée en BASE?
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office 6.0.7 sous Ubuntu 18.04.6