declare @LastMenstruation date,@ExpectedDateOfChildbirth date
declare @DurationWeeks int,@DurationDays int,@ExpectedWeeks int,@ExpectedDays int,@ExpectedTotalWeeks int
declare @Remainder int--余数外加天
declare @AdditionalWeeks int--剩余周

set @ExpectedTotalWeeks=40
set @LastMenstruation='yyyy-MM-dd'
set @ExpectedDateOfChildbirth=dateadd(week,@ExpectedTotalWeeks,@LastMenstruation)
--year | quarter | month | week | day | hour | minute | second | millisecond
set @DurationWeeks=datediff(week,@LastMenstruation,getdate())
set @DurationDays=datediff(day,@LastMenstruation,getdate())
set @ExpectedWeeks=datediff(week,@LastMenstruation,@ExpectedDateOfChildbirth)
set @ExpectedDays=datediff(day,@LastMenstruation,@ExpectedDateOfChildbirth)
set @Remainder=(@ExpectedDays-@DurationDays)%7
set @AdditionalWeeks=case @Remainder when 0 then (@ExpectedWeeks-@DurationWeeks) else (@ExpectedWeeks-@DurationWeeks)-1 end

select
@LastMenstruation [末次月经日期],@ExpectedDateOfChildbirth [预产期]
,cast(@ExpectedWeeks as varchar)+N' 周('+cast(@ExpectedDays as varchar)+N' 天)' [预计]
,cast(@DurationWeeks as nvarchar)+N' 周 + '+cast(@DurationDays%7 as varchar)+N' 天('+cast(@DurationDays as varchar)+N' 天)' [持续]
,cast(@AdditionalWeeks as varchar)+N' 周 + '+cast(@Remainder as varchar)+N' 天('+cast((@ExpectedDays-@DurationDays) as varchar)+N'天)' [剩余]

 

相关文章:

  • 2021-06-27
  • 2021-08-11
  • 2021-11-28
  • 2022-12-23
  • 2022-12-23
  • 2021-11-21
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-10-15
  • 2022-02-15
  • 2021-12-10
  • 2022-12-23
  • 2021-06-03
  • 2021-12-08
  • 2022-01-07
相关资源
相似解决方案