![]() |
1
5
总有一个简单的选择:
|
![]() |
2
2
我怀疑view_Inspections中的日期列是SmallDateTime数据类型。此数据类型的精度为1分钟,这解释了您的意外结果(将秒四舍五入到最接近的分钟)。 Roland Shaw建议的方法是修改查询以适应您的要求的最佳方式。 |
![]() |
3
1
BETWEEN运算符是包容性的,这就是为什么您在第一个查询中看到的结果。您在第二个查询中看到的舍入将取决于您在表中使用的确切日期时间数据类型。(顺便说一句,我认为你把秒和百分之一秒混淆了)。看起来你可能在表中使用了一个小日期时间,在这种情况下,时间会四舍五入到最接近的分钟。 如果您的表使用datetime,请尝试将@startDate和@endDate显式转换为datetime值(CAST(@endDate为datetime))。 一个简短的便条。..即使对于DATETIME值,SQL Server也只能精确到3/100秒,因此11:59:59.999将四舍五入到12:00:00.000。 你基本上有三个选择: 1) 在转换(日期时间为'01/01/2008 00:00:00.000')和转换(日期日期时间为'03/31/2008 12:59:59.997')之间 2) 年份(my_date)=2008年,月份(my_dade)介于1和3之间 3) my_date>=CAST(日期时间为2008年1月1日00:00:00.000)和my_date<演员阵容(日期时间为'04/01/2008 00:00:00.000') 第一种方法不是很直观,在我看来很容易出错。第二种方法会扼杀性能,因为不能使用索引,而且如果搜索可以跨越数年或在月中开始/结束,则会变得更加复杂。罗兰建议的第三种方法是我认为最好的。 |
![]() |
4
1
只需尝试从日期字段中删除时间,如下所示:
这将返回从
|
![]() |
5
0
最好的解决方案是创建一个名为“julian”的BIGINT(10)字段,并将其存储在YYYYMMDD中。 然后进行查询 其中julian>='20120103'和朱利安<= '20120203' |
![]() |
krash · 获取日期范围的月末日期 8 年前 |
![]() |
woodbine · Postgresql重叠日期范围和求和结果 8 年前 |
![]() |
user908094 · 计算与重叠日期范围相关的值的总和 11 年前 |
![]() |
Phrogz · 左侧外部联接的作用与内部联接类似 12 年前 |