我是一名在SQL命令方面经验有限的Crystal新手。
这是我的问题。
我的数据库以yyyymmdd数字格式存储日期。我创建了一个日期范围参数字段,以允许用户选择日期范围。当我尝试将{?date Range}添加到记录选择中时,我收到一条错误消息,其中显示"此处需要数字范围",显然是因为我的{?date Range}字段正在查找日期而不是一个数字。我相信我要做的就是将日期转换为日期格式,但我不知道如何做到这一点。
有人可以告诉我如何使这项工作?
非常感谢,谢谢
答案 0 :(得分:0)
我没有使用Crystal来检查语法,但通常需要将日期范围转换为数值并在记录选择公式中使用theese值
TO值将是 tonumber(totext(最大({ParameterDateRange?}),' YYYYMMDD'))
FROM值将是 tonumber(totext(最小值({?ParameterDateRange}),' yyyyMMdd'))
因此公式可能类似于
{YourField} IN tonumber(totext(Minimum ({?DateRange}),'yyyyMMdd')) TO tonumber(totext(Maximum({?DateRange}),'yyyyMMdd'))
你也可以使用<和>而不是
之间答案 1 :(得分:0)
您可以使用CDate
函数将数字转换为日期。
CDate(ToNumber(Mid(ToText(20141231),1,4)),ToNumber(Mid(ToText(20141231),5,2)),ToNumber(Mid(ToText(20141231),7,2)))
检查文档链接
答案 2 :(得分:0)
尝试:
{table.date} IN ToText(Minimum({?DateRange}),"yyyymmdd") TO ToText(Maximum({?DateRange}),"yyyymmdd")