sql >> データベース >  >> RDS >> Sqlserver

SQL Serverで「datetime2」を「date」に変換します(T-SQLの例)

    この記事には、 datetime2の変換例が含まれています 日付の値 SQLServerの値。

    datetime2を変換するとき 日付の値 データ型の場合、時間部分が失われます。ただし、ストレージサイズも7〜9バイトから3バイトに減らします。いずれにせよ、この変換は、時間の部分が必要ない場合にのみ行います。

    datetime2 データ型には、0から7までの小数秒の部分を持つ日付と時刻が含まれます(これは、それに割り当てられている小数秒の数によって異なります)。その精度は100ナノ秒です。

    日付 一方、データ型には時刻は含まれず、精度は1日です。

    例1-暗黙の変換

    datetime2間の暗黙的な変換の例を次に示します。 および日付

    DECLARE 
      @thedatetime2 datetime2, 
      @thedate date;
    SET @thedatetime2 = '2025-05-21 10:15:30.1234567';
    SET @thedate = @thedatetime2;
    SELECT 
      @thedatetime2 AS 'datetime2',
      @thedate AS 'date';
    

    結果:

    +-----------------------------+------------+
    | datetime2                   | date       |
    |-----------------------------+------------|
    | 2025-05-21 10:15:30.1234567 | 2025-05-21 |
    +-----------------------------+------------+
    

    明示的に変換するために変換関数(以下のような)を使用していないため、これは暗黙的な変換です。この場合、 datetime2 を割り当てようとすると、SQLServerはバックグラウンドで暗黙的な変換を実行します。 日付の値 変数。

    ここで、日付がわかります 値には日付のみが含まれます(時間コンポーネントは含まれません)。

    この例では、 datetime2 valueはデフォルトの精度を使用します(小数点以下7桁になります)。これは任意の数に減らすことができ、変換結果は同じになります。

    DECLARE 
      @thedatetime2 datetime2(0), 
      @thedate date;
    SET @thedatetime2 = '2025-05-21 10:15:30.1234567';
    SET @thedate = @thedatetime2;
    SELECT 
      @thedatetime2 AS 'datetime2',
      @thedate AS 'date';
    

    結果:

    +---------------------+------------+
    | datetime2           | date       |
    |---------------------+------------|
    | 2025-05-21 10:15:30 | 2025-05-21 |
    +---------------------+------------+
    

    例2– CAST()を使用した明示的な変換

    明示的な変換の例を次に示します。この場合、私はCAST()を使用します SELECT内で直接機能します datetime2間で明示的に変換するステートメント および日付

    DECLARE @thedatetime2 datetime2(4);
    SET @thedatetime2 = '2025-05-21 10:15:30.1234';
    SELECT 
      @thedatetime2 AS 'datetime2',
      CAST(@thedatetime2 AS date) AS 'date'; 
    

    結果:

    +--------------------------+------------+
    | datetime2                | date       |
    |--------------------------+------------|
    | 2025-05-21 10:15:30.1234 | 2025-05-21 |
    +--------------------------+------------+
    
    >

    例3– CONVERT()を使用した明示的な変換

    CONVERT()を使用した明示的な変換の例を次に示します。 CAST()の代わりに関数 。

    DECLARE @thedatetime2 datetime2(4);
    SET @thedatetime2 = '2025-05-21 10:15:30.1234';
    SELECT 
      @thedatetime2 AS 'datetime2',
      CONVERT(date, @thedatetime2) AS 'date'; 
    

    結果:

    +--------------------------+------------+
    | datetime2                | date       |
    |--------------------------+------------|
    | 2025-05-21 10:15:30.1234 | 2025-05-21 |
    +--------------------------+------------+
    
    >
    1. 特定のID値によるMysqlの順序

    2. SQLServerを使用するためのAzure仮想マシン

    3. データベース内のテーブルのMySQLテーブルサイズを取得するにはどうすればよいですか?

    4. IRIWorkbenchからリモートジョブを実行する方法