相关疑难解决方法(0)

TSQL DateTime DataType - 小数秒与毫秒

想要从一天中获取所有记录。所以2013-03-05 00:00:00.000和之间的一切2013-03-05 23:59:59.999。我们在后端与发生在2013-03-06 00:00:00.000.

因此,在测试中,我在 SSMS 中运行:

select cast('2013-03-05 23:59:59.999' as datetime)
select cast('2013-03-05 23:59:59.996' as datetime)
select cast('2013-03-05 23:59:59.994' as datetime)
Run Code Online (Sandbox Code Playgroud)

并得到:

2013-03-06 00:00:00.000
2013-03-05 23:59:59.997
2013-03-05 23:59:59.993
Run Code Online (Sandbox Code Playgroud)

毫秒部分会稍微回落。在第一行的情况下,它真的很重要。因为我不想要 2013-03-06 00:00:00.000 - 我想要午夜前一毫秒。

TSQL 在文档中声明它使用小数秒,而不是使用毫秒的 .Net 日期时间。这似乎只是语法上的差异,但如果您真的关心 TSQL 中的毫秒精度,您是否会被迫全面使用DateTime2。从datetime2to 转换datetime仍然会在几毫秒内把事情搞砸。

在 c# 中DateTime.Parse("03/5/2013 23:59:59.999").Millisecond仍然返回 999。

我这样解释好吗?如果我关心毫秒精度,我datetime2只坚持使用。

通常,这将是一个简单的修复,但在这种情况下,我们使用的是datetime作为参数接收的 Microsoft 系统函数。

sql-server-2008 sql-server datetime

2
推荐指数
1
解决办法
1852
查看次数

标签 统计

datetime ×1

sql-server ×1

sql-server-2008 ×1