SQL Server - Consulta datetime varchar

 
Vista:
sin imagen de perfil

Consulta datetime varchar

Publicado por pablo (2 intervenciones) el 16/12/2013 23:17:57
hola gente, quiero obtener los dias que trabajo una persona ese año desde que entro a trabajar hasta fin de año!

pero me tira este error: "syntax error converting datetime from character string"


Declare @findeanio datetime
Declare @fechaAlta datetime
Declare @diastrabajado int

Select @findeanio = CAST('31/12'+CAST(Year(@fechaAlta) as varchar(4)) as datetime)
SET @diastrabajado = Datediff(day,@fechaAlta,@findeanio)

Si me pueden ayudar se los voy a agradecer!

Saludos!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Consulta datetime varchar

Publicado por Juan Villa (1 intervención) el 16/12/2013 23:39:17
Saludos Parter

No te compliques la vida. Te faltaba asignar un valor a la fecha de alta.
Haber si te sirve el ejemplo.

Declare @vcHoy varchar(20)
Declare @dtHoy datetime
Declare @findeanio datetime
Declare @fechaAlta datetime
Declare @diastrabajado int

SET @vcHoy = Convert(varchar,getdate(),111)
SET @dtHoy = getdate()
PRINT @vcHoy
SET @findeanio = '31/12/' + Convert(varchar,Year(@dtHoy))
PRINT @findeanio
set @fechaAlta = '31/05/' + Convert(varchar,Year(@dtHoy))
PRINT @fechaAlta
SET @diastrabajado = Datediff(day,@fechaAlta,@findeanio)
PRINT @diastrabajado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Consulta datetime varchar

Publicado por pablo (2 intervenciones) el 16/12/2013 23:58:35
Si me olvide de poner aqui, pero si le habia asignado un fecha a @fechaAlta

Basicamente el error esta en:

Select CAST('31/12'+CAST(Year('2010-02-08') as varchar(4)) as datetime)



Como decis vos, me esta tirando "valor fuera de rango" ya veo si cambio el formato de las fechas!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Consulta datetime varchar

Publicado por Isaias (4558 intervenciones) el 17/12/2013 01:34:32
Para que no tengas problemas, siempre maneja las fechas con este formato: yyyymmdd
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Consulta datetime varchar

Publicado por Oscar (3 intervenciones) el 17/12/2013 20:08:31
si me permiten
el error esta aca
Select CAST('31/12'+CAST(Year('2010-02-08') as varchar(4)) as datetime)

debe ser

Select CAST('31/12/'+CAST(Year('2010-02-08') as varchar(4)) as datetime)

se debe agregar el "/" despues del mes (12)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar