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

SQL Serverで「smalldatetime」を「date」に変換する(T-SQLの例)

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

    smalldatetimeを変換するメリットの1つ 日付の値 これは、ストレージサイズを4バイトから3バイトに減らすことです。ただし、値から時間コンポーネントが失われるため、この変換は、時間が必要ない場合にのみ行います。

    smalldatetime 日付と時刻の両方のデータ型。その秒コンポーネントは常にゼロ(:00)に設定されており、小数秒はありません。その精度は分単位です。そのストレージサイズは4バイトです。

    日付 一方、データ型には日付のみが含まれます。その精度は最も近い日になります。そのストレージサイズは3バイトです。

    明確にするために、 smalldatetimeを変換するとき 日付の値 、年、月、日がコピーされます。時刻はコピーされません。

    例1-暗黙の変換

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

    DECLARE 
      @thesmalldatetime smalldatetime,
      @thedate date;
    SET @thesmalldatetime = '2025-05-21 10:15:30';
    SET @thedate = @thesmalldatetime;
    SELECT 
      @thesmalldatetime AS 'smalldatetime',
      @thedate AS 'thedate';
    

    結果:

    +---------------------+------------+
    | smalldatetime       | thedate    |
    |---------------------+------------|
    | 2025-05-21 10:16:00 | 2025-05-21 |
    +---------------------+------------+
    

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

    この例では、 smalldatetimeの日付部分がわかります。 値は日付にコピーされます 値であり、時刻はコピーされません。

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

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

    DECLARE @thesmalldatetime smalldatetime;
    SET @thesmalldatetime = '2025-05-21 10:15:30';
    SELECT 
      @thesmalldatetime AS 'thesmalldatetime',
      CAST(@thesmalldatetime AS date) AS 'date';
    

    結果:

    +---------------------+------------+
    | thesmalldatetime    | date       |
    |---------------------+------------|
    | 2025-05-21 10:16:00 | 2025-05-21 |
    +---------------------+------------+
    

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

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

    DECLARE @thesmalldatetime smalldatetime;
    SET @thesmalldatetime = '2025-05-21 10:15:30';
    SELECT 
      @thesmalldatetime AS 'thesmalldatetime',
      CONVERT(date, @thesmalldatetime) AS 'date';
    

    結果:

    +---------------------+------------+
    | thesmalldatetime    | date       |
    |---------------------+------------|
    | 2025-05-21 10:16:00 | 2025-05-21 |
    +---------------------+------------+
    

    1. 行からコンマ区切りの文字列を取得します

    2. UTF8テーブルのlatin1文字をUTF8に変換します

    3. Railsスコープ-完全に一致する場所

    4. マスタースレーブおよびマスターマスターアーキテクチャによるPostgreSQLの高可用性