簡體   English   中英

從月份名稱和年份獲取sql中該月份的日期范圍

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM