如何根据月数和开始日期,结束日期在数据库中创建月份列 [英] How to create month columns in database based on number of months and start date, end date
本文介绍了如何根据月数和开始日期,结束日期在数据库中创建月份列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的页面中没有月份和开始日期和结束日期
当我给出月数3并开始日期2015年6月1日结束日期将自动计算到2015年9月1日
i希望在数据库中创建额外的列,即2015年6月,7月和8月<这张桌子或另一张桌子上的
我的代码是
protected void Button1_Click( object sender,EventArgs e)
{
SqlCommand cmd = new SqlCommand( 插入monthcal(NoOfMonths,StartDate,EndDate)值(@ NoOfMonths,@ StartDate,@ EndDate),con);
cmd.Parameters.AddWithValue( @ NoOfMonths,txtNoOfMonths.Text.ToString() );
cmd.Parameters.AddWithValue( @ StartDate,txtStartDate.Text.ToString() );
cmd.Parameters.AddWithValue( @ EndDate,txtEndDate.Text.ToString() );
con.Open();
cmd.ExecuteNonQuery();
}
protected void txtStartDate_TextChanged( object sender,EventArgs e)
{
string inputString = txtStartDate.Text;
DateTime dt = DateTime.ParseExact(inputString, yyyy / MM / dd,CultureInfo .InvariantCulture);
dt = dt.AddMonths(Convert.ToInt32(txtNoOfMonths.Text));
txtEndDate.Text = dt.ToString( yyyy / MM / dd);
DateTime Date1 = Convert.ToDateTime(txtStartDate.Text);
DateTime Date2 = Convert.ToDateTime(txtEndDate.Text);
// int Datediff =((Date2.Year - Date1.Year)* 12)+ Date1.Month - Date2.Month;
int DayDiff =(Date2.Date - Date1.Date).Days;
Label1.Text = 总天数 + +(DayDiff.ToString());
解决方案
使用计算列:
< pre lang =c#>创建表monthcal
(
NoOfMonths int not null ,
StartDate日期不是 null ,
EndDate as DateAdd(mm,NoOfMonths ,Startdate)
)
或在你的情况下:
alter table monthcal
drop EndDate
go
alter < span class =code-keyword> table monthcal
add EndDate as dateadd(mm, 1 ,getdate())
go
i have No of months and Start date and end date in my page
when i give number of months 3 and start date 1/6/2015 then end date will calculated to 1/9/2015 automatically
i want to create extra columns in database i.e June-2015, july and august
in this table or another table
my code is
protected void Button1_Click(object sender, EventArgs e)
{
SqlCommand cmd = new SqlCommand("Insert into monthcal (NoOfMonths,StartDate,EndDate) values (@NoOfMonths,@StartDate,@EndDate)", con);
cmd.Parameters.AddWithValue("@NoOfMonths", txtNoOfMonths.Text.ToString());
cmd.Parameters.AddWithValue("@StartDate", txtStartDate.Text.ToString());
cmd.Parameters.AddWithValue("@EndDate", txtEndDate.Text.ToString());
con.Open();
cmd.ExecuteNonQuery();
}
protected void txtStartDate_TextChanged(object sender, EventArgs e)
{
string inputString = txtStartDate.Text;
DateTime dt = DateTime.ParseExact(inputString, "yyyy/MM/dd", CultureInfo.InvariantCulture);
dt = dt.AddMonths(Convert.ToInt32(txtNoOfMonths.Text));
txtEndDate.Text = dt.ToString("yyyy/MM/dd");
DateTime Date1 = Convert.ToDateTime(txtStartDate.Text);
DateTime Date2 = Convert.ToDateTime(txtEndDate.Text);
//int Datediff = ((Date2.Year - Date1.Year) * 12) + Date1.Month - Date2.Month;
int DayDiff = (Date2.Date - Date1.Date).Days;
Label1.Text = "Total days" + " " + (DayDiff.ToString());
解决方案
use a calculated column:
Create table monthcal ( NoOfMonths int not null, StartDate date not null, EndDate as DateAdd (mm,NoOfMonths, Startdate) )
or in your case:
alter table monthcal drop EndDate go alter table monthcal add EndDate as dateadd(mm,1,getdate()) go
这篇关于如何根据月数和开始日期,结束日期在数据库中创建月份列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文