ホームページ >データベース >mysql チュートリアル >MS SQL Server で別々の日付フィールドと時刻フィールドを単一の DateTime フィールドに結合するにはどうすればよいですか?

MS SQL Server で別々の日付フィールドと時刻フィールドを単一の DateTime フィールドに結合するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-17 17:07:11885ブラウズ

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

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。