我有两个字段需要合并并转换为日期。这两个字段是i)Quarter
&
ii)Year
例如2017年第二季度 2018年1月4日
我当天没有一个领域,所以我只想把它保留到本月的第一天。
请有人帮助SQL。我需要添加一个select语句。
答案 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;