Crystal reports Crystal Report将日期字符串(包含星期几)转换为日期格式

Crystal reports Crystal Report将日期字符串(包含星期几)转换为日期格式,crystal-reports,Crystal Reports,我是水晶报告的新手。我有一个字符串格式的日期,如2015-03-25(Wed),我想将其转换为日期格式,如2015年3月25日。我尝试使用CDate和DateValue,但它返回了错误的日期字符串格式。是否有将此类日期字符串转换为正确日期格式的建议?如果Crystal Reports中有DateTime字段,右键单击字段并选择format field(格式字段)菜单项时,格式编辑器上将显示date and Time(日期和时间)选项卡选项。从“日期和时间”选项卡中,您可以选择所需的格式,然后选择

我是水晶报告的新手。我有一个字符串格式的日期,如2015-03-25(Wed),我想将其转换为日期格式,如2015年3月25日。我尝试使用CDate和DateValue,但它返回了错误的日期字符串格式。是否有将此类日期字符串转换为正确日期格式的建议?

如果Crystal Reports中有DateTime字段,右键单击字段并选择format field(格式字段)菜单项时,格式编辑器上将显示date and Time(日期和时间)选项卡选项。从“日期和时间”选项卡中,您可以选择所需的格式,然后选择“确定”

建议使用您想要使用的格式


例如:如果您为money或decimal提供字符串格式,您可能无法完全使用它,就像您可能无法自动求和以及与您打算使用的数据类型相关的其他属性一样

为了不在代码中执行任何操作,Crystal Report可以使用这种简单格式

@实用程序,您即将回答

如上图所示,在最后一个
自定义格式
选项中,您只需进入
日期
选项卡并将格式指定为

已更新:很抱歉上面的答案,如果您有有效的日期字符串,则可以使用。
在您的情况下,任何任意字符串都需要转换为其他日期格式。有两种选择。在这两种情况下,您都必须提取日期,然后根据需要格式化,然后再与其他子字符串组合

  • 第二步,你已经完成了,即crsytal报告端,抓取日期,格式化并连接。由于需要处理每一行,这将减慢速度

  • SqlServer端-此选项比第一个选项更快

  • 声明@t nvarchar(16)='2015-03-25(星期三)'

    --获取实际日期选择子字符串(@t,1,charindex(“(”,@t)-1) --上面的结果给出了charter数据类型,因此您首先将其转换为date,然后将其转换为其他格式,然后选择cast(子字符串(@t, 1,charindex(“(”,@t)-1)作为日期)--转换为日期选择 convert(varchar(15),cast(子字符串(@t,1,charindex(')(',@t) -1)截止日期),103)——转换为dd/mm/yyyy格式

    --上面是供您理解的,这是代码的实际执行(只写下面的一行)选择convert(varchar(15),cast( 子字符串(@t,1,charindex(“(”,@t)-1)作为日期),103)+”+ datename(dw,getdate())


    我建议使用Sqlserver端。

    我尝试将DateValue({date\u in\u string})放入到一个新创建的模板字段,并将其转换为日期格式,之后我按照您的建议更改格式,但最后仍然返回错误的日期格式字符串。表中的数据类型是什么?将其更改为DateTime我知道您的解决方案会起作用,但我无法更改,因为它是客户端数据库是。虽然它已转换为日期格式,但n我遵循了上面的建议,但一旦我刷新我的报告,它返回了错误的日期格式字符串。请检查我的答案。你能发布你的公式吗?嗨,西瓦,这是公式:DateValue(左({date_string},左({date_string})-6)),我把-6放在后面是因为去掉了星期几,所以最终结果是日期格式的2015-03-25。你是否检查了我的更新答案?我尝试了你的建议,但没有效果,我认为它受到日期字符串后面星期几的限制。假设我的日期字符串是2015-03-29(星期四),正如我所尝试的,我使用DateValue({date_string})将日期字符串更改为date,然后右键单击转换的日期字段并自定义日期格式,当我刷新报告时,它返回错误的日期格式字符串。