将日期时间转换为浮点数时,您将获得浮动的偏移量。 将其转换为int仅提供部分日期。 到目前为止,我们回到日期时间的日期已经缩短了
执行相同操作并直接转换为int 并且回到日期时间只在某些时候有效。
主要用于sql server
代码:
CONVERT(datetime,floor(CONVERT(float,START_TIME_1)))
不工作:
CONVERT(datetime,CONVERT(Int,START_TIME_1))
任何人都知道这是为什么?
答案 0 :(得分:1)
要删除SQL Server 2005中的时间部分,可以使用:
select dateadd(day, datediff(day, 0, getdate()), 0)
从SQL Server 2008中,您可以使用日期数据类型。
select cast(getdate() as date)
转换为float
并使用floor
功能也可以正常工作,但我认为上述替代方案更适合。
您的问题是,integer
的演员有时会返回错误的值。
这是因为从datetime
转换为int
时,该值会四舍五入到最接近的int
。时间部分等于或大于12:00的Datetime
值将向上舍入到下一个整数/天。
行为记录在CAST and CONVERT (Transact-SQL)的“截断和舍入结果”部分中。
答案 1 :(得分:-1)
使用的语言?
尝试将其转换为Long
或等效的大整数。