Columna calculada

19/06/2007 - 11:54 por Clara | Informe spam
Hola,
Tengo una tabla en la que hay (a parte de otras) 2 columnas:
dtmFecha (smallDateTime)
bitFestivo (bit)

Mi intención era hacer que bitFestivo fuera calculada, poniendo 1 si
dtmFecha es festivo (sábado o domingo) o 0 si no lo es.
Por lo que queria poner en su fórmula:

(DatePart(dw, dtmFecha) = 1 or DatePart(dw, dtmFecha) = 7)
(teniendo en cuenta que SET DATEFIRST es 1, domingo)

Pero me dá error. Si lo ejecuto en una ventana de consultas me dice que hay
error cerca de '='
He probado comparando con == pero nada.

Hay alguna forma de hacerlo?
Grácias

Preguntas similare

Leer las respuestas

#1 Rubén Vigón
19/06/2007 - 13:07 | Informe spam
Hola Clara,

Prueba a definirlo con un «CASE» y un «CAST» a «bit»; por ejemplo:

CREATE TABLE MiTabla
(
dtmFecha smalldatetime,
bitFestivo AS CAST(CASE WHEN DatePart(dw, dtmFecha) = 1 OR DatePart(dw, dtmFecha) = 7 THEN 1 ELSE 0 END AS bit)
)

O, si lo prefieres:

CREATE TABLE MiTabla
(
dtmFecha smalldatetime,
bitFestivo AS CASE WHEN DatePart(dw, dtmFecha) = 1 OR DatePart(dw, dtmFecha) = 7 THEN CAST(1 AS bit) ELSE CAST(0 AS bit) END
)

Un saludo!

Rubén Vigón
Microsoft MVP Visual Basic
http://vigon.mvps.org
Respuesta Responder a este mensaje
#2 Clara
19/06/2007 - 13:32 | Informe spam
Hola Rubén,
Muchas grácias. Funciona perfectamente.


"Rubén Vigón" escribió en el mensaje
news:%23%
Hola Clara,

Prueba a definirlo con un «CASE» y un «CAST» a «bit»; por ejemplo:

CREATE TABLE MiTabla
(
dtmFecha smalldatetime,
bitFestivo AS CAST(CASE WHEN DatePart(dw, dtmFecha) = 1 OR DatePart(dw,
dtmFecha) = 7 THEN 1 ELSE 0 END AS bit)
)

O, si lo prefieres:

CREATE TABLE MiTabla
(
dtmFecha smalldatetime,
bitFestivo AS CASE WHEN DatePart(dw, dtmFecha) = 1 OR DatePart(dw,
dtmFecha) = 7 THEN CAST(1 AS bit) ELSE CAST(0 AS bit) END
)

Un saludo!

Rubén Vigón
Microsoft MVP Visual Basic
http://vigon.mvps.org
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida