1

まず第一に、私はSQLクエリに非常に慣れていないので、無知に聞こえたら申し訳ありません...

1 時間ごとにテーブルを削除して作成するジョブが保存されているデータベースがあります。1 から 24 までの 1 時間ごとのデータがあることを除いて、テーブルは次のようになります。

Name         Hour1  Hour24
Point 1 OUT  4      5
Point 1 IN   26     22
Point 2 OUT  46     44    
Point 2 IN   0      0
Point 3 OUT  18     19
Point 3 IN   56     51
Point 4 OUT  111    100
Point 4 IN   0      0
Point 5 OUT  0      0
Point 5 IN   42     46
Point 6 IN   210    211

削除して作成した後、データベースは日付という名前の列を最後に追加し、今日の日付をデフォルトとして設定します。私の問題は、午前 12:00 にデータをインポートするときです。現在の日付は実際には明日です。会計上の理由から、そのデータは同じ日である必要があります。

暗闇で撮影してこれを試してみましたが、構文がすべて間違っています...

[Date] [datetime] DEFAULT if(DATEPART(hh)=24) CONVERT(GETDATE(DATEPART(dd)-1))

このような if ステートメントは、テーブル作成クエリで可能ですか? これについてもっと良い方法はありますか?

助けてくれてありがとう!

4

1 に答える 1

1

はい、デフォルト値を設定できますが、正しい構文が必要です。

[date] datetime default (case when datepart(hh, getdate()) = 24 then getdate() - 1 else getdate() end)

datetimeただし、 「日付」というフィールドに値を入れる必要はないと思います。どうですか:

AsOfDate date default (case when datepart(hh, getdate()) = 24 then cast(getdate() - 1 as date) else cast(getdate() as date) end)
于 2013-01-31T19:10:28.260 に答える