Microsoft MVPs inside





 MCSEboard.de – IT Pro Forum zu Windows Server 2008 R2 / 2008 / 2003 & Windows 7 / Vista / XP
Registrieren Hilfe Regeln Benutzerliste Suchen Heutige Beiträge Alle Foren als gelesen markieren

MS SQL Server Forum


Alles zum Thema Microsoft SQL Server — Q & A zu Microsoft SQL Server 2000 / 2005 / 2008 Architektur, Konfiguration, Troubleshooting


Antwort
     
Themen-Optionen
Alt 12.01.2011, 16:04   #1
Newbie
 
Offline
Registriert seit: 03-2004
Beiträge: 14
Fremdes Datumsformat einlesen

Und leider gleich noch ein Problem:
Ich habe eine lange Datei bekommen, die viele SQL-Statements als Text aneinandergereit enthält. Diese versuche ich nun einzulesen mittels
OSQL.EXE -U... -P... -d... -S... -i file.sql

Das funktioniert auch bis zu dieser Stelle:
INSERT INTO [dbo].[tTabelle] ([col1],[col2],[col3],[col4],[col5],[col6],[col7],[col8]) VALUES (1,304,0,'May 23 2010 12:00AM',0,NULL,NULL,NULL);

Fehlermeldung:
Meldung '241', Ebene '16', Status '1', Server '...', Zeile 1995
Fehler beim Konvertieren einer Zeichenfolge in einen datetime-Wert.

Tabellendefinition:
CREATE TABLE [dbo].[tTabelle] (
[col1] int not null,
[col2] int null,
[col3] tinyint null,
[col4] datetime null,
[col5] int null,
[col6] datetime null,
[col7] tinyint null,
[col8] tinyint null
);

Wie kann ich OSQL nun beibringen, 'May 23 2010 12:00AM' als Datetime zu parsen? Ich kann leider die file.sql nicht mehr anders nochmal erhalten und alle enthaltenen Datetimes umzuschreiben wäre auch ne ziemliche Arbeit...

Kann ich das Format evtl. irgendwo als gültiges DatetimeFormat hinterlegen?
    Mit Zitat antworten
Alt 12.01.2011, 17:40   #2
Expert Member
 
Benutzerbild von phoenixcp
 
Offline
Registriert seit: 02-2004
Ort: Radebeul
Beiträge: 5.470
Negativ. Da es sich in der verwendeten Formatierung um einen String handelt, welcher nachvollziehbarer Weise nicht in ein DateTime-Format passt. Abhilfe: die Statements so umarbeiten, das eine korrekte Umwandlung passiert: CAST und CONVERT (Transact-SQL)

Gruß
Carsten

Signatur
MfG

Carsten Paul
MCSEBoard.de SQL Blog
Kein Support per PN, dafür ist das Forum da!

In Memory of LukasB

    Mit Zitat antworten
Alt 13.01.2011, 08:52   #3
Newbie
 
Offline
Registriert seit: 03-2004
Beiträge: 14
Danke, auch für den Link! Das ist echt komisch, weil das o.g. Datumsformat in Deinem Link als "Standard" bezeichnet wird - und trotzdem wird es nicht erkannt. Seltsam.

Aber nach Deiner Antwort hat es wohl auch keinen Zweck, mal zu versuchen, eine engl. Version von MSSQL-Server zu installieren oder das Betriebssystem auf engl. umzustellen, dann versuche ich mal, eine RegExp zu finden, die mir das Convert da mit reinfrimmelt...
    Mit Zitat antworten
Alt 13.01.2011, 09:26   #4
Expert Member
 
Benutzerbild von NilsK
 
Offline
Registriert seit: 06-2008
Ort: Hannover
Beiträge: 7.376
Moin,

die Installationssprache hat damit weniger zu tun. Um sicher zu gehen, dass SQL Server dein Datum richtig interpretiert, kannst du in dem Statement die Eingabesprache ausdrücklich auf US-Englisch setzen. Jedenfalls funktioniert folgendes Statement hier mit deinem Datumsformat:

Code:
set language us_english
select YEAR('May 23 2010 12:00AM')
Gruß, Nils

Signatur
Nils Kaczenski

MVP Directory Services: Architecture
... der beste Schritt zur Problemlösung: Anforderungen definieren!

Kostenlosen Support gibt es nur im Forum, nicht privat!

    Mit Zitat antworten
Alt 13.01.2011, 10:32   #5
Newbie
 
Offline
Registriert seit: 03-2004
Beiträge: 14
@Nils: You just made my day
    Mit Zitat antworten
Alt 13.01.2011, 19:48   #6
Expert Member
 
Benutzerbild von NilsK
 
Offline
Registriert seit: 06-2008
Ort: Hannover
Beiträge: 7.376
Moin,

freut mich!

Gruß, Nils

Signatur
Nils Kaczenski

MVP Directory Services: Architecture
... der beste Schritt zur Problemlösung: Anforderungen definieren!

Kostenlosen Support gibt es nur im Forum, nicht privat!

    Mit Zitat antworten
Antwort


Themen-Optionen


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
auf fremdes Postfach zugreifen Jatel MS Exchange Forum 6 02.07.2010 12:04
Datumsformat falsch jogisarge Windows Forum — Allgemein 1 07.01.2009 15:07
2K3 - US-Datumsformat im VBScript Dr_NET Windows Server Forum 0 21.11.2008 13:47
Durchgrif von LAN über DMZ auf fremdes Netzwerk AlexD1979 Windows Forum — Security 3 19.07.2006 17:50
kurzes datumsformat mad-max79 Windows Forum — Allgemein 0 18.07.2006 22:04


Alle Zeitangaben in MEZ/CET. Es ist jetzt 20:08 Uhr. Seite generiert in 0,033 Sekunden.

- Unsere Partner -

Copyright © 2000 – 2012 MCSEboard.de

Sprung zum Seitenanfang