将Quarter + Year转换为日期

时间:2018-02-08 09:17:45

标签: sql

我有两个字段需要合并并转换为日期。这两个字段是i)Quarter& ii)Year

例如2017年第二季度 2018年1月4日

我当天没有一个领域,所以我只想把它保留到本月的第一天。

请有人帮助SQL。我需要添加一个select语句。

2 个答案:

答案 0 :(得分:1)

在Microsoft SQL Server中,您可以执行以下操作:

首先,我将日期创建为varchar,然后将其转换为Date数据类型。在此之后,我将其格式化为所需的格式。我使用CASE条款在本季度之前获得正确的月份。

SELECT FORMAT(CONVERT(DATE,CAST([Year] AS VARCHAR(4))+'-'+
                    CAST(CASE
                         WHEN [Quarter] = 'Q1' THEN '01' 
                         WHEN [Quarter] = 'Q2' THEN '04'
                         WHEN [Quarter] = 'Q3' THEN '07'
                         WHEN [Quarter] = 'Q4' THEN '10' END AS VARCHAR(2))+'-'+
                    CAST('01' AS VARCHAR(2))), 'dd-MM-yyyy', 'en-us')
                    from dates

答案 1 :(得分:0)

如果您使用的是SQL SERVER,那么您可以尝试这样的事情:

SELECT
  CONCAT(Quarter,
  CONVERT(date, DATEADD(MONTH, DATEDIFF(MONTH, 0, year), 0))) AS StartOfMonth
FROM Table1;

如果您需要在Quarter和Year之间留出一些空间,请添加' '

SELECT
  CONCAT(Quarter,' ',
  CONVERT(date, DATEADD(MONTH, DATEDIFF(MONTH, 0, year), 0))) AS StartOfMonth
FROM Table1;