ホームページ >データベース >mysql チュートリアル >MS SQL Server で別々の日付列と時刻列を単一の DateTime 列に結合するにはどうすればよいですか?
多くのデータベース設計では、日付と時刻の情報が 2 つの別々の列に保存されます。 このガイドでは、これらを MS SQL Server 内の単一の datetime
列に効率的に結合する方法について説明します。
「Date」列には日付値のみが含まれ (時刻部分はゼロ)、「Time」列には時刻値のみが含まれる (日付部分は 1900 年 1 月 1 日) と仮定すると、単純な加算演算は驚くほどうまくいきます。
<code class="language-sql">SELECT CombinedDateTime = MyDate + MyTime FROM MyTable;</code>
この一見単純な追加は、古い SQL Server バージョンの datetime
値の内部表現を利用しています。 各 datetime
値は 2 つの 4 バイト整数として保存されます。1 つは日付用、もう 1 つは時刻用です。それらを追加するとビット単位の組み合わせが実行され、単一の 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 で別々の日付列と時刻列を単一の DateTime 列に結合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。