2017-09-29 1 views
0

Wie kann ich ein Datum des Formats dd-mm-yyyy in eine Spalte des Datentyps Date einfügen?Einfügen eines Datums in eine Spalte mit Datumsdatentyp in SQL Server

versucht, die unten aber Fehler

INSERT INTO Profiles (first_name, last_name, email, phone, 
         [city(hometown)], created_at, gender, 
         referral_code,marital_status) 
VALUES ('anusha', 'pariti', '[email protected]', '8105987404', 
     'Bangalore', '16-04-2015', 'F', '7L5FZW', 'Y'), 
     ('Ashish', 'Singh', '[email protected]', '9876890463', 
     'Bangalore','23-05-2015', 'M', 'KF34MF', 'Y') 

Fehler zeigt:

Conversion failed when converting date and/or time from character string.

INSERT INTO Profiles (first_name, last_name, email, phone, 
         [city(hometown)],created_at, gender, 
         referral_code, marital_status) 
VALUES ('anusha', 'pariti', '[email protected]', '8105987404', 
     'Bangalore', CAST('16-04-2015' AS DATE), 'F', '7L5FZW', 'Y'), 
     ('Ashish', 'Singh', '[email protected]', '9876890463', 
     'Bangalore', CAST('23-05-2015' AS DATE), 'M', 'KF34MF', 'Y') 

Fehler:

Conversion failed when converting date and/or time from character string.

INSERT INTO Profiles (first_name, last_name, email, phone, 
         [city(hometown)], created_at, gender, 
         referral_code, marital_status) 
VALUES ('anusha', 'pariti', '[email protected]', '8105987404', 
     'Bangalore', CONVERT(DATE, '16-04-2015'), 'F', '7L5FZW', 'Y'), 
     ('Ashish', 'Singh', '[email protected]', '9876890463', 
     'Bangalore', CONVERT(DATE, '23-05-2015'), 'M', 'KF34MF', 'Y') 

Fehler:

Conversion failed when converting date and/or time from character string.

Antwort

1

Versuchen Sie bitte das Datum mit einem akzeptablen Format einfügen, zum Beispiel verwenden 20150416 statt '16-04-2015:

INSERT INTO Profiles (first_name, last_name, email, phone, [city(hometown)], 
    created_at, gender, referral_code,marital_status) 
VALUES 
    ('anusha', 'pariti', '[email protected]', '8105987404', 'Bangalore', 
    '20150416', 'F', '7L5FZW', 'Y'), 
    ('Ashish', 'Singh', '[email protected]', '9876890463', 'Bangalore', 
    '20150523', 'M', 'KF34MF', 'Y'); 

Dies ermöglicht es Ihnen, die Daten als Daten speichern in der created_at Spalte. Dies ist absolut der Weg, um Ihre Datumsinformationen zu speichern. Wenn Sie später Format die created_at Spalte auf Ihre ursprüngliche Weise möchten, können Sie CONVERT, z.

SELECT 
    CONVERT(varchar, created_at, 105) AS created_at 
FROM Profiles; 
+0

Ja das akzeptable Format funktioniert. Aber was ist, wenn ich das Format wie angegeben, d. H. 16-04-2015 möchte. Gibt es eine Möglichkeit, es in diesem Format einzufügen? – Biswa

+1

Nicht, dass ich weiß. In jedem Fall, warum würdest du das überhaupt wollen? Die Formate sind falsch und Sie müssten später ausführliche Conversions durchführen. –

+0

@Biswa Sie können nicht das Datum ('16 -04-2015 ') nach Ihrem Bedarf in Datetime Feld einfügen, aber später können Sie lesen, wie Sie Ihr gewünschtes Format. –

0

In SQL Server 2012+ Sie

Select try_convert(date, '16-04-2015', 105) 

sonst haben Sie richtig String-Format verwenden können

+0

Dies könnte funktionieren, aber die einfachere Lösung wäre, nur ein ISO-Format für die Datumszeichenfolgen zu verwenden. –

1

Die sicherste Datumsliteral in SQL Server ist YYYYMMDD

Z.B. INSERT INTO ... VALUES (‚20170523‘, ...

Es Sie DD-MM-JJJJ verwendet scheint und wenn Sie möchten, dass die Sequenz verwenden Sie dann mit einem Style-Nummer verwenden müssen, konvertieren.

convert (Datum, '23 -05-2017' , 120)

+0

Es ist ein schlechter Tipp, wenn Sie vorschlagen, Datumsangaben als Text einzufügen, obwohl Ihre Konvertierungslogik funktionieren könnte. –

+0

Ich habe bereits versucht, diese Funktion CONVERT, aber es funktioniert nicht .. – Biswa

+0

Dann versuchen Sie, einen ungültigen Datumswert wie der 30. Februar einzufügen. Die Fehlermeldung kann einfach auftreten, weil eine Zeichenfolge nur kein Datum wird. –

0

Sie versuchen, versucht können dies.

dd-mm-yyyy ist italienisches Format und Stil-Code ist 105, das ist Warum sollten Sie es mithilfe dieses Codes konvertieren?

INSERT INTO Profiles (first_name, last_name, email, phone, 
         [city(hometown)], created_at, gender, 
         referral_code, marital_status) 
VALUES ('anusha', 'pariti', '[email protected]', '8105987404', 
     'Bangalore', CONVERT(DATE, '16-04-2015',105), 'F', '7L5FZW', 'Y'), 
     ('Ashish', 'Singh', '[email protected]', '9876890463', 
     'Bangalore', CONVERT(DATE, '23-05-2015',105), 'M', 'KF34MF', 'Y') 
Verwandte Themen