从DataBase

时间:2018-01-08 08:19:22

标签: c# .net tsql

我有一个Microsoft SQL数据库,其日期时间列的格式为“yyyy-mm-dd hh:mi:ss.mmm”。我正在通过存储过程从.NET上的这个数据库中检索表,只需选择这些列并返回。当我在Microsoft SQL上执行存储过程时,我得到了像我应该的那样毫秒。但是如果我在.NET上检索这些,如果它是“000”,则省略毫秒。如果它们不是“000”,我可以毫秒获得毫秒数。否则,我得到“yyyy-mm-dd hh:mi:ss”

因为即使它们是“000”,我在Microsoft SQL执行上也可以获得毫秒数,但我认为.NET正在摆弄它们。解决这个问题的理想方法是什么?我想要显示毫秒,即使它是“000”

1 个答案:

答案 0 :(得分:4)

DateTime是二进制格式,不会“有零”或类似的东西。它始终包含一个解析为年,月,日,小时,分钟,秒和千分之一秒的数字,无论是否显示,是否为零。

您的问题在于显示 - 将日期/时间转换为字符串。您可能隐式执行转换(例如,通过查看Watch窗格中的变量),当您这样做时,框架将为您选择格式。您只需要使用http://localhost:8080/add_statestandard格式字符串明确说明所需的格式。例如:

var dateString = myDate.ToString("yyyy-MM-dd HH:mm:ss.fff");