SSIS - 将日期列从 15 日修改为 1 日

SSIS - Modify date column from the 15th to the 1st of the month

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源代码编辑器中写的。

谢谢

这应该总是给你当月的第一天

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

在你的 table 中将日期拉回一个月的第一天,应该这样做

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

使用DatePart手动提取添加日期的月份和年份。 类似于:

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

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

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

WHERE [MonthlyDT] IS NOT NULL

谢谢大家。上面的脚本对我有用。所有不在当月 1 号的日期现在都显示为 1 号。