Reporting Services Retire Tiempo de DateTime en la expresión
-
22-09-2019 - |
Pregunta
Estoy tratando de llenar una expresión (valor predeterminado de un parámetro) con un tiempo explícito. ¿Cómo se quita el tiempo de la función del "ahora"?
Solución 12
encontrado la solución de aquí
Esto consigue el último segundo del día anterior:
DateAdd("s",-1,DateAdd("d",1,Today())
Esto devuelve el último segundo de la semana anterior:
=dateadd("d", -Weekday(Now), (DateAdd("s",-1,DateAdd("d",1,Today()))))
Otros consejos
Algo como esto:
=FormatDateTime(Now, DateFormat.ShortDate)
Donde "Ahora" puede ser reemplazado por el nombre del campo de fecha / hora que usted está tratando de convertir.)
Por ejemplo,
=FormatDateTime(Fields!StartDate.Value, DateFormat.ShortDate)
Desde SSRS utiliza VB, puede hacer lo siguiente:
=Today() 'returns date only
Si se va a utilizar:
=Now() 'returns date and current timestamp
=CDate(Now).ToString("dd/MM/yyyy")
A pesar de que son difíciles codificando el formato de fecha en un entorno local.
Si usted tiene que mostrar el campo en el encabezado del informe y luego probar este ... RightClick el cuadro de texto> Propiedades> Categoría> Fecha> Formato seleccione * (Nota esto mantendrá la configuración regional).
Dado que esta cuestión ha sido visto muchas veces, he publicado ... Espero que ayuda.
Sólo tiene que utilizar DateValue(Now)
si desea que el resultado sea de tipo de datos DateTime
.
Si el formato de datos que espera es MM-dd-yyyy
a continuación, tratar a continuación ,
=CDate(Now).ToString("MM-dd-yyyy")
Del mismo modo se puede probar esto,
=Format(Today(),"MM-dd-yyyy")
Salida: 02-04-2016
Nota:
Now()
le mostrará fecha actual y sello de tiempo
Today()
le mostrará Fecha no sólo a tiempo parcial.
También se puede establecer cualquier formato de fecha en lugar de MM-dd-yyyy
en mi ejemplo.
En la propiedad formato del cuadro de texto cualquier campo puede utilizar las cadenas de formato:
por ejemplo. D / M / Y, D, etc.
Una cosa que podría ayudar a los demás es que se puede colocar: =CDate(Now).ToString("dd/MM/yyyy")
en el formato de cadena propiedad de SSRS que se puede obtener haciendo clic derecho de la columna. Esa es la forma más limpia de hacerlo. Luego, su expresión no será demasiado grande y difícil de forma visual "de análisis":)
FormatDateTime(Parameter.StartDate.Value)
estoy llegando al final del partido pero intentado todas las soluciones anteriores! no podía conseguir que caiga la década de cero en el parámetro y dame un defecto (se ignora el formato o en blanco aparecido). Yo estaba usando SSRS 2005 por lo que estaba luchando con sus problemas con errores / torpe.
Mi solución fue añadir una columna a la [DimDate] tabla personalizada en mi base de datos que estaba tirando de las fechas. He añadido una columna que era una representación de cadena en el formato deseado de la columna [fecha]. Entonces creé 2 nuevos conjuntos de datos de SSRS que sacó en las siguientes consultas para 2 valores por defecto para mi 'A' y 'de' defecto de fecha -
'de'
SELECT Datestring
FROM dbo.dimDate
WHERE [date] = ( SELECT MAX(date)
FROM dbo.dimdate
WHERE date < DATEADD(month, -3, GETDATE()
)
'a'
SELECT Datestring
FROM dbo.dimDate
WHERE [date] = ( SELECT MAX(date)
FROM dbo.dimdate
WHERE date <= GETDATE()
)
Mi solución para un parámetro Fecha / Hora:
=CDate(Today())
El truco es convertir de nuevo a una fecha y hora como recomienda Perhentian.
Sólo concatenar una cadena al final del valor:
Fields!<your field>.Value & " " 'test'
y esto debería funcionar!
Esto debe hacerse en el conjunto de datos. Usted puede hacer esto
Select CAST(CAST(YourDateTime as date) AS Varchar(11)) as DateColumnName
En SSRS
diseño, acaba de hacer esta =Fields!DateColumnName.Value