Ich versuche, die Daten von table1
zu table2
zu füllen, beide haben die gleiche Anzahl von Spalten.Wie konvertiert man Varchar zu Datetime in T-SQL?
Alle Spalten in table1
sind vom Typ varchar
. Die Spalten in table2
konnte varchar
, int
oder datetime
usw. sein
Meine Frage ist, wie die Umwandlung während der Besiedelung zu tun?
Dies ist eine Beispielabfrage, die ich geschrieben habe. Ich vermisse das Teil, um die Konvertierung durchzuführen. Auch das Format meiner datetime
ist mm/dd/yyyy hh:mm:ss
.
insert into table2
select s.acty_id, s.notes_datetime, s.notes_data
from table1 t right join table2 s
on (t.acty_id =s.acty_id and t.notes_datetime =s.notes_datetime)
where t.acty_id is null
Sorry, hast deine Bearbeitung nicht sehen, aber ein paar Dinge: table1 ist, wo die varchar existiert, nicht table2, und Sie müssen eine * sichere * Umwandlung durchführen, also sollten Sie die Konvertierung mit einem Stil durchführen, der dem Zeichenkettenformat (m/d/y) entspricht, so dass Sie nicht mit Problemen auf einem nicht-englischen System oder mit anderen enden Sitzungseinstellungen. –
@AaronBertrand Ich habe den Varchar in Tabelle1 abgefangen und bearbeitet, um diesen Fehler zu korrigieren. Zu viele Tabelle1, Tabelle2. Du hast recht über das richtige, Konversionsformat auch ... wie immer – Taryn
Ich bin mir nicht sicher, ob ich den ersten Teil verstehe. können Sie erklären? Ob das funktioniert? Einfügen in Tab.2 select s.acty_id konvertieren (DATETIME s.notes_datetime, s.notes_data, 101), von s.notes_data Tabelle1 t gleich bei table2 s \t auf t.acty_id = s.acty_id \t und konvertieren (datetime, t.notes_datetime, 101) = s.notes_datetime wo t.acty_id null ist – GLP