2009-09-08 15 views

Respuesta

1

encontrado la solución de here

Esto consigue el último segundo de la 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())))) 
+5

Me encontré aquí desde google ... pero ... esto no responde a su pregunta. (¿Por qué te importa el último segundo?) Sin embargo, ganaste a RSolberg (quien respondió correctamente). ¿Tal vez debería editar su respuesta aceptada para hacer referencia a su respuesta correcta? – itchi

+2

DateAdd ("s", - 1, DateAdd ("d", 1, Today()) devuelve el último segundo de Hoy, no el día anterior, y falta un repertorio de cierre para que funcione –

83

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) 
+4

Como mi parámetro de fecha era una fecha y hora, requería un CDate() adicional alrededor de la expresión anterior. –

+0

No funcionará si el informe es obligatorio en formato Excel. FormatDateTIme es la función de cadena. Claro que se quita el tiempo, pero el resultado es una columna de fecha de cadena que al ordenar se ordenará como una cadena de izquierda a derecha. El usuario tendría que convertir la columna en una Fecha real usando Texto en columnas. – Fandango68

+0

El punto es que no puede hacer lo que el OP pidió en el formato de solo fecha. Estás atascado con fechas de cadena. – Fandango68

38

Desde SSRS utiliza VB, puede hacer lo siguiente:

=Today() 'returns date only 

Si se va a utilizar:

=Now() 'returns date and current timestamp 
+3

¡Bien hecho, muy simple! –

+6

= Today() no devuelve la fecha solo en SSRS – donviti

4

En la propiedad de formato de cualquier campo de cuadro de texto puede usar cadenas de formato:

p. Ej. D/M/Y, D, etc.

+3

La pregunta se refiere al valor predeterminado de un parámetro de informe, por lo que no funcionará establecer el formato en un cuadro de texto. Además, "D/M/Y" no lo hará dar el resultado esperado, pruebe "dd/MM/aaaa" en su lugar. –

21
=CDate(Now).ToString("dd/MM/yyyy") 

Aunque está hardcoding la fecha formart a una configuración regional.

+1

+1 para la respuesta concisa que, de hecho, fue muy útil para mí. – jasonco

+0

Como mencioné anteriormente, esto funciona pero convierte la columna en una cadena. Todavía no es un verdadero tipo de datos DATE. – Fandango68

6

Simplemente use DateValue(Now) si desea que el resultado sea del tipo de datos DateTime.

1
FormatDateTime(Parameter.StartDate.Value) 
+1

Falta el segundo parámetro de la expresión FormatDateTime (DateField, DateFormat) – ShellNinja

2

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 en la columna. Esa es la manera más limpia de hacerlo. Entonces su expresión no será demasiado grande y difícil de "analizar" visualmente :)

+0

gracias por este ! me ayudó mucho –

1

¡Llego tarde al juego pero probé todas las soluciones anteriores! no pude hacer que dejara caer el cero en el parámetro y darme un valor predeterminado (ignoró el formato o apareció en blanco). Estaba usando SSRS 2005, por lo que estaba luchando con sus problemas problemáticos.

Mi solución fue agregar una columna a la tabla personalizada [DimDate] en mi base de datos desde la que estaba extrayendo fechas. Agregué 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 tiraron en las siguientes consultas para 2 valores por defecto para mi 'A' & '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() 
        ) 
0

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

+0

No se quitará el componente de tiempo es el DateColumnName es un tipo de datos DateTime. El OP solo quiere la fecha. – Fandango68

1

Mi solución para un/hora parámetro Fecha:

=CDate(Today()) 

El truco es convertir de nuevo a una fecha y hora como recomendar Perhentian.

11

Si tiene que mostrar el campo en el encabezado del informe, intente esto ... RightClick en Textbox> Properties> Category> date> select * Format (Tenga en cuenta que esto mantendrá la configuración regional).

Dado que esta pregunta se ha visto muchas veces, la estoy publicando ... Espero que ayude.

enter image description here

+0

¿Qué pasa si se ignora por alguna razón? P.ej. la fecha todavía se muestra con horas y minutos. ¿Alguna idea de por qué esto podría estar pasando? – Alex

+0

Si tiene una función especificada para el valor de TextBox/Placeholder, anulará las opciones de formato en esta pantalla. – Wayne

+0

me salvó el día. Aunque el evento es fácilmente visible en las opciones, muchos no buscarán aquí la opción de formateo. Muchas gracias. – Rohith

4

Si el formato de datos que espera es MM-dd-yyyy continuación, tratar a continuación,

=CDate(Now).ToString("MM-dd-yyyy") 

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 solo parte no de tiempo

También se puede ajustar cualquier formato de fecha en lugar de MM-dd-yyyy en mi ejemplo.

0

Sólo concatenar una cadena al final del valor:

Fields!<your field>.Value & " " 'test' 

y esto debería funcionar!

+0

Hola Nathan, ¿Podrías por favor explicar tu edición? lo siento, soy algo nuevo en stackoverflow. ¡Saludos! – amad

Cuestiones relacionadas