PHP-MSSQL : gestion de la date/heure

PHP-MSSQL : gestion de la date/heure - PHP - Programmation

Marsh Posté le 12-03-2007 à 16:04:11    

bonjour à tous,
 
Je suis en train de bricoler un truc en PHP-MSSQL (je dis bien "MS" et pas "My" ... je n'ai pas le choix malheureusement).
 
J'ai activé les extensions MSSQL, toutes mes fonctions mssql_* sont disponibles, tout a l'air de bien se passer à ce niveau en tout cas. A une chose près : la manière dont la date et l'heure (disons le datetime) est géré.
 
J'ai une table MSSQL qui contient entre autres un champ "[heure]" de type "datetime" (à la M$, donc...). Lui-même contient des dates comprises, disons, entre le 21 et le 25 février et une foule d'heures différentes pour tous ces jours.
Un petit check via le Query Analyzer (en console sur le DB server) me donne comme contenu de mon champ "[heure]" des valeurs telles que :  

Code :
  1. 2007-02-21 05:06:20
  2. 2007-02-21 09:17:56
  3. (...)
  4. 2007-02-23 12:25:30
  5. (...)
  6. 2007-02-25 23:52:51


Je voudrais sélectionner dans ce champ [heure] toutes les valeurs de date distinctes (pour donc m'assurer l'étendue du 21 au 25 février, qui pourrait  s'étendre à l'avenir) et pour éviter tous les problèmes inhérents aux dates je le cast même en varchar (de plus, ce cast me sera utile pour d'autres traitements par la suite):  

Code :
  1. Select SUBSTRING(CAST([heure] AS varchar),1,10) as madate from matable order by madate


La requête est validée mais pas comme je voudrais. Je reçois en effet comme résultat :  

Code :
  1. Feb 21 200
  2. Feb 22 200
  3. Feb 23 200
  4. Feb 24 200
  5. Feb 25 200


Si je change mon substring en :  

Code :
  1. SUBSTRING(CAST([heure] As varchar),1,11)


j'obtiens alors les bonnes valeurs (Feb 21 2007 etc.).
 
Ce qui semble prouver que soit le Query Analyzer sur le serveur ne me donne pas les valeurs réellement stockées, ou alors que le moteur MSSQL de PHP  interprète les strings de date et les transforme automatiquement en date formatée à l'anglaise (logique, vus les settings sur mon serveur).  
 
Quoi qu'il en soit, cela me rend dingue car je ne trouve pas comment le paramétrer... :fou:  
 
Je voudrais que lorsque je cast ma date en varchar, elle soit traitée comme une string de type AAAA-MM-JJ un point c'est tout... quelqu'un a une idée ?
 

Reply

Marsh Posté le 12-03-2007 à 16:04:11   

Reply

Marsh Posté le 12-03-2007 à 16:25:40    

et SQLite sous PHP5, tu l'as forcément (ICI), pour des petite base ça peut passer

Reply

Marsh Posté le 12-03-2007 à 17:12:50    

Merci pour ton lien ,
 
Je connaissais déjà SQLLite (de nom; jamais utilisé personnellement) et si je comprends bien ce n'est pas une interface de connexion à un autre serveur mais un mini-servuer en soi (à la MySQL).
 
Je suis malheureusement obligé d'utiliser mon serveur MSSQL existant; la base est alimentée par d'autres processus qui le font impérativement là ... :/
 

Reply

Marsh Posté le 12-03-2007 à 18:17:08    

ZeBix a écrit :


Je connaissais déjà SQLLite (de nom; jamais utilisé personnellement) et si je comprends bien ce n'est pas une interface de connexion à un autre serveur mais un mini-servuer en soi (à la MySQL).


 
exactement, et directement géré par le serveur PHP
 

ZeBix a écrit :


Je suis malheureusement obligé d'utiliser mon serveur MSSQL existant; la base est alimentée par d'autres processus qui le font impérativement là ... :/


 
Arf... bon, je ne peux rien pour toi, mais à mon avis tu trouverais plus de réponse dans la section SGBD/SQL...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed