数値で格納された日付 MS SQL Server

以下の環境です。
SQL Server 2005 Express
PHP 5.3.5

SQL Serverのデータベースは、とあるシステムで使われているもので、
そのシステムとは別に、PHPを使ってデータを簡易的に表示させようとしています。

数値として格納された日付('年月日') を ある期間で抽出したいのです。

'年月日'のデータ型が、numeric(8,0) となっており、
20110907 という形式で格納されています。

これを、例えば 2011/8/10~2011/9/10 の期間を指定したいのです。
↓のような…
SELECT * FROM テーブル WHERE 年月日 > 2011-8-9 AND 年月日 <= 2011-9-10
(指定する日付はPHPのdate()で作ります)

もちろん、うまく取り出せないのですが…

数値として格納されてしまっているものを日付として扱い、WHEREに使う方法はありませんか?

ダメなようであれば、代わりの手法はあるでしょうか…?

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2011/09/08 06:02:05

ベストアンサー

id:windofjuly No.1

回答回数2625ベストアンサー獲得回数1149

>数値として格納されてしまっているものを日付として扱い、WHEREに使う方法はありませんか?

>指定する日付はPHPのdate()で作ります

 

フォーマットをYmdにすれば20110809といった数字列にできますので、下記のようなSQL文を作って、数値のままで検索すれば楽です

SELECT * FROM テーブル WHERE 年月日 > 20110809 AND 年月日 <= 20110910

http://php.net/manual/ja/function.date.php

id:chatii79

うわあああ、できました!

こんな簡単にできるんですね…

何時間も試行錯誤してたハズなのに、ハイフン抜きで試していませんでした…

本当にありがとうございます!

2011/09/08 06:01:50

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません