在 where 子句中使用日期时间和日期数据类型时是否有截止时间?

use*_*039 2 sql-server datatypes t-sql datetime date

我有一个标题为reached_date的列。在我的查询中,该列的大部分值是2016-09-30 23:59:59.997

然后我有一个 where 子句,内容如下:

WHERE achieved_date between '20160901' and '20160930'
Run Code Online (Sandbox Code Playgroud)

具有 2016-09-30 23:59:59.997 值的记录没有包含在我应该包含的结果中。我的意思是交易记录在 9 月 30 日。

如果这是一个奇怪的数据类型问题,有什么想法吗?

Aar*_*and 7

停止BETWEEN用于日期范围查询;它模棱两可且脆弱。WHERE COL >= '20160901' and COL < '20161001'更容易构建并且不易受到类型/精度/舍入的意外变化的影响。

看到这个帖子这个帖子