我只有一个Excel文件,然后将其加载到SQL Server 2008中。
我想将当前日期插入到Excel中添加的相同单元格中,同时日期传输...然后每次添加数据时自动插入日期,并且永远不会丢失旧日期。我怎么能这样做?
string ssqltable = comboBox1.GetItemText(comboBox1.SelectedItem);
string myexceldataquery = "select * from [" + ssqltable + "$]";
try
{
OleDbConnection oconn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + imagepath + ";Extended Properties='Excel 12.0 Xml; HDR=YES;IMEX=1;';");
string ssqlconnectionstring = "Data Source=.;Initial Catalog=Bioxcell;Integrated Security=true";
OleDbCommand oledbcmd = new OleDbCommand(myexceldataquery, oconn);
oconn.Open();
SqlBulkCopy bulkcopy = new SqlBulkCopy(ssqlconnectionstring);
DataTable dt = new DataTable();
dt.Load(oledbcmd.ExecuteReader());
bulkcopy.DestinationTableName = ssqltable;
for (int i = 0; i < dt.Columns.Count; i++)
{
bulkcopy.ColumnMappings.Add(i, i);
}
bulkcopy.WriteToServer(dt);
oconn.Close();
}
我用过这个,但我知道只插入最后一条记录 我想在新创建的行中插入当前日期,并且不会丢失以前的列日期..例如,当我每次插入新日期时插入数据时保存旧日期旧数据
SqlCommand Update6 = new SqlCommand("insert into Overseas (Date) Values('" + DateTime.Now.ToShortDateString() + "')", conn);
Update6.ExecuteScalar();
使用
SqlCommand Update6 = new SqlCommand("insert into Overseas (Date) Values (GETDATE())", conn);
Update6.ExecuteNonQuery();
结果是
enter image description here 那么解决方案是什么?
答案 0 :(得分:1)
您只需使用 Datetime.Now(); 功能即可获取当前日期。
另外,使用zzz格式说明符将时区偏移量设置为小时和分钟。您还希望使用HH格式说明符以24小时格式获取小时数。
DateTime.Now.ToString( “YYYY-MM-DDTHH:MM:sszzz”)
结果:
2011-08-09T23:49:58+02:00
某些文化设置使用句点而不是冒号来表示时间,因此您可能希望使用文字冒号而不是时间分隔符:
DateTime.Now.ToString("yyyy-MM-ddTHH':'mm':'sszzz")
Custom Date and Time Format Strings
希望这对你有用..谢谢
答案 1 :(得分:0)
为此目的有一个函数GETDATE()。
将当前数据库系统时间戳记作为日期时间值返回 没有数据库时区偏移量。这个值来源于 SQL Server实例的计算机操作系统 正在运行。
https://docs.microsoft.com/en-us/sql/t-sql/functions/getdate-transact-sql
答案 2 :(得分:0)
将GETDATE()
设置为Overseas表的Date列的默认约束。
添加约束的SQL命令:
ALTER TABLE Overseas
ALTER COLUMN Date DATETIME NOT NULL DEFAULT GETDATE()
发布此内容时,您无需在插入时将任何值传递给此列。只需插入剩余的列,就会自动插入。
OR
试试这个:
SqlCommand Update6 = new SqlCommand("insert into Overseas (Date) Values (GETDATE())", conn);
Update6.ExecuteScalar();
根据您的数据库屏幕截图,希望此查询有助于:
INSERT INTO Overseas (EnglishName,ProductCode,ProductName,TerritoryCode,TerritoryName,Salesvalue,CreditValue,NetSalesValue,Sales,Bonus,Bioxellbricks,BioxellTerritories,Date,ID)
SELECT EnglishName,ProductCode,ProductName,TerritoryCode,TerritoryName,Salesvalue,CreditValue,NetSalesValue,Sales,Bonus,Bioxellbricks,BioxellTerritories,GETDATE(),ID from [exceltablename]
此处Overseas
是您的数据库表,exceltablename
是您的excel源表。