電子書籍の厳選無料作品が豊富!

下記のように項目がある場合、
where句の条件で年月の比較をどうすれば良いかわかりません。

年月日1(CHAR) 例:20070731
年月日2(SMALLDATETIME)

where SUBSTRING(年月日1,1,4) = YEAR(年月日2) and SUBSTRING(年月日1,5,2) = MONTH(年月日2)
と記述するとSUBSTRINGで取り出したデータは文字列、YEARで取り出したデータは数値、型が違うので比較してもダメでしょうか?
初歩的な質問で申し訳ありませんが
どうすれば良いか教えてください。

A 回答 (2件)

<Table1>


ID___年月日1____年月日2
1____20070707___2007/07/07
2____20070707___2007/08/08

SELECT convert(smalldatetime,年月日1) AS 年月日整形1 from Table1;

--|年月日整形1
--|------------|
__1|2007/07/07 |
__2|2007/07/07 |

SELECT * from Table1 WHERE convert(smalldatetime,年月日1)=年月日2;

--|ID|年月日1|年月日2___|
--|-----------------------
-1|_1|20070707|2007/07/07|


こういう手法も・・・。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
WHERE句にconvertを使用する方法で無事にできました。
助かりました。

お礼日時:2007/07/31 13:27

質問者さんの案では1桁の月,日の時に比較できないと思われます。


未検証ですが、to_date(またはto_char)関数を使ってCHAR型をDATE型に(またはその逆)に変換してはいかがでしょう?
    • good
    • 0
この回答へのお礼

早々とご回答ありがとうございました。
無事に解決いたしまた。

お礼日時:2007/07/31 13:36

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