我有一个方法可以将行添加到数据库 (sql server 2005)。它有问题,因为当我与 UpdateDate 2000-12-31 23:59:59
有一行时,它会插入 2001-01-01 00:00:00.000
.是否可以?如果环境文化很重要,那么它就是波兰语。这对我来说是一种魔法:/
private void AddInvestmentStatus(InvestmentData.StatusyInwestycjiRow investmentStatusesRow)
{
SqlCommand cmd = new SqlCommand("AddInvestmentStatus");
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter param1 = new SqlParameter("@InvestmentId", SqlDbType.BigInt);
param1.Value = investmentStatusesRow.InvestmentId;
cmd.Parameters.Add(param1);
cmd.Parameters.AddWithValue("@enumInvestmentStatusID", investmentStatusesRow.EnumInvestmentStatusID);
cmd.Parameters.AddWithValue("@modifiedBy", "System");
cmd.Parameters.AddWithValue("@UpdateDate", investmentStatusesRow.UpdateDate);
cmd.Parameters.AddWithValue("@ModifiedOn", investmentStatusesRow.ModifiedOn);
cmd.Parameters.AddWithValue("@dataVersion", investmentStatusesRow.DataVersion);
cmd.Connection = new SqlConnection(MyProgram.Properties.Settings.Default.ConnectionString);
if (cmd.Connection.State != ConnectionState.Open)
cmd.Connection.Open();
try
{
cmd.ExecuteNonQuery();
}
catch (Exception e)
{
throw;
}
}
create PROCEDURE [dbo].[AddInvestmentStatus]
@inwestmentID bigint,
@enumInvestmentStatusId bigint,
@updateDate datetime,
@dataVersion int,
@modifiedBy nvarchar(50),
@modifiedOn datetime
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
DECLARE @investmentStatusesID bigint
INSERT INTO StatusyInwestycji(InwestycjaID)
VALUES (@inwestmentID)
SELECT @investmentStatusesID = SCOPE_IDENTITY();
INSERT INTO StatusyInwestycjiData(InvestmentStatusId, EnumStatusInwestycjiID,
UpdateDate, DataVersion, ModifiedBy, ModifiedOn)
VALUES (@investmentStatusesID, @enumInvestmentStatusId,
@updateDate, @dataVersion, @modifiedBy, @modifiedOn)
END
编辑:
我的约会对象:
{2000-12-31 22:59:59}
Date: {2000-12-31 00:00:00}
Day: 31
DayOfWeek: Sunday
DayOfYear: 366
Hour: 22
Kind: Utc
Millisecond: 999
Minute: 59
Month: 12
Second: 59
Ticks: 631139003999990000
TimeOfDay: {22:59:59.9990000}
Year: 2000
最佳答案
您确定要输入 23:59:59.000000 还是 23:59:59.9999999?
SQL DateTime 数据类型的精度为 3.33 毫秒(它将四舍五入为 0 毫秒、3 毫秒、7 毫秒增量),这意味着您的 23:59:59.9999 将四舍五入为第二天的 00:00:00.000000。
关于c# - 2001-01-01 00 :00:00. 000 改为插入数据库 2000-12-31 23:59:59,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5478425/