c# - 2001-01-01 00 :00:00. 000 改为插入数据库 2000-12-31 23:59:59

标签 c# sql-server-2005 datetime

我有一个方法可以将行添加到数据库 (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/

相关文章:

SQL Server 2005 使用 CHARINDEX() 拆分字符串

sql - 为什么我不能使用 CASE 在 ORDER BY 中引用列别名?

datetime - FFmpeg strftime 微秒

c# BsonSerializer : deserialization through backing fields 收藏

c# - ASP.NET Web API StreamContent - 让浏览器显示下载进度

c# - 不应该在 null 变量上调用 Enumerable.AsEnumerable() 抛出异常吗?

sql - 如何在 SQL 中将数字列格式化为电话号码

c# - 通过 C# 发送邮件

javascript - 使用 moment 获取日期和当前日期之间的时间差

php - 将日期 dd/mm/yyyy 格式从表单转换为时间戳?