Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Mostrar vacio si la fecha es default

Estas en el tema de Mostrar vacio si la fecha es default en el foro de SQL Server en Foros del Web. Hola tengo un select y en el campo fecha necesito que si es un valor defaul me muestre vacio, pero no se si se puede ...
  #1 (permalink)  
Antiguo 13/07/2011, 10:23
 
Fecha de Ingreso: junio-2005
Mensajes: 337
Antigüedad: 18 años, 10 meses
Puntos: 1
Mostrar vacio si la fecha es default

Hola tengo un select y en el campo fecha necesito que si es un valor defaul me muestre vacio, pero no se si se puede armar el if en el select

yo probe asi

if (a.Primer_Lista_Negra,'19000101','',a.Primer_Lista _Negra)

es decir que si la fecha es 1900-01-01 me muestre vacio y sino el valor del campo.

Me puede ayudar porfi en que me estoy equivocando?

Muchas gracias!

Besos,
Lau
  #2 (permalink)  
Antiguo 13/07/2011, 10:57
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Mostrar vacio si la fecha es default

Hola laulaurys:

En SQL Server no puedes utilizar el IF en un select, debes utilizar un CASE-WHEN, sería más o menos así:

Código SQL:
Ver original
  1. DECLARE @tabla TABLE (id INT, fecha datetime)
  2. INSERT INTO @tabla VALUES (1, '1900-01-01')
  3. INSERT INTO @tabla VALUES (2, '1900-01-02')
  4. INSERT INTO @tabla VALUES (3, '1900-01-01')
  5. INSERT INTO @tabla VALUES (4, '1900-01-01')
  6. INSERT INTO @tabla VALUES (5, '1900-01-03')
  7. SELECT id,
  8. CASE WHEN fecha = '1900-01-01' THEN NULL ELSE fecha END fecha
  9. FROM @tabla

el resultado de esto sería

Código SQL:
Ver original
  1. id          fecha
  2. ----------- -----------------------
  3. 1           NULL
  4. 2           1900-01-02 00:00:00.000
  5. 3           NULL
  6. 4           NULL
  7. 5           1900-01-03 00:00:00.000

hay que tener cuidado con el tipo de dato, pues no puedes asignar ('') a un campo tipo fecha, es por eso que lo pongo como NULL, si quieres asignar ('') habría que convertir el campo a tipo varchar:

Código SQL:
Ver original
  1. SELECT id,
  2. CASE WHEN fecha = '1900-01-01' THEN '' ELSE CONVERT(VARCHAR, fecha, 103) END fecha
  3. FROM @tabla

Saludos
Leo
  #3 (permalink)  
Antiguo 13/07/2011, 12:00
 
Fecha de Ingreso: mayo-2011
Mensajes: 18
Antigüedad: 12 años, 11 meses
Puntos: 3
Respuesta: Mostrar vacio si la fecha es default

Ola que tal aki leyendo, recorde un problema que tuve anteriormente, realisava un registro y en cual necesita agregar un valor pero en algunos era un valor que se iva a generar en otro catalogo, asi que primero obte por registrar a esos valores el id de la tabla pero al momento de mostrar en mi gridview e ahi el problema como era de esperar en algunos registros aparecia el id de la otra tabla mmm :( asi que tuve que cambiar del id al nombre pero iva a tener dobles registros asi que con esto ya puedo registrar el id y hacer la consulta para evitar ese doble registro :) gracias, me sirvio vastante....

va el codigo SQL como quedo.

select u.*,tu.tipo as tUsuario,
case when nivel = 3 then (select proveedor from catProveedores where idProveedor = @idP)
else empresa end as empresas2
from catUsers as u, catTipoU as tu
where(u.nivel = tu.idTipo)


exelente....
  #4 (permalink)  
Antiguo 13/07/2011, 14:32
 
Fecha de Ingreso: mayo-2011
Mensajes: 18
Antigüedad: 12 años, 11 meses
Puntos: 3
Respuesta: Mostrar vacio si la fecha es default

El anterior solo seria para un registro y este ya seria para mostrara toda la tabla.

Codigo SQL


Código:
select u.*,tu.tipo as tUsuario,
case when nivel = 3 then (select proveedor from catProveedores, catUsers 
 where idProveedor = case when catUsers.empresa != 'Opcion1' and catUsers.empresa != 'Opcion2' THEN 
						catUsers.empresa else 0 end)
 else empresa end as Nempresa
from catUsers as u, catTipoU as tu
where(u.nivel = tu.idTipo)


solo tengo dos opciones diferentes que viene en texto y ya los demas serian los id de la otra tabla.
  #5 (permalink)  
Antiguo 13/07/2011, 14:55
 
Fecha de Ingreso: mayo-2011
Mensajes: 18
Antigüedad: 12 años, 11 meses
Puntos: 3
Respuesta: Mostrar vacio si la fecha es default

encontre un error en codigo para mostrar toda la tabla, cuando registre dos con numero aparecio el error pero ya quedo aun asi podria salir mejoras....



va el codigo:


Código SQL:
Ver original
  1. SELECT u.*,tu.tipo AS tUsuario,
  2.      CASE WHEN nivel = 3 THEN
  3.         (SELECT proveedor FROM catProveedores
  4.          WHERE idProveedor = CASE WHEN u.empresa != 'opcion1'
  5.                                  AND u.empresa != 'opcion2' THEN
  6.          u.empresa ELSE 0 END)
  7.      ELSE empresa END AS Nempresa
  8.     FROM catUsers AS u, catTipoU AS tu
  9.     WHERE(u.nivel = tu.idTipo)

Etiquetas: default, fecha, select, vacio, campos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 14:18.