• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQLiteで日付の取得)

SQLiteで日付の取得方法とクエリの書き方

このQ&Aのポイント
  • SQLiteで日付の取得方法とクエリの書き方についてお教え頂きたいです。テーブル名はMyTableで、列名はMyDateです。データはYYYYMMDDHHMMSS形式の日付とランダムなアルファベットの組み合わせです。
  • クエリで201502以降のデータを取得したいです。試しにSELECT * FROM MyTable WHERE MyDate >= substr(1,8)というクエリを書いてみましたが、データが取得できませんでした。別のクエリも試しましたが、結果は同じです。
  • どのようにすれば、201502以降のデータを取得することができるでしょうか?お知恵をお貸しいただければ幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • pringlez
  • ベストアンサー率36% (598/1630)
回答No.1

>そこで下記のようなSQLを書きました。 >SELECT * FROM MyTable WHERE MyDate >= substr(1,8) どう突っ込んでいいのか…。DBをさわるのもプログラミングをするのもほぼ初めてという感じの方なのでしょうか? それを前提に書きますが 「WHERE」の右側には評価される式を書きます。 「MyDate >= substr(1,8)」ここですね。 この等号もしくは不等号の左右に比較する値を書くわけです。 で、あなたは何と何を比較したいのか、そこをまずあわてずにきちんと考えましょう。 あなたの式だと「MyDate」の値と 「substr(1,8)」を実行した結果を比較しているわけです。 そうしたいのですか?違うのではないでしょうか? 「201502以上のデータを取得したい」というのなら、 式でも「201502」と比較しなければいけないとは思いませんか? で、「MyDate」の先頭8文字を切り取った文字列と「201502」を比較したいのですよね。 そもそもsubstrの使い方も違うのでそこも書き換えますと、こんなかんじでしょうか。 「substr('MyDate', 1, 8) >= '201502'」

fflashing
質問者

お礼

お礼が遅くなってしまい申し訳ありません。 「substr('MyDate', 1, 8) >= '201502'」 こちらのやり方で見事欲しい情報を取得できました。ありがとうございます!感謝です。