許多資料庫設計將日期和時間資訊儲存在兩個單獨的欄位中。 本指南說明如何在 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 2008 及更高版本,除了 DATE
和 TIME
之外,還引入了 DATETIME
和 DATETIME2
資料類型。 直接添加不再適用。要在這些較新版本中組合 DATE
和 TIME
,明確轉換為 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中文網其他相關文章!