先週の金曜日、mysql データベースと sqlserver データベースに同時に PHP 接続したいと思い、以前は mysql を使用していましたが、sqlserver にはあまり詳しくなかったので、石を触りながら川を渡っていました。他には何もありません。条件付きクエリを実行する場合、少なくとも mysql と sqlserver は依然として親戚です。問題が発生しました
まず、クエリされた時刻はこの形式でした
11 30 2009 10:20:20AM
テーブル内のデータを表示するために sqlserver データベースを開いた
しかし、それは 2009-11-30 10:20:20.233 でした
後で調べてみたところ、sqlserver の形式に問題があるようですが、出力は 2009-11-01 で、たとえば mysql 配下にある場合は、データをクエリしてから自分で変換するしかありません。 2009 年の時刻を確認します。 - 11 月 1 日から 2009 年 11 月 30 日までの期間のデータ
時刻 > '2009-11-01' および時刻 トラを描いたので、どこに行ったのか分かりません、そして何の効果もありません
私の 2009-11-01 を追跡するのは本当に簡単ではないと思います 11 30 2009 10:20:20AMまたは 2009-11-30 10:20:20.233 比較、少なくとも比較可能性は大きくありません
そこで、2009-11-01 を 11 01 2009 00:00:00AM と 2009-11-01 00:00:00.000 に変換しました。
別の比較は機能しません。 「:」でエラーが発生しました。これは不快ではありませんか?
それで、この小さな問題が自分のイメージに影響を与えるわけにはいかないので、一日中探していました。昨日、sqlserver の時刻変換関数を見つけました。は 2009-11-01 のような形式ではありません。私が愚かかどうかはわかりません。まず、2009-11-01 を 20091101 に変換し、次に 11 30 2009 10: 20: 20AM または 2009-11-30 10:20:20.233 は 20091130 に変換されて比較されます。
言及しないでください、結果は実際にそこにあります
select * from table where Convert(varchar(10),date_time,112) ) !< $begin_date と Convert(varchar(10),date_time,112) !> $end_date
(!< と !> もつまずきそうになりました)
上記は、sqlserver2005 チュートリアルの内容を含む、PHP 操作 sqlserver の時間と日付の読み取りに関する小さな洞察を紹介しています。PHP チュートリアルに興味のある友人に役立つことを願っています。