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