ホームページ > データベース > mysql チュートリアル > T-SQL で日、月、年から日時値を正しく作成する方法

T-SQL で日、月、年から日時値を正しく作成する方法

Susan Sarandon
リリース: 2025-01-16 13:56:04
オリジナル
520 人が閲覧しました

How to Correctly Create a Datetime Value from Day, Month, and Year in T-SQL?

T-SQL の日付と時刻の値の構築: 日、月、年の値から日付と時刻を正しく作成します。

離散日付コンポーネントを単一の日時値に変換することは、SQL Server の一般的なタスクです。このガイドでは、正確な日付表現を保証するために、日、月、年の値から日時を作成する正しい方法を説明します。

問題

DATEPART 関数を使用して個々の日付コンポーネントを結合すると、多くの場合、誤った結果が生成されます。質問で指定された式 CAST(DATEPART(year, DATE) '-' DATEPART(month, DATE) '-' DATEPART(day, DATE) AS DATETIME) は日時値を正しく組み立てていません。

解決策

特定の日付コンポーネントから日時を作成する最良の方法は、値に対して算術演算を実行することです。次のステートメントは、このアプローチを示しています:

<code class="language-sql">SELECT DateAdd(day, @DayOfMonth - 1, 
          DateAdd(month, @Month - 1, 
              DateAdd(Year, @Year-1900, 0)))</code>
ログイン後にコピー

このステートメントは、SQL Server の日時値の内部表現を利用しています。最初の部分は 1900 年 1 月 1 日からの日数を表し、2 番目の部分は 1 日の小数部分 (時刻) を表します。 。

代替案

SQL Server 2012 以降、この目的に直接使用できる DATEFROMPARTS(year, month, day) という名前の組み込み関数が導入されました。

<code class="language-sql">SELECT DATEFROMPARTS(@Year, @Month, @DayOfMonth)</code>
ログイン後にコピー

うるう年の考慮事項

閏年を扱うときは、2 月の余分な日を考慮して、必ず最初に年の加算を実行してください。次の変更されたステートメントは問題を解決します:

<code class="language-sql">SELECT DateAdd(month, @Month - 1, 
     DateAdd(year, @Year-1900, @DayOfMonth - 1))</code>
ログイン後にコピー

結論

これらのメソッドを採用することで、開発者は T-SQL の個々の日、月、年のコンポーネントから日時値を効率的に作成でき、日付表現の精度とうるう年の正しい処理を確保できます。

以上がT-SQL で日、月、年から日時値を正しく作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート