我目前正在开发一个将数据添加到SQL表的应用程序。
该表中的一个字段用于会计年度,格式为YYYYMM(例如,2018年8月为201805)。添加行时,我需要自动设置此设置,因为我们不能依赖用户输入正确的格式。
有什么方法可以将DateTime设置为从4月1日(财政年度的第一天)开始的一年,还是我必须对问题进行编码。
答案 0 :(得分:1)
感谢所有答案,它们确实帮助我解决了问题。
我最终得到了一个我可能应该首先想到的非常简单的解决方案。
string period = DateTime.Now.AddMonths(-3).ToString("yyyyMM");
答案 1 :(得分:0)
您可以使用以下代码来获取所需财政年度的开始。
var year = DateTime.Now.Year;
DateTime firstDay;
if(DateTime.Now.Month <= 4)
firstDay = new DateTime(year-1, 4, 1);
else
firstDay = new DateTime(year, 4, 1);
似乎没有一种自动执行此操作的方法,但看起来很简单。
答案 2 :(得分:0)
您想要的是一个varchar(或nvarchar)列,其默认值类似于:
(format(dateadd(month,(-4),getdate()),''yyyyMM'',''en-US''))
但是,SQL Server似乎不喜欢将默认值的三个函数嵌套在一起(两个函数看起来不错,但是可以打上三个函数)。相反,您可以拥有一个Date
类型的列,其默认值为:
(dateadd(month,(-4),getdate()))
这似乎可行,但这是4个月前的日期。然后只要显示它就正确格式化即可。