0

我有 2 个问题,我有一个包含所有数据的文本文件,例如在文本文件中Sply_DTImprt_DT.

因为Sply_Dt我必须创建getdate()并且我将它格式化为2012-10-25 12:04:16.09900000using(DT_DBTIMESTAMP)(DT_DBDATE)GETDATE()但我希望它格式化为MM-DD-YY.

对于Impt_DT,它是5/16/2011dataviewer 中的格式,但是当我将它放入表格时,它看起来像2011-05-16 00:00:00.000并且我想要它的MM-DD-YY格式。

4

3 回答 3

2

我认为您对datetime数据类型有些困惑。它不关心您的语言环境是美国 (mm/dd/yyyy)、日本 (yy/mm/dd) 还是英国 (dd/mm/yyyy),它将始终以内部格式存储。

如果您不喜欢默认演示文稿,您可以调查SET DATEFORMAT,这可能对您的查询有意义。

您还可以在查询数据时应用适当的 CONVERT 格式以使其成为您想要的格式。

DECLARE @datevar datetime = '2012-10-25'
SELECT CONVERT(char(10), @datevar, 10) AS YourFomat, @datevar AS defaultFormat

如果我误解了你的问题,请澄清。

于 2012-10-25T18:29:36.760 回答
0

使用派生列组件的更简单方法如下(对于 MM-DD-YY 格式):

LEN((DT_WSTR, 2)MONTH(GETDATE())) == 1 ?"0" + (DT_WSTR, 2)MONTH(GETDATE())) : (DT_WSTR, 2)MONTH(GETDATE())) + "-" + LEN((DT_WSTR, 2)DAY(GETDATE())) == 1 ? "0" + (DT_WSTR, 2)DAY(GETDATE())) : (DT_WSTR, 2)DAY(GETDATE())) + "-" + RIGHT((DT_WSTR, 2)YEAR(GETDATE()), 2)

于 2012-10-25T22:13:51.130 回答
-1

据我了解,您的目标是更改来自文本文件的数据的日期时间格式。我建议您在数据流任务中使用派生列转换来添加列或替换现有列,然后您可以在派生列中使用更常见的 .NET 日期运算符和格式字符串首先解析日期,然后进行转换将其转换为具有给定格式的字符串。如果这不起作用,您可以改用数据流任务中的脚本组件来执行我所描述的操作,在这种情况下,您可以访问 .NET 来执行修改。

于 2012-10-25T18:18:16.070 回答