【发布时间】:2014-02-04 15:18:39
【问题描述】:
将 Datetime 转换为浮点数时,您会得到浮点数的偏移量。 将其转换为 int 仅给出部分日期。 到目前为止一切顺利,当我们回到日期时间时,我们有一个修剪过的日期
做同样的事情并直接转换为 int 并且返回 datetime 仅在某些时候有效。
主要用于sql server
代码:
CONVERT(datetime,floor(CONVERT(float,START_TIME_1)))
不工作:
CONVERT(datetime,CONVERT(Int,START_TIME_1))
有人知道这是为什么吗?
“Mikael Eriksson”给了我这个问题的答案 -> “这是因为从 datetime 转换为 int 时,值会四舍五入到最接近的 int。时间部分等于或大于 12:00 的 Datetime 值将向上舍入到下一个整数/天。”
显然这是一个过时的问题,因为现在到处都支持 cast 和 convert 函数。 更不用说应该使用 datetime2 了。
【问题讨论】:
-
你使用什么语言?
-
如果没有更多信息 - 理想情况下是语言/平台 + 带有示例数据的示例代码 - 这个问题是无法回答的。
-
CONVERT(datetime,floor(CONVERT(float,START_TIME_1)))
-
但是直接进入 int 行不通
-
只是为了澄清。这里的“不工作”是否意味着有时转换为
int的日期会在第二天返回,就像在这个SQL Fiddle 中一样?
标签: sql sql-server datetime int