【发布时间】:2014-07-01 14:40:04
【问题描述】:
大家好,我有以下问题:
SELECT LTRIM(STR(CAST(CAST('7/1/2014 9:07:00 AM' as datetime) AS float), 20, 10)) ContactDateTime
这个查询产生这个数字:41819.3798611111
现在我需要做的是将它转换回正常的 '7/1/2014 9:07:00 AM' 日期(如果可能的话)。但是,我不确定如何在 MS SQL 中执行此操作。
任何帮助将不胜感激!
【问题讨论】:
-
所以你想去 Datetime -> Float -> String -> Datetime??
-
为什么要转换成浮点数,然后再转换成日期?我认为如果您解释一下为什么需要这样做可能会有所帮助,因为它现在看起来的方式似乎违反直觉,转换为不同的数据类型,然后返回原始数据类型
-
这是我无法更改的旧代码,因此我需要弄清楚如何(如果可能)将该数字转换回日期。但我同意你的看法,@rhealitycheck 但它不在我的掌控之中。
-
为什么有人首先将日期设置为浮点数????????????
-
正确@rhealitycheck。 SELECT CAST(41819.3798611111 AS DATETIME) 帖子在我想做的事情上工作得很好。我知道这是一种奇怪的做法,但就像我说的那样,因为它是旧代码,所以它不在我的手中。更改它必然会导致其他错误。
标签: sql sql-server date casting floating-point