[英]From Month Name and year Get date range of that month in sql
我有月份名称和年份,我想要那个月的日期范围。
输入
@Input=August 2014
产量
@fromDate=08/01/2014(MM/dd/YYYY)
@toDate=08/31/2014
请帮帮我这样做
在MySQL中,您可以使用str_to_date
将字符串转换为日期。 使用%M
表示命名月份,使用%Y
表示一年:
select str_to_date('August 2014', '%M %Y') dt
-->
2014-08-00
由于一个月的第一天始终是第一天,因此可以找到:
date_format(dt ,'%Y-%m-01')
-->
2014-08-01
last_day
函数返回该月的最后一天。 我在第一天通过,因为last_day
函数不喜欢str_to_date
返回的00
天部分:
last_day(date_format(dt ,'%Y-%m-01'))
-->
2014-08-31
结合一切:
select date_format(dt ,'%Y-%m-01')
, last_day(date_format(dt ,'%Y-%m-01'))
from (
select str_to_date('August 2014', '%M %Y') dt
) as SubQueryAlias
-->
2014-08-01 2014-08-31
试试这个
DECLARE @SystemDate DateTime, @StartDate DateTime, @EndDate DateTime
declare @monthid int
SELECT @monthid=MONTH(CAST(@Month+ '1 2010' AS datetime))
SET @SystemDate = cast(@monthid as varchar(20))+'-'+'1'+ '-'+cast(@year as varchar(20))
SELECT @StartDate = DATEADD(dd, -Day(@SystemDate) + 1, @SystemDate)
SELECT @EndDate = CONVERT(VARCHAR(20), DATEADD(dd, -(DAY(DATEADD(mm, 1, @SystemDate))),DATEADD(mm, 1, @SystemDate)),101)
SELECT @StartDate StartDate, @EndDate EndDate
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.