我是水晶报道的新手,我有一份水晶报告,我有一个数据源,我在报告中使用了一些字段。
Crsytal报告名称:InventoryReport
数据源:我正在提供存储过程 - GetInventoryData
字段:ItemID,ShippedDate,ItemName
我必须获取ShipDataDate的FromData和ToDate之间的所有商品,因此我在{?FromDate}中使用公式{GetInventoryData; 1.ShippedDate}到{?ToDate}
发货日期的数据类型是字符串,我必须转换为日期,因为它需要进行比较,但我遇到了问题......
ShippedDate值将为:2011-04-19 16:02:14.0000000
我只能在水晶报道方面转换..
请帮助我如何将其投射到目前为止
答案 0 :(得分:1)
实际上甚至更好的是不使用该公式....在使用上述日期范围的选择公式中
date(split({GetInventoryData;1.ShippedDate}," ")[1]) in {?daterange}
答案 1 :(得分:0)
如果你正在使用字符串,你可以做一个简单的小于或大于:
...where ShippedDate >= '2011-04-19 00:00:00' and ShippedDate <= '2011-04-19 23:59:59'
这就像:
...where ShippedDate >= '<from-date> 00:00:00' and ShippedDate <= '<to-date> 23:59:59'
这样可以,你不必去约会。
您也可以使用as(如果它适合您):
...where ShippedDate >= '<from-date>' and ShippedDate <= '<to-date>'
答案 2 :(得分:0)
单向...创建一个名为cvtDate的公式
date(
tonumber(split({GetInventoryData;1.ShippedDate},"-")[1])
,
tonumber(split({GetInventoryData;1.ShippedDate},"-")[2])
,
tonumber(split({GetInventoryData;1.ShippedDate},"-")[3])
)
然后而不是创建两个日期参数..只创建一个名为daterange,允许在values选项下的范围值 那么选择公式将是
{@cvtDate} in {?daterange}