- PR -

簡単な質問

投稿者投稿内容
Mxfull
大ベテラン
会議室デビュー日: 2006/02/15
投稿数: 146
投稿日時: 2006-05-20 16:25
お世話になります。

例えば、テーブルには、「年月」と「日」という二つのフィールドを定義しています。
この時に、20050506より大きいレコードを拾い出したい場合には、SQL文がどう書けば
いいでしょうか?下記のように書けばだめです。

   select * from T where 年月+日>'20050506’
簡単な質問ですが、宜しくお願いいたします。
未記入
会議室デビュー日: 2006/03/28
投稿数: 18
お住まい・勤務地: 大阪
投稿日時: 2006-05-20 17:12
Javaの話題ではないので、是非
http://www.atmarkit.co.jp/bbs/phpBB/viewforum.php?forum=26&4651
で議論してくださいな。

[ メッセージ編集済み 編集者: これ 編集日時 2006-05-20 17:13 ]
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-05-20 18:29
引用:

Mxfullさんの書き込み (2006-05-20 16:25) より:

例えば、テーブルには、「年月」と「日」という二つのフィールドを定義しています。
この時に、20050506より大きいレコードを拾い出したい場合には、SQL文がどう書けば
いいでしょうか?下記のように書けばだめです。

   select * from T where 年月+日>'20050506’



普通に書けばいいのに・・・
where (年月 = 200505 and 日 >= 6) or (年月 > 200505)

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

Mxfullさんの書き込み (2006-05-20 16:25) より:

下記のように書けばだめです。

select * from T where 年月+日>'20050506’


どうダメだったのでしょうか?
DBMS は Oracle でしょうか?

# 少なくとも、全角の「+」はないでしょう...

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
Mxfull
大ベテラン
会議室デビュー日: 2006/02/15
投稿数: 146
投稿日時: 2006-05-21 16:07
ご返事有難うございます。
データベースはPostgreです。
下記のように書けばうまく行っています。

select * from T where 年月||日>'20050506’

今後とも宜しくお願いいたします。
もしもし
ぬし
会議室デビュー日: 2004/10/15
投稿数: 280
投稿日時: 2006-05-21 17:59
引用:

Mxfullさんの書き込み (2006-05-20 16:25) より:

例えば、テーブルには、「年月」と「日」という二つのフィールドを定義しています。
この時に、20050506より大きいレコードを拾い出したい場合には、SQL文がどう書けば
いいでしょうか?下記のように書けばだめです。

   select * from T where 年月+日>'20050506’



「だめ」ってどう「だめ」なんでしょうか。
T の定義ってどうなってるんでしょうか。特に「年月」と「日」の
データ型は?
使用しているデータベース製品は?

# ふつう DATE 型だったら「年月日」あるいは「年月日時分秒」を
# 持ってるものですが、CHAR 型とか?

_________________
もしもし@RMAN 友の会
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-05-22 00:10
引用:

もしもしさんの書き込み (2006-05-21 17:59) より:

# ふつう DATE 型だったら「年月日」あるいは「年月日時分秒」を
# 持ってるものですが、CHAR 型とか?


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

型もデータベースによって、いろいろ表現方法が変わるので、こういう質問の場合は、これも添えた方がわかりやすいかもしれませんね。

#しかし「年月||日>'20050506’」こう書けるとは知らなかった・・・(^▽^;)
#Postgreローカル?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-05-22 00:35
引用:

Mxfullさんの書き込み (2006-05-21 16:07) より:

下記のように書けばうまく行っています。
select * from T where 年月||日>'20050506’


ですね、Oracle なんかでもそう書きます。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌

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