Estoy tratando de completar los datos de table1
a table2
, ambos tienen el mismo número de columnas.Cómo convertir varchar a datetime en T-SQL?
Todas las columnas en table1
son del tipo varchar
. Las columnas de table2
podrían ser varchar
, int
o datetime
, etc.
Mi pregunta es cómo hacer la conversión durante el poblamiento?
Esta es una consulta de muestra que escribí. Extraño la parte para hacer la conversión. También el formato de mi datetime
es 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
Lo sentimos, no vio su edición, pero un par de cosas: tabla1 es donde existe el varchar, no tabla2, y debe hacer un reparto * seguro *, por lo que debe usar convertir con un estilo que coincida con el formato de cadena (m/d/y) para que no tenga problemas en un sistema que no sea inglés estadounidense o con diferente configuración de sesión. –
@ AaronBertrand Cogí el varchar en table1 y lo edité para corregir ese error. Demasiados table1, table2's. También tiene razón sobre el formato de conversión correcto ... como siempre – Taryn
No estoy seguro de entender la primera parte. ¿puedes explicar? ¿esto funcionara? insertar en la Tabla2 seleccione s.acty_id, convertir (fecha y hora, s.notes_datetime, s.notes_data, 101), s.notes_data de tabla1 t unen derecho Tabla2 s \t en t.acty_id = s.acty_id \t y convertir (datetime, t.notes_datetime, 101) = s.notes_datetime donde t.acty_id es nulo – GLP