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 :
- 2007-02-21 05:06:20
- 2007-02-21 09:17:56
- (...)
- 2007-02-23 12:25:30
- (...)
- 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 :
- 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 :
- Feb 21 200
- Feb 22 200
- Feb 23 200
- Feb 24 200
- Feb 25 200
|
Si je change mon substring en :
Code :
- 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...
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 ?