rry*_*man 4 sql t-sql ssis business-intelligence
我正在开发一个数据仓库项目,并且想知道如何(最好是在数据流中的派生列组件中)从SQL日期时间记录中删除日期.
一旦我将日期时间转换为一段时间,我将在时间维度表中查找相关时间记录的时间.
有人能给我一个简单的函数来在派生列转换中完成这个吗?
示例:将日期时间(例如"12/02/2008 11:32:21 AM")转换为"11:32:21 AM".
小智 6
如果您需要在变量表达式中执行此操作,迈克尔的解决方案将不起作用,但您可以使用以下表达式:
(DT_DATE)(DT_DBDATE)GETDATE()
Run Code Online (Sandbox Code Playgroud)
(DT_DBDATE) 仅将当前日期和时间转换为日期。但新的数据类型与 SSIS 的日期时间不兼容。因此,您必须使用 (DT_DATE) 来转换为兼容类型。
该解决方案由 Russel Loski 提供,他已将其发布在他的博客中: http ://www.bidn.com/blogs/RussLoski/ssas/1458/converting-datetime-to-date-in-ssis
小智 5
实际上,如果您像这样反转前两个表达式: (DT_DBDATE)(DT_DATE)GETDATE()
而不是(DT_DATE)(DT_DBDATE)GETDATE(),那么您将TRUNCATE在日期字段中显示时间。
如果DT_DATE表达式位于DT_DBDATE表达式之前,则输出中仍将包含时间部分,但它将重置为全零。