我的约会对象是2017年1月31日。我希望将其格式化为31-Jan。我该怎么做?
这不起作用。有一个错误。
=date(date#(=maxstring({[Date1]} [DATE]),'DD/MM/YYYY'), 'DD-MMM')
答案 0 :(得分:2)
函数Date#()
根据格式代码给出的字符串将表达式作为日期返回。如果省略格式代码,则使用操作系统中设置的default date format
。
<强>语法: - 强>
Date# (text [, format])
之后使用Date函数将其转换为日期。我们来看下面的例子: -
示例: - 强>
=Date(Date#('16JAN2014','DDMMMYYY'))
上面我们使用日期#和日期函数转换了日期到日期的字符格式。
您的示例:
我很困惑你在这做什么。只需检查(=maxstring({[Date1]} [DATE]),'DD/MM/YYYY')
并检查Date1是否匹配'DD / MM / YYYY'格式。
并将其设为日期转换格式。
=date(date#( (=maxstring({[Date1]} [DATE]),'DD/MM/YYYY') , 'DD-MMM'))
答案 1 :(得分:0)
解决方案也取决于您的源数据。 如果源中的数据格式是日期,那么它将被QlikView读取为日期,转换很简单。
解决方案:日期(日期,&#39; DD-MMM&#39;)作为日期
如果源中的数据格式不是日期格式,而是文本,那么您需要使用subfield()函数将文本字符串分成几部分并告诉每个部分它是什么。您可以使用日期#()函数将其括起来,告诉您必须将这些文本解释为日期。最后,在此处执行一个简单的日期格式化函数date()以使其成为DD-MMM格式。
解决方案:日期(日期#(子字段(日期,&#39; /&#39;,1)&amp;子字段(日期,&#39; /&#39;,2 )&amp; subfield(Date,&#39; /&#39;,3),&#39; DDMMYYYY&#39;),&#39; DD-MMM&#39;)as Date
如果您的月份大写很重要,您可能需要在脚本中检查指定MonthNames的初始SET语句:
SET MonthNames =&#39; jan; feb; mrt; apr; mei; jun; jul; aug; sep; okt; nov; dec&#39;;