合并 MS SQL Server 中的日期和时间列
数据提取有时会在单独的列中显示日期和时间。 本文演示了如何在 MS SQL Server 中有效地将这些组合到单个日期时间列中。
解决方案:
一种简单的方法是直接添加日期和时间字段。 然而,这需要两个关键假设:
date
列的时间部分必须始终为午夜 (00:00:00)。time
列的日期部分必须是基准日期(1900 年 1 月 1 日)。如果满足这些条件,以下 SQL 查询将成功合并数据:
<code class="language-sql">SELECT CombinedDateTime = MyDate + MyTime FROM MyTable;</code>
说明:
这是由于 datetime
数据类型的内部表示而起作用的。它使用两个 4 字节整数;一个用于日期,一个用于时间。 直接添加它们会产生正确的组合日期时间值。
重要提示:
date
和 time
数据类型(从 SQL Server 2008 开始提供),请在添加之前将两个字段显式转换为 datetime
:CAST(MyDate AS DATETIME) CAST(MyTime AS DATETIME)
.datetime
和 time
可能会导致精度损失。 有关保留精度的解决方案,请参阅[相关文档/文章](link_to_relevant_article_or_documentation_here - 替换为实际链接(如果有))。 这将涉及使用诸如 DATETIMEFROMPARTS
之类的函数来进行更精细的控制。这种方法提供了一种简单有效的解决方案,用于在指定条件下组合日期和时间字段。 对于数据更复杂的场景,可能需要替代方法。
以上是如何将单独的日期和时间字段合并到 MS SQL Server 中的单个日期时间列中?的详细内容。更多信息请关注PHP中文网其他相关文章!