我有两个问题,我有一个包含我所有数据的文本文件,在我的文本文件中Sply_DT
和Imprt_DT
。
对于Sply_Dt
,我必须创建getdate()
并使用2012-10-25 12:04:16.09900000
将其格式化为(DT_DBTIMESTAMP)(DT_DBDATE)GETDATE()
,但我希望其格式为MM-DD-YY
。
对于Impt_DT
,它在数据查看器中采用5/16/2011
格式,但当我将其放入表格时,它看起来像2011-05-16 00:00:00.000
,我希望它采用MM-DD-YY
格式。
答案 0 :(得分: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
如果我误解了你的问题,请澄清。
答案 1 :(得分: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)
答案 2 :(得分:-1)
据我了解,您的目标是改变来自文本文件的数据的日期时间格式。我建议您在数据流任务中使用派生列转换来添加列或替换现有列,然后您可以使用更常见的.NET日期运算符和派生列中的格式字符串来首先解析日期,然后进行转换它到给定格式的字符串。如果这不起作用,您可以使用数据流任务中的脚本组件来执行我所描述的操作,在这种情况下,您可以访问.NET来执行修改。