myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
   » Plugin für Firefox
   » Plugin für IE
   » Gadget für Windows
» Regeln
» Wie poste ich richtig?
» Datenschutzerklärung
» wbb-FAQ

Mitglieder
» Liste / Suche
» Stadt / Anleitung dazu
» Wer ist wo online?

Angebote
» ASP.NET Webspace
» Bücher
» Zeitschriften
   » dot.net magazin
» Accessoires

Ressourcen
» .NET-Glossar
» guide to C#
» openbook: Visual C#
» openbook: OO
» .NET BlogBook
» MSDN Webcasts
» Search.Net

Team
» Kontakt
» Übersicht
» Wir über uns
» Bankverbindung
» Impressum

» Unsere MiniCity
MiniCity
» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Datentechnologien » DateTime nach MS SQL Server - ohne Sekunden
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

DateTime nach MS SQL Server - ohne Sekunden

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
exaveal
myCSharp.de-Mitglied

Dabei seit: 22.11.2010
Beiträge: 96
Entwicklungsumgebung: Microsoft Visual Studio 2010


exaveal ist offline

DateTime nach MS SQL Server - ohne Sekunden

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo Gemeinde!

Ich habe ein Problem mit der Übergabe einer DateTime aus einer C# Anwendung via LINQ in eine MS SQL Datenbank.

C#-Code:
            messages m = new messages
            {
                message = Message,
                user_id = myUser.id,
                timestamp = new DateTime(DateTime.Now.Ticks);
                to_usergroup_id = usergroup_id
            };

Die Spalte "timestamp" hat den Datentyp "datetime" in der Datenbank. Seltsamerweise wird aber das Datum nur bis zur Minute gespeichert. Die Sekunden und alles darüber hinaus fällt weg.
Wo liegt denn da der Fehler? Es wird doch mehr oder weniger nur eine Long-zahl gespeichert, oder sehe ich das falsch?
08.02.2011 11:28 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
michlG michlG ist männlich
myCSharp.de-Poweruser/ Experte

images/avatars/avatar-2909.png


Dabei seit: 26.07.2007
Beiträge: 3.430
Entwicklungsumgebung: VS 2010 PRO
Herkunft: Naturns - Südtirol - Italien


michlG ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo,

normalerweise sollte das kein Problem sein.
Ich verwende Linq2Sql zwar nicht, aber mit dem EF funktioniert das ohne Probleme.

Hast du schon mal versucht einfach DateTime.Now anstatt new DateTime(DateTime.Now.Ticks) zu verwenden?

Gruß
Michael
08.02.2011 11:31 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
FZelle
myCSharp.de-Poweruser/ Experte

Dabei seit: 23.04.2004
Beiträge: 8.905


FZelle ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Und um Verwirrungen gleich zu vermeiden, TimeStamp ist auch ein Sql Datentyp, man sollte deshalb eine Spalte nicht wirklich so nennen.
08.02.2011 11:52 Beiträge des Benutzers | zu Buddylist hinzufügen
exaveal
myCSharp.de-Mitglied

Dabei seit: 22.11.2010
Beiträge: 96
Entwicklungsumgebung: Microsoft Visual Studio 2010

Themenstarter Thema begonnen von exaveal

exaveal ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von michlG:
Hast du schon mal versucht einfach DateTime.Now anstatt new DateTime(DateTime.Now.Ticks) zu verwenden?

Ja, aber DateTime.Now gibt einen Long wert zurueck. Es wird aber der Datentyp DateTime verlangt.
08.02.2011 15:39 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Khalid Khalid ist männlich
myCSharp.de-Poweruser/ Experte

images/avatars/avatar-2534.gif


Dabei seit: 19.07.2005
Beiträge: 3.386
Entwicklungsumgebung: Visual Studio 12/13
Herkunft: Hannover


Khalid ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

DateTime.Now gibt ein DateTime zurück, und kein long.
08.02.2011 15:53 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
exaveal
myCSharp.de-Mitglied

Dabei seit: 22.11.2010
Beiträge: 96
Entwicklungsumgebung: Microsoft Visual Studio 2010

Themenstarter Thema begonnen von exaveal

exaveal ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Okay sry, ich habe DateTime.Now.Ticks verwendet.

DateTime.Now kommt auf das gleiche Ergebnis wie new DateTime(DateTime.Now.Ticks):
In der SQL Datenbank wird nur das Datum bis zur Minute gespeichert. Sekunden (+ noch kleinere Einheiten) fallen weg.

AH, ich dreh durch. Finde auch im Netz einfach nichts dazu.

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von exaveal am 08.02.2011 17:17.

08.02.2011 17:16 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
witte
myCSharp.de-Mitglied

Dabei seit: 03.09.2010
Beiträge: 343


witte ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hi,

schau doch mal im sql profiler rein ob am Client oder am Server liegt.
08.02.2011 17:34 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Wassermann
myCSharp.de-Mitglied

Dabei seit: 10.08.2010
Beiträge: 7


Wassermann ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hi

probiers mal so

kurzes Datumsformat

C#-Code:
string.Format("{0:d}",DateTime.Now)

dann steht immer die Uhrzeit auf 00:00:00.


Gruß

Bernd
09.02.2011 08:37 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Xynratron
myCSharp.de-Mitglied

Dabei seit: 24.09.2006
Beiträge: 1.174
Entwicklungsumgebung: VS 2005 - 2010


Xynratron ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

huhu,

wie überprüfst Du was in der DB steht? (nicht dass es nur ein Darstellungsproblem ist)

Bei uns funktioniert das immer reibungslos, auch der SQL-Server kann "Sekunden". Beim 2008er kannst Du alternativ den DateTime2-Datentyp verwenden. Der ist in der genauigkeit dem DateTime von .net angepasst.

:-)

Xynratron
09.02.2011 09:37 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
exaveal
myCSharp.de-Mitglied

Dabei seit: 22.11.2010
Beiträge: 96
Entwicklungsumgebung: Microsoft Visual Studio 2010

Themenstarter Thema begonnen von exaveal

exaveal ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Also habe jetzt alles Schritt für Schritt mit dem Debugger verfolgt. Das war garnicht so einfach, denn er hat immer die Entitätsklassen der .dbml Datei übersprungen obwohl ich mit F11 weitergegangen bin.

Mein Problem war mal (wieder) ziemlich bescheuert: Ich hab zwar den Datentyp in der Datenbank geändert, mir aber die .dbmo nicht neu erstellen lassen. In der war noch der Datentyp SmalDateTime gespeichert.

Schande über mein Haupt. Das hat mich jetzt wieder so unendlich viel Zeit gekostet die ich nicht habe -.-

Abrer vielen Dank für das Rege Interesse!

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von exaveal am 09.02.2011 21:45.

09.02.2011 21:22 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 3 Jahre.
Der letzte Beitrag ist älter als 3 Jahre.
Antwort erstellen


© Copyright 2003-2014 myCSharp.de-Team. Alle Rechte vorbehalten. 29.07.2014 10:40