Remplazar fecha con valor nulo

30/10/2012 - 16:33 por Antonio.xt | Informe spam
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

Preguntas similare

Leer las respuestas

#1 Cotzila
19/11/2012 - 11:46 | Informe spam
El martes, 30 de octubre de 2012 16:33:11 UTC+1, Antonio.xt escribió:
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



Hola Antonio, el update tendria que ser tal i como dices.

UPDATE FACTURA SET FECHA_SAL = NULL WHERE FECHA_SAL = '31/12/1899'
Respuesta Responder a este mensaje
#2 Antonio.xt
20/11/2012 - 22:43 | Informe spam
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...




Hola Antonio, el update tendria que ser tal i como dices.



UPDATE FACTURA SET FECHA_SAL = NULL WHERE FECHA_SAL = '31/12/1899'
Respuesta Responder a este mensaje
#3 Nacho
20/11/2012 - 23:28 | Informe spam
El martes, 20 de noviembre de 2012 18:43:02 UTC-3, Antonio.xt escribió:
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...





>

>

> 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
Respuesta Responder a este mensaje
#4 Antonio.xt
21/11/2012 - 00:12 | Informe spam
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


El martes, 20 de noviembre de 2012 16:28:27 UTC-6, Nacho escribió:
El martes, 20 de noviembre de 2012 18:43:02 UTC-3, Antonio.xt escribió:

> 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...

>

>

>

>

>

> >

>

> >

>

> > 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
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida