アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります。

PHPでSQL2000からselect文で値を取得しようとしています。
条件は、smalldatetime型の値が格納されているフィールドが今日より
古い場合です。
SQLサーバのsmalldatetime型は、最初の2バイトで1900年01月01日からの日数、残りの2バイトで午前0時からの分数を格納するとマニュアルにありました。
ですので、1900年から今日までの日数を取得し、smalldatetimeフィールドの値と比較すればよいのかと思ったのですが、うまくいきません。

$today = time() / 60 / 60 / 24 + 70 * 365 //PHPのUNIXタイムは1970年からのため、70*365 をプラス。
$sql = "select * from table where smalldatetime <= ".$today;

どなたかアドバイスお願いします。

A 回答 (1件)

>SQLサーバのsmalldatetime型は、最初の2バイトで1900年01月01日からの日数、


>残りの2バイトで午前0時からの分数を格納するとマニュアルにありました。

これを「どう取り出してくるか」はphp側のドライバの仕事になりますので、それを確認するのが先だと思います。条件なしでselectして、smailldatetimeの列の値がどう取得されるかを確認してください。

おそらく普通の(phpの)datetime値に変換して取得される可能性が一番高いです。
    • good
    • 0
この回答へのお礼

アドバイスありがとうございました。

>条件なしでselectして、smailldatetimeの列の値がどう取得されるかを確認してください。
やってみます。

実は、70*365の部分でうるう年が計算に入ってないことに気づき、
うるう年分の日数を加えたところ、うまくいきました。

お礼日時:2008/03/06 09:15

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