如何根据月数和开始日期,结束日期在数据库中创建月份列 [英] How to create month columns in database based on number of months and start date, end date

查看:315
本文介绍了如何根据月数和开始日期,结束日期在数据库中创建月份列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的页面中没有月份和开始日期和结束日期





当我给出月数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屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆