かつのりの日記2

わんくまでは珍しいJavaを中心とした日記です

目次

Blog 利用状況

書庫

日記カテゴリ

いろいろリンク

日付のカラムを文字列で持つのってどうよ?

またまたDBネタ。DBのカラムに日時を持たせることはよくあると思いますが、これをvarcharにするのってどうなんでしょうか。これまた一部で流行っているのでしょうか?全く意味がないと思うのですが。

日付計算するたびに型変換関数を使う必要がありますし、プログラムから設定する場合も文字列編集が必要になります。暗黙の型変換が可能な書式で格納するならまだ助かりますが、yyyymmddhh24miss形式のvarchar(14)ってどうなんでしょう。。。自分が設計するなら絶対ありえないです。

更新日時のカラムがあるのですが、デフォルトくらい指定して欲しいところ。ORマッパーを使う予定なので、毎回プログラムでシステム日付を示すオブジェクトを毎回文字列化しなければいけないのです・・・orz

 

投稿日時 : 2007年8月21日 0:47

Feedback

# re: 日付のカラムを文字列で持つのってどうよ? 2007/08/21 1:37 えムナウ

SOAPで送ってきた日付をタイムゾーン付きで保存するのにSOAPで送ってきたままの文字列でDBに保存したことがあります。
そのほかの場合は私は経験ないですね。
どちらかというと非効率の思います。

# re: 日付のカラムを文字列で持つのってどうよ? 2007/08/21 2:00 シャノン

http://www.geocities.jp/mickindex/database/db_getout_null.html

> コード列は必ず文字型で宣言すべきです。
> 日付の列は文字型で宣言しておくべきです。

# re: 日付のカラムを文字列で持つのってどうよ? 2007/08/21 2:18 かつのり

引用元の0000-00-00を許すとかって言う話って、
0000-00-00では既に日付ではないしwww
未知の未来日付を表現する為に文字型でっていうのは、
モデリングの観点からすると非常におろかな感じがする。。。

コード列は文字型というのは激しく同意。
社員番号が今数字でも、将来Aから始めるとかなったらアウトだし。

# re: 日付のカラムを文字列で持つのってどうよ? 2007/08/21 2:20 かつのり

>えムナウさん
プログラムとDBの間で、特にロジック不要で入出力できるなら、問題はないかなと思います。
文字で'1999-11-11 11:22:33'とか持つなら、
まだ暗黙変換とかも出来るので、
実装コストがかからないわけですよ。

# re: 日付のカラムを文字列で持つのってどうよ? 2007/08/21 7:54 Hirotow

SSで日付の場合はともかくとして時刻オンリーで保存しようとするとキャストや有効範囲で泣けます。
よって仕方なく文字列にした経験が。

# re: 日付のカラムを文字列で持つのってどうよ? 2007/08/21 9:29 まどか

言語側の日付型の進歩が遅かったからだろうか?
#汎用機やCOBOLから入っているからそう思う。

# re: 日付のカラムを文字列で持つのってどうよ? 2007/08/21 9:56 Ognac

以前私の所でも話題になったのですが、日付型が24時間制に基づいているし、時刻のみの保持が出来ないので、問題が複雑になると思います、
24時間制で間に合い且つ日付データをBinaryのまま受け渡し可能な範囲では日付型が便利です。
しかしえムナウさんのSOAPの件みたいにText型で受け渡しを伴う時は文字型が有利と考えてます。
加えて NULL値を扱いたい局面(1/1/1が辛いとき)や 27時間制/36時間制 , 日付は 各月40日まで許したい。等等あり、文字型保持のニーズは強いと感じてます。システム上スッキリしないんですが、業務ルールが36時間制/40日制で稼動していたら否定することはできませんしね。

# re: 日付のカラムを文字列で持つのってどうよ? 2007/08/21 10:26 かつのり

>Ognacさん

日付関数が処理できなければ、それは「日付」ではないんですよね。
でもやっぱりニーズはあるんだろうな・・・とは思います。

# re: 日付のカラムを文字列で持つのってどうよ? 2007/08/21 12:17 かずくん

整数型にされるよか、まだましな希ガス
ex) 19990304

# re: 日付のカラムを文字列で持つのってどうよ? 2007/08/21 12:49 Hirotow

>整数型
痛っ

# re: 日付のカラムを文字列で持つのってどうよ? 2007/08/21 15:51 黒龍

日付型が無遠慮な精度を持つため文字列にする必要はあると感じています。精度に関する制約とかあればいいんですけどね。

タイトル
名前
Url
コメント