2007年12月22日

SQL-Serverの日付時間型で日付+時刻でグループ化をすると日付がずれる

SQL-Serverのテーブルに日付時間型の項目を2つ持つ。
Accessでリンクして一方に日付のみを、もう一方に時刻のみを入力する。
クエリーで日付+時刻の項目を作ってその項目でグループ化をすると日付が2日前になる。
(グループ化しなければ正しく表示される。)

これはAccessの日付時間型が1899/12/30から始まるのに対し、SQL-Serverの日付時間型が1900/01/01から始まることに起因してるっぽい。
恐らくグループ化しない場合はクライアント側で演算し、グループ化した場合はSQL-Server側で演算して、その結果をグループ化してると思われる。

対策としては日付+時刻-Fix(時刻)として、時刻の日付部分を強制的に0にすれば良い。

※あくまでmdbでの話であって、SQL-Serverにシームレスに接続するAccessプロジェクトではこの現象は起こらない。
あとExcelでも同様の現象は起こる。(もしかしてODBCドライバの問題かも)


posted by 忘却の達人 at 18:53| Comment(0) | TrackBack(0) | SQL Server | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。