首先,我对SQL查询非常新,所以如果我听起来无知,我会道歉......
我有一个数据库,每小时都有一个存储的作业要删除并创建一个表。该表看起来像这样,除了1到24之间的每小时数据
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
在drop和create之后,数据库在末尾添加一个名为date的列,并将todays date设置为默认值。我的问题是在上午12:00导入数据时,当前日期实际上是明天。出于会计目的,我需要将这些数据保存在同一天。
我在黑暗中拍摄并试了一下,但语法都错了......
[Date] [datetime] DEFAULT if(DATEPART(hh)=24) CONVERT(GETDATE(DATEPART(dd)-1))
在create table查询中是否可以使用这样的if语句?有没有更好的方法来解决这个问题?
感谢您的帮助!
答案 0 :(得分:1)
是的,您可以设置默认值,但希望语法正确:
[date] datetime default (case when datepart(hh, getdate()) = 24 then getdate() - 1 else getdate() end)
但是,我认为您在名为“date”的字段中不应该有datetime
值。怎么样:
AsOfDate date default (case when datepart(hh, getdate()) = 24 then cast(getdate() - 1 as date) else cast(getdate() as date) end)