Ver Mensaje Individual
  #2 (permalink)  
Antiguo 13/07/2011, 10:57
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 15 años, 7 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