OVH Cloud OVH Cloud

Probleme de format de date

6 réponses
Avatar
SuperGolgoth
Bonjour a tous,
j'essaie d'interroger une base qui contient des dates dans des champs
'float' (les données sont du genre '37942.489580000001' correspondant
au 17/11/2003 à 11h45)
Mon probleme c'est de faire des requetes avec des where date between
'01/01/2005' and '31/01/2005' sans me soucier de ces numeros de serie.
Je cherche donc la fonction qui permet de transcrire ces formats dans
les 2 sens ...
Merci a tous

--
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Life is simple :
Eat, sleep, and surf the net
~~~~~~~~~~~~~~~~~~~~~~~~~~~

6 réponses

Avatar
Bouarroudj Mohamed
Voir la fonction convert dans BOL, exemple : convert(datetime, floatcoloone,
103)
Il faut peut être revoir votre modélisation et simplement créer une colonne
de type datetime


"SuperGolgoth" wrote in message
news:
Bonjour a tous,
j'essaie d'interroger une base qui contient des dates dans des champs
'float' (les données sont du genre '37942.489580000001' correspondant au
17/11/2003 à 11h45)
Mon probleme c'est de faire des requetes avec des where date between
'01/01/2005' and '31/01/2005' sans me soucier de ces numeros de serie.
Je cherche donc la fonction qui permet de transcrire ces formats dans les
2 sens ...
Merci a tous

--
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Life is simple :
Eat, sleep, and surf the net
~~~~~~~~~~~~~~~~~~~~~~~~~~~




Avatar
bruno reiter [MVP]
mettre autre chose que de l'approximatif dans du float est extremement
dangereux. Si tu peux encore changer, fais le vite.

br

"SuperGolgoth" wrote in message
news:
Bonjour a tous,
j'essaie d'interroger une base qui contient des dates dans des champs
'float' (les données sont du genre '37942.489580000001' correspondant
au 17/11/2003 à 11h45)
Mon probleme c'est de faire des requetes avec des where date between
'01/01/2005' and '31/01/2005' sans me soucier de ces numeros de serie.
Je cherche donc la fonction qui permet de transcrire ces formats dans
les 2 sens ...
Merci a tous

--
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Life is simple :
Eat, sleep, and surf the net
~~~~~~~~~~~~~~~~~~~~~~~~~~~




Avatar
SuperGolgoth
SuperGolgoth avait soumis l'idée :
Bonjour a tous,
j'essaie d'interroger une base qui contient des dates dans des champs 'float'
(les données sont du genre '37942.489580000001' correspondant au 17/11/2003 à
11h45)
Mon probleme c'est de faire des requetes avec des where date between
'01/01/2005' and '31/01/2005' sans me soucier de ces numeros de serie.
Je cherche donc la fonction qui permet de transcrire ces formats dans les 2
sens ...
Merci a tous



Et hop je me reponds moi meme ...
La fonction CAST , apparement, me convient
Merci a tous et a moi-meme

--
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Life is simple :
Eat, sleep, and surf the net
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Avatar
SuperGolgoth
Je ne peux rien changer, car cette base est utiliser en priorité par le
CRM de la boite ...

Il se trouve que bruno reiter [MVP] a formulé :
mettre autre chose que de l'approximatif dans du float est extremement
dangereux. Si tu peux encore changer, fais le vite.

br



--
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Life is simple :
Eat, sleep, and surf the net
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Avatar
bruno reiter [MVP]
attention à toujours travailler sur des intervalles etnon sur des égalités,
et à ne pas faire le convert (ou cast) sur la colonne de la table si tu veux
pouvoir utiliser l'index (si existant)

br

"SuperGolgoth" wrote in message
news:
SuperGolgoth avait soumis l'idée :
> Bonjour a tous,
> j'essaie d'interroger une base qui contient des dates dans des champs


'float'
> (les données sont du genre '37942.489580000001' correspondant au


17/11/2003 à
> 11h45)
> Mon probleme c'est de faire des requetes avec des where date between
> '01/01/2005' and '31/01/2005' sans me soucier de ces numeros de serie.
> Je cherche donc la fonction qui permet de transcrire ces formats dans


les 2
> sens ...
> Merci a tous

Et hop je me reponds moi meme ...
La fonction CAST , apparement, me convient
Merci a tous et a moi-meme

--
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Life is simple :
Eat, sleep, and surf the net
~~~~~~~~~~~~~~~~~~~~~~~~~~~




Avatar
SuperGolgoth
bruno reiter [MVP] a émis l'idée suivante :
attention à toujours travailler sur des intervalles etnon sur des égalités,
et à ne pas faire le convert (ou cast) sur la colonne de la table si tu veux
pouvoir utiliser l'index (si existant)

br



Yes, of course, voici la (petite) requete qui va bien ...

select actqui 'QUI', year(actdate) 'ANNEE', month(actdate) 'MOIS' ,
count(month(actdate)) 'COMBIEN'
from actions
where CAST(actdate as DATETIME) between "01/01/2005" AND "31/01/2005"
group by actqui, year(actdate), month(actdate)
order by actqui, year(actdate), month(actdate)

--
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Life is simple :
Eat, sleep, and surf the net
~~~~~~~~~~~~~~~~~~~~~~~~~~~