我有一个varchar值,格式为“YYYYMM-LL”,其中:YYYY是四位数年份; MM是两位数的月份.LL是两位数的报告期。这是计算中包含的整月数(从每个月的第一天到最后一天)。
我的问题是如何使用此varchar值来决定两个变量:@First_Date和@Last_Date。
示例:201409-06 此业务情景是截至2014年9月的六个月。 此业务情景中的日历日期范围是2014年4月1日至2014年9月30日。
那我怎么能用t-sql找到这两个日期@First_Date:04/01/2014和@Last_Date:09/30/2014。
任何帮助都会非常感激!
答案 0 :(得分:2)
您可以这样做:
select @firstdate = dateadd(month, 1 - cast(right('201409-06', 2) as int),
convert(date, left('201409-06', 6) + '01')
),
@lastdate = dateadd(day, -1,
dateadd(month, 1,
convert(date, left('201409-06', 6) + '01')
)
)
解析字符串以执行所需的日期算术运算。无论国际化设置如何,SQL Server都会将“YYYYMMDD”形式的字符串识别为日期。