none
DateDiff for columns varchar RRS feed

  • Question

  • Hi,

    I want to a difference between 2 dates but the columns is varchar.

    Example : 

    Person  DateStarted  DateFinished

    Mark  20121028131458  20121028150910

    Steven  20121028155624  20121028160634

    Patrick 20121029100554  20121029110530

     How I converts DateStarted and DateFinished (actually varchar) in Date Format ? After I do a difference date (DATEDIFF for example).

    Finally I want minutes between DateStarted and DateFinished.

    Thanks for your help.


    mercredi 20 février 2013 11:15

Réponses

  • Bonjour

     Vous êtes sur les forums MSDN France donc je vous réponds en Français:

    Aucun format standard ne corresponde à ce que vous avez dans ces champs, donc j'ai travaillé
    sur les champs datetime pour le transformer dans un format reconnu.

    http://msdn.microsoft.com/en-us/library/ms187928.aspx

    J’ai fait un petit teste pour vous :

    create table #temp   (DateStarted   varchar(50), DateFinished varchar(50))

    insert into #temp values ('20121028131458','20121028150910')

    select datediff (s, 

                 convert (datetime, substring (DateStarted, 1,4)  + '-'

                 + substring (DateStarted, 5,2) +  '-'

                 + substring (DateStarted, 7,2) + ' '

                 + substring (DateStarted, 9,2) +':'

                 + substring (DateStarted, 11,2) +':' 

                 + substring (DateStarted, 13,2)   , 120 ) 

                        , convert (datetime, substring (DateFinished, 1,4)  + '-'

                 + substring (DateFinished, 5,2) +  '-'

                 + substring (DateFinished, 7,2) + ' '

                 + substring (DateFinished, 9,2) +':'

                 + substring (DateFinished, 11,2) +':' 

                 + substring (DateFinished, 13,2)    , 120 )) from #temp

    Qui fonctionne très bien.

    Si vous avez la possibilité d’enregistrer directement avec un format reconnu, ou modifier le type de ces champs en Datetime les choses seront beaucoup plus simples.

    Cordialement,


    Aurel BERA, Microsoft
    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.



    mercredi 20 février 2013 12:44
    Modérateur

Toutes les réponses