OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

SQLのDATEタイプ

  • 困ってます
  • 質問No.221986
  • 閲覧数528
  • ありがとう数3
  • 気になる数0
  • 回答数2
  • コメント数0

質問です。
SQLでフィールドタイプをDATE型で指定した場合
7桁となるようなのですが、どのような形になるのでしょうか?
2002/02/21だと10桁になってしまいますし・・・
02/02/21ですと8桁になってしまいます。
よろしくお願い致します。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル8

ベストアンサー率 45% (15/33)

何のデータベースかわからないと答えられないですが、
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 日までで、分単位までの精度です。
お礼コメント
noname#11049

ありがとうございました。丁寧な説明でよく理解することができました。
投稿日時 - 2002-02-21 21:36:04
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.2
レベル8

ベストアンサー率 20% (11/55)

ORACLEだとDATE型は7バイト固定長になりますね。 日付のフォーマットですが、規定のフォーマットはCREATE DATABASE時に指定したNLS_LANGUAGEで定義されます。 ですから、どんな定義でも対応できるように7バイトで取っているというのが正しいです。(どのような定義方法でも0.1秒まで管理されます) 例としてNLS_LANGUAGEがJapanese_Japan.JA16SJIS ...続きを読む
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パラメータで制御します。
お礼コメント
noname#11049

ありがとうございました。大変役に立ちました。
投稿日時 - 2002-02-21 21:35:01


このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ