- ベストアンサー
SQLserver 型違いの日付の比較について
下記のように項目がある場合、 where句の条件で年月の比較をどうすれば良いかわかりません。 年月日1(CHAR) 例:20070731 年月日2(SMALLDATETIME) where SUBSTRING(年月日1,1,4) = YEAR(年月日2) and SUBSTRING(年月日1,5,2) = MONTH(年月日2) と記述するとSUBSTRINGで取り出したデータは文字列、YEARで取り出したデータは数値、型が違うので比較してもダメでしょうか? 初歩的な質問で申し訳ありませんが どうすれば良いか教えてください。
- みんなの回答 (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| こういう手法も・・・。
その他の回答 (1)
質問者さんの案では1桁の月,日の時に比較できないと思われます。 未検証ですが、to_date(またはto_char)関数を使ってCHAR型をDATE型に(またはその逆)に変換してはいかがでしょう?
お礼
早々とご回答ありがとうございました。 無事に解決いたしまた。
お礼
ご回答ありがとうございました。 WHERE句にconvertを使用する方法で無事にできました。 助かりました。