Je suis plutôt perplexe : pourquoi le programmeur aurait-il fait cela ? Pour brouiller les cartes? C'est l'unique possibilité que je vois et je ne pense pas qu'un informaticien puisse faire cela.
Votre déduction est-elle correcte pour tous les enregistrements de votre table (ou est-ce uniquement une jolie coïncidence) ?
Comme vous, j'ai été confronté à un problème de ce type à savoir un champs qui devrait contenir des informations DateTime mais qui semblait contenir autre chose (voir première colonne de mon tableau ci-dessous).
Un collègue m'avait alors expliqué que les dates étaient au format Unix timestamp (voir aussi http://mysql.databases.aspfaq.com/ho...timestamp.html)
Voici ce que j'ai dans ma base de données
1 2 3 4
| Open_Date
1031839200
1161151132
1168873004 |
Partant de là, j'ai créé une petite fonction dans ma base de données :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
/****************************************************************************************************************
Created By/Date : Christophe Avonture / October 2008
Purpose : Convert an Unix date (as stored in the call_req table (field Open_Date f.i.) into a system date-time
Usage : Intern & SSRS
Parameters :
@dte Int
Example : SELECT dbo.udf_ConvertUnixDate(call_req.Open_Date) As Open_Date, * FROM mdb.dbo.call_req
Modified History
Name/Date Purpose
******************************************************************************************************************/
CREATE FUNCTION [dbo].[udf_ConvertUnixDate]
(
@dte As Int
)
RETURNS DateTime
AS
BEGIN
RETURN DATEADD(hh, DATEDIFF(hh, GetUTCDate(), GETDATE()), DATEADD(s, @dte, '19700101'))
END |
Cette fonction va recevoir en paramètre la date Unix pour retourner une date au format Windows.
Et donc l'appel se fait ainsi
SELECT Open_Date, dbo.udf_ConvertUnixDate(call_req.Open_Date) As Windows_Open_Date FROM mdb.dbo.call_req
J'obtiendrais :
1 2 3 4 5
|
Open_Date Open_Date
1031839200 2002-09-12 15:00:00.000
1161151132 2006-10-18 06:58:52.000
1168873004 2007-01-15 15:56:44.000 |
A tester sur un jeu d'enregistrements de ta base de données afin de voir si cet algorithme est correct dans ton cas ou pas.
Bonne chance.
Partager