|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre du Club
![]() Inscription : janvier 2006 Messages : 95 ![]() |
Bonjour, voici mon problème :
J'ai une base de données SYBASE contenant deux champs : un champs "datechangement" au format DATE un champs "heure_creation" au formate TIME Lorsque je récupère "datechangement" j'obtiens bien la date contenue dans la base mais aussi une heure "bidon" qui m'embête beaucoup. En clair dans la base j'ai : Jan 2 2007 et à l'affichage j'ai : Jan 2 2007 12:00AM Pour l'heure_creation dans la base si je fais un select j'obtiens bien une heure mais en PERL quand je fais le SELECT heure_creation j'obtiens l'heure ET une date "bidon" En clair dans la base j'ai : 1:04PM et à l'affichage j'ai : Jan 1 1900 1:04PM J'ai essayé avec timelocal() mais ça ne marche pas.. Code :
Codes sources : Code :
|
||||
|
|
00
|
|
|
#2 |
![]() ![]() |
Pour des raisons de simplification DBD::Sybase convertit les types DATE et TIME en DATETIME au moment du fetch.
Il y a plusieurs solutions. Soit au moment du SELECT, avec un convert(varchar, champ_date, 108), soit dans le code perl on peut simplement dire que la valeur 1 janvier 1900 est "invalide" et qu'il faut l'ignorer. Michael
__________________
Michael Peppler Membre de TeamSybase - www.teamsybase.com "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson |
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : janvier 2006 Messages : 95 ![]() |
Merci ça fonctionne enfin !
Mais je ne trouve pas cela trés "propre" En effectuant des recherches je suis tombé sur bind_param. $sth->bind_param( 11,$rowdata[10],SQL_DATE); J'ai pas vraiment compris l'utilité ni comment l'utiliser mais ne serait-ce pas "la solution" ? |
|
|
00
|
|
|
#4 |
![]() ![]() |
Le bind_param() est utilisé pour le passage de paramètres pour remplacer les "?" dans une requète. Cela n'est pas utile lors d'un "fetch".
J'accepte volontier un patch pour DBD::Sybase pour améliorer le comportement :-) Michael (auteur de DBD::Sybase)
__________________
Michael Peppler Membre de TeamSybase - www.teamsybase.com "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson |
|
|
00
|
|
|
#5 |
![]() ![]() |
Sauf erreur, en 15 devraient apparaître les types DATE et TIME
__________________
Sr DBA Oracle / Sybase / MS-SQL / DB2 / Informix / Postgresql Administrateur SAP Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums ! |
|
|
00
|
|
|
#6 |
![]() ![]() |
En effet (et ces nouveaux types sont déjà dispo en 12.5.3).
La problématique est que l'appli cliente n'est pas toujours codée pour différencier ces types, et OpenClient va convertir les DATE et TIME en DATETIME dans ce cas. Michael
__________________
Michael Peppler Membre de TeamSybase - www.teamsybase.com "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com