MS SQL Server の日付と時刻フィールドをマージします
別々の日付列と時刻列を含むデータを操作する場合は、それらを 1 つの日時フィールドに結合する必要があります。この記事では、MS SQL Server でこれを実現する方法について説明します。
フィールドを結合するにはゼロパディングを使用します
「Date」列の時間コンポーネントがすべて 0 で、「Time」列の日付コンポーネントがすべて 0 の場合 (つまり、基準日: 1900 年 1 月 1 日)、単純にそれらを加算して正しい結果を得ることができます。 :
<code class="language-sql">SELECT Combined = MyDate + MyTime FROM MyTable</code>
これが機能するのは、日付と時刻が 2 つの 4 バイト整数として保存され、左側の 4 バイトが日付を表し、右側の 4 バイトが時刻を表すためです。それらを加算することにより、日付と時刻のコンポーネントが効果的に結合されます。
SQL Server 2008 の型を使用してフィールドを結合する
SQL Server 2008 以降では、日付と時刻のデータ型が導入されました。これらの型を使用する場合は、datetime にキャストすることで追加できます:
<code class="language-sql">SELECT Combined = CAST(MyDate AS DATETIME) + CAST(MyTime AS DATETIME) FROM MyTable</code>
精度の低下を防ぐ
SQL Server 2008 以降では、日付と時刻の値を追加すると精度が失われる可能性があります。これを防ぐには、CONVERT 関数を使用して値の 1 つを datetime2 型にプロモートする必要があります:
<code class="language-sql">SELECT Combined = CONVERT(datetime2, MyDate) + MyTime FROM MyTable</code>
これらの方法に従うと、使用されるデータ型に関係なく、MS SQL Server で日付と時刻の列を単一の日時フィールドに効果的に結合できます。
以上がMS SQL Server で別々の日付フィールドと時刻フィールドを単一の DateTime フィールドに結合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。