Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 Crystal Reports:错误的日期格式字符串错误_Sql Server 2008_Crystal Reports - Fatal编程技术网

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

Sql server 2008 Crystal Reports:错误的日期格式字符串错误,sql-server-2008,crystal-reports,Sql Server 2008,Crystal Reports,我是crystal reports的新手,我有一个crystal report,我有一个数据源,我在报告中使用了一些字段 Crsytal报告名称:InventoryReport 数据源:我给出了存储过程--GetInventoryData 字段:ItemID、ShippedDate、ItemName 我必须获取从FromData到ShippedDate的ToDate之间装运的所有项目,因此我在{FromDate}到{ToDate}中使用公式{GetInventoryData;1.ShippedD

我是crystal reports的新手,我有一个crystal report,我有一个数据源,我在报告中使用了一些字段

Crsytal报告名称:InventoryReport

数据源:我给出了存储过程--GetInventoryData

字段:ItemID、ShippedDate、ItemName

我必须获取从FromData到ShippedDate的ToDate之间装运的所有项目,因此我在{FromDate}到{ToDate}中使用公式{GetInventoryData;1.ShippedDate}

发货日期的数据类型是字符串,我必须转换为日期,因为它需要比较,但我在这方面有问题

发货日期值为:2011-04-19 16:02:14.0000000

我只需要在crystal reports侧转换


请帮助我如何将其转换为最新版本

如果您使用的是字符串,您可以执行一个简单的小于或大于类似操作:

...where ShippedDate >= '2011-04-19 00:00:00' and ShippedDate <= '2011-04-19 23:59:59'

…其中ShippedDate>='2011-04-19 00:00:00'和ShippedDate='00:00:00'和ShippedDate单向。。。创建一个名为cvtDate的公式

date(
tonumber(split({GetInventoryData;1.ShippedDate},"-")[1])
,
tonumber(split({GetInventoryData;1.ShippedDate},"-")[2])
,
tonumber(split({GetInventoryData;1.ShippedDate},"-")[3])
)
然后,不再创建两个日期参数。。仅创建一个名为daterange的,允许在“值”选项下使用范围值 那么选择公式就是

{@cvtDate} in {?daterange}

事实上,最好不要用那个公式。。。。在选择公式中使用上述日期范围

date(split({GetInventoryData;1.ShippedDate}," ")[1]) in {?daterange}

我认为这[如何将字符串值转换为正确的日期时间格式][1]可能会帮助您[1]:嗨。。我只能在crystal reports端转换..因为我没有权限修改程序。。。因为它们正在各种其他应用程序中使用..Protip:在记录选择公式中使用Crystal函数,如
split()
,将导致选择发生在客户端而不是服务器端。这意味着无论日期如何,所有记录都将从数据库中返回,这可能会导致巨大的性能损失。对于大型数据集,最好使用数据库本机语法中的SQL表达式来执行数据操作。完全同意,如果建议的解决方案影响性能,SQL表达式将是更好的解决方案。我想,由于语法问题,我不愿提供SQL示例。我的SQL风格中的一个示例,如果他对作为CVTShipDate的_DATE({fn LEFT(ShippedDate,10)},'YYYY-MM-DD')感兴趣,在我的例子中,不能对SQL表达式进行任何更改,因为我不能修改存储过程。。我只能在crystal report旁做。。顺便问一下,你能帮我创建daterange参数吗?我对crystal reports完全不熟悉…你可以在crystal命令表达式中创建SQL表达式。如果你想探索,让我知道。我可以试着和你一起完成它,或者为你找到一些参考view@msbyuvaSQL表达式和SQL命令都不需要对数据库进行任何更改;它们只是让您能够更好地控制查询。
{@cvtDate} in {?daterange}
date(split({GetInventoryData;1.ShippedDate}," ")[1]) in {?daterange}