アプリ版:「スタンプのみでお礼する」機能のリリースについて

質問です。
SQLでフィールドタイプをDATE型で指定した場合
7桁となるようなのですが、どのような形になるのでしょうか?
2002/02/21だと10桁になってしまいますし・・・
02/02/21ですと8桁になってしまいます。
よろしくお願い致します。

A 回答 (2件)

ORACLEだとDATE型は7バイト固定長になりますね。


日付のフォーマットですが、規定のフォーマットはCREATE DATABASE時に指定したNLS_LANGUAGEで定義されます。
ですから、どんな定義でも対応できるように7バイトで取っているというのが正しいです。(どのような定義方法でも0.1秒まで管理されます)
例としてNLS_LANGUAGEがJapanese_Japan.JA16SJISの場合は
'YYYY/MM/DD HH:MI:SS' です。
(INSERT文ではto_dateを使用してます。)

ちなみにセッションごとの日付のフォーマットは、NLS_DATE_FORMATパラメータで制御します。
    • good
    • 0
この回答へのお礼

ありがとうございました。大変役に立ちました。

お礼日時:2002/02/21 21:35

何のデータベースかわからないと答えられないですが、


SQL Serverだと、こんな感じです。

datetime 型の値は、Microsoft® SQL Server™ により、内部的に 2 つの 4 バイトの整数として格納されます。最初の 4 バイトは "基準日"、つまり 1900 年 1 月 1 日からの日数、またはこの日までの日数を格納します。基準日は、システムが参照する日です。datetime 値は 1753 年 1 月 1 日より前の日付には使用できません。残りの 4 バイトは、午前 0 時から数えたミリ秒の数として表された時間を格納します。

smalldatetime 型は、日付および時間を datetime よりも低い精度で格納します。SQL Server は、smalldatetime 値を 2 つの 2 バイトの整数として格納します。最初の 2 バイトは、1900 年 1 月 1 日からの日数を格納します。残りの 2 バイトは、午前 0 時からの分数を格納します。日付の範囲は 1900 年 1 月 1 日から 2079 年 6 月 6 日までで、分単位までの精度です。
    • good
    • 0
この回答へのお礼

ありがとうございました。丁寧な説明でよく理解することができました。

お礼日時:2002/02/21 21:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!