DATEADD("Day", -1,(DT_DBDATE)DATEDIFF("Day", (DT_DBDATE) 0, GETDATE()))
所以我仍然习惯了SQL / SSIS。我想得到前几天的日期时间,所以它将是5/15/2018 11:59 PM。我能够研究并找到一个表达式,它在上午12点得到了上一个日期
答案 0 :(得分:1)
这可能适合您的需要。
SELECT DATEADD(MINUTE, -1, DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE())))
答案 1 :(得分:1)
这也有效(今天用于演示):
select cast(cast(getdate() as date) as datetime)-(1/cast(1440 as float))
答案 2 :(得分:1)
如果您在SSIS表达式中尝试执行此操作,则需要查看
之类的内容DATEADD("minute", -1, (DT_DATE)((DT_DBDATE) GETDATE()))
从右向左阅读..
评估GETDATE()并提供现在的日期和时间。眨眼,它会更新。
(DT_DBDATE)是对仅支持日期,没有时间组件的数据类型的强制转换。
但是,我们需要时间回到DT_DATE的数据类型,因为它支持时间,因此(DT_DATE)((DT_DBDATE) GETDATE())
是在SSIS中将日期重置为午夜的一种聪明方法。
然后我们使用DATEADD函数从上面减去1分钟。
留给简陋读者的另一种方法是对时间组件使用字符串操作。将日期重置为午夜,然后将所需时间连接到结尾作为字符串,然后将其转换回DT_DATE。