[英]Create a date from Year and Month on a Select query
我在 Vertica 上工作
我有一個問題,看起來很簡單,但我找不到解決方法。
從查詢中,我可以得到 2 個字段“月”和“年”。 我想要的是自動選擇另一個字段,日期,我將構建為“01/月/年”(作為 sql 日期格式)。 目標是:
是)我有的
SELECT MONTH, YEAR FROM MyTable
Output
:
01 2020
11 2019
09 2021
我想要的是
SELECT MONTH, YEAR, *answer* FROM MyTable
Output
:
01 2020 01-01-2020
11 2019 01-11-2019
09 2021 01-09-2021
對不起,這看起來真的很蠢很容易,但我沒有找到任何好的方法來做到這一點。 提前致謝。
不要使用字符串操作來建立日期,你可以搞砸了事情相當:今天可能是: 16.07.2021
或07/16/2021
,或也2021-07-16
,並在法國,例如: 16/07/2021
。 然后,您還可以左修剪零 - 或者使用“七月”而不是 07 ....
嘗試:
WITH
my_table (mth,yr) AS (
SELECT 1, 2020
UNION ALL SELECT 11, 2019
UNION ALL SELECT 9, 2021
)
SELECT
yr
, mth
, ADD_MONTHS(DATE '0001-01-01',(yr-1)*12+(mth-1)) AS firstofmonth
FROM my_table
ORDER BY 1,2;
yr | mth | firstofmonth
------+-----+--------------
2019 | 11 | 2019-11-01
2020 | 1 | 2020-01-01
2021 | 9 | 2021-09-01
我終於找到了一種方法:
SELECT MONTH, YEAR, CONCAT(CONCAT(YEAR, '-'), CONCAT(MONTH, '-01')) FROM MyTable
試試這個:
SELECT [MONTH], [YEAR], CONCAT(CONCAT(CONCAT('01-',[MONTH]),'-'),[YEAR]) AS [DATE]
FROM MyTable
輸出將是:
| MONTH | YEAR | DATE |
|-------|------|------------|
| 01 | 2020 | 01-01-2020 |
| 11 | 2019 | 01-11-2019 |
| 09 | 2021 | 01-09-2021 |
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.