- PR -

簡単な質問

投稿者投稿内容
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-05-22 00:36
引用:

R・田中一郎さんの書き込み (2006-05-22 00:10) より:

データが年月単位で集計したり編集するようことが多い場合などは、意図的に分ける場合もあり得るので、今回もそういうケースだったんじゃないでしょうか。


私の場合、集計・編集だったらなおさら DateTime (TIMESTAMP) 型を使いますね。

引用:

#しかし「年月||日>'20050506’」こう書けるとは知らなかった・・・(^▽^;)
#Postgreローカル?


Char 型の結合に過ぎませんから、ほとんどの DBMS で可能です。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
もしもし
ぬし
会議室デビュー日: 2004/10/15
投稿数: 280
投稿日時: 2006-05-22 10:57
年月日をわざわざ CHAR で格納して、そういうところに限って一ヶ月前の
日付を取ってくるところのロジックをわざわざ自力で書いたり、よしんば
to_date を通すにしても、日付書式を意識してなくてデータが切り捨てられたり
条件指定で関数を使ったせいで索引が使われなかったり、だからあれほど
口を酸っぱくして DATE 型で定義しろと (ry

口を開けば愚痴ばかり。

_________________
もしもし@RMAN 友の会
まいるどきゃっと
大ベテラン
会議室デビュー日: 2004/08/12
投稿数: 135
お住まい・勤務地: 群馬
投稿日時: 2006-05-22 10:59
引用:

R・田中一郎さんの書き込み (2006-05-22 00:10) より:

#しかし「年月||日>'20050506’」こう書けるとは知らなかった・・・(^▽^;)
#Postgreローカル?



日が文字列型で一桁の月が"06"みたいに格納されていれば、SQLをサポートしているDBMSなら使えるはずです。

でもこれ、大抵のDBはインデックス使えないと思いますが、どうなんでしょ?

[ メッセージ編集済み 編集者: まいるどきゃっと 編集日時 2006-05-22 11:00 ]
もしもし
ぬし
会議室デビュー日: 2004/10/15
投稿数: 280
投稿日時: 2006-05-22 11:18
引用:

まいるどきゃっとさんの書き込み (2006-05-22 10:59) より:

でもこれ、大抵のDBはインデックス使えないと思いますが、どうなんでしょ?



昔、似たような話で関数索引を持ち出されたことがあり...

客「関数索引使えば速いだろ」
私「結合しないで素直に DATE 型使えば効率的じゃん」
客「この処理で CHAR のデータが必要なんだよ」
私「この処理以外使うこと無いだろ」

大げんか。

_________________
もしもし@RMAN 友の会
末記人
常連さん
会議室デビュー日: 2004/03/31
投稿数: 27
投稿日時: 2006-05-22 11:42
引用:

まいるどきゃっとさんの書き込み (2006-05-22 10:59) より:
でもこれ、大抵のDBはインデックス使えないと思いますが、どうなんでしょ?


他DBはちょっと分かんないですが、Oracleならファンクションインデックスが使えますよ。

引用:

もしもしさんの書き込み (2006-05-22 11:18) より:
昔、似たような話で関数索引を持ち出されたことがあり...
客「関数索引使えば速いだろ」
私「結合しないで素直に DATE 型使えば効率的じゃん」
客「この処理で CHAR のデータが必要なんだよ」
私「この処理以外使うこと無いだろ」
大げんか。


あるある(w

スキルアップ/キャリアアップ(JOB@IT)