SSIS - 修改从该月的15日到1日的日期列

时间:2015-08-19 16:55:07

标签: sql-server excel visual-studio-2008 ssis

SELECT * FROM [MarkTSK] 
WHERE [MonthlyDt] IS NOT NULL
--AND
--SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)

大家好。有谁知道如何正确地写这个语句 显示每个月的第一个?我有一个我要导入的Excel文件 使用MS SSIS(VisualStudio 2008)进入服务器。日期是每月,但最后几个月是6月15日,5月,4月等。我的意图是制作 所有这些都显示了本月的第一天。 2015年1月之前的所有月份都是在本月1日。

上面的SQL查询是我在Excel源代码编辑器中编写的。

谢谢

3 个答案:

答案 0 :(得分:1)

这应始终为您提供本月的第一个

SELECT DATEADD(MONTH,DATEDIFF(MONTH,0,GETDATE()),0)

将本月的第一天拉回到您的表中的日期应该这样做

SELECT DATEADD(MONTH,DATEDIFF(MONTH,0,[MonthlyDt]),0) FROM [MarkTSK] 
WHERE [MonthlyDt] IS NOT NULL

答案 1 :(得分:-1)

使用DatePart手动提取当天添加的月份和年份。 类似的东西:

SELECT Convert(date, DatePart('yyyy', [MonthlyDt]) + DatePart('mm', [MonthlyDt]) + '01' ) FROM [MarkTSK] 
WHERE [MarkTSK] IS NOT NULL

(免责声明:未经测试的代码)

答案 2 :(得分:-1)

SELECT *, DATEADD('d',-DAY([MonthlyDT])+1, [Date])  AS [MonthD]
FROM [MarkTSK] 

WHERE [MonthlyDT] IS NOT NULL

谢谢大家。上面的SCRIPT为我工作。所有未在1月1日的日期现在显示为第1日。