当前位置: 首页 > 面试题库 >

使用参数在SQL中插入日期时间(不带毫秒)

邢寒
2023-03-14
问题内容

我需要在没有毫秒的情况下在我的SQL Server数据库中插入.net DateTime。

dtNow = Date.Now
myCmd.Parameters.AddWithValue("MyDate", dtNow)

我希望数据库中的值是例如:2014-01-15 17:18:04.000
秒是更准确的值。

但是当我进行这样的插入时,它会增加实际的毫秒数:

INSERT Table1 (MyDate, id, MyValue, DateModified) 
VALUES (@ADate, @ID, @Value, @MyDate)

如何以最简单的方式实现这一目标?


问题答案:

尽管您 可以 按照注释中的建议减去毫秒数,但仍将获得亚毫秒级的值。那 可能
不会引起问题,但是驱动程序可能会将亚毫秒值四舍五入到整毫秒。这是一种更干净的(IMO),它完全避免了任何亚秒级的值,因此您插入的值与要存储的值相同。我更喜欢使用:

var truncated = new DateTime(dtNow.Year, dtNow.Month, dtNow.Day,
                             dtNow.Hour, dtNow.Minute, dtNow.Second);
// Use truncated as the parameter in your command

这样,它将显然 具有年/月/日/小时/分钟/秒的值。

如果您发现自己定期执行此操作,则可能需要编写扩展方法,以便可以使用:

var truncated = dtNow.TruncateToSecond();


 类似资料:
  • 下面是我们用来填充SQL数据库中的表的存储过程。@excDate是从C#批处理作业中发送的参数,该作业从和Excel电子表格中获取值。 如果当前代理的培训处于活动状态,则电子表格的“过期日期”单元格中不会有值。这将导致从C#代码向存储过程发送一个空字符串,然后将其转换为日期时间值1900-01-01。在我需要使用光标将新记录插入表之前,这一切都是正常的。 如果@exDate值是1900-01-01

  • 问题内容: 我对约会有点困惑。我目前正在使用天气应用程序,并且一切正常。.我只是想将这种类型的格式处理成我自己想要的格式。 我只是想将此日期转换为大纪元时间,然后以所需的格式结算日期:: 对于J-SON 或者我想将此日期转换为更少的数字,例如,Sun,9月9日9:23 Am等。 http://dataservice.accuweather.com/currentconditions/v1/2570

  • 问题内容: 我需要在T-SQL中将值转换为。该值采用格式,例如 我需要在T-SQL中进行转换。 我试过了 但这会引发错误。 “将nvarchar数据类型转换为datetime数据类型导致超出范围的值。” 任何的想法 谢谢 问题答案: 将格式重建为。

  • 我在Netbeans IDE中用JDBC oracle数据库做一个Java项目,我需要在数据库中插入日期和时间,它的格式是11/16/2013 10:30。我把我的代码附在下面。 在DBConnector中插入代码 按钮单击事件 Logger.GetLogger(CabCancellationUI.Class.GetName()).Log(Level.Severe,null,ex);}}捕获(Ex

  • 问题内容: 我已经写了下面的代码,但它似乎只插入当前日期,而不是当前时间。有人知道该怎么做吗? 问题答案: 似乎只是因为这就是它要打印的内容。但是实际上,您不应该以这种方式编写逻辑。这等效于: 将系统日期转换为字符串,只是将其转换回日期,似乎很愚蠢。 如果要查看完整日期,则可以执行以下操作:

  • 问题内容: 我有一个脚本,需要在脚本的不同行执行以下命令: 在我的陈述中,我有以下内容: 我收到以下错误: 如果我将语句的顺序更改为: 我收到以下错误: 如果我再次将语句更改为: 我收到以下错误: 这是怎么回事,我怎么都可以工作? 问题答案: 您的麻烦是,您有一些代码希望对 模块 进行引用,而其他代码希望对类进行引用 。 显然,不能两者兼有。 当您这样做时: 您首先要设置为对该类的引用,然后立即将