Avatar billede alex_sleiborg Nybegynder
05. december 2007 - 18:04 Der er 6 kommentarer og
1 løsning

Datetime MySql til DateTime C# og omvendt

Ja, overskriften siger vel det meste. Når jeg skal skifte mellem de forskellige formater, findes der så en smart måde at gøre det på? Eller skal jeg selv skrive en metode der kan gøre det
Avatar billede nielle Nybegynder
05. december 2007 - 18:07 #1
Hvis du bruger parametre i dine database kald behøver du slet ikke at spekulere over den slags problemstillinger; så sker det helt automatisk.
Avatar billede nielle Nybegynder
05. december 2007 - 18:09 #2
Læs f.eks. arne_v's udemærkede artikel om emnet:

http://www.eksperten.dk/artikler/831
Avatar billede alex_sleiborg Nybegynder
05. december 2007 - 18:11 #3
Det gør jeg. Men når jeg hiver mine data ud i et dataset og fx. gør sådan

foreach(DataRow dr in getMySqlDataSet().Tables["tabel"].Rows)
{
    Debug.WriteLine(dr["start"]);
}

Hvis jeg skal konvertere til C# format, skal jeg så selv skrive en metode? Eller findes der en smart måde at gøre det på
Avatar billede nielle Nybegynder
05. december 2007 - 18:19 #4
Kan det ikke klares med en typecast?

foreach(DataRow dr in getMySqlDataSet().Tables["tabel"].Rows)
{
    DateTime dt = (DateTime)dr["start"];
    Debug.WriteLine(dt);
Avatar billede alex_sleiborg Nybegynder
05. december 2007 - 18:27 #5
Super det virker. Jeg troede egentlig kun at man kunne typecaste, hvis det var i samme format. Men smid et svar. Og tak
Avatar billede nielle Nybegynder
05. december 2007 - 18:30 #6
Svar :^)
Avatar billede md_craig Nybegynder
06. december 2007 - 14:35 #7
Man kan typisk kun typecaste hvis det er samme type...
Dog kan man jo lave en Implicit og Explicit operator der gør at man can type caste på tværs af typer...

Dato formatet har ikke noget med sagen at gøre dog, det er kun en måde at præsentere datoen på... under det hele er 3. December 2007 modeleret på samme måde som 2007/12/03... og typisk er det samme måde det foregår nede i databasen som i de forskellige sprog, (Oracle er formentlig en af undtagelserne da oracle er abskur på mange områder)... typisk er alle datoer lagret som en long ud fra en specifik definition, fx i .NET:

Time values are measured in 100-nanosecond units called ticks, and a particular date is the number of ticks since 12:00 midnight, January 1, 1 A.D. (C.E.) in the GregorianCalendar calendar. For example, a ticks value of 31241376000000000L represents the date, Friday, January 01, 0100 12:00:00 midnight. A DateTime value is always expressed in the context of an explicit or default calendar.

I Java er det dog fx:

Number of milliseconds since the standard base time known as "the epoch", namely January 1, 1970, 00:00:00 GMT.

Fælles for begge er at det stadig bare er en long under neden.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester