一回も披露したことのない豆知識

初心者のため、初歩的な質問か判りませんが宜しくお願いします。
datetime型のフィールドに下記のようにまちまちの年月日、時間のデーターが入っているのですが、年月日は無視して、時間だけでソートを
したいのです。
例えば下記のようなデータがあるとして
1998/3/21 15:12
2007/5/5 12:00
1980/1/1 8:00
これを普通に並べ替える(order by フィールド名 asc)と下記のようになるのですが
1980/1/1 8:00
1998/3/21 15:12
2007/5/5 12:00
これを年代は関係なく時間だけで、下記のように並べ替えたいのです

1980/1/1 8:00
2007/5/5 12:00
1998/3/21 15:12
どうすれば良いのか、教えて頂けないでしょうか?

A 回答 (2件)

SELECT * FROM Table1 ORDER BY [日付]-Int([日付]);



では如何でしょうか?
    • good
    • 0
この回答へのお礼

なるほど、そういう方法もあるのですね
大変参考になりました
参考にさせて頂きます

お礼日時:2007/08/04 08:04

<Table1>



ID__日付
1___1998/03/21 15:12:00
2___2007/05/05 12:00:00
3___1980/01/01 8:00:00

SELECT * FROM Table1 order by convert(varchar(8), 日付, 108);

|ID|日付 |
---|-----------------------
1| 3|1980/01/01 8:00:00 |
2| 2|2007/05/05 12:00:00|
3| 1|1998/03/21 15:12:00|

convert(data_type [ ( length ) ] , expression [ , style ])

style=108----hh:mm:ss

という感じです。
    • good
    • 1
この回答へのお礼

なるほど、そういう方法もあるのですね
判りやすい説明まで付けて頂きありがとうございます
参考にさせて頂き試させて頂きます
ありがとうございました

お礼日時:2007/08/04 08:04

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


おすすめ情報