Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.
El origen es Direct Query SQL Server
Estoy tratando de determinar el día anterior (mes, año) contar, pero sólo hasta el punto actual en el tiempo.
Objetivo final: IsToday = 1, IsPreviousDay = 1, IsCurrentMonth = 1, IsLastMonth = 1
... pero sólo hasta este punto en el tiempo (NOW()).
ejemplo
El total del día anterior es de 75
Día anterior Total hasta NOW() is33
pDtH significa "Día a Hora Anterior
El fragmento de código siguiente funciona, pero devuelve toda la hora. Lo necesito para parar en el minuto actual... Espero que tenga sentido.
pDtH =
SI. EAGER (
AÑO ( CFS[Fecha de recepción de CFS] ) = AÑO ( HOY ()
&& MES ( CFS[Fecha de recepción de CFS] ) = MES ( HOY ()
& &DAY ( CFS[Fecha de recepción de CFS] )
<= DÍA ( HOY () - 1
&& HOUR ( CFS[Tiempo cfs recibido] ) <= HORA ( AHORA () ,
1,
0
)
El código a continuación es donde estoy necesitando ayuda.
pDtH =
SI. EAGER (
AÑO ( CFS[Fecha en que cfs recibió] ) = AÑO ( HOY () )
&& MES ( CFS[Fecha de recepción de CFS] ) = MES ( HOY () )
& &DAY ( CFS[Fecha de recepción de CFS] )
<= DÍA ( HOY () ) - 1
&& HOUR ( CFS[Tiempo recibido CFS] ) <= HORA ( AHORA () )
1,
0
)
Tal vez he estado mirando esto demasiado tiempo para ver lo obvio. 🙂
Solved! Go to Solution.
Para lo que podría valer la pena, aquí hay una versión de trabajo hecha en Microsft SQL:
DESDE [base de datos]. [dbo]. [tabla] t
DONDE AÑO([t].[ DateTimeReceived]) = AÑO (GETDATE())
Y DATEPART(MES, [t].[ DateTimeReceived]) = DATEPART(MONTH, GETDATE()) --Obtiene el mes actual
Y DATEPART(DAY, [t].[ DateTimeReceived]) = DATEPART(DAY, GETDATE()) -1 --Obtiene el día anterior
Y CONVERTIR(VARCHAR, [t].[ DateTimeReceived], 114) <= CONVERT(VARCHAR, GETDATE(), 114) --Obtiene la marca de tiempo actual
@JPBTech ¿Puedes hacer esto?
pDtH = IF(CFS[Date CFS Received] <= NOW() - 1,1,0)
Para lo que podría valer la pena, aquí hay una versión de trabajo hecha en Microsft SQL:
DESDE [base de datos]. [dbo]. [tabla] t
DONDE AÑO([t].[ DateTimeReceived]) = AÑO (GETDATE())
Y DATEPART(MES, [t].[ DateTimeReceived]) = DATEPART(MONTH, GETDATE()) --Obtiene el mes actual
Y DATEPART(DAY, [t].[ DateTimeReceived]) = DATEPART(DAY, GETDATE()) -1 --Obtiene el día anterior
Y CONVERTIR(VARCHAR, [t].[ DateTimeReceived], 114) <= CONVERT(VARCHAR, GETDATE(), 114) --Obtiene la marca de tiempo actual
HI, @Greg_Deckler,gracias por tomarse el tiempo para responder.
La implementación de ese fragmento de código devuelve el valor de 1 para todas las fechas "a continuación" ahora.