我想根据用户提供的开始日期和结束日期参数从以前保存的传感器数据中绘制图表。我显示用户日历图标和默认开始日期(=DateAdd("d",-2,Today())
)和今天结束日期(=DateAdd("d", 0,Today())
)。SSRS的格式化日期时间(SQL Server 2008 R2)
日历图标显示日期为11.6.2016,但在数据库中日期保存为2016-06-11 00:00:05.217
。如果我使用下面的SQL查询,则不返回任何内容,但如果我在Visual Studio查询设计器中使用相同的内容,则会得到预期的数据。什么是正确的语法?
SELECT Timestamp, Value, FieldSensorName
FROM MeasurementTable
WHERE (FieldSensorName IN (@ReportParameterSensorName))
AND (Timestamp > CONVERT(varchar, @ReportParameterStartDate, 121))
AND (Timestamp < CONVERT(varchar, @ReportParameterEndDate, 121))
我从具有多个选择列表框的UI传递选定的传感器的名称(@ReportParameterSensorName
)。
您的参数是否为日期类型?只需使用@ReportParameterStartDate和@ ReportParameterEndDate之间的时间戳。 –
是的,它是日期/时间类型,时间戳记在开始和结束之间。我用查询设计器测试了相同的参数,并且没有问题。 – RotatingWheel
如果您的参数和Timestamp列是日期/日期时间类型,则不需要转换类型或套装格式。 –