Crystal Reports:错误的日期格式字符串错误

时间:2013-04-04 14:25:50

标签: sql-server-2008 crystal-reports

我是水晶报道的新手,我有一份水晶报告,我有一个数据源,我在报告中使用了一些字段。

Crsytal报告名称:InventoryReport

数据源:我正在提供存储过程 - GetInventoryData

字段:ItemID,ShippedDate,ItemName

我必须获取ShipDataDate的FromData和ToDate之间的所有商品,因此我在{?FromDate}中使用公式{GetInventoryData; 1.ShippedDate}到{?ToDate}

发货日期的数据类型是字符串,我必须转换为日期,因为它需要进行比较,但我遇到了问题......

ShippedDate值将为:2011-04-19 16:02:14.0000000

我只能在水晶报道方面转换..

请帮助我如何将其投射到目前为止

3 个答案:

答案 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}