我有一个如下所示的列,数据类型是整数。我从AS400服务器获取数据,这就是它使用整数数据类型的原因。日期格式表示为YYYYMMDD
在report studio中,我创建了一个数据项,可以将此整数列转换为日期时间。但它失败了。
我尝试了很多不同的方法,但这些方法都没有。
施放([WCPDOD],'YYYYMMDD')
施放([WCPDOD],日期) UDA-SQL-0219函数“to_date”用于本地处理但是 不能作为内置函数使用,或者至少不支持其中一个参数.RSV-SRV-0042
施放([WCPDOD],YYYY-MM-DD)
施放([WCPDOD],日期时间)
cast_timestamp([WCPDOD],datetime)
cast_timestamp([WCPDOD],日期)
cast_integer([WCPDOD],日期)
有人可以帮我吗?我的目标是让这个20150729至少在2015年7月29日进入
答案 0 :(得分:3)
首先,将10位整数转换为字符串:
数据项2
<% flash.each do |name, msg| %>
<%= content_tag(:div, msg, class: "alert alert-#{name}") %>
<% end %>
接下来,使用substring来提取日期组件并构建日期字符串:
数据项3
cast([Data Item1],varchar(10))
最后,将结果字符串转换为日期格式:
数据项4
substring([Data Item2],1,4) + '-' + substring([Data Item2],5,2) + '-' + substring([Data Item2],7,2)
当然,这可以在一个表达式中完成,但为了清楚起见,我在此处将其分解。
答案 1 :(得分:1)
在SQL Server中,您可以将整数字段转换为varchar,然后转换为日期,然后使用日期样式DECLARE @datevalue int = '20150729';
SELECT convert(varchar(10),cast(cast(@datevalue AS varchar(10)) as date), 101);
来实现所需的格式:
sealed trait Base
case class A(v:Int) extends Base
object N extends Base
object Main {
// Wanna one monoid for all the Base's
implicit val baseMonoid = new Monoid[Base] {
override def append(f1: Base, f2: => Base): Base = f1 match {
case A(x) => f2 match {
case A(y) => A(x + y)
case N => A(x)
}
case N => f2
}
override def zero = N
}
def main(args: Array[String]): Unit = {
println(∅[Base] |+| A(3) |+| A(2)) // Compiles
println(A(3) |+| A(2)) // Not compiles
}
}