首頁 > 資料庫 > mysql教程 > 如何在 MS SQL Server 中將單獨的日期和時間列合併為單一日期時間列?

如何在 MS SQL Server 中將單獨的日期和時間列合併為單一日期時間列?

Linda Hamilton
發布: 2025-01-17 17:22:10
原創
562 人瀏覽過

How Can I Combine Separate Date and Time Columns into a Single DateTime Column in MS SQL Server?

在 MS SQL Server 中合併日期和時間列:綜合指南

許多資料庫設計將日期和時間資訊儲存在兩個單獨的欄位中。 本指南說明如何在 MS SQL Server 中有效地將這些組合到單一 datetime 欄位中。

解決方案

假設您的「日期」欄位僅包含日期值(時間部分為零)且「時間」欄位僅包含時間值(日期部分為1900 年1 月1 日),一個簡單的加法運算令人驚訝地有效:

<code class="language-sql">SELECT CombinedDateTime = MyDate + MyTime FROM MyTable;</code>
登入後複製

了解機制

這個看似簡單的新增利用了舊版 SQL Server 版本中 datetime 值的內部表示。 每個 datetime 值都儲存為兩個 4 位元組整數:一個用於日期,一個用於時間。新增它們會執行位元組合,從而產生單一 datetime 值。

處理較新的 SQL Server 版本和資料類型

對於 SQL Server 2008 及更高版本,除了 DATETIME 之外,還引入了 DATETIMEDATETIME2 資料類型。 直接添加不再適用。要在這些較新版本中組合 DATETIME,明確轉換為 DATETIME 至關重要:

<code class="language-sql">SELECT CombinedDateTime = CAST(MyDate AS DATETIME) + CAST(MyTime AS DATETIME) FROM MyTable;</code>
登入後複製
登入後複製

此外,直接加入 datetime2 值可能會導致精確度損失。 為確保準確性,請在合併前轉換為 DATETIME

<code class="language-sql">SELECT CombinedDateTime = CAST(MyDate AS DATETIME) + CAST(MyTime AS DATETIME) FROM MyTable;</code>
登入後複製
登入後複製

無論您的 SQL Server 版本為何,此方法都可以保證將日期和時間元件精確可靠地組合到單一 datetime 欄位中。

以上是如何在 MS SQL Server 中將單獨的日期和時間列合併為單一日期時間列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板