2009-06-17 3 views
4

Ich habe eine Zugangsdatenbank erhalten, wo alle Daten in einem Text Feld im Format mm/dd gespeichert sind (zB: 3/13/2009 12:20:36 Uhr)MS-Zugriff falsches Datumsformat beim Konvertieren von Feld von Text nach Datum/Uhrzeit

Ich möchte das Feld in ein Datum/Uhrzeit konvertieren, aber Zugriff formatiert es als TT/MM die macht es so, dass, wenn der Tag größer ist als 12 oder nicht das konvertierte Datum könnte falsch liegen.

Beispiel mit dem aktuellen Format, wenn sie als Text in der DB gespeichert:

 
3/12/2009 11:32:40 PM 
3/13/2009 11:32:40 PM 

Wenn ich einfach den Datentyp dieses Feldes aus der Sicht Design umwandeln der Tabelle von Text Datum/Uhrzeit Datum Typ Ich bekomme Folgendes:

 
03/12/2009 11:32:40 PM 
13/03/2009 11:32:40 PM 

Wie würde ich gehen, um die gespeicherten Werte zu beheben? Ich interessiere mich nicht viel über das Format, in dem die Daten angezeigt werden, da ich leicht ändern kann, wie es aussieht, aber sie korrekt von Text zu Datum/Zeit zu konvertieren hat sich als schwierig erwiesen.

Bevorzugt Ich möchte es direkt vom Zugriff reparieren, aber ich kann es aus C# bei Bedarf tun.

Danke.

+0

wie versuchen Sie es jetzt konvertieren? – kscott

Antwort

2

Wenn es sich um eine lokale Access-Anwendung handelt, verwendet es das Datumszeitformat Ihres Systems. Wenn Sie also Ihre Lokalisierungseinstellungen in Windows so ändern, dass MM/DD verwendet wird, wird Access auf diese Weise konvertiert, sofern dies nicht in der App überschrieben wurde.

+0

So einfach ... aber es funktioniert! Danke Kscott. –

+1

Hoffentlich ist dies eine einmalige Operation, die das OP macht. Ansonsten sind Sie nur garantiert, dass einige Benutzer ihre/ihre Datumseinstellungen ändern und die Anwendung unterbrechen. – BIBD

+0

Die üblichen Methoden für dieses Problem sind: Verwenden Sie ein nicht mehrdeutiges Datumsformat wie TT-MMM-JJJJ (z. B. 17-Jun-2009) oder verwenden Sie DateSerial. Denken Sie daran, dass Jet SQL nicht spezifizierte Daten in US-Form interpretiert, d. H. MM/TT/JJJJ. Dies ist natürlich katastrophal, wenn Ihre lokalen Datumseinstellungen TT/MM/JJJJ sind. –

0

Die Importfunktion in Access verfügt über eine anständige Datumsparsingfunktionalität und ermöglicht die Angabe einiger verschiedener Formate. Ich bin mir nicht sicher, wie ich dies am besten auf etwas anwenden soll, das bereits in Access vorhanden ist - ein schneller Weg könnte darin bestehen, die Daten nach Excel zu kopieren und sie dann erneut zu importieren.

+0

Ich habe das eigentlich am Anfang versucht, aber es hat nicht für mich funktioniert. –

2

Format (CDate ("2009.03.13 23.32.40"), "mm/tt /" geben Sie 03/13/2009

2

Sie haben gute Antworten bekommen auf Wenn Sie jedoch das System im Format dmy starten, sollten Sie Folgendes beachten:

SQL-Anweisungen erfordern, dass die Daten entweder vollständig eindeutig oder in mm/tt/jj oder mm/tt/yyyy format.Andernfalls versucht Access/Jet, das Datum mit unbekannten Ergebnissen zu interpretieren, abhängig von dem spezifischen Datum, an dem es arbeitet.Sie ​​können nicht davon ausgehen, dass das System, an dem Sie arbeiten, diese Datumsformate verwendet die Logik auf der folgenden Webseite:

Return Daten in US # mm/tt/# Format http://www.mvps.org/access/datetime/date0005.htm

+2

JJJJ-MM-TT ist eindeutig für die Access-Datenbank-Engine und hat den großen Vorteil, ISO 8601-Standard zu sein. – onedaywhen

Verwandte Themen