我对本月的日子感兴趣。以下代码是我如何以递归方式执行此操作:
if let cell1 = x as? CustomCell1 {
//Use cell1 here
}
if let cell2 = x as? CustomCell2 {
//Use cell2 here
}
我欣赏以上可能不是最佳的。但我的问题是如何实现上述非递归而不是硬编码任何日期。
编辑:完全删除CAST到VCHAR,感谢'Gordon Linoff'的建议。答案 0 :(得分:2)
通常,名为master..spt_values
的表用于此目的。它没有记录,但通常可用。实际上,可以使用任何至少有31行的表。
因此,要生成数字并构建日期:
with n as (
select top 31 row_number() over (order by (select null)) as n
from master..spt_values
)
select datefromparts(year(getdate()), month(getdate()), n.n) as thedate
from n
where n.n <= day(eomonth(getdate()));
注意:datefromparts()
是构建日期的一种非常方便的方法。此外,在SQL Server中使用varchar
时,始终包含长度。默认值因上下文而异,查找此问题导致的错误可能非常困难。