如果当前日期的天数 = 14,则参数的值需要更改。月份和可能的年份需要提前 1 - 可能需要考虑到该月的第 14 天可能存在阻止此过程运行的技术问题。示例星期五是 14 日,当 sql 脚本在 sql 服务器上运行并看到它的第 14 日时,字段 prmstring 需要从 201305 更新为 201306。
问问题
261 次
3 回答
1
SET @start = DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()-13), 0)
SET @stop = DATEADD(MONTH, 1, @start)
将-13
所有内容移回 13 天。
- 每月 1 日至 13 日,移至上个月的日期
- 每月 14 日起,留在同月
将DATEADD(DATEDIFF())
日期向下舍入到月初。
这样每个月的 1 号到 13 号都向下舍入到上个月的 1 号。14 日起向下舍入到当月 1 日。
结束日期就是上面计算的值加上 1 个月。
于 2013-06-11T18:16:31.053 回答
0
这个怎么样?
select
substring(
convert(
varchar(10),
dateadd(mm, 1, dateadd(mm, datediff(mm, 0, dateadd(d,-13,getdate())), 0))
,112)
,1,6) as newDate
于 2013-06-11T19:34:32.643 回答
0
这是有效的
DECLARE @curentday VARCHAR(2)
select @curentday =datepart(day,getdate())
declare @yearmonth varchar (6)
select @yearmonth =convert(varchar,getdate(),112)
If @curentday in (14,15,16)
begin
if (select prmString11 from FC_App where prmName1='prmCurFCPrd') <> @yearmonth
begin
update FC_App
set prmString11 = @yearmonth
where prmName1='prmCurFCPrd'
update FC_App
set prmString11 = CONVERT(VARCHAR(6),DATEADD(dd,1-day((DATEADD(mm,-1,GETDATE()))),DATEADD(mm,- 1,GETDATE())),112)
where prmName1='prmcurWIPPrd'
End
end
于 2013-06-13T16:52:27.130 回答