MS SQL Server での日付と時刻の列のマージ
データ抽出では、日付と時刻が別の列に表示されることがあります。 この記事では、これらを MS SQL Server 内の単一の日時列に効率的に結合する方法を説明します。
解決策:
簡単な方法では、日付と時刻のフィールドを直接追加します。 ただし、これには 2 つの重要な前提条件が必要です。
date
列の時間コンポーネントは常に午前 0 時 (00:00:00) である必要があります。time
列の日付コンポーネントは基準日 (1900 年 1 月 1 日) である必要があります。これらの条件が満たされる場合、次の SQL クエリはデータを正常にマージします。
<code class="language-sql">SELECT CombinedDateTime = MyDate + MyTime FROM MyTable;</code>
説明:
これは、datetime
データ型の内部表現により機能します。 2 つの 4 バイト整数を使用します。 1 つは日付用、もう 1 つは時刻用です。 これらを直接追加すると、正しく結合された日時値が生成されます。
重要な注意事項:
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 で別々の日付フィールドと時刻フィールドを単一の DateTime 列に結合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。