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

DateTimeをTimeにキャストする方法

    Time 表示形式では保存されません SQL Serverで。
    したがって、ユーザーの観点からは、形式がないと言えます。
    もちろん、ストレージ形式があるため、完全に正確ではありません。 、ただし、平均的なユーザーとしては実際に使用することはできません。
    これは、すべての日付と時刻のデータ型に当てはまります。
    DateDateTimeOffsetDateTime2SmallDateTimeDateTime およびTime

    フォーマットが必要な場合は、timeにキャストする必要はありません。 しかし、charConvertを使用する charを取得するには 必要なもの:

    SELECT CONVERT(char(10), [time], 108) as CSTTime 
    

    興味のある方は、以下の背景データをご覧ください。

    2000年に公開されたこの記事では、SQLServerが日付と時刻をどのように処理するかについて詳しく説明しています。 SQLServerがdateを格納する方法で、2000年から2015年の間に何か重要な変更があったかどうかは疑問です。 、time およびdatetime 内部の値。

    すべてを読みたくない場合は、関連する引用を以下に示します。

    では、SQL Serverはどのように日付を内部的に保存しますか? 日時の値を格納するために8バイトを使用します。最初の4バイトは日付を表し、次の4バイトは時刻を表します。 SQL Serverは、4バイトの両方のセットを整数として解釈できます。
    ........
    ........
    SQL Serverは、2番目の整数を次のように格納します。真夜中以降のクロックティック数。 1秒には300ティックが含まれているため、ティックは3.3ミリ秒(ms)に相当します。

    time以降 実際には4バイト整数として格納されますが、実際にはデータ型の不可欠な部分としての形式はありません。

    コードサンプルを使用した詳細な説明については、この記事を確認することもできます。



    1. SQLServerの再構築インデックスクエリ

    2. =nullとISNULLの違いは何ですか?

    3. インポートエラー:シンボルが見つかりません:_PQencryptPasswordConnの意味と、それを修正するにはどうすればよいですか?

    4. OracleのDECOMPOSE()関数