Discussion:
Remplazar fecha con valor nulo
(demasiado antiguo para responder)
Antonio.xt
2012-10-30 15:33:11 UTC
Permalink
Buen dia grupo, tengo el siguiente caso; he importado una base de datos de VFP desde SQL EXPRESS 2008 R2, y en SQL me creo las tablas sin problemas pero por default los campos no admiten valores nulos y a las fechas que estaban vacias en VFP, en SQL se les asigno el dia 30/12/1899. Lo que quiero es remplazar ese valor con un valor NULO, pero no se como manejar las fechas directamente en SQL.

Creo que tengo que hacer un UPDATE, que seria mas o menos asi:
UPDATE Factura SET fecha_sal=NULL WHERE fecha_sal= {aqui es donde necesito poner la fecha 30/12/1899}

Alguna solucion?

Otro detalle es que tuve que eliminar un campo memo en la tabla de VFP porque no me lo aceptaba, alguna forma para agregarlo despues de corregir lo de las fechas.

Saludos, y gracias de antemano por el apoyo...

Charles A. Moreno
Cotzila
2012-11-19 10:46:37 UTC
Permalink
Post by Antonio.xt
Buen dia grupo, tengo el siguiente caso; he importado una base de datos de VFP desde SQL EXPRESS 2008 R2, y en SQL me creo las tablas sin problemas pero por default los campos no admiten valores nulos y a las fechas que estaban vacias en VFP, en SQL se les asigno el dia 30/12/1899. Lo que quiero es remplazar ese valor con un valor NULO, pero no se como manejar las fechas directamente en SQL.
UPDATE Factura SET fecha_sal=NULL WHERE fecha_sal= {aqui es donde necesito poner la fecha 30/12/1899}
Alguna solucion?
Otro detalle es que tuve que eliminar un campo memo en la tabla de VFP porque no me lo aceptaba, alguna forma para agregarlo despues de corregir lo de las fechas.
Saludos, y gracias de antemano por el apoyo...
Charles A. Moreno
Hola Antonio, el update tendria que ser tal i como dices.

UPDATE FACTURA SET FECHA_SAL = NULL WHERE FECHA_SAL = '31/12/1899'
Antonio.xt
2012-11-20 21:43:02 UTC
Permalink
Gracias Cotzila, pero asi ya lo habia probado y no funciono, no encontre un formato de fecha para comparar una columna de fecha, aunque ya lo soluciones, lo que hice fue convertir a string la fecha con la funcion CAST de SQL, y ahora si la compare con la cadena '30/12/1899'

Saludos...
Post by Cotzila
Hola Antonio, el update tendria que ser tal i como dices.
UPDATE FACTURA SET FECHA_SAL = NULL WHERE FECHA_SAL = '31/12/1899'
Nacho
2012-11-20 22:28:26 UTC
Permalink
Post by Antonio.xt
Gracias Cotzila, pero asi ya lo habia probado y no funciono, no encontre un formato de fecha para comparar una columna de fecha, aunque ya lo soluciones, lo que hice fue convertir a string la fecha con la funcion CAST de SQL, y ahora si la compare con la cadena '30/12/1899'
Saludos...
Post by Cotzila
Hola Antonio, el update tendria que ser tal i como dices.
UPDATE FACTURA SET FECHA_SAL = NULL WHERE FECHA_SAL = '31/12/1899'
Hola Antonio,
Otra forma de trabajar con fecha (Sin horas, min y seg) es utilizalras en formato ANSI.
De esta forma no tenes problemas con las configuraciones de la conexión, el server, el idioma de la bd, etc.
La forma de utilizarlo es así: las fechas en formato ansi deben ser siempre 'YYYYMMDD'. Entonces para tu ejemplo quedaría así:

- UPDATE FACTURA SET FECHA_SAL = NULL WHERE FECHA_SAL = '18991231'

Todas las fechas deben indicarse como un string entre comillas simples.
Es muy útil para usarlo cuando desarrollas una aplicacion que trabaja con SQL Server.

Espero sea de ayuda.
Saludos,
Nacho
Antonio.xt
2012-11-20 23:12:32 UTC
Permalink
Excelente Nacho, ya hice pruebas y es una de la formas mas practicas de usar fechas en SQL Server.

Saludos y gracias...

Charles A. Moreno
Post by Cotzila
Post by Antonio.xt
Gracias Cotzila, pero asi ya lo habia probado y no funciono, no encontre un formato de fecha para comparar una columna de fecha, aunque ya lo soluciones, lo que hice fue convertir a string la fecha con la funcion CAST de SQL, y ahora si la compare con la cadena '30/12/1899'
Saludos...
Post by Cotzila
Hola Antonio, el update tendria que ser tal i como dices.
UPDATE FACTURA SET FECHA_SAL = NULL WHERE FECHA_SAL = '31/12/1899'
Hola Antonio,
Otra forma de trabajar con fecha (Sin horas, min y seg) es utilizalras en formato ANSI.
De esta forma no tenes problemas con las configuraciones de la conexión, el server, el idioma de la bd, etc.
- UPDATE FACTURA SET FECHA_SAL = NULL WHERE FECHA_SAL = '18991231'
Todas las fechas deben indicarse como un string entre comillas simples.
Es muy útil para usarlo cuando desarrollas una aplicacion que trabaja con SQL Server.
Espero sea de ayuda.
Saludos,
Nacho
Loading...