Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql SSIS表达式获取前一天晚上11:59_Sql_Sql Server_Ssis - Fatal编程技术网

Sql SSIS表达式获取前一天晚上11:59

Sql SSIS表达式获取前一天晚上11:59,sql,sql-server,ssis,Sql,Sql Server,Ssis,所以我仍然习惯于SQL/SSIS。我想得到前几天的日期时间,所以是2018年5月15日11:59。我能够研究并找到一个表达式,该表达式可以在上午12点获取上一个日期,这可能适合您的需要 DATEADD("Day", -1,(DT_DBDATE)DATEDIFF("Day", (DT_DBDATE) 0, GETDATE())) 这也将起作用(使用今天的日期来演示): 如果您试图在SSIS表达式中执行此操作,您将看到 select cast(cast(getdate() as dat

所以我仍然习惯于SQL/SSIS。我想得到前几天的日期时间,所以是2018年5月15日11:59。我能够研究并找到一个表达式,该表达式可以在上午12点获取上一个日期,这可能适合您的需要

      DATEADD("Day", -1,(DT_DBDATE)DATEDIFF("Day", (DT_DBDATE) 0, GETDATE()))
这也将起作用(使用今天的日期来演示):


如果您试图在SSIS表达式中执行此操作,您将看到

select cast(cast(getdate() as date) as datetime)-(1/cast(1440 as float))
从右到左阅读

计算GETDATE()并提供截至当前的日期和时间。闪烁,它会得到更新

(DT_DBDATE)是对仅支持日期而不支持时间组件的数据类型的强制转换

但是,我们需要时间返回到DT_DATE的数据类型,因为它支持时间,所以在SSIS中将日期重置为午夜是一种聪明的方法

然后我们使用DATEADD函数从上面减去1分钟

另一种方法,留给谦逊的读者,是对时间组件使用字符串操作。将一天重置为午夜,然后将所需时间作为字符串连接到末尾,然后将其转换回DT_日期

select cast(cast(getdate() as date) as datetime)-(1/cast(1440 as float))
DATEADD("minute", -1, (DT_DATE)((DT_DBDATE) GETDATE()))