Case não reconhece campo Hora convertido do campo DataHora
Bom Dia ,,uma ajuda iniciante perdido
Converti o campo DataHora obtendo o resultado que preciso no campo Hora, mas não consigo utilizar o resulta para criar as informações na coluna PERIODO, retorna resultado ( Msg 207, Level 16, State 1, Line 5
Nome de coluna 'Hora' inválido.)
SELECT
[DataHora],
Convert (nvarchar (5), CONVERT (time,DataHora, 103))Hora,
CASE WHEN Hora BETWEEN '00:01' AND '06:00' THEN 'Das 00:01 às 06:00'
WHEN Hora BETWEEN '06:01' AND '12:00' THEN 'Das 06:01 às 12:00'
WHEN Hora BETWEEN '12:01' AND '18:00' THEN 'Das 12:01 às 18:00'
WHEN Hora BETWEEN '18:01' AND '23:59' THEN 'Das 18:01 às 23:59'
WHEN Hora is null THEN 'INCERTO'
WHEN Hora = '00:00' THEN 'INCERTO'
END PERIODO
FROM [GEOEST].[dbo].[VW_GeoRacOcr]
Converti o campo DataHora obtendo o resultado que preciso no campo Hora, mas não consigo utilizar o resulta para criar as informações na coluna PERIODO, retorna resultado ( Msg 207, Level 16, State 1, Line 5
Nome de coluna 'Hora' inválido.)
SELECT
[DataHora],
Convert (nvarchar (5), CONVERT (time,DataHora, 103))Hora,
CASE WHEN Hora BETWEEN '00:01' AND '06:00' THEN 'Das 00:01 às 06:00'
WHEN Hora BETWEEN '06:01' AND '12:00' THEN 'Das 06:01 às 12:00'
WHEN Hora BETWEEN '12:01' AND '18:00' THEN 'Das 12:01 às 18:00'
WHEN Hora BETWEEN '18:01' AND '23:59' THEN 'Das 18:01 às 23:59'
WHEN Hora is null THEN 'INCERTO'
WHEN Hora = '00:00' THEN 'INCERTO'
END PERIODO
FROM [GEOEST].[dbo].[VW_GeoRacOcr]
Edivaldo Souza
Curtidas 0
Respostas
Emerson Nascimento
14/01/2022
o campo virtual Hora só é visível após obter o resultset.
pode ser usado assim:
da forma como você montou, numa única instrução, é necessário repetir a conversão do campo:
pode ser usado assim:
SELECT [DataHora], CASE WHEN Hora BETWEEN '00:01' AND '06:00' THEN 'Das 00:01 às 06:00' WHEN Hora BETWEEN '06:01' AND '12:00' THEN 'Das 06:01 às 12:00' WHEN Hora BETWEEN '12:01' AND '18:00' THEN 'Das 12:01 às 18:00' WHEN Hora BETWEEN '18:01' AND '23:59' THEN 'Das 18:01 às 23:59' ELSE 'INCERTO' END PERIODO FROM ( SELECT [DataHora], CONVERT(VARCHAR(5), [DataHora], 108) Hora FROM [GEOEST].[dbo].[VW_GeoRacOcr] ) TEMP
da forma como você montou, numa única instrução, é necessário repetir a conversão do campo:
SELECT [DataHora], CASE WHEN CONVERT(VARCHAR(5), [DataHora], 108) BETWEEN '00:01' AND '06:00' THEN 'Das 00:01 às 06:00' WHEN CONVERT(VARCHAR(5), [DataHora], 108) BETWEEN '06:01' AND '12:00' THEN 'Das 06:01 às 12:00' WHEN CONVERT(VARCHAR(5), [DataHora], 108) BETWEEN '12:01' AND '18:00' THEN 'Das 12:01 às 18:00' WHEN CONVERT(VARCHAR(5), [DataHora], 108) BETWEEN '18:01' AND '23:59' THEN 'Das 18:01 às 23:59' ELSE 'INCERTO' END PERIODO FROM [GEOEST].[dbo].[VW_GeoRacOcr]
GOSTEI 0
Edivaldo Souza
14/01/2022
o campo virtual Hora só é visível após obter o resultset.
pode ser usado assim:
da forma como você montou, numa única instrução, é necessário repetir a conversão do campo:
......................pode ser usado assim:
SELECT [DataHora], CASE WHEN Hora BETWEEN '00:01' AND '06:00' THEN 'Das 00:01 às 06:00' WHEN Hora BETWEEN '06:01' AND '12:00' THEN 'Das 06:01 às 12:00' WHEN Hora BETWEEN '12:01' AND '18:00' THEN 'Das 12:01 às 18:00' WHEN Hora BETWEEN '18:01' AND '23:59' THEN 'Das 18:01 às 23:59' ELSE 'INCERTO' END PERIODO FROM ( SELECT [DataHora], CONVERT(VARCHAR(5), [DataHora], 108) Hora FROM [GEOEST].[dbo].[VW_GeoRacOcr] ) TEMP
da forma como você montou, numa única instrução, é necessário repetir a conversão do campo:
SELECT [DataHora], CASE WHEN CONVERT(VARCHAR(5), [DataHora], 108) BETWEEN '00:01' AND '06:00' THEN 'Das 00:01 às 06:00' WHEN CONVERT(VARCHAR(5), [DataHora], 108) BETWEEN '06:01' AND '12:00' THEN 'Das 06:01 às 12:00' WHEN CONVERT(VARCHAR(5), [DataHora], 108) BETWEEN '12:01' AND '18:00' THEN 'Das 12:01 às 18:00' WHEN CONVERT(VARCHAR(5), [DataHora], 108) BETWEEN '18:01' AND '23:59' THEN 'Das 18:01 às 23:59' ELSE 'INCERTO' END PERIODO FROM [GEOEST].[dbo].[VW_GeoRacOcr]
MAIS UMA VEZ..............................MUITO OBRIGADO
GOSTEI 0