我试图在派生列转换中使用DATEADD函数,但似乎我使用的表达式是错误的。最初,我在我的SQL查询中使用它,它工作正常,但我现在想在派生列中使用它,所以我可以在将它带入我的表之前转换日期值。这是我正在使用的sql:
select DATEADD(day,myDate,'19600101') as NewDate from myTable
但我现在想在派生列中使用它,所以我要替换列并在表达式中使用它:
DATEADD("day", myDate, "19600101" )
答案 0 :(得分:0)
请参阅dateadd的文档:http://msdn.microsoft.com/en-us/library/ms141719.aspx。我不确定你在尝试用这个表达式做什么。如果你想加一天,那就是:
select DATEADD(d,1,myDate) as NewDate from myTable
如果你想减去一天,那就是:
select DATEADD(d,-1,myDate) as NewDate from myTable
请解释您要做的事情。我不认为第一个论点应该在双引号内。也是" day"根据我的链接中的备注部分不允许。
答案 1 :(得分:0)
我遇到了同样的问题,这是修复:
而不是:
DATEADD("day", myDate, "19600101" )
尝试:
DATEADD("day", (DT_DBDATE)myDate, (DT_DBDATE)"19600101")
这将返回一个数据库日期戳,如果需要,可以将其强制转换为字符串。在我的情况下,我从大纪元时间(自1970年1月1日以来的毫秒)转换,所以我需要这个:
DATEADD("s",(DT_I8)[Index Time],(DT_DBTIME)"1/1/1970")